{"id":3821,"name":"@angular-eslint/builder","ecosystem":"npm","repository_url":"https://github.com/angular-eslint/angular-eslint","issues_count":705,"created_at":"2025-06-06T16:30:15.490Z","updated_at":"2025-06-06T16:30:15.490Z","purl":"pkg:npm/@angular-eslint/builder","metadata":{"id":810457,"name":"@angular-eslint/builder","ecosystem":"npm","description":"Angular CLI builder for ESLint","homepage":"https://github.com/angular-eslint/angular-eslint#readme","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/angular-eslint/angular-eslint","keywords_array":[],"namespace":"angular-eslint","versions_count":956,"first_release_published_at":"2019-07-29T01:54:49.812Z","latest_release_published_at":"2025-06-06T12:57:48.314Z","latest_release_number":"19.8.0","last_synced_at":"2025-06-06T13:00:47.942Z","created_at":"2022-04-07T13:32:29.840Z","updated_at":"2025-06-06T13:00:57.437Z","registry_url":"https://www.npmjs.com/package/@angular-eslint/builder","install_command":"npm install @angular-eslint/builder","documentation_url":null,"metadata":{"funding":null,"dist-tags":{"tmp":"4.2.0-tmp.0","patch":"4.3.1","next":"17.0.0-alpha.0","rc-v18":"18.0.0-alpha.16","previous":"17.5.3","prerelease-v19":"19.4.1-pr-2451-1","prerelease-v20":"20.0.0-beta.1","latest":"19.8.0","canary":"19.7.2-alpha.0"}},"repo_metadata":{"id":37678096,"uuid":"199344833","full_name":"angular-eslint/angular-eslint","owner":"angular-eslint","description":":sparkles: Monorepo for all the tooling related to using ESLint with Angular","archived":false,"fork":false,"pushed_at":"2025-05-28T21:16:59.000Z","size":19220,"stargazers_count":1720,"open_issues_count":62,"forks_count":243,"subscribers_count":26,"default_branch":"main","last_synced_at":"2025-05-28T22:11:28.839Z","etag":null,"topics":["angular","eslint","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/angular-eslint.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://buymeacoffee.com/jameshenry"]}},"created_at":"2019-07-28T22:51:06.000Z","updated_at":"2025-05-28T17:57:42.000Z","dependencies_parsed_at":"2023-12-07T10:30:16.275Z","dependency_job_id":"959cb408-49e6-4386-ab43-ebad25694dc0","html_url":"https://github.com/angular-eslint/angular-eslint","commit_stats":{"total_commits":1427,"total_committers":98,"mean_commits":"14.561224489795919","dds":0.5760336370007008,"last_synced_commit":"c0e9b9168944d57c3c7b97560deda856d84e73ac"},"previous_names":[],"tags_count":199,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/angular-eslint","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":258407284,"owners_count":22695923,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"angular-eslint","name":"angular-eslint","uuid":"53234240","kind":"organization","description":"","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/53234240?v=4","repositories_count":1,"last_synced_at":"2024-05-21T06:37:29.551Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/angular-eslint","funding_links":[],"total_stars":1560,"followers":22,"following":0,"created_at":"2022-11-02T16:23:40.475Z","updated_at":"2024-05-21T06:37:30.800Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/angular-eslint","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/angular-eslint/repositories"},"tags":[{"name":"v19.7.0","sha":"0d02cc2e165c16ec03617c3312e3f752fe19d66a","kind":"tag","published_at":"2025-06-02T09:55:40.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v19.7.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v19.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v19.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v19.7.0/manifests"},{"name":"v19.6.0","sha":"adea723277642011b00d038c6c1e588d4c00d11e","kind":"tag","published_at":"2025-05-27T14:28:58.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v19.6.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v19.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v19.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v19.6.0/manifests"},{"name":"v19.5.0","sha":"74cb8519348d40ba66240ed28dc0f9c3b5e0d4c7","kind":"tag","published_at":"2025-05-25T09:51:33.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v19.5.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v19.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v19.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v19.5.0/manifests"},{"name":"v19.4.0","sha":"f0ab5dcff1bb7af0d81e7a8fb53f37d1463771ba","kind":"tag","published_at":"2025-05-08T14:38:03.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v19.4.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v19.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v19.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v19.4.0/manifests"},{"name":"v19.3.0","sha":"8303144bfce697c96285e58f7717dbb3e3dccd34","kind":"tag","published_at":"2025-03-22T13:44:05.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v19.3.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v19.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v19.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v19.3.0/manifests"},{"name":"v19.2.1","sha":"b55ccf1053b2973be45585f60ed8ed39e90fae6d","kind":"tag","published_at":"2025-03-08T16:52:05.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v19.2.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v19.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v19.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v19.2.1/manifests"},{"name":"v19.2.0","sha":"acaeb15d8d6848ce4d9ad47dc1ccdbf4a85f72a3","kind":"tag","published_at":"2025-03-02T15:13:50.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v19.2.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v19.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v19.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v19.2.0/manifests"},{"name":"v19.1.0","sha":"53a2afe28e0d7dce23d6a3f974abaad76b1b1c66","kind":"tag","published_at":"2025-02-09T19:30:52.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v19.1.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v19.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v19.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v19.1.0/manifests"},{"name":"v19.0.2","sha":"390df5a211f7016be1bcc12c4e139796c1867867","kind":"tag","published_at":"2024-12-10T08:02:01.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v19.0.2","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v19.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v19.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v19.0.2/manifests"},{"name":"v19.0.1","sha":"34e28ef5b050cf6b9b52bc7262aa066fc684bb6b","kind":"tag","published_at":"2024-12-06T08:06:55.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v19.0.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v19.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v19.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v19.0.1/manifests"},{"name":"v19.0.0","sha":"af5386760858602db8a70f70ee06fc5991850c6f","kind":"tag","published_at":"2024-11-29T20:52:17.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v19.0.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v19.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v19.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v19.0.0/manifests"},{"name":"v18.4.3","sha":"5c46a94d012ee83107a2bf804991d5434b08de4c","kind":"tag","published_at":"2024-11-29T18:19:45.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v18.4.3","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v18.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v18.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v18.4.3/manifests"},{"name":"v18.4.2","sha":"8d0c6f31fbfc6b001b6a274ccf3cd87e93698e04","kind":"tag","published_at":"2024-11-23T13:07:09.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v18.4.2","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v18.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v18.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v18.4.2/manifests"},{"name":"v18.4.1","sha":"3e05a844e87edb1779f2c186b4fcd6013f7109b6","kind":"tag","published_at":"2024-11-18T21:37:34.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v18.4.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v18.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v18.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v18.4.1/manifests"},{"name":"v18.4.0","sha":"1796bd78fba1958fd74d133d7c893734eff2aa7a","kind":"tag","published_at":"2024-10-21T11:54:53.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v18.4.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v18.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v18.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v18.4.0/manifests"},{"name":"v18.3.1","sha":"decce7c74d28db9f2ca6e582448054f2641a89b5","kind":"tag","published_at":"2024-09-11T11:48:05.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v18.3.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v18.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v18.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v18.3.1/manifests"},{"name":"v17.5.3","sha":"16eadfb17c595f15db8aaa8a4b025fab463fc468","kind":"tag","published_at":"2024-09-04T10:42:14.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v17.5.3","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v17.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.5.3/manifests"},{"name":"v18.3.0","sha":"2f278370f588fa742eda26d693573f16ac493722","kind":"tag","published_at":"2024-08-13T14:00:07.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v18.3.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v18.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v18.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v18.3.0/manifests"},{"name":"v18.2.0","sha":"fea2384fb565dcdaa6cf964f4654dda146118f49","kind":"tag","published_at":"2024-07-31T21:57:01.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v18.2.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v18.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v18.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v18.2.0/manifests"},{"name":"v18.1.0","sha":"796e657c7bf21e0d6b59323eb4019a72342627e6","kind":"tag","published_at":"2024-07-01T11:49:42.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v18.1.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v18.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v18.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v18.1.0/manifests"},{"name":"v18.0.1","sha":"f36d0272d526fe7497f52ab0d7f445cf08b4489b","kind":"tag","published_at":"2024-05-30T09:18:51.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v18.0.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v18.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v18.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v18.0.1/manifests"},{"name":"v18.0.0","sha":"c8dff2faf86e3cbfcf9003888c306f020a3937f0","kind":"tag","published_at":"2024-05-29T16:31:06.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v18.0.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v18.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v18.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v18.0.0/manifests"},{"name":"v17.5.2","sha":"05e8cf9893c1d491d28ed99d4f4f54970820408c","kind":"tag","published_at":"2024-05-28T15:15:18.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v17.5.2","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v17.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.5.2/manifests"},{"name":"v17.5.1","sha":"82b1b7cf9175299d25ed882a2d0125883ff71177","kind":"tag","published_at":"2024-05-23T12:57:53.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v17.5.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v17.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.5.1/manifests"},{"name":"v17.5.0","sha":"4efe5e941f42d8b116def22256f5d564738e7545","kind":"tag","published_at":"2024-05-22T12:06:00.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v17.5.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v17.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.5.0/manifests"},{"name":"v17.4.1","sha":"5b7f1f3862bc5906997405b5b0dd3a81513393e6","kind":"tag","published_at":"2024-05-15T10:26:13.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v17.4.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v17.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.4.1/manifests"},{"name":"v17.4.0","sha":"350b2da90e25ccd0073e39d6c097e255404cf0a1","kind":"tag","published_at":"2024-05-07T12:35:10.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v17.4.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v17.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.4.0/manifests"},{"name":"v17.3.0","sha":"529e03533a73d850ca082a72f69c04bcd3a1d1d5","kind":"tag","published_at":"2024-03-15T21:43:00.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v17.3.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v17.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.3.0/manifests"},{"name":"v17.2.1","sha":"93c66cba7952bde8c3c81918536aea5d2de3fca4","kind":"tag","published_at":"2024-01-20T19:49:19.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v17.2.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v17.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.2.1/manifests"},{"name":"v17.2.0","sha":"564e009e74e2d3bdffeae58e995642700df7face","kind":"tag","published_at":"2024-01-06T20:33:46.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v17.2.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v17.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.2.0/manifests"},{"name":"v17.1.1","sha":"a1a2bd727a4e08caf72eda12760aceca4c64ec83","kind":"tag","published_at":"2023-11-30T15:06:48.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v17.1.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v17.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.1.1/manifests"},{"name":"v17.1.0","sha":"d339890fedcc9b1db2536a110ae2cc91a112a871","kind":"tag","published_at":"2023-11-15T18:48:04.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v17.1.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v17.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.1.0/manifests"},{"name":"v17.0.1","sha":"19967e7724c64143aa5a2c77f73006e7541c1fea","kind":"tag","published_at":"2023-11-09T09:30:59.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v17.0.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v17.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.0.1/manifests"},{"name":"v17.0.0","sha":"7121d78c95eefc01c306503b22cc9c7526c50633","kind":"tag","published_at":"2023-11-08T15:23:25.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v17.0.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v17.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.0.0/manifests"},{"name":"v16.3.1","sha":"d1dadeba8553c1b6e6b182656bfce5cff97e3035","kind":"tag","published_at":"2023-11-08T14:52:06.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v16.3.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v16.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.3.1/manifests"},{"name":"v16.3.0","sha":"2c48f226cfff00fca234b70f51cf6491f422cbf1","kind":"tag","published_at":"2023-11-08T14:50:38.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v16.3.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v16.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.3.0/manifests"},{"name":"v17.0.0-alpha.0","sha":"e0478be1ae5b9010ad1d74eac4d06511250bf13f","kind":"tag","published_at":"2023-11-06T21:03:06.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v17.0.0-alpha.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v17.0.0-alpha.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.0.0-alpha.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v17.0.0-alpha.0/manifests"},{"name":"v16.2.0","sha":"038422b3f939f2649375975a95e1417171f38ce0","kind":"tag","published_at":"2023-09-17T11:21:24.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v16.2.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v16.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.2.0/manifests"},{"name":"v16.1.2","sha":"2e4af4d7e60c4ceb7a65a5fa5ed8fde102291c01","kind":"tag","published_at":"2023-09-04T13:44:57.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v16.1.2","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v16.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.1.2/manifests"},{"name":"v16.1.1","sha":"99c5463a69289874c5cac1e47ac38cdf98f2b156","kind":"tag","published_at":"2023-08-20T16:46:38.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v16.1.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v16.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.1.1/manifests"},{"name":"v16.1.0","sha":"dce6381cafcbe2de109d0a53b4c9c3e3bf1ae569","kind":"tag","published_at":"2023-07-12T14:52:24.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v16.1.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v16.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.1.0/manifests"},{"name":"v16.0.3","sha":"246c158912e3b67291ffb992f5826e5067442c22","kind":"tag","published_at":"2023-05-29T16:55:19.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v16.0.3","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v16.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.0.3/manifests"},{"name":"v16.0.2","sha":"352f53ceb3fb4f4b7771c26f90afd580be489f8e","kind":"tag","published_at":"2023-05-17T15:53:23.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v16.0.2","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v16.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.0.2/manifests"},{"name":"v16.0.1","sha":"22e3c95a5d63a8dbda1c3c1fdb39ceddee66d912","kind":"tag","published_at":"2023-05-03T20:37:18.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v16.0.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v16.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.0.1/manifests"},{"name":"v16.0.0","sha":"245317c7bd83a94000e704060186098cadcf0195","kind":"tag","published_at":"2023-05-03T18:19:46.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v16.0.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v16.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.0.0/manifests"},{"name":"v16.0.0-alpha.1","sha":"ffcbae10749bc12760a9d442d4293179c6c19042","kind":"tag","published_at":"2023-05-03T11:04:32.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v16.0.0-alpha.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v16.0.0-alpha.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.0.0-alpha.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.0.0-alpha.1/manifests"},{"name":"v16.0.0-alpha.0","sha":"4bb6da6362f6625bffe7430d5117bbfb66e38d2b","kind":"tag","published_at":"2023-05-02T21:03:25.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v16.0.0-alpha.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v16.0.0-alpha.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.0.0-alpha.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v16.0.0-alpha.0/manifests"},{"name":"v15.2.1","sha":"9ecf4acc786d8529c6110db8842303286df80103","kind":"tag","published_at":"2023-02-10T12:48:14.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v15.2.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v15.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v15.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v15.2.1/manifests"},{"name":"v15.2.0","sha":"e48f172aea96f6e4c6b80d8ff06e8c004caf7775","kind":"tag","published_at":"2023-01-14T16:24:00.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v15.2.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v15.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v15.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v15.2.0/manifests"},{"name":"v15.1.0","sha":"ff9c1bcec7cf940adffa051ca58eda5ba6cd7978","kind":"tag","published_at":"2022-11-24T11:19:23.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v15.1.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v15.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v15.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v15.1.0/manifests"},{"name":"v15.0.0","sha":"465fabe0fc843065673543a2a25cbaaf60c229fd","kind":"tag","published_at":"2022-11-20T12:43:30.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v15.0.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v15.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v15.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v15.0.0/manifests"},{"name":"v15.0.0-alpha.5","sha":"fed36400d7e0e754d241ded51ab54adacf226592","kind":"tag","published_at":"2022-11-20T12:00:31.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v15.0.0-alpha.5","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v15.0.0-alpha.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v15.0.0-alpha.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v15.0.0-alpha.5/manifests"},{"name":"v15.0.0-alpha.4","sha":"df25423194e1893f49d4f15f9773691f02a51e3d","kind":"tag","published_at":"2022-11-20T11:51:20.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v15.0.0-alpha.4","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v15.0.0-alpha.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v15.0.0-alpha.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v15.0.0-alpha.4/manifests"},{"name":"v14.4.0","sha":"2541da9e7b785720f1eba180cc6a9154212c3e5f","kind":"tag","published_at":"2022-11-20T11:34:31.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v14.4.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v14.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.4.0/manifests"},{"name":"v15.0.0-alpha.3","sha":"76e5c723f6c03106c6f2c5839d820a8deb96040c","kind":"tag","published_at":"2022-11-20T10:38:29.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v15.0.0-alpha.3","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v15.0.0-alpha.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v15.0.0-alpha.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v15.0.0-alpha.3/manifests"},{"name":"v14.3.1","sha":"02736497031b36736bffc8e1993d580dfe3f3c39","kind":"tag","published_at":"2022-11-20T10:06:59.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v14.3.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v14.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.3.1/manifests"},{"name":"v15.0.0-alpha.2","sha":"ad7d7eaded8cffc89105dde9fc3a4c70020de4a7","kind":"tag","published_at":"2022-11-20T09:31:49.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v15.0.0-alpha.2","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v15.0.0-alpha.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v15.0.0-alpha.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v15.0.0-alpha.2/manifests"},{"name":"v15.0.0-alpha.1","sha":"58e6105c2375550f2b786406f25e304b0d59095b","kind":"tag","published_at":"2022-11-19T14:18:24.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v15.0.0-alpha.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v15.0.0-alpha.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v15.0.0-alpha.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v15.0.0-alpha.1/manifests"},{"name":"v15.0.0-alpha.0","sha":"333fe1b4c189a5f4ecee216bd5360f428853f50d","kind":"tag","published_at":"2022-11-17T13:41:42.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v15.0.0-alpha.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v15.0.0-alpha.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v15.0.0-alpha.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v15.0.0-alpha.0/manifests"},{"name":"v14.3.0","sha":"f71f23652a74ebd2f650baeb3a91051db554c5d9","kind":"tag","published_at":"2022-11-17T10:13:33.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v14.3.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v14.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.3.0/manifests"},{"name":"v14.2.0","sha":"b7424db6b5b7a3c164f865e0922179426311920d","kind":"tag","published_at":"2022-11-15T10:52:00.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v14.2.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v14.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.2.0/manifests"},{"name":"v14.1.2","sha":"d3df93596ac128c7028a051780f43d8e8adb6e6f","kind":"tag","published_at":"2022-09-21T18:59:12.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v14.1.2","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v14.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.1.2/manifests"},{"name":"v14.1.1","sha":"6c39138db7799d9f8a455e1623f2d7ea6fa61b86","kind":"tag","published_at":"2022-09-18T11:33:23.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v14.1.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v14.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.1.1/manifests"},{"name":"v14.1.0","sha":"e25ef92c8c59a9c47b727f8e491dfb608cb71530","kind":"tag","published_at":"2022-09-18T07:47:22.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v14.1.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v14.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.1.0/manifests"},{"name":"v14.0.4","sha":"95a06756d2118ae548798f56d3f759bf157b4933","kind":"tag","published_at":"2022-09-08T13:33:26.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v14.0.4","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v14.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.0.4/manifests"},{"name":"v14.0.3","sha":"89459be35a922ba5f6146636b02cee508ac88ffb","kind":"tag","published_at":"2022-08-23T08:36:50.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v14.0.3","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v14.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.0.3/manifests"},{"name":"v14.0.2","sha":"56a345032bdbd6dc03cdbe4d219156dda73c1e6b","kind":"tag","published_at":"2022-07-09T09:59:17.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v14.0.2","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v14.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.0.2/manifests"},{"name":"v14.0.1","sha":"d22e28e6a0135ca724cafdff29fd3491291344b5","kind":"tag","published_at":"2022-07-08T15:41:14.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v14.0.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v14.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.0.1/manifests"},{"name":"v14.0.0","sha":"676699f28a4ecaf41f8c65418d0bdc9c973714aa","kind":"tag","published_at":"2022-06-23T18:00:40.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v14.0.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v14.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.0.0/manifests"},{"name":"v14.0.0-alpha.4","sha":"c3f4612ab5834c934fc6f7b1c230eb30c049992a","kind":"tag","published_at":"2022-06-23T17:42:51.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v14.0.0-alpha.4","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v14.0.0-alpha.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.0.0-alpha.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.0.0-alpha.4/manifests"},{"name":"v14.0.0-alpha.3","sha":"f29d389822b4a0ab2693771b5494073b883c8946","kind":"tag","published_at":"2022-06-13T13:34:36.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v14.0.0-alpha.3","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v14.0.0-alpha.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.0.0-alpha.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.0.0-alpha.3/manifests"},{"name":"v14.0.0-alpha.2","sha":"67044dd79280a779a0d5614350f5fa0308399148","kind":"tag","published_at":"2022-06-12T11:06:57.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v14.0.0-alpha.2","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v14.0.0-alpha.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.0.0-alpha.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.0.0-alpha.2/manifests"},{"name":"v13.5.0","sha":"6552d6c62f99f3c1c135d7309ee613caae394dbb","kind":"tag","published_at":"2022-06-12T11:01:21.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v13.5.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v13.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v13.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v13.5.0/manifests"},{"name":"v14.0.0-alpha.1","sha":"7ea26af6975cd4d4295114e761dee161522c752a","kind":"tag","published_at":"2022-06-11T13:48:08.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v14.0.0-alpha.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v14.0.0-alpha.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.0.0-alpha.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.0.0-alpha.1/manifests"},{"name":"v13.4.0","sha":"0bda2bbb78bed2caba42fd307f7c7cd182cb113c","kind":"tag","published_at":"2022-06-11T13:37:21.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v13.4.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v13.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v13.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v13.4.0/manifests"},{"name":"v13.3.0","sha":"85b0aab13b79242baec51adaaad188f6f390e875","kind":"tag","published_at":"2022-06-10T09:51:25.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v13.3.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v13.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v13.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v13.3.0/manifests"},{"name":"v14.0.0-alpha.0","sha":"bb37c65bd1d8689848d98ae30c0a95ea3ce50675","kind":"tag","published_at":"2022-05-31T15:27:59.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v14.0.0-alpha.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v14.0.0-alpha.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.0.0-alpha.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v14.0.0-alpha.0/manifests"},{"name":"v13.2.1","sha":"120c20a2e0811879b35e062e0ce6e74b6d4b9ff2","kind":"tag","published_at":"2022-04-14T12:03:34.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v13.2.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v13.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v13.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v13.2.1/manifests"},{"name":"v13.2.0","sha":"0be6f08baad4f9e1392a48d6e99233f51202b266","kind":"tag","published_at":"2022-04-03T17:48:02.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v13.2.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v13.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v13.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v13.2.0/manifests"},{"name":"v13.1.0","sha":"4c11177e66cb54ba8d548ad7068990679c0c7e93","kind":"tag","published_at":"2022-02-13T19:26:57.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v13.1.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v13.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v13.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v13.1.0/manifests"},{"name":"v13.0.1","sha":"e2006e5e9c99e5a943d1a999e0efa5247d29ec24","kind":"tag","published_at":"2021-11-19T00:02:37.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v13.0.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v13.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v13.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v13.0.1/manifests"},{"name":"v13.0.0","sha":"3c3f54614742941d39e2dae941febdee05525ff1","kind":"tag","published_at":"2021-11-18T22:13:50.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v13.0.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v13.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v13.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v13.0.0/manifests"},{"name":"v13.0.0-alpha.1","sha":"33496da91dbcb83f6d8eb45bec3b342e8a107943","kind":"tag","published_at":"2021-11-18T21:58:03.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v13.0.0-alpha.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v13.0.0-alpha.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v13.0.0-alpha.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v13.0.0-alpha.1/manifests"},{"name":"v4.3.1","sha":"3c3e9e87199a229429edfe863117ba4e8f37f424","kind":"tag","published_at":"2021-11-18T21:34:58.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v4.3.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v4.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v4.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v4.3.1/manifests"},{"name":"v12.7.0","sha":"f1e7704b7c0f57d7743fef8cd7500bc3103b9b5b","kind":"tag","published_at":"2021-11-18T21:20:24.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v12.7.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v12.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.7.0/manifests"},{"name":"v13.0.0-alpha.0","sha":"3e9ea918032ff4f03d44cccfa873df36c370f7b9","kind":"tag","published_at":"2021-11-03T08:51:47.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v13.0.0-alpha.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v13.0.0-alpha.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v13.0.0-alpha.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v13.0.0-alpha.0/manifests"},{"name":"v12.6.1","sha":"f6bc27a1f35d4dcd39f9fc029d0397f454c5a2be","kind":"tag","published_at":"2021-10-26T15:58:40.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v12.6.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v12.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.6.1/manifests"},{"name":"v12.6.0","sha":"4e478ea0259ea7b57ee6e9f44ab943ad8cfef101","kind":"tag","published_at":"2021-10-25T10:31:45.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v12.6.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v12.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.6.0/manifests"},{"name":"v12.5.0","sha":"959ad2824d7d511e2d8c67ca03a6b5b71698f268","kind":"tag","published_at":"2021-09-20T15:03:04.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v12.5.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v12.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.5.0/manifests"},{"name":"v12.4.1","sha":"b38d82894ed39358a48c4689dd79749ad9216dc1","kind":"tag","published_at":"2021-09-09T12:33:41.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v12.4.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v12.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.4.1/manifests"},{"name":"v12.4.0","sha":"34e5523aa8e074122a2fff318f08f95b8634053c","kind":"tag","published_at":"2021-09-09T11:45:50.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v12.4.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v12.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.4.0/manifests"},{"name":"v12.3.1","sha":"9919aa840c82ba796129ebd4d94fff27b1e41181","kind":"tag","published_at":"2021-07-15T13:32:35.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v12.3.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v12.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.3.1/manifests"},{"name":"v12.3.0","sha":"3392ccc0e32d57d00badf125c65b271aa12919a7","kind":"tag","published_at":"2021-07-13T08:29:04.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v12.3.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v12.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.3.0/manifests"},{"name":"v12.2.2","sha":"e82c68780c3e162de270fe5e2e220ccf96f43105","kind":"tag","published_at":"2021-07-10T15:28:25.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v12.2.2","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v12.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.2.2/manifests"},{"name":"v12.2.1","sha":"f8fc893265b1afaf36ade5188f01896c2300ec2f","kind":"tag","published_at":"2021-07-10T11:21:46.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v12.2.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v12.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.2.1/manifests"},{"name":"v12.2.0","sha":"6f5d5b23583da26e5de4432317b0b1abb0f45527","kind":"tag","published_at":"2021-06-20T12:26:52.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v12.2.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v12.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.2.0/manifests"},{"name":"v12.1.0","sha":"9743b7b4bb92a0aad7e7cdd23112d53dcdfcfae7","kind":"tag","published_at":"2021-05-30T11:39:21.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v12.1.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v12.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.1.0/manifests"},{"name":"v12.0.0","sha":"303d5550dabf63b2728ac2f552bc6666a30d5abc","kind":"tag","published_at":"2021-05-13T17:31:06.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v12.0.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v12.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.0.0/manifests"},{"name":"v12.0.0-alpha.5","sha":"d1d0e9f61f6a864d14507aa09c4b08c085309e7d","kind":"tag","published_at":"2021-05-13T17:10:54.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v12.0.0-alpha.5","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v12.0.0-alpha.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.0.0-alpha.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.0.0-alpha.5/manifests"},{"name":"v12.0.0-alpha.4","sha":"5a2b46daeb65442f6e71697bad863b90f611921b","kind":"tag","published_at":"2021-05-13T10:31:54.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v12.0.0-alpha.4","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v12.0.0-alpha.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.0.0-alpha.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.0.0-alpha.4/manifests"},{"name":"v12.0.0-alpha.3","sha":"a8f71cd9c67a4a3584ed9bff9be4a57b6eaa483d","kind":"tag","published_at":"2021-05-13T10:27:38.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v12.0.0-alpha.3","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v12.0.0-alpha.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.0.0-alpha.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.0.0-alpha.3/manifests"},{"name":"v12.0.0-alpha.2","sha":"5f45f17163e69f9c19c24ea91d09782d5c3f3344","kind":"tag","published_at":"2021-05-13T10:00:22.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v12.0.0-alpha.2","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v12.0.0-alpha.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.0.0-alpha.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.0.0-alpha.2/manifests"},{"name":"v12.0.0-alpha.1","sha":"60b536abce6e73be11969c8640afb525274030bb","kind":"tag","published_at":"2021-05-13T09:51:41.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v12.0.0-alpha.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v12.0.0-alpha.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.0.0-alpha.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.0.0-alpha.1/manifests"},{"name":"v4.3.0","sha":"5f4e4a8904de2b2be8db55c4fbc6f3946bfe9185","kind":"tag","published_at":"2021-05-12T14:47:36.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v4.3.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v4.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v4.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v4.3.0/manifests"},{"name":"v4.2.1","sha":"15395649712625567c5dd4157f88a7cf6a3ea6ce","kind":"tag","published_at":"2021-05-12T09:32:21.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v4.2.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v4.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v4.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v4.2.1/manifests"},{"name":"v12.0.0-alpha.0","sha":"b2a4c866c173b01b194853c2ef6c6fd80261f30a","kind":"tag","published_at":"2021-05-10T16:19:45.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v12.0.0-alpha.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v12.0.0-alpha.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.0.0-alpha.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v12.0.0-alpha.0/manifests"},{"name":"v4.2.0","sha":"e1af184da7fbb88902635cd539223ecdaa88c0b8","kind":"tag","published_at":"2021-04-28T15:32:54.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v4.2.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v4.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v4.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v4.2.0/manifests"},{"name":"v4.1.0","sha":"2c7e4668156308227ee112b2383b7871c8c6f09e","kind":"tag","published_at":"2021-04-28T11:02:50.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v4.1.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v4.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v4.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v4.1.0/manifests"},{"name":"v4.0.0","sha":"589df30dafbbef90ab3d65d73928b4ea0f899cc2","kind":"tag","published_at":"2021-04-18T13:13:06.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v4.0.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v4.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v4.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v4.0.0/manifests"},{"name":"v4.0.0-alpha.4","sha":"87b7076caa3f60444eb6a53e5a3b70728b3d6e72","kind":"tag","published_at":"2021-04-18T12:55:58.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v4.0.0-alpha.4","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v4.0.0-alpha.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v4.0.0-alpha.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v4.0.0-alpha.4/manifests"},{"name":"v4.0.0-alpha.3","sha":"e69a6b00613084b68ee0c7b8f5026266c1f6f368","kind":"tag","published_at":"2021-04-18T12:49:17.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v4.0.0-alpha.3","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v4.0.0-alpha.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v4.0.0-alpha.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v4.0.0-alpha.3/manifests"},{"name":"v4.0.0-alpha.2","sha":"1548b79451c85941a9debac007aa4e5d36c6f425","kind":"tag","published_at":"2021-04-18T12:40:06.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v4.0.0-alpha.2","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v4.0.0-alpha.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v4.0.0-alpha.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v4.0.0-alpha.2/manifests"},{"name":"v4.0.0-alpha.1","sha":"210b7edca46ac780b4ccf1b32ce0252bdab28579","kind":"tag","published_at":"2021-04-18T12:37:12.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v4.0.0-alpha.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v4.0.0-alpha.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v4.0.0-alpha.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v4.0.0-alpha.1/manifests"},{"name":"v4.0.0-alpha.0","sha":"38f92bb8cc5bef18444436b2949cdcd938c306a9","kind":"tag","published_at":"2021-04-18T11:30:12.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v4.0.0-alpha.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v4.0.0-alpha.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v4.0.0-alpha.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v4.0.0-alpha.0/manifests"},{"name":"v3.0.1","sha":"26ded8968a7660aa10219da7addcac40a677f465","kind":"tag","published_at":"2021-04-18T10:39:03.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v3.0.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v3.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v3.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v3.0.1/manifests"},{"name":"v3.0.0","sha":"35df8f388d16f3188609ed0415a8194fb81cf506","kind":"tag","published_at":"2021-04-17T13:37:01.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v3.0.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v3.0.0/manifests"},{"name":"v2.1.1","sha":"bcefb9f59488f1dbfcbee30ef591547cf631169e","kind":"tag","published_at":"2021-04-17T12:46:07.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v2.1.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.1.1/manifests"},{"name":"v2.1.0","sha":"7870d1e5eb9040d7286c0579306c6b6ec1a67a83","kind":"tag","published_at":"2021-04-11T15:07:40.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v2.1.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.1.0/manifests"},{"name":"v3.0.0-alpha.2","sha":"64f7a3209562a479b64ff2c9f3ef8f8b4d3cc238","kind":"tag","published_at":"2021-03-29T16:11:47.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v3.0.0-alpha.2","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v3.0.0-alpha.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v3.0.0-alpha.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v3.0.0-alpha.2/manifests"},{"name":"v3.0.0-alpha.1","sha":"71f401f573934cfe5698440319a692391bece86a","kind":"tag","published_at":"2021-03-29T09:04:21.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v3.0.0-alpha.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v3.0.0-alpha.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v3.0.0-alpha.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v3.0.0-alpha.1/manifests"},{"name":"v3.0.0-alpha.0","sha":"19d7cd36a08dcb28c33dec0f2f5ca260407567b5","kind":"tag","published_at":"2021-03-29T07:47:16.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v3.0.0-alpha.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v3.0.0-alpha.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v3.0.0-alpha.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v3.0.0-alpha.0/manifests"},{"name":"v2.0.2","sha":"e78d6df0e451efb93ec0b498fa5172db63725a60","kind":"tag","published_at":"2021-03-16T13:12:15.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v2.0.2","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v2.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.2/manifests"},{"name":"v2.0.1","sha":"de8ab5fd4cce540559217709f7ace4a5328c416c","kind":"tag","published_at":"2021-03-14T10:49:56.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v2.0.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.1/manifests"},{"name":"v2.0.0","sha":"33abddc7062b35f5148f5a0e822ec8b11ecd385a","kind":"tag","published_at":"2021-03-13T13:53:36.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v2.0.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0/manifests"},{"name":"v2.0.0-alpha.10","sha":"743a7420ef0e34aecbd5dd7a6bcd92a56a2f6dd1","kind":"tag","published_at":"2021-03-13T10:11:08.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v2.0.0-alpha.10","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v2.0.0-alpha.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0-alpha.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0-alpha.10/manifests"},{"name":"v2.0.0-alpha.9","sha":"c271da0cb7f0ef6bb0c9784fbaa87b6fbfbda771","kind":"tag","published_at":"2021-03-13T09:31:54.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v2.0.0-alpha.9","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v2.0.0-alpha.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0-alpha.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0-alpha.9/manifests"},{"name":"v2.0.0-alpha.8","sha":"84e11529ca2e2050fb7d7550cb0e53ae290b6a77","kind":"tag","published_at":"2021-03-13T09:06:07.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v2.0.0-alpha.8","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v2.0.0-alpha.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0-alpha.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0-alpha.8/manifests"},{"name":"v2.0.0-alpha.7","sha":"c118f5def3e8a2b0cbd84d30f50fcdbff86fb0af","kind":"tag","published_at":"2021-03-13T08:51:26.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v2.0.0-alpha.7","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v2.0.0-alpha.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0-alpha.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0-alpha.7/manifests"},{"name":"v2.0.0-alpha.6","sha":"bece3fac3dd65e1fc2aec15d0cf36aa164589852","kind":"tag","published_at":"2021-03-13T08:18:50.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v2.0.0-alpha.6","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v2.0.0-alpha.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0-alpha.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0-alpha.6/manifests"},{"name":"v2.0.0-alpha.5","sha":"428aea5a9701b5f228bd40feabc977f2d945052c","kind":"tag","published_at":"2021-03-13T08:08:19.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v2.0.0-alpha.5","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v2.0.0-alpha.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0-alpha.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0-alpha.5/manifests"},{"name":"v2.0.0-alpha.4","sha":"767fef1557f8d0d0a18fc6692b93f3964dcadeff","kind":"tag","published_at":"2021-03-08T10:13:00.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v2.0.0-alpha.4","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v2.0.0-alpha.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0-alpha.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0-alpha.4/manifests"},{"name":"v2.0.0-alpha.3","sha":"8389aca91ad55280c4892ba64d5f49b514c040d9","kind":"tag","published_at":"2021-03-08T08:51:22.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v2.0.0-alpha.3","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v2.0.0-alpha.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0-alpha.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0-alpha.3/manifests"},{"name":"v2.0.0-alpha.2","sha":"e5d58a3f47e2d5508bbf9c08139d0be73c5525dc","kind":"tag","published_at":"2021-03-07T18:03:46.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v2.0.0-alpha.2","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v2.0.0-alpha.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0-alpha.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0-alpha.2/manifests"},{"name":"v2.0.0-alpha.1","sha":"0927792da19ff859fda2922862eda2190486dfae","kind":"tag","published_at":"2021-03-07T14:24:16.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v2.0.0-alpha.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v2.0.0-alpha.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0-alpha.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0-alpha.1/manifests"},{"name":"v2.0.0-alpha.0","sha":"792653251bc2d75ec1aa77592b16c87b4ea0700a","kind":"tag","published_at":"2021-03-06T15:32:16.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v2.0.0-alpha.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v2.0.0-alpha.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0-alpha.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v2.0.0-alpha.0/manifests"},{"name":"v1.2.0","sha":"c7deee67f98d9b699eb5f624b3bb929069858e7e","kind":"tag","published_at":"2021-02-06T19:42:41.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v1.2.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"e1057dd2c39b2b7af16280233b478743b0df02ff","kind":"tag","published_at":"2021-01-14T15:41:23.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v1.1.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b06f6e77a0c6aba3309a4f0fa4e041d078cf2140","kind":"tag","published_at":"2021-01-01T13:17:34.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v1.0.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v1.0.0/manifests"},{"name":"v1.0.0-beta.3","sha":"fa8fd12bf82a7d54ff9341d4225f5646474626c7","kind":"tag","published_at":"2021-01-01T12:19:57.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v1.0.0-beta.3","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v1.0.0-beta.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v1.0.0-beta.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v1.0.0-beta.3/manifests"},{"name":"v1.0.0-beta.2","sha":"f8c5452a99a24a59cf0ee072a98f1cb523b10e3b","kind":"tag","published_at":"2021-01-01T07:18:00.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v1.0.0-beta.2","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v1.0.0-beta.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v1.0.0-beta.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v1.0.0-beta.2/manifests"},{"name":"v1.0.0-beta.1","sha":"d4cca47abd0d3e73345694fad2e35194db575fef","kind":"tag","published_at":"2021-01-01T06:34:24.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v1.0.0-beta.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v1.0.0-beta.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v1.0.0-beta.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v1.0.0-beta.1/manifests"},{"name":"v0.8.0-beta.7","sha":"ed9facc2f2558a8d50c6908d89872b88e74710b4","kind":"tag","published_at":"2020-12-22T17:20:32.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.8.0-beta.7","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.8.0-beta.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.8.0-beta.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.8.0-beta.7/manifests"},{"name":"v0.8.0-beta.6","sha":"232dd8dab38df80f6b996902013440a9cc2154b5","kind":"tag","published_at":"2020-12-16T07:55:41.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.8.0-beta.6","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.8.0-beta.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.8.0-beta.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.8.0-beta.6/manifests"},{"name":"v0.8.0-beta.5","sha":"c8fa3d610d7438b430d5e90cd894dc090a92afb2","kind":"tag","published_at":"2020-12-09T11:08:03.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.8.0-beta.5","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.8.0-beta.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.8.0-beta.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.8.0-beta.5/manifests"},{"name":"v0.8.0-beta.4","sha":"1fefc1803e636cbd76b952a7224f6ff53f25f024","kind":"tag","published_at":"2020-12-09T08:48:05.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.8.0-beta.4","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.8.0-beta.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.8.0-beta.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.8.0-beta.4/manifests"},{"name":"v0.8.0-beta.3","sha":"cab61492aa29ef2a111ddcaa0435102c66733c90","kind":"tag","published_at":"2020-11-28T11:01:13.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.8.0-beta.3","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.8.0-beta.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.8.0-beta.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.8.0-beta.3/manifests"},{"name":"v0.8.0-beta.2","sha":"69303fa600e471abe5e719216179b1bdbb9662da","kind":"tag","published_at":"2020-11-22T13:59:56.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.8.0-beta.2","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.8.0-beta.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.8.0-beta.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.8.0-beta.2/manifests"},{"name":"v0.8.0-beta.1","sha":"b98f9dcdf0528ff074c90ae2d46fd8b31bb869f2","kind":"tag","published_at":"2020-11-17T17:11:11.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.8.0-beta.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.8.0-beta.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.8.0-beta.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.8.0-beta.1/manifests"},{"name":"v0.8.0-beta.0","sha":"50b244751e940fc25c98bbcbec8cafca4e7a8b3d","kind":"tag","published_at":"2020-11-14T17:02:43.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.8.0-beta.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.8.0-beta.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.8.0-beta.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.8.0-beta.0/manifests"},{"name":"v0.7.0-beta.1","sha":"f90d7174425c67b6071ada2458a0e2579365b71a","kind":"tag","published_at":"2020-11-13T23:16:32.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.7.0-beta.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.7.0-beta.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-beta.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-beta.1/manifests"},{"name":"v0.7.0-beta.0","sha":"322643e5ff776d080023e05ed676b2398c04d81f","kind":"tag","published_at":"2020-11-13T21:27:11.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.7.0-beta.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.7.0-beta.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-beta.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-beta.0/manifests"},{"name":"v0.7.0-alpha.14","sha":"7e49c9e9c4f76da1733f21be4f245d0cf4e401d0","kind":"tag","published_at":"2020-11-13T19:07:16.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.7.0-alpha.14","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.7.0-alpha.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.14/manifests"},{"name":"v0.7.0-alpha.13","sha":"2ac70abbdf9b9de3207d1aa926ba4df5f78b0e77","kind":"tag","published_at":"2020-11-13T13:54:28.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.7.0-alpha.13","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.7.0-alpha.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.13/manifests"},{"name":"v0.7.0-alpha.12","sha":"e26e471cd5876d7d5fcba8540e756406630759b1","kind":"tag","published_at":"2020-11-11T17:42:23.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.7.0-alpha.12","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.7.0-alpha.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.12/manifests"},{"name":"v0.7.0-alpha.11","sha":"1580edcd2b4aa3d7c7adb82a7fe77e3731303b3c","kind":"tag","published_at":"2020-11-08T14:48:57.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.7.0-alpha.11","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.7.0-alpha.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.11/manifests"},{"name":"v0.7.0-alpha.10","sha":"ea51b882882edfc5e1a740fa81a7da34cffe0f84","kind":"tag","published_at":"2020-11-08T14:20:17.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.7.0-alpha.10","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.7.0-alpha.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.10/manifests"},{"name":"v0.7.0-alpha.9","sha":"635ed52da0cd8c50545e7513c2bfc78421e298e7","kind":"tag","published_at":"2020-11-05T18:59:38.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.7.0-alpha.9","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.7.0-alpha.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.9/manifests"},{"name":"v0.7.0-alpha.8","sha":"ddb3d105d98400442ba6934846e636ba5e34b090","kind":"tag","published_at":"2020-11-05T18:17:45.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.7.0-alpha.8","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.7.0-alpha.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.8/manifests"},{"name":"v0.7.0-alpha.7","sha":"338ac75fcb935b4b03650ce1faae65d7a143cd8d","kind":"tag","published_at":"2020-11-05T17:45:45.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.7.0-alpha.7","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.7.0-alpha.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.7/manifests"},{"name":"v0.7.0-alpha.6","sha":"05428de98e6e81344cbdd15eec8891e4b97e5f5d","kind":"tag","published_at":"2020-11-05T15:57:19.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.7.0-alpha.6","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.7.0-alpha.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.6/manifests"},{"name":"v0.7.0-alpha.5","sha":"bc98d54fb578048cd2acbf0cdb9424eb6ad00f11","kind":"tag","published_at":"2020-11-05T11:59:12.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.7.0-alpha.5","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.7.0-alpha.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.5/manifests"},{"name":"v0.7.0-alpha.4","sha":"afa2a392e603a9746f12a539c39ed640049d0ddb","kind":"tag","published_at":"2020-11-05T11:41:05.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.7.0-alpha.4","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.7.0-alpha.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.4/manifests"},{"name":"v0.7.0-alpha.3","sha":"96246fe208a5849f6804df72708490ffbfffd9e1","kind":"tag","published_at":"2020-11-05T10:41:44.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.7.0-alpha.3","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.7.0-alpha.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.3/manifests"},{"name":"v0.7.0-alpha.2","sha":"72674123c07137babd71f4ea39c2b34bc5fbf782","kind":"tag","published_at":"2020-11-05T10:25:59.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.7.0-alpha.2","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.7.0-alpha.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.2/manifests"},{"name":"v0.7.0-alpha.1","sha":"e9a3bec325bbe713037cf9dd8c22d1a70532b03d","kind":"tag","published_at":"2020-11-05T10:02:19.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.7.0-alpha.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.7.0-alpha.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.1/manifests"},{"name":"v0.7.0-alpha.0","sha":"7a92faa8c58964e966abfae38ca049ae9cb3e78a","kind":"tag","published_at":"2020-11-05T09:20:49.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.7.0-alpha.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.7.0-alpha.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.7.0-alpha.0/manifests"},{"name":"v0.6.0-beta.0","sha":"ae6e11a78b338f57039df335205471a2cd491138","kind":"tag","published_at":"2020-10-28T09:04:42.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.6.0-beta.0","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.6.0-beta.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.6.0-beta.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.6.0-beta.0/manifests"},{"name":"v0.5.0-beta.5","sha":"22849e17beee48a349cd87fb3ab02e8149e316c0","kind":"tag","published_at":"2020-10-22T15:22:55.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.5.0-beta.5","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.5.0-beta.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.5.0-beta.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.5.0-beta.5/manifests"},{"name":"v0.5.0-beta.4","sha":"7081a7f7044dadf35b7d53107cffbb5f7cd2ae2b","kind":"tag","published_at":"2020-10-14T11:15:24.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.5.0-beta.4","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.5.0-beta.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.5.0-beta.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.5.0-beta.4/manifests"},{"name":"v0.5.0-beta.3","sha":"b33a81ff1ec99736417cae843924db683ad8f586","kind":"tag","published_at":"2020-10-07T14:35:19.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.5.0-beta.3","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.5.0-beta.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.5.0-beta.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.5.0-beta.3/manifests"},{"name":"v0.5.0-beta.2","sha":"b30fd0e9c8fe35b7cda8117131c2f836a5bcace0","kind":"tag","published_at":"2020-10-02T17:10:17.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.5.0-beta.2","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.5.0-beta.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.5.0-beta.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.5.0-beta.2/manifests"},{"name":"v0.5.0-beta.1","sha":"a60ae990df38c6506e96ff03399dbbaeb3866d8d","kind":"tag","published_at":"2020-10-02T12:44:08.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.5.0-beta.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.5.0-beta.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.5.0-beta.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.5.0-beta.1/manifests"},{"name":"v0.4.0-beta.2","sha":"97ac0f18fb9ed65750dbe7d8c79fae900d98d04e","kind":"tag","published_at":"2020-09-22T13:24:26.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.4.0-beta.2","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.4.0-beta.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.4.0-beta.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.4.0-beta.2/manifests"},{"name":"v0.4.0-beta.1","sha":"9c8eea47c2943ebdcfa7b2f08447f62daa900e09","kind":"tag","published_at":"2020-09-19T17:28:44.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.4.0-beta.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.4.0-beta.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.4.0-beta.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.4.0-beta.1/manifests"},{"name":"v0.3.0-beta.1","sha":"9d5b5e624be680503aaf7337e9acb5dc3ac66d63","kind":"tag","published_at":"2020-09-03T13:52:07.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.3.0-beta.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.3.0-beta.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.3.0-beta.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.3.0-beta.1/manifests"},{"name":"v0.2.0-beta.1","sha":"1e96dd4097580bfc5517f5e5b8c60b23f80442fb","kind":"tag","published_at":"2020-08-27T12:13:58.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.2.0-beta.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.2.0-beta.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.2.0-beta.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.2.0-beta.1/manifests"},{"name":"v0.1.0-beta.1","sha":"6f0c87729812e4f81b9d8b856c5de9eea34f6d43","kind":"tag","published_at":"2020-08-18T18:12:35.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.1.0-beta.1","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.1.0-beta.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.1.0-beta.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.1.0-beta.1/manifests"},{"name":"v0.0.1-alpha.33","sha":"dc6fb3ea654a993614b3669b1ca2f17050bf7015","kind":"tag","published_at":"2020-08-14T12:17:28.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.0.1-alpha.33","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.0.1-alpha.33","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.33","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.33/manifests"},{"name":"v0.0.1-alpha.32","sha":"44392627ecd2e2cd332f1a9f47c0fec8dfaa5e59","kind":"tag","published_at":"2020-05-08T20:23:40.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.0.1-alpha.32","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.0.1-alpha.32","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.32","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.32/manifests"},{"name":"v0.0.1-alpha.31","sha":"c040f7961599e6da193cd2f0241f995eba2cf957","kind":"tag","published_at":"2020-05-08T16:30:12.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.0.1-alpha.31","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.0.1-alpha.31","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.31","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.31/manifests"},{"name":"v0.0.1-alpha.30","sha":"03d1841f493b7322b4dc50703df02eff2e9dbfbb","kind":"tag","published_at":"2020-05-08T16:06:51.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.0.1-alpha.30","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.0.1-alpha.30","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.30","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.30/manifests"},{"name":"v0.0.1-alpha.29","sha":"c685f64bc8eda992bf90db2418b835a14e0de808","kind":"tag","published_at":"2020-04-22T10:48:03.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.0.1-alpha.29","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.0.1-alpha.29","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.29","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.29/manifests"},{"name":"v0.0.1-alpha.28","sha":"d7e2961a22905c291c83af56f1647256f22c8444","kind":"tag","published_at":"2020-04-17T15:46:47.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.0.1-alpha.28","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.0.1-alpha.28","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.28","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.28/manifests"},{"name":"v0.0.1-alpha.27","sha":"59b10e390149d62aae77eae8ae14316caadc71e5","kind":"tag","published_at":"2020-03-20T21:44:18.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.0.1-alpha.27","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.0.1-alpha.27","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.27","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.27/manifests"},{"name":"v0.0.1-alpha.26","sha":"b21808a14fda1a803d3af8a79d0055aac1e335f6","kind":"tag","published_at":"2020-03-20T21:17:43.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.0.1-alpha.26","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.0.1-alpha.26","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.26","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.26/manifests"},{"name":"v0.0.1-alpha.25","sha":"420f474654f5bf0f67b88450f21f9aa62baa709a","kind":"tag","published_at":"2020-03-20T21:02:24.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.0.1-alpha.25","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.0.1-alpha.25","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.25","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.25/manifests"},{"name":"v0.0.1-alpha.24","sha":"8cf7fd67b1d17152b85843677bd4171ac6658e0c","kind":"tag","published_at":"2020-03-20T20:35:37.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.0.1-alpha.24","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.0.1-alpha.24","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.24","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.24/manifests"},{"name":"v0.0.1-alpha.23","sha":"97d8aff24a187ac1f72997391f7bc90fe4d20818","kind":"tag","published_at":"2020-03-16T20:02:17.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.0.1-alpha.23","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.0.1-alpha.23","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.23","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.23/manifests"},{"name":"v0.0.1-alpha.22","sha":"f63bdf01e10859edaa2de11c8e877638a5103255","kind":"tag","published_at":"2020-03-14T22:43:27.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.0.1-alpha.22","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.0.1-alpha.22","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.22","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.22/manifests"},{"name":"v0.0.1-alpha.21","sha":"f8a877eb786c766fa7cd189fbcd1d72860359aaf","kind":"tag","published_at":"2020-03-14T18:42:52.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.0.1-alpha.21","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.0.1-alpha.21","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.21","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.21/manifests"},{"name":"v0.0.1-alpha.20","sha":"3dc94bb4e3ccdd8b0a24c3d312b21ae2348f9a3b","kind":"tag","published_at":"2020-03-02T18:33:23.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.0.1-alpha.20","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.0.1-alpha.20","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.20","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.20/manifests"},{"name":"v0.0.1-alpha.19","sha":"94ce0202f8135cb91cd20f1668fffe760741925a","kind":"tag","published_at":"2020-02-22T14:28:42.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.0.1-alpha.19","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.0.1-alpha.19","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.19","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.19/manifests"},{"name":"v0.0.1-alpha.18","sha":"261b05d547e23a17a3193f67cbe5cde90dbf51ec","kind":"tag","published_at":"2020-01-04T15:05:06.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.0.1-alpha.18","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.0.1-alpha.18","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.18","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.18/manifests"},{"name":"v0.0.1-alpha.17","sha":"55bbbdccd1898551fffe75dee14278defb823941","kind":"tag","published_at":"2019-07-31T02:05:16.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.0.1-alpha.17","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.0.1-alpha.17","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.17","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.17/manifests"},{"name":"v0.0.1-alpha.16","sha":"114f417638171bfb11062b26e53601fc5230903a","kind":"tag","published_at":"2019-07-29T19:06:14.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.0.1-alpha.16","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.0.1-alpha.16","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.16/manifests"},{"name":"v0.0.1-alpha.15","sha":"43ca445291baf9dc94d7dea4743ab7bcd78a550b","kind":"tag","published_at":"2019-07-29T02:47:14.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.0.1-alpha.15","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.0.1-alpha.15","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.15/manifests"},{"name":"v0.0.1-alpha.14","sha":"8ba75952fc4f8f83ffef60eaf00360812c8d7726","kind":"tag","published_at":"2019-07-29T02:43:16.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.0.1-alpha.14","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.0.1-alpha.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.14/manifests"},{"name":"v0.0.1-alpha.13","sha":"2294dcddcad3be2826a2f8aa865dcbba7a07e48a","kind":"tag","published_at":"2019-07-29T02:41:24.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.0.1-alpha.13","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.0.1-alpha.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.13/manifests"},{"name":"v0.0.1-alpha.12","sha":"1dd9eca846ba8e00f7c04cbb41f4c37f9f937915","kind":"commit","published_at":"2019-07-29T02:11:53.000Z","download_url":"https://codeload.github.com/angular-eslint/angular-eslint/tar.gz/v0.0.1-alpha.12","html_url":"https://github.com/angular-eslint/angular-eslint/releases/tag/v0.0.1-alpha.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angular-eslint%2Fangular-eslint/tags/v0.0.1-alpha.12/manifests"}]},"repo_metadata_updated_at":"2025-06-06T13:00:28.282Z","dependent_packages_count":704,"downloads":6498983,"downloads_period":"last-month","dependent_repos_count":19397,"rankings":{"downloads":0.15118359593302041,"dependent_repos_count":0.20649396645500773,"dependent_packages_count":0.1438950643734271,"stargazers_count":2.201030773724239,"forks_count":2.424397959805361,"docker_downloads_count":0.21060487237218242,"average":0.8896010387772063},"purl":"pkg:npm/%40angular-eslint/builder","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/npm/@angular-eslint/builder","docker_dependents_count":73,"docker_downloads_count":41746054,"usage_url":"https://repos.ecosyste.ms/usage/npm/@angular-eslint/builder","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/npm/@angular-eslint/builder/dependencies","status":null,"funding_links":["https://buymeacoffee.com/jameshenry"],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/@angular-eslint%2Fbuilder/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/@angular-eslint%2Fbuilder/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/@angular-eslint%2Fbuilder/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/@angular-eslint%2Fbuilder/related_packages","maintainers":[{"uuid":"jameshenry","login":"jameshenry","name":null,"email":"james@henry.sc","url":null,"packages_count":254,"html_url":"https://www.npmjs.com/~jameshenry","role":null,"created_at":"2022-11-14T18:43:56.107Z","updated_at":"2022-11-14T18:43:56.107Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/maintainers/jameshenry/packages"}],"registry":{"name":"npmjs.org","url":"https://registry.npmjs.org","ecosystem":"npm","default":true,"packages_count":5006545,"maintainers_count":1012936,"namespaces_count":295512,"keywords_count":700181,"github":"npm","metadata":{"funded_packages_count":150239},"icon_url":"https://github.com/npm.png","created_at":"2022-04-04T15:19:23.081Z","updated_at":"2025-06-06T05:58:05.971Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/namespaces"}},"unique_repositories_count":173,"unique_repositories_count_past_30_days":7,"recent_issues":[{"uuid":"4539401124","node_id":"PR_kwDOInCflM7gLeDA","number":778,"state":"open","title":"Bump the all-dependencies group in /app-components with 17 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-28T09:45:30.000Z","updated_at":"2026-05-31T09:01:12.930Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-dependencies","update_count":17,"packages":[{"name":"@angular/animations","old_version":"21.2.11","new_version":"21.2.14","repository_url":"https://github.com/angular/angular"},{"name":"@angular/cdk","old_version":"21.2.9","new_version":"21.2.13","repository_url":"https://github.com/angular/components"},{"name":"@angular/common","old_version":"21.2.11","new_version":"21.2.14","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler","old_version":"21.2.11","new_version":"21.2.14","repository_url":"https://github.com/angular/angular"},{"name":"@angular/core","old_version":"21.2.11","new_version":"21.2.14","repository_url":"https://github.com/angular/angular"},{"name":"@angular/elements","old_version":"21.2.11","new_version":"21.2.14","repository_url":"https://github.com/angular/angular"},{"name":"@angular/forms","old_version":"21.2.11","new_version":"21.2.14","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser","old_version":"21.2.11","new_version":"21.2.14","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser-dynamic","old_version":"21.2.11","new_version":"21.2.14","repository_url":"https://github.com/angular/angular"},{"name":"@angular/router","old_version":"21.2.11","new_version":"21.2.14","repository_url":"https://github.com/angular/angular"},{"name":"@angular-eslint/builder","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin-template","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/schematics","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/template-parser","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@typescript-eslint/eslint-plugin","old_version":"8.59.2","new_version":"8.60.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"@typescript-eslint/parser","old_version":"8.59.2","new_version":"8.60.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"}],"path":"/app-components","ecosystem":"npm"},"body":"Bumps the all-dependencies group in /app-components with 17 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `21.2.11` | `21.2.14` |\n| [@angular/cdk](https://github.com/angular/components) | `21.2.9` | `21.2.13` |\n| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `21.2.11` | `21.2.14` |\n| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `21.2.11` | `21.2.14` |\n| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `21.2.11` | `21.2.14` |\n| [@angular/elements](https://github.com/angular/angular/tree/HEAD/packages/elements) | `21.2.11` | `21.2.14` |\n| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `21.2.11` | `21.2.14` |\n| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `21.2.11` | `21.2.14` |\n| [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `21.2.11` | `21.2.14` |\n| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `21.2.11` | `21.2.14` |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `21.3.1` | `21.4.0` |\n| [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) | `21.3.1` | `21.4.0` |\n| [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template) | `21.3.1` | `21.4.0` |\n| [@angular-eslint/schematics](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics) | `21.3.1` | `21.4.0` |\n| [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `21.3.1` | `21.4.0` |\n| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.59.2` | `8.60.0` |\n| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.59.2` | `8.60.0` |\n\nUpdates `@angular/animations` from 21.2.11 to 21.2.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/animations's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.14\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e\u003cimg src=\"https://img.shields.io/badge/68282dff9f-fix-green\" alt=\"fix - 68282dff9f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003estrip namespaced SVG script elements during template compilation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c0f52272ed337d4776bd4178cbbdc7f32037500f\"\u003e\u003cimg src=\"https://img.shields.io/badge/c0f52272ed-fix-green\" alt=\"fix - c0f52272ed\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edo not insert todo when migrating void \u003ca href=\"https://github.com/Output\"\u003e\u003ccode\u003e@​Output\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/938a7f3eddda97a39edb9edcc8b4dd970858b3a2\"\u003e\u003cimg src=\"https://img.shields.io/badge/938a7f3edd-fix-green\" alt=\"fix - 938a7f3edd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003emakes resource URL sanitizer lookup case-insensitive\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0fb272419407a64a0a47096b03a911f4e7e83d79\"\u003e\u003cimg src=\"https://img.shields.io/badge/0fb2724194-fix-green\" alt=\"fix - 0fb2724194\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ereject script element as a dynamic component host\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/49113ac0eff852d987b5acb28a9bbda0242842cd\"\u003e\u003cimg src=\"https://img.shields.io/badge/49113ac0ef-fix-green\" alt=\"fix - 49113ac0ef\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evisit ICU expressions in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/099bf577ee8f0bab60593a8fd2a1de7d298e3cd6\"\u003e\u003cimg src=\"https://img.shields.io/badge/099bf577ee-fix-green\" alt=\"fix - 099bf577ee\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eskip scroll-to-top on initial navigation when hydrating\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.12\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fe13bb669d2bfab4713623d17b41c430aa0a61d8\"\u003e\u003cimg src=\"https://img.shields.io/badge/fe13bb669d-fix-green\" alt=\"fix - fe13bb669d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eallow explicit read generic with signal input transforms\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3430251fef93f6aec1fa9c7867e85df23f67c9a0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3430251fef-fix-green\" alt=\"fix - 3430251fef\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ei18n flags leaking on errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1aeebbe3048b5aa612dd0a5448de9883ed51e7e8\"\u003e\u003cimg src=\"https://img.shields.io/badge/1aeebbe304-fix-green\" alt=\"fix - 1aeebbe304\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erespect ngSkipHydration on components with projectable nodes in LContainers\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9e38ed7d5773a9193ba07afdba3f7a9f2fe02d18\"\u003e\u003cimg src=\"https://img.shields.io/badge/9e38ed7d57-fix-green\" alt=\"fix - 9e38ed7d57\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003esanitizer typings\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a05a9a71a5ab75042ec5560c01526de6e61e062\"\u003e\u003cimg src=\"https://img.shields.io/badge/7a05a9a71a-fix-green\" alt=\"fix - 7a05a9a71a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c37f6ca42f263353cb9563fa90d7b31d3c7837ca\"\u003e\u003cimg src=\"https://img.shields.io/badge/c37f6ca42f-fix-green\" alt=\"fix - c37f6ca42f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evisit ng-let expression value in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/03ad53863bf3c368f0f02a4322d4141e8f70f674\"\u003e\u003cimg src=\"https://img.shields.io/badge/03ad53863b-fix-green\" alt=\"fix - 03ad53863b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprohibit concurrent submits in signal forms\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/animations's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.14 (2026-05-20)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e68282dff9f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estrip namespaced SVG script elements during template compilation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c0f52272ed337d4776bd4178cbbdc7f32037500f\"\u003ec0f52272ed\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edo not insert todo when migrating void \u003ca href=\"https://github.com/Output\"\u003e\u003ccode\u003e@​Output\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/938a7f3eddda97a39edb9edcc8b4dd970858b3a2\"\u003e938a7f3edd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003emakes resource URL sanitizer lookup case-insensitive\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0fb272419407a64a0a47096b03a911f4e7e83d79\"\u003e0fb2724194\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ereject script element as a dynamic component host\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/49113ac0eff852d987b5acb28a9bbda0242842cd\"\u003e49113ac0ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evisit ICU expressions in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/099bf577ee8f0bab60593a8fd2a1de7d298e3cd6\"\u003e099bf577ee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eskip scroll-to-top on initial navigation when hydrating\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-rc.0 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c7aef8ec5dd12b5b1d4c703a61bd1dd43f998e18\"\u003ec7aef8ec5d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eenforce parentheses containing arguments for :host-context\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8a1533c9ad7c306e03d7c50676f87b56bade5bf6\"\u003e8a1533c9ad\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epreserve leading commas in animation definitions\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/194f723f6620ea3cdf490b762ecbef8df6bb2c8a\"\u003e194f723f66\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove dedicated support for legacy shadow DOM selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/4c25a42e988e7a59d4d4dc3121cd77f7b344c048\"\u003e4c25a42e98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove deprecated shadow CSS encapsulation polyfills\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7dc1017e517c077a6aa8fd749392a2af1277e1b7\"\u003e7dc1017e51\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003esimplify handling of colon host with a selector list\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ccb7d427e4f07506c14c50ce0cbe87c57930ebb5\"\u003eccb7d427e4\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etype check invalid for loops\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/119a19e604a500f295867fc2cf2e6dbd43a9d807\"\u003e119a19e604\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.14/packages/animations\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/cdk` from 21.2.9 to 21.2.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/releases\"\u003e@​angular/cdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003cp\u003eNo user facing changes in this release\u003c/p\u003e\n\u003ch2\u003e21.2.12\u003c/h2\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/da87be76464d76ec11ae922abd5f4c72c5b4ea3e\"\u003e\u003cimg src=\"https://img.shields.io/badge/da87be7646-fix-green\" alt=\"fix - da87be7646\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003edatepicker:\u003c/strong\u003e ensure dates don't overflow on a small screen (\u003ca href=\"https://redirect.github.com/angular/components/issues/33281\"\u003e#33281\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.11\u003c/h2\u003e\n\u003cp\u003eNo user facing changes in this release\u003c/p\u003e\n\u003ch2\u003e21.2.10\u003c/h2\u003e\n\u003ch3\u003earia\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/48973661ec50649918e3dcafc096d340219135da\"\u003e\u003cimg src=\"https://img.shields.io/badge/48973661e-fix-green\" alt=\"fix - 48973661e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003emenu:\u003c/strong\u003e do not set default aria-label (\u003ca href=\"https://redirect.github.com/angular/components/issues/33202\"\u003e#33202\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/blob/main/CHANGELOG.md\"\u003e@​angular/cdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.13 \u0026quot;21-2-13\u0026quot; (2026-05-27)\u003c/h1\u003e\n\u003cp\u003eNo user facing changes in this release\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-rc.1 \u0026quot;metal-monkey\u0026quot; (2026-05-20)\u003c/h1\u003e\n\u003ch3\u003earia\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/ce1d9a7286b66e2c9511183586fceabf2a925c02\"\u003ece1d9a7286\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003emenu:\u003c/strong\u003e allow menu item role override (\u003ca href=\"https://redirect.github.com/angular/components/pull/33264\"\u003e#33264\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/196b7064db336830ee9c43244c00631935dd2c55\"\u003e196b7064db\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003emenu:\u003c/strong\u003e defer menu item focus in case menus in cdk overlay (\u003ca href=\"https://redirect.github.com/angular/components/pull/33258\"\u003e#33258\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/6443b79f9a629c67766675ebd740722eb65b2926\"\u003e6443b79f9a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003emenu:\u003c/strong\u003e unable to set softDisabled (\u003ca href=\"https://redirect.github.com/angular/components/pull/33265\"\u003e#33265\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/4c298970ed67abfa7b9980e219bbbafe3c71ddc5\"\u003e4c298970ed\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003escrolling:\u003c/strong\u003e make it easier to provide custom scrollable (\u003ca href=\"https://redirect.github.com/angular/components/pull/33269\"\u003e#33269\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/f2f62675e19020fb6443f1477b4b1d93015a5927\"\u003ef2f62675e1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003edatepicker:\u003c/strong\u003e ensure dates don't overflow on a small screen (\u003ca href=\"https://redirect.github.com/angular/components/pull/33281\"\u003e#33281\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/f1a435508ada291b580e20e628464f552288690d\"\u003ef1a435508a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esidenav:\u003c/strong\u003e handle mixed sidenav and drawer (\u003ca href=\"https://redirect.github.com/angular/components/pull/33274\"\u003e#33274\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/a4d92c5fcb7d163ec8dd180815175bbaa0a38491\"\u003ea4d92c5fcb\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esidenav:\u003c/strong\u003e more robust reset logic for inert attribute (\u003ca href=\"https://redirect.github.com/angular/components/pull/33257\"\u003e#33257\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e21.2.12 \u0026quot;plastic-moose\u0026quot; (2026-05-20)\u003c/h1\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/da87be76464d76ec11ae922abd5f4c72c5b4ea3e\"\u003eda87be7646\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003edatepicker:\u003c/strong\u003e ensure dates don't overflow on a small screen (\u003ca href=\"https://redirect.github.com/angular/components/pull/33281\"\u003e#33281\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-rc.0 \u0026quot;crystal lotion\u0026quot; (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/c3161985279bf49f9aae55b732fdd3b2872e1f7e\"\u003ec316198527\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esidenav:\u003c/strong\u003e mark content as inert while open\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/c2f1c5b035795079b155b9e60a290abe4d4c9537\"\u003ec2f1c5b035\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esidenav:\u003c/strong\u003e query not resolving\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emultiple\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/84f2afd24933c8742662ee6d12a6f3f98f5dea9e\"\u003e84f2afd249\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove developer preview tag from aria (\u003ca href=\"https://redirect.github.com/angular/components/pull/33232\"\u003e#33232\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/7828452e964b62f058f83f0d97cf9daedf875b57\"\u003e\u003ccode\u003e7828452\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.13 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/e43b7aacd86fb00e34e894d9093a8255e4201ec8\"\u003e\u003ccode\u003ee43b7aa\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.12 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/da87be76464d76ec11ae922abd5f4c72c5b4ea3e\"\u003e\u003ccode\u003eda87be7\u003c/code\u003e\u003c/a\u003e fix(material/datepicker): ensure dates don't overflow on a small screen (\u003ca href=\"https://redirect.github.com/angular/components/issues/33281\"\u003e#33281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/e101874701ed790345f2af292cee81fff573a46e\"\u003e\u003ccode\u003ee101874\u003c/code\u003e\u003c/a\u003e docs(material/tooltip): fix tooltip-position-at-origin example overflow (\u003ca href=\"https://redirect.github.com/angular/components/issues/33218\"\u003e#33218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/1238d1573e706cbf0a2cabcc97e59d28a9499ecb\"\u003e\u003ccode\u003e1238d15\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.11 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/583da8a564dcb667cb8928e79d286eadee0a5013\"\u003e\u003ccode\u003e583da8a\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.10 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/babfbb7430547d5f4558174aec1a07ce6c67a26f\"\u003e\u003ccode\u003ebabfbb7\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies (\u003ca href=\"https://redirect.github.com/angular/components/issues/33205\"\u003e#33205\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/e08fdf2a6a120078b512043bf5804bc3c7f9716a\"\u003e\u003ccode\u003ee08fdf2\u003c/code\u003e\u003c/a\u003e build: fix failing test (\u003ca href=\"https://redirect.github.com/angular/components/issues/33212\"\u003e#33212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/09e89fa188f157c0892019a461459cd9a252a673\"\u003e\u003ccode\u003e09e89fa\u003c/code\u003e\u003c/a\u003e build: lock file maintenance (\u003ca href=\"https://redirect.github.com/angular/components/issues/33201\"\u003e#33201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/48973661ec50649918e3dcafc096d340219135da\"\u003e\u003ccode\u003e4897366\u003c/code\u003e\u003c/a\u003e fix(aria/menu): do not set default aria-label (\u003ca href=\"https://redirect.github.com/angular/components/issues/33202\"\u003e#33202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/components/compare/v21.2.9...v21.2.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/common` from 21.2.11 to 21.2.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/common's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.14\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e\u003cimg src=\"https://img.shields.io/badge/68282dff9f-fix-green\" alt=\"fix - 68282dff9f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003estrip namespaced SVG script elements during template compilation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c0f52272ed337d4776bd4178cbbdc7f32037500f\"\u003e\u003cimg src=\"https://img.shields.io/badge/c0f52272ed-fix-green\" alt=\"fix - c0f52272ed\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edo not insert todo when migrating void \u003ca href=\"https://github.com/Output\"\u003e\u003ccode\u003e@​Output\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/938a7f3eddda97a39edb9edcc8b4dd970858b3a2\"\u003e\u003cimg src=\"https://img.shields.io/badge/938a7f3edd-fix-green\" alt=\"fix - 938a7f3edd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003emakes resource URL sanitizer lookup case-insensitive\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0fb272419407a64a0a47096b03a911f4e7e83d79\"\u003e\u003cimg src=\"https://img.shields.io/badge/0fb2724194-fix-green\" alt=\"fix - 0fb2724194\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ereject script element as a dynamic component host\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/49113ac0eff852d987b5acb28a9bbda0242842cd\"\u003e\u003cimg src=\"https://img.shields.io/badge/49113ac0ef-fix-green\" alt=\"fix - 49113ac0ef\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evisit ICU expressions in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/099bf577ee8f0bab60593a8fd2a1de7d298e3cd6\"\u003e\u003cimg src=\"https://img.shields.io/badge/099bf577ee-fix-green\" alt=\"fix - 099bf577ee\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eskip scroll-to-top on initial navigation when hydrating\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.12\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fe13bb669d2bfab4713623d17b41c430aa0a61d8\"\u003e\u003cimg src=\"https://img.shields.io/badge/fe13bb669d-fix-green\" alt=\"fix - fe13bb669d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eallow explicit read generic with signal input transforms\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3430251fef93f6aec1fa9c7867e85df23f67c9a0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3430251fef-fix-green\" alt=\"fix - 3430251fef\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ei18n flags leaking on errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1aeebbe3048b5aa612dd0a5448de9883ed51e7e8\"\u003e\u003cimg src=\"https://img.shields.io/badge/1aeebbe304-fix-green\" alt=\"fix - 1aeebbe304\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erespect ngSkipHydration on components with projectable nodes in LContainers\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9e38ed7d5773a9193ba07afdba3f7a9f2fe02d18\"\u003e\u003cimg src=\"https://img.shields.io/badge/9e38ed7d57-fix-green\" alt=\"fix - 9e38ed7d57\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003esanitizer typings\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a05a9a71a5ab75042ec5560c01526de6e61e062\"\u003e\u003cimg src=\"https://img.shields.io/badge/7a05a9a71a-fix-green\" alt=\"fix - 7a05a9a71a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c37f6ca42f263353cb9563fa90d7b31d3c7837ca\"\u003e\u003cimg src=\"https://img.shields.io/badge/c37f6ca42f-fix-green\" alt=\"fix - c37f6ca42f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evisit ng-let expression value in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/03ad53863bf3c368f0f02a4322d4141e8f70f674\"\u003e\u003cimg src=\"https://img.shields.io/badge/03ad53863b-fix-green\" alt=\"fix - 03ad53863b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprohibit concurrent submits in signal forms\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/common's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.14 (2026-05-20)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e68282dff9f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estrip namespaced SVG script elements during template compilation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c0f52272ed337d4776bd4178cbbdc7f32037500f\"\u003ec0f52272ed\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edo not insert todo when migrating void \u003ca href=\"https://github.com/Output\"\u003e\u003ccode\u003e@​Output\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/938a7f3eddda97a39edb9edcc8b4dd970858b3a2\"\u003e938a7f3edd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003emakes resource URL sanitizer lookup case-insensitive\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0fb272419407a64a0a47096b03a911f4e7e83d79\"\u003e0fb2724194\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ereject script element as a dynamic component host\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/49113ac0eff852d987b5acb28a9bbda0242842cd\"\u003e49113ac0ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evisit ICU expressions in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/099bf577ee8f0bab60593a8fd2a1de7d298e3cd6\"\u003e099bf577ee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eskip scroll-to-top on initial navigation when hydrating\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-rc.0 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c7aef8ec5dd12b5b1d4c703a61bd1dd43f998e18\"\u003ec7aef8ec5d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eenforce parentheses containing arguments for :host-context\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8a1533c9ad7c306e03d7c50676f87b56bade5bf6\"\u003e8a1533c9ad\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epreserve leading commas in animation definitions\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/194f723f6620ea3cdf490b762ecbef8df6bb2c8a\"\u003e194f723f66\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove dedicated support for legacy shadow DOM selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/4c25a42e988e7a59d4d4dc3121cd77f7b344c048\"\u003e4c25a42e98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove deprecated shadow CSS encapsulation polyfills\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7dc1017e517c077a6aa8fd749392a2af1277e1b7\"\u003e7dc1017e51\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003esimplify handling of colon host with a selector list\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ccb7d427e4f07506c14c50ce0cbe87c57930ebb5\"\u003eccb7d427e4\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etype check invalid for loops\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/119a19e604a500f295867fc2cf2e6dbd43a9d807\"\u003e119a19e604\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/30cf85f71c52683016200ecf6d68b4418084ee6e\"\u003e\u003ccode\u003e30cf85f\u003c/code\u003e\u003c/a\u003e refactor(common): update deprecation message\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.14/packages/common\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/compiler` from 21.2.11 to 21.2.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/compiler's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.14\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e\u003cimg src=\"https://img.shields.io/badge/68282dff9f-fix-green\" alt=\"fix - 68282dff9f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003estrip namespaced SVG script elements during template compilation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c0f52272ed337d4776bd4178cbbdc7f32037500f\"\u003e\u003cimg src=\"https://img.shields.io/badge/c0f52272ed-fix-green\" alt=\"fix - c0f52272ed\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edo not insert todo when migrating void \u003ca href=\"https://github.com/Output\"\u003e\u003ccode\u003e@​Output\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/938a7f3eddda97a39edb9edcc8b4dd970858b3a2\"\u003e\u003cimg src=\"https://img.shields.io/badge/938a7f3edd-fix-green\" alt=\"fix - 938a7f3edd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003emakes resource URL sanitizer lookup case-insensitive\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0fb272419407a64a0a47096b03a911f4e7e83d79\"\u003e\u003cimg src=\"https://img.shields.io/badge/0fb2724194-fix-green\" alt=\"fix - 0fb2724194\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ereject script element as a dynamic component host\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/49113ac0eff852d987b5acb28a9bbda0242842cd\"\u003e\u003cimg src=\"https://img.shields.io/badge/49113ac0ef-fix-green\" alt=\"fix - 49113ac0ef\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evisit ICU expressions in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/099bf577ee8f0bab60593a8fd2a1de7d298e3cd6\"\u003e\u003cimg src=\"https://img.shields.io/badge/099bf577ee-fix-green\" alt=\"fix - 099bf577ee\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eskip scroll-to-top on initial navigation when hydrating\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.12\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fe13bb669d2bfab4713623d17b41c430aa0a61d8\"\u003e\u003cimg src=\"https://img.shields.io/badge/fe13bb669d-fix-green\" alt=\"fix - fe13bb669d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eallow explicit read generic with signal input transforms\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3430251fef93f6aec1fa9c7867e85df23f67c9a0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3430251fef-fix-green\" alt=\"fix - 3430251fef\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ei18n flags leaking on errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1aeebbe3048b5aa612dd0a5448de9883ed51e7e8\"\u003e\u003cimg src=\"https://img.shields.io/badge/1aeebbe304-fix-green\" alt=\"fix - 1aeebbe304\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erespect ngSkipHydration on components with projectable nodes in LContainers\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9e38ed7d5773a9193ba07afdba3f7a9f2fe02d18\"\u003e\u003cimg src=\"https://img.shields.io/badge/9e38ed7d57-fix-green\" alt=\"fix - 9e38ed7d57\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003esanitizer typings\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a05a9a71a5ab75042ec5560c01526de6e61e062\"\u003e\u003cimg src=\"https://img.shields.io/badge/7a05a9a71a-fix-green\" alt=\"fix - 7a05a9a71a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c37f6ca42f263353cb9563fa90d7b31d3c7837ca\"\u003e\u003cimg src=\"https://img.shields.io/badge/c37f6ca42f-fix-green\" alt=\"fix - c37f6ca42f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evisit ng-let expression value in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/03ad53863bf3c368f0f02a4322d4141e8f70f674\"\u003e\u003cimg src=\"https://img.shields.io/badge/03ad53863b-fix-green\" alt=\"fix - 03ad53863b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprohibit concurrent submits in signal forms\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/compiler's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.14 (2026-05-20)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e68282dff9f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estrip namespaced SVG script elements during template compilation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c0f52272ed337d4776bd4178cbbdc7f32037500f\"\u003ec0f52272ed\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edo not insert todo when migrating void \u003ca href=\"https://github.com/Output\"\u003e\u003ccode\u003e@​Output\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/938a7f3eddda97a39edb9edcc8b4dd970858b3a2\"\u003e938a7f3edd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003emakes resource URL sanitizer lookup case-insensitive\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0fb272419407a64a0a47096b03a911f4e7e83d79\"\u003e0fb2724194\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ereject script element as a dynamic component host\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/49113ac0eff852d987b5acb28a9bbda0242842cd\"\u003e49113ac0ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evisit ICU expressions in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/099bf577ee8f0bab60593a8fd2a1de7d298e3cd6\"\u003e099bf577ee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eskip scroll-to-top on initial navigation when hydrating\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-rc.0 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c7aef8ec5dd12b5b1d4c703a61bd1dd43f998e18\"\u003ec7aef8ec5d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eenforce parentheses containing arguments for :host-context\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8a1533c9ad7c306e03d7c50676f87b56bade5bf6\"\u003e8a1533c9ad\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epreserve leading commas in animation definitions\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/194f723f6620ea3cdf490b762ecbef8df6bb2c8a\"\u003e194f723f66\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove dedicated support for legacy shadow DOM selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/4c25a42e988e7a59d4d4dc3121cd77f7b344c048\"\u003e4c25a42e98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove deprecated shadow CSS encapsulation polyfills\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7dc1017e517c077a6aa8fd749392a2af1277e1b7\"\u003e7dc1017e51\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003esimplify handling of colon host with a selector list\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ccb7d427e4f07506c14c50ce0cbe87c57930ebb5\"\u003eccb7d427e4\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etype check invalid for loops\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/119a19e604a500f295867fc2cf2e6dbd43a9d807\"\u003e119a19e604\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e\u003ccode\u003e68282df\u003c/code\u003e\u003c/a\u003e fix(compiler): strip namespaced SVG script elements during template compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/6652ec0115b20a6f8721137769afac30cd70f9a6\"\u003e\u003ccode\u003e6652ec0\u003c/code\u003e\u003c/a\u003e refactor(core): align namespaced attribute validation and security schema con...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/baf92da96ed73a0f4748edf05d3c0702cab219da\"\u003e\u003ccode\u003ebaf92da\u003c/code\u003e\u003c/a\u003e test: remove invalid css that was causing issues with the postcss parser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003ccode\u003e1c6553e\u003c/code\u003e\u003c/a\u003e fix(core): disallow event attribute bindings in host bindings unconditionally\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.14/packages/compiler\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/core` from 21.2.11 to 21.2.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.14\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e\u003cimg src=\"https://img.shields.io/badge/68282dff9f-fix-green\" alt=\"fix - 68282dff9f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003estrip namespaced SVG script elements during template compilation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c0f52272ed337d4776bd4178cbbdc7f32037500f\"\u003e\u003cimg src=\"https://img.shields.io/badge/c0f52272ed-fix-green\" alt=\"fix - c0f52272ed\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edo not insert todo when migrating void \u003ca href=\"https://github.com/Output\"\u003e\u003ccode\u003e@​Output\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/938a7f3eddda97a39edb9edcc8b4dd970858b3a2\"\u003e\u003cimg src=\"https://img.shields.io/badge/938a7f3edd-fix-green\" alt=\"fix - 938a7f3edd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003emakes resource URL sanitizer lookup case-insensitive\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0fb272419407a64a0a47096b03a911f4e7e83d79\"\u003e\u003cimg src=\"https://img.shields.io/badge/0fb2724194-fix-green\" alt=\"fix - 0fb2724194\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ereject script element as a dynamic component host\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/49113ac0eff852d987b5acb28a9bbda0242842cd\"\u003e\u003cimg src=\"https://img.shields.io/badge/49113ac0ef-fix-green\" alt=\"fix - 49113ac0ef\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evisit ICU expressions in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/099bf577ee8f0bab60593a8fd2a1de7d298e3cd6\"\u003e\u003cimg src=\"https://img.shields.io/badge/099bf577ee-fix-green\" alt=\"fix - 099bf577ee\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eskip scroll-to-top on initial navigation when hydrating\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.12\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fe13bb669d2bfab4713623d17b41c430aa0a61d8\"\u003e\u003cimg src=\"https://img.shields.io/badge/fe13bb669d-fix-green\" alt=\"fix - fe13bb669d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eallow explicit read generic with signal input transforms\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3430251fef93f6aec1fa9c7867e85df23f67c9a0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3430251fef-fix-green\" alt=\"fix - 3430251fef\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ei18n flags leaking on errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1aeebbe3048b5aa612dd0a5448de9883ed51e7e8\"\u003e\u003cimg src=\"https://img.shields.io/badge/1aeebbe304-fix-green\" alt=\"fix - 1aeebbe304\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erespect ngSkipHydration on components with projectable nodes in LContainers\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9e38ed7d5773a9193ba07afdba3f7a9f2fe02d18\"\u003e\u003cimg src=\"https://img.shields.io/badge/9e38ed7d57-fix-green\" alt=\"fix - 9e38ed7d57\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003esanitizer typings\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a05a9a71a5ab75042ec5560c01526de6e61e062\"\u003e\u003cimg src=\"https://img.shields.io/badge/7a05a9a71a-fix-green\" alt=\"fix - 7a05a9a71a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c37f6ca42f263353cb9563fa90d7b31d3c7837ca\"\u003e\u003cimg src=\"https://img.shields.io/badge/c37f6ca42f-fix-green\" alt=\"fix - c37f6ca42f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evisit ng-let expression value in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/03ad53863bf3c368f0f02a4322d4141e8f70f674\"\u003e\u003cimg src=\"https://img.shields.io/badge/03ad53863b-fix-green\" alt=\"fix - 03ad53863b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprohibit concurrent submits in signal forms\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.14 (2026-05-20)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e68282dff9f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estrip namespaced SVG script elements during template compilation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c0f52272ed337d4776bd4178cbbdc7f32037500f\"\u003ec0f52272ed\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edo not insert todo when migrating void \u003ca href=\"https://github.com/Output\"\u003e\u003ccode\u003e@​Output\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/938a7f3eddda97a39edb9edcc8b4dd970858b3a2\"\u003e938a7f3edd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003emakes resource URL sanitizer lookup case-insensitive\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0fb272419407a64a0a47096b03a911f4e7e83d79\"\u003e0fb2724194\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ereject script element as a dynamic component host\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/49113ac0eff852d987b5acb28a9bbda0242842cd\"\u003e49113ac0ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evisit ICU expressions in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/099bf577ee8f0bab60593a8fd2a1de7d298e3cd6\"\u003e099bf577ee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eskip scroll-to-top on initial navigation when hydrating\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-rc.0 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c7aef8ec5dd12b5b1d4c703a61bd1dd43f998e18\"\u003ec7aef8ec5d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eenforce parentheses containing arguments for :host-context\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8a1533c9ad7c306e03d7c50676f87b56bade5bf6\"\u003e8a1533c9ad\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epreserve leading commas in animation definitions\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/194f723f6620ea3cdf490b762ecbef8df6bb2c8a\"\u003e194f723f66\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove dedicated support for legacy shadow DOM selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/4c25a42e988e7a59d4d4dc3121cd77f7b344c048\"\u003e4c25a42e98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove deprecated shadow CSS encapsulation polyfills\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7dc1017e517c077a6aa8fd749392a2af1277e1b7\"\u003e7dc1017e51\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003esimplify handling of colon host with a selector list\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ccb7d427e4f07506c14c50ce0cbe87c57930ebb5\"\u003eccb7d427e4\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etype check invalid for loops\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/119a19e604a500f295867fc2cf2e6dbd43a9d807\"\u003e119a19e604\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/1d6e71dd788ebda5d9bb9d3c560cc27bb503f44b\"\u003e\u003ccode\u003e1d6e71d\u003c/code\u003e\u003c/a\u003e docs: clarify ngDoCheck invocation behavior with OnPush strategy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/49113ac0eff852d987b5acb28a9bbda0242842cd\"\u003e\u003ccode\u003e49113ac\u003c/code\u003e\u003c/a\u003e fix(core): visit ICU expressions in signal migration schematics\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e\u003ccode\u003e68282df\u003c/code\u003e\u003c/a\u003e fix(compiler): strip namespaced SVG script elements during template compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/c0f52272ed337d4776bd4178cbbdc7f32037500f\"\u003e\u003ccode\u003ec0f5227\u003c/code\u003e\u003c/a\u003e fix(core): do not insert todo when migrating void \u003ca href=\"https://github.com/Output\"\u003e\u003ccode\u003e@​Output\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/0fb272419407a64a0a47096b03a911f4e7e83d79\"\u003e\u003ccode\u003e0fb2724\u003c/code\u003e\u003c/a\u003e fix(core): reject script element as a dynamic component host\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/6652ec0115b20a6f8721137769afac30cd70f9a6\"\u003e\u003ccode\u003e6652ec0\u003c/code\u003e\u003c/a\u003e refactor(core): align namespaced attribute validation and security schema con...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/938a7f3eddda97a39edb9edcc8b4dd970858b3a2\"\u003e\u003ccode\u003e938a7f3\u003c/code\u003e\u003c/a\u003e fix(core): makes resource URL sanitizer lookup case-insensitive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003ccode\u003e1c6553e\u003c/code\u003e\u003c/a\u003e fix(core): disallow event attribute bindings in host bindings unconditionally\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/9e38ed7d5773a9193ba07afdba3f7a9f2fe02d18\"\u003e\u003ccode\u003e9e38ed7\u003c/code\u003e\u003c/a\u003e fix(core): sanitizer typings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/3430251fef93f6aec1fa9c7867e85df23f67c9a0\"\u003e\u003ccode\u003e3430251\u003c/code\u003e\u003c/a\u003e fix(core): i18n flags leaking on errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.14/packages/core\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/elements` from 21.2.11 to 21.2.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/elements's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.14\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e\u003cimg src=\"https://img.shields.io/badge/68282dff9f-fix-green\" alt=\"fix - 68282dff9f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003estrip namespaced SVG script elements during template compilation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c0f52272ed337d4776bd4178cbbdc7f32037500f\"\u003e\u003cimg src=\"https://img.shields.io/badge/c0f52272ed-fix-green\" alt=\"fix - c0f52272ed\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edo not insert todo when migrating void \u003ca href=\"https://github.com/Output\"\u003e\u003ccode\u003e@​Output\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/938a7f3eddda97a39edb9edcc8b4dd970858b3a2\"\u003e\u003cimg src=\"https://img.shields.io/badge/938a7f3edd-fix-green\" alt=\"fix - 938a7f3edd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003emakes resource URL sanitizer lookup case-insensitive\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0fb272419407a64a0a47096b03a911f4e7e83d79\"\u003e\u003cimg src=\"https://img.shields.io/badge/0fb2724194-fix-green\" alt=\"fix - 0fb2724194\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ereject script element as a dynamic component host\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/49113ac0eff852d987b5acb28a9bbda0242842cd\"\u003e\u003cimg src=\"https://img.shields.io/badge/49113ac0ef-fix-green\" alt=\"fix - 49113ac0ef\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evisit ICU expressions in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/099bf577ee8f0bab60593a8fd2a1de7d298e3cd6\"\u003e\u003cimg src=\"https://img.shields.io/badge/099bf577ee-fix-green\" alt=\"fix - 099bf577ee\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eskip scroll-to-top on initial navigation when hydrating\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.12\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fe13bb669d2bfab4713623d17b41c430aa0a61d8\"\u003e\u003cimg src=\"https://img.shields.io/badge/fe13bb669d-fix-green\" alt=\"fix - fe13bb669d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eallow explicit read generic with signal input transforms\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3430251fef93f6aec1fa9c7867e85df23f67c9a0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3430251fef-fix-green\" alt=\"fix - 3430251fef\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ei18n flags leaking on errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1aeebbe3048b5aa612dd0a5448de9883ed51e7e8\"\u003e\u003cimg src=\"https://img.shields.io/badge/1aeebbe304-fix-green\" alt=\"fix - 1aeebbe304\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erespect ngSkipHydration on components with projectable nodes in LContainers\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9e38ed7d5773a9193ba07afdba3f7a9f2fe02d18\"\u003e\u003cimg src=\"https://img.shields.io/badge/9e38ed7d57-fix-green\" alt=\"fix - 9e38ed7d57\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003esanitizer typings\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a05a9a71a5ab75042ec5560c01526de6e61e062\"\u003e\u003cimg src=\"https://img.shields.io/badge/7a05a9a71a-fix-green\" alt=\"fix - 7a05a9a71a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c37f6ca42f263353cb9563fa90d7b31d3c7837ca\"\u003e\u003cimg src=\"https://img.shields.io/badge/c37f6ca42f-fix-green\" alt=\"fix - c37f6ca42f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evisit ng-let expression value in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/03ad53863bf3c368f0f02a4322d4141e8f70f674\"\u003e\u003cimg src=\"https://img.shields.io/badge/03ad53863b-fix-green\" alt=\"fix - 03ad53863b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprohibit concurrent submits in signal forms\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/elements's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.14 (2026-05-20)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e68282dff9f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estrip namespaced SVG script elements during template compilation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c0f52272ed337d4776bd4178cbbdc7f32037500f\"\u003ec0f52272ed\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edo not insert todo when migrating void \u003ca href=\"https://github.com/Output\"\u003e\u003ccode\u003e@​Output\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/938a7f3eddda97a39edb9edcc8b4dd970858b3a2\"\u003e938a7f3edd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003emakes resource URL sanitizer lookup case-insensitive\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0fb272419407a64a0a47096b03a911f4e7e83d79\"\u003e0fb2724194\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ereject script element as a dynamic component host\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/49113ac0eff852d987b5acb28a9bbda0242842cd\"\u003e49113ac0ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evisit ICU expressions in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/099bf577ee8f0bab60593a8fd2a1de7d298e3cd6\"\u003e099bf577ee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eskip scroll-to-top on initial navigation when hydrating\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-rc.0 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c7aef8ec5dd12b5b1d4c703a61bd1dd43f998e18\"\u003ec7aef8ec5d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eenforce parentheses containing arguments for :host-context\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8a1533c9ad7c306e03d7c50676f87b56bade5bf6\"\u003e8a1533c9ad\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epreserve leading commas in animation definitions\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/194f723f6620ea3cdf490b762ecbef8df6bb2c8a\"\u003e194f723f66\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove dedicated support for legacy shadow DOM selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/4c25a42e988e7a59d4d4dc3121cd77f7b344c048\"\u003e4c25a42e98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove deprecated shadow CSS encapsulation polyfills\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7dc1017e517c077a6aa8fd749392a2af1277e1b7\"\u003e7dc1017e51\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003esimplify handling of colon host with a selector list\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ccb7d427e4f07506c14c50ce0cbe87c57930ebb5\"\u003eccb7d427e4\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etype check invalid for loops\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/119a19e604a500f295867fc2cf2e6dbd43a9d807\"\u003e119a19e604\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/t...\n\n_Description has been truncated_\n\n\u003c!-- CURSOR_SUMMARY --\u003e\n---\n\n\u003e [!NOTE]\n\u003e **Medium Risk**\n\u003e Patch-level Angular updates can change runtime security and template/host binding behavior; verify build, tests, and lint even though no app source changed.\n\u003e \n\u003e **Overview**\n\u003e This PR **only updates dependencies** in `app-components` (`package.json` and `package-lock.json`); there are **no application source changes**.\n\u003e \n\u003e **Runtime Angular** packages move from **21.2.11 → 21.2.14** (and `@angular/cdk` **21.2.9 → 21.2.13**), covering animations, common, compiler, core, elements, forms, platform-browser, platform-browser-dynamic, and router.\n\u003e \n\u003e **Tooling** bumps include `@angular-eslint/*` **21.3.1 → 21.4.0** and `@typescript-eslint/eslint-plugin` **8.59.2 → 8.60.0**; the lockfile also refreshes related transitive versions (e.g. Rollup, msgpackr, more `@typescript-eslint/*` at 8.60.0).\n\u003e \n\u003e Several devDependency pins in `package.json` are **unchanged** in this diff (e.g. `@angular/compiler-cli`, `@angular/cli`, `@angular-eslint/template-parser`, `@typescript-eslint/parser`), so the tree may still mix patch levels until a follow-up align.\n\u003e \n\u003e **Review focus:** run `npm ci`, `ng build`, `ng test`, and `ng lint` in `app-components`; upstream 21.2.x patches include security and binding/sanitizer fixes that can affect behavior without local code edits.\n\u003e \n\u003e \u003csup\u003eReviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 87753c54359befd1ea741db176e029e1dc1bd869. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).\u003c/sup\u003e\n\u003c!-- /CURSOR_SUMMARY --\u003e","html_url":"https://github.com/trimble-oss/modus-icons/pull/778","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/trimble-oss%2Fmodus-icons/issues/778","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/778/packages"},{"uuid":"4511925986","node_id":"PR_kwDOSmfgZM7eyyXc","number":9,"state":"open","title":"Build(deps-dev): Bump @angular-eslint/builder from 19.8.1 to 21.4.0 in /frontend","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-24T14:37:54.000Z","updated_at":"2026-05-24T18:23:55.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Build(deps-dev): Bump","packages":[{"name":"@angular-eslint/builder","old_version":"19.8.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":"/frontend","ecosystem":"npm"},"body":"Bumps [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) from 19.8.1 to 21.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e@​angular-eslint/builder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.4.0\u003c/h2\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [cyclomatic-complexity] add \u003ccode\u003evariant\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.57.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.6 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.1.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.8 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.58.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2984\"\u003e#2984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.9 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.59.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.11 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3019\"\u003e#3019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.3.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e append fixes in prefer-on-push-change-detection, use-injectable-provided-in (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2969\"\u003e#2969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-template-literal] do not check inline templates (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [no-non-null-assertion] report nested arrays (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [eqeqeq]  could not destructure null (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eschematics:\u003c/strong\u003e sync application schema with upstream \u003ccode\u003e@​schematics/angular\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003cli\u003egithubuser578 \u003ca href=\"https://github.com/githubuser578\"\u003e\u003ccode\u003e@​githubuser578\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev21.3.1\u003c/h2\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.0.3 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2949\"\u003e#2949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2954\"\u003e#2954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] properly handle statements with unary operators (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2926\"\u003e#2926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eprefer-self-closing-tags:\u003c/strong\u003e add selectedcontent nonAriaElements (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e@​angular-eslint/builder's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for builder to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch2\u003e21.1.0 (2025-12-08)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ereference \u003ccode\u003e@​angular/cli\u003c/code\u003e peer in addition to direct dependencies (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2820\"\u003e#2820\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.0.1 (2025-11-23)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for builder to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/0a774c724574c3c35acf9ba432f60269e7418938\"\u003e\u003ccode\u003e0a774c7\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/cea1779a056ce7e16b80b017630b625e375e6ba6\"\u003e\u003ccode\u003ecea1779\u003c/code\u003e\u003c/a\u003e feat(builder): add apply-suppressions option (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/28434e76fde2d26e3c009749dd4cc20a9604fa15\"\u003e\u003ccode\u003e28434e7\u003c/code\u003e\u003c/a\u003e chore: update swc monorepo (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2987\"\u003e#2987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/8f2afdce28d4cbdac792465b33aff35915af23b5\"\u003e\u003ccode\u003e8f2afdc\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/77099ee61cda76136038dce9f21d3af6071a7d06\"\u003e\u003ccode\u003e77099ee\u003c/code\u003e\u003c/a\u003e chore: ensure dist artifacts are available for e2e publishing in DTE (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/af8900f087b09556bfaddd815ce483bf7b0262ea\"\u003e\u003ccode\u003eaf8900f\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix: narrow build target cache outputs to avoid clobbering compile ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/7e173918eb48b2db41ce4d5a934567dab26fe54b\"\u003e\u003ccode\u003e7e17391\u003c/code\u003e\u003c/a\u003e fix: narrow build target cache outputs to avoid clobbering compile artifacts ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/a959e4d2804bbeb3cbc7caaa9c2fb2be9da3348e\"\u003e\u003ccode\u003ea959e4d\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/5c214854f897cb698563f53db6b9bddfb23e4d8e\"\u003e\u003ccode\u003e5c21485\u003c/code\u003e\u003c/a\u003e chore(builder): change builder tests to be cross-platform (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/3ef7fb157e866d76ae76d41b706b92efbd54d72d\"\u003e\u003ccode\u003e3ef7fb1\u003c/code\u003e\u003c/a\u003e feat: add support for ESLint v10 (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.4.0/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/WillSams/example-ts-angular-with-java/pull/9","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/WillSams%2Fexample-ts-angular-with-java/issues/9","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9/packages"},{"uuid":"4510660393","node_id":"PR_kwDOGe8x_M7evEoz","number":1297,"state":"open","title":"chore(deps-dev)(deps-dev): bump the development-dependencies group across 1 directory with 12 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-24T05:57:47.000Z","updated_at":"2026-05-24T05:57:48.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)(deps-dev): bump","group_name":"development-dependencies","update_count":12,"packages":[{"name":"eslint-plugin-jest","old_version":"29.15.1","new_version":"29.15.2","repository_url":"https://github.com/jest-community/eslint-plugin-jest"},{"name":"jest","old_version":"30.3.0","new_version":"30.4.2","repository_url":"https://github.com/jestjs/jest"},{"name":"ts-jest","old_version":"29.4.6","new_version":"29.4.9","repository_url":"https://github.com/kulshekhar/ts-jest"},{"name":"@angular-devkit/architect","old_version":"0.2102.5","new_version":"0.2102.11","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular-devkit/core","old_version":"21.2.5","new_version":"21.2.11","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular-devkit/schematics","old_version":"21.2.5","new_version":"21.2.11","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular-eslint/builder","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin-template","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/schematics","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/template-parser","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular/language-service","old_version":"21.2.6","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"}],"path":null,"ecosystem":"npm"},"body":"Bumps the development-dependencies group with 12 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) | `29.15.1` | `29.15.2` |\n| [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) | `30.3.0` | `30.4.2` |\n| [ts-jest](https://github.com/kulshekhar/ts-jest) | `29.4.6` | `29.4.9` |\n| [@angular-devkit/architect](https://github.com/angular/angular-cli) | `0.2102.5` | `0.2102.11` |\n| [@angular-devkit/core](https://github.com/angular/angular-cli) | `21.2.5` | `21.2.11` |\n| [@angular-devkit/schematics](https://github.com/angular/angular-cli) | `21.2.5` | `21.2.11` |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `21.3.1` | `21.4.0` |\n| [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) | `21.3.1` | `21.4.0` |\n| [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template) | `21.3.1` | `21.4.0` |\n| [@angular-eslint/schematics](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics) | `21.3.1` | `21.4.0` |\n| [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `21.3.1` | `21.4.0` |\n| [@angular/language-service](https://github.com/angular/angular/tree/HEAD/packages/language-service) | `21.2.6` | `21.2.13` |\n\n\nUpdates `eslint-plugin-jest` from 29.15.1 to 29.15.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/releases\"\u003eeslint-plugin-jest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev29.15.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/compare/v29.15.1...v29.15.2\"\u003e29.15.2\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evalid-mock-module-path:\u003c/strong\u003e don't report virtual mocks (\u003ca href=\"https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1946\"\u003e#1946\u003c/a\u003e) (\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/commit/a1916d16350344c1693384af34900055ec465e1c\"\u003ea1916d1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md\"\u003eeslint-plugin-jest's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/compare/v29.15.1...v29.15.2\"\u003e29.15.2\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evalid-mock-module-path:\u003c/strong\u003e don't report virtual mocks (\u003ca href=\"https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1946\"\u003e#1946\u003c/a\u003e) (\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/commit/a1916d16350344c1693384af34900055ec465e1c\"\u003ea1916d1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/commit/f14a941887e2b598053f757f91c10a5910ffffca\"\u003e\u003ccode\u003ef14a941\u003c/code\u003e\u003c/a\u003e chore(release): 29.15.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/commit/a1916d16350344c1693384af34900055ec465e1c\"\u003e\u003ccode\u003ea1916d1\u003c/code\u003e\u003c/a\u003e fix(valid-mock-module-path): don't report virtual mocks (\u003ca href=\"https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1946\"\u003e#1946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/commit/4a5278787449592d473ff4507170f6ff50b1b47f\"\u003e\u003ccode\u003e4a52787\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1958\"\u003e#1958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/commit/285c6f6a665ffb77facb0e4db77a3e2c4c986070\"\u003e\u003ccode\u003e285c6f6\u003c/code\u003e\u003c/a\u003e ci: don't run smoketest on \u003ccode\u003etannerlinsley/react-table\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1959\"\u003e#1959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/commit/1da0928392313ffa89339ed454aa31d1712f6875\"\u003e\u003ccode\u003e1da0928\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1956\"\u003e#1956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/commit/8532d0e53abce0e80f092940e4575ed46ae6660a\"\u003e\u003ccode\u003e8532d0e\u003c/code\u003e\u003c/a\u003e docs(valid-expect): use valid alert syntax (\u003ca href=\"https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1954\"\u003e#1954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/commit/03405ae827212348ab880929231d899300f659c2\"\u003e\u003ccode\u003e03405ae\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency \u003ccode\u003e@​schemastore/package\u003c/code\u003e to v1 (\u003ca href=\"https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1942\"\u003e#1942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/commit/de0e154bd2d5966c3f2f15b4b3c8f0cd93b171ed\"\u003e\u003ccode\u003ede0e154\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v6 (\u003ca href=\"https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/commit/d50f50c81af62caa4c73888939e20f4b874fdbe9\"\u003e\u003ccode\u003ed50f50c\u003c/code\u003e\u003c/a\u003e chore: add node v25 to CI (\u003ca href=\"https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1950\"\u003e#1950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/compare/v29.15.1...v29.15.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jest` from 30.3.0 to 30.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jestjs/jest/releases\"\u003ejest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev30.4.2\u003c/h2\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[jest-runtime]\u003c/code\u003e Fix named imports from CJS modules whose \u003ccode\u003emodule.exports\u003c/code\u003e is a function with own-property exports (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16150\"\u003e#16150\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jestjs/jest/compare/v30.4.1...v30.4.2\"\u003ehttps://github.com/jestjs/jest/compare/v30.4.1...v30.4.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev30.4.1\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[jest-config, jest-core, jest-runner, jest-schemas, jest-types]\u003c/code\u003e Allow custom runner configuration options via tuple format \u003ccode\u003e['runner-path', {options}]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16141\"\u003e#16141\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[jest-runtime]\u003c/code\u003e Align CJS-from-ESM default export with Node: \u003ccode\u003emodule.exports\u003c/code\u003e is always the ESM default, \u003ccode\u003e__esModule\u003c/code\u003e unwrapping is no longer applied (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16143\"\u003e#16143\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jestjs/jest/compare/v30.4.0...v30.4.1\"\u003ehttps://github.com/jestjs/jest/compare/v30.4.0...v30.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev30.4.0\u003c/h2\u003e\n\u003cp\u003eBig release! 😀\u003c/p\u003e\n\u003cp\u003eMain feature is a rewrite of our custom runtime in preparation for stabilisation of native support of ESM. As part of that work \u003ccode\u003erequire(esm)\u003c/code\u003e module is now supported on Node 24.9+ (still requires \u003ccode\u003e--experimental-vm-modules\u003c/code\u003e like before).\u003c/p\u003e\n\u003cp\u003eIn addition we now support fake timers for the recently released \u003ccode\u003eTemporal\u003c/code\u003e API in Node v26.\u003c/p\u003e\n\u003cp\u003eReact 19 is also supported properly in \u003ccode\u003epretty-format\u003c/code\u003e, meaning snapshots of React components now work like they should.\u003c/p\u003e\n\u003cp\u003eDue to all the changes, there might be regressions that snuck in. Please report them!\u003c/p\u003e\n\u003cp\u003eFull list of changes below\u003c/p\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[babel-jest]\u003c/code\u003e Support collecting coverage from \u003ccode\u003e.mts\u003c/code\u003e, \u003ccode\u003e.cts\u003c/code\u003e (and other) files (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/15994\"\u003e#15994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-circus, jest-cli, jest-config, jest-core, jest-jasmine2, jest-types]\u003c/code\u003e Add \u003ccode\u003e--collect-tests\u003c/code\u003e flag to discover and list tests without executing them (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16006\"\u003e#16006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-config, jest-runner, jest-worker]\u003c/code\u003e Add \u003ccode\u003eworkerGracefulExitTimeout\u003c/code\u003e config option to control how long workers are given to exit before being force-killed (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/15984\"\u003e#15984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-config]\u003c/code\u003e Add support for \u003ccode\u003ejest.config.mts\u003c/code\u003e as a valid configuration file (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16005\"\u003e#16005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-config, jest-core, jest-reporters, jest-runner]\u003c/code\u003e \u003ccode\u003everbose\u003c/code\u003e and \u003ccode\u003esilent\u003c/code\u003e can now be set per-project; the project-level value overrides the global value for that project's tests (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16133\"\u003e#16133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[@jest/fake-timers]\u003c/code\u003e Accept \u003ccode\u003eTemporal.Duration\u003c/code\u003e in \u003ccode\u003ejest.advanceTimersByTime()\u003c/code\u003e and \u003ccode\u003ejest.advanceTimersByTimeAsync()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16128\"\u003e#16128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[@jest/fake-timers]\u003c/code\u003e Accept \u003ccode\u003eTemporal.Instant\u003c/code\u003e and \u003ccode\u003eTemporal.ZonedDateTime\u003c/code\u003e in \u003ccode\u003ejest.setSystemTime()\u003c/code\u003e and \u003ccode\u003euseFakeTimers({now})\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16128\"\u003e#16128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[@jest/fake-timers]\u003c/code\u003e Support faking \u003ccode\u003eTemporal.Now.*\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16131\"\u003e#16131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-mock]\u003c/code\u003e Add \u003ccode\u003eclearMocksOnScope(scope)\u003c/code\u003e on \u003ccode\u003eModuleMocker\u003c/code\u003e for clearing every mock function exposed on a scope object (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16088\"\u003e#16088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-resolve]\u003c/code\u003e Add \u003ccode\u003ecanResolveSync()\u003c/code\u003e on \u003ccode\u003eResolver\u003c/code\u003e so callers can detect when a user-configured resolver only exports an \u003ccode\u003easync\u003c/code\u003e hook (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16064\"\u003e#16064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-runtime]\u003c/code\u003e Use synchronous \u003ccode\u003eevaluate()\u003c/code\u003e for ES modules without top-level \u003ccode\u003eawait\u003c/code\u003e on Node versions that support it (v24.9+), and prefer the synchronous transform path when a sync transformer is configured (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16062\"\u003e#16062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-runtime]\u003c/code\u003e Support \u003ccode\u003erequire()\u003c/code\u003e of ES modules on Node v24.9+ (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16074\"\u003e#16074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-runtime]\u003c/code\u003e Validate TC39 import attributes (\u003ccode\u003ewith { type: 'json' }\u003c/code\u003e) on ESM imports (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16127\"\u003e#16127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[@jest/transform]\u003c/code\u003e Add \u003ccode\u003ecanTransformSync(filename)\u003c/code\u003e on \u003ccode\u003eScriptTransformer\u003c/code\u003e so callers can pick the sync vs async transform path (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16062\"\u003e#16062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-util]\u003c/code\u003e Add \u003ccode\u003eisError\u003c/code\u003e helper (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16076\"\u003e#16076\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jestjs/jest/blob/main/CHANGELOG.md\"\u003ejest's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e30.4.2\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[jest-runtime]\u003c/code\u003e Fix named imports from CJS modules whose \u003ccode\u003emodule.exports\u003c/code\u003e is a function with own-property exports (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16150\"\u003e#16150\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e30.4.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[jest-config, jest-core, jest-runner, jest-schemas, jest-types]\u003c/code\u003e Allow custom runner configuration options via tuple format \u003ccode\u003e['runner-path', {options}]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16141\"\u003e#16141\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[jest-runtime]\u003c/code\u003e Align CJS-from-ESM default export with Node: \u003ccode\u003emodule.exports\u003c/code\u003e is always the ESM default, \u003ccode\u003e__esModule\u003c/code\u003e unwrapping is no longer applied (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16143\"\u003e#16143\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e30.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[babel-jest]\u003c/code\u003e Support collecting coverage from \u003ccode\u003e.mts\u003c/code\u003e, \u003ccode\u003e.cts\u003c/code\u003e (and other) files (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/15994\"\u003e#15994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-circus, jest-cli, jest-config, jest-core, jest-jasmine2, jest-types]\u003c/code\u003e Add \u003ccode\u003e--collect-tests\u003c/code\u003e flag to discover and list tests without executing them (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16006\"\u003e#16006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-config, jest-runner, jest-worker]\u003c/code\u003e Add \u003ccode\u003eworkerGracefulExitTimeout\u003c/code\u003e config option to control how long workers are given to exit before being force-killed (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/15984\"\u003e#15984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-config]\u003c/code\u003e Add support for \u003ccode\u003ejest.config.mts\u003c/code\u003e as a valid configuration file (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16005\"\u003e#16005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-config, jest-core, jest-reporters, jest-runner]\u003c/code\u003e \u003ccode\u003everbose\u003c/code\u003e and \u003ccode\u003esilent\u003c/code\u003e can now be set per-project; the project-level value overrides the global value for that project's tests (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16133\"\u003e#16133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[@jest/fake-timers]\u003c/code\u003e Accept \u003ccode\u003eTemporal.Duration\u003c/code\u003e in \u003ccode\u003ejest.advanceTimersByTime()\u003c/code\u003e and \u003ccode\u003ejest.advanceTimersByTimeAsync()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16128\"\u003e#16128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[@jest/fake-timers]\u003c/code\u003e Accept \u003ccode\u003eTemporal.Instant\u003c/code\u003e and \u003ccode\u003eTemporal.ZonedDateTime\u003c/code\u003e in \u003ccode\u003ejest.setSystemTime()\u003c/code\u003e and \u003ccode\u003euseFakeTimers({now})\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16128\"\u003e#16128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[@jest/fake-timers]\u003c/code\u003e Support faking \u003ccode\u003eTemporal.Now.*\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16131\"\u003e#16131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-mock]\u003c/code\u003e Add \u003ccode\u003eclearMocksOnScope(scope)\u003c/code\u003e on \u003ccode\u003eModuleMocker\u003c/code\u003e for clearing every mock function exposed on a scope object (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16088\"\u003e#16088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-resolve]\u003c/code\u003e Add \u003ccode\u003ecanResolveSync()\u003c/code\u003e on \u003ccode\u003eResolver\u003c/code\u003e so callers can detect when a user-configured resolver only exports an \u003ccode\u003easync\u003c/code\u003e hook (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16064\"\u003e#16064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-runtime]\u003c/code\u003e Use synchronous \u003ccode\u003eevaluate()\u003c/code\u003e for ES modules without top-level \u003ccode\u003eawait\u003c/code\u003e on Node versions that support it (v24.9+), and prefer the synchronous transform path when a sync transformer is configured (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16062\"\u003e#16062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-runtime]\u003c/code\u003e Support \u003ccode\u003erequire()\u003c/code\u003e of ES modules on Node v24.9+ (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16074\"\u003e#16074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-runtime]\u003c/code\u003e Validate TC39 import attributes (\u003ccode\u003ewith { type: 'json' }\u003c/code\u003e) on ESM imports (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16127\"\u003e#16127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[@jest/transform]\u003c/code\u003e Add \u003ccode\u003ecanTransformSync(filename)\u003c/code\u003e on \u003ccode\u003eScriptTransformer\u003c/code\u003e so callers can pick the sync vs async transform path (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16062\"\u003e#16062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-util]\u003c/code\u003e Add \u003ccode\u003eisError\u003c/code\u003e helper (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16076\"\u003e#16076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[pretty-format]\u003c/code\u003e Support React 19 (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16123\"\u003e#16123\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[expect-utils]\u003c/code\u003e Fix \u003ccode\u003etoStrictEqual\u003c/code\u003e failing on \u003ccode\u003estructuredClone\u003c/code\u003e results due to cross-realm constructor mismatch (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/15959\"\u003e#15959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[@jest/expect-utils]\u003c/code\u003e Prevent \u003ccode\u003etoMatchObject\u003c/code\u003e/subset matching from throwing when encountering exotic iterables (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/15952\"\u003e#15952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[fake-timers]\u003c/code\u003e Convert \u003ccode\u003eDate\u003c/code\u003e to milliseconds before passing to \u003ccode\u003e@sinonjs/fake-timers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16029\"\u003e#16029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest]\u003c/code\u003e Export \u003ccode\u003eGlobalConfig\u003c/code\u003e and \u003ccode\u003eProjectConfig\u003c/code\u003e TypeScript types (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16132\"\u003e#16132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-circus]\u003c/code\u003e Prevent crash when \u003ccode\u003easyncError\u003c/code\u003e is undefined for non-Error throws (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16003\"\u003e#16003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-circus, jest-jasmine2]\u003c/code\u003e Include \u003ccode\u003eError.cause\u003c/code\u003e in JSON \u003ccode\u003efailureMessages\u003c/code\u003e output (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/15967\"\u003e#15967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-config]\u003c/code\u003e Fix preset path resolution on Windows when the preset uses subpath \u003ccode\u003eexports\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/15961\"\u003e#15961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-config]\u003c/code\u003e Allow \u003ccode\u003ecollectCoverage\u003c/code\u003e and \u003ccode\u003ecoverageProvider\u003c/code\u003e in project config without a validation warning (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16132\"\u003e#16132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-config]\u003c/code\u003e Project config validator now emits \u0026quot;is not supported in an individual project configuration\u0026quot; instead of \u0026quot;probably a typing mistake\u0026quot; for known global-only options (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16132\"\u003e#16132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-environment-node]\u003c/code\u003e Fix \u003ccode\u003e--localstorage-file\u003c/code\u003e warning on Node 25+ (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16086\"\u003e#16086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-reporters]\u003c/code\u003e Apply global coverage threshold to unmatched pattern files in addition to glob/path thresholds (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16137\"\u003e#16137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jestjs/jest/commit/746f2a0f57c56e3bba555280f0587d40f3db95c0\"\u003e\u003ccode\u003e746f2a0\u003c/code\u003e\u003c/a\u003e v30.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jestjs/jest/commit/b3b4a09ed3005369dacc7466d1d2122797283785\"\u003e\u003ccode\u003eb3b4a09\u003c/code\u003e\u003c/a\u003e v30.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jestjs/jest/commit/5cbb21e0b3037edb42e503ec1a1ce80efad40c20\"\u003e\u003ccode\u003e5cbb21e\u003c/code\u003e\u003c/a\u003e v30.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jestjs/jest/commit/db7141a93cc85fab81cf9c25368e1f2b2c312286\"\u003e\u003ccode\u003edb7141a\u003c/code\u003e\u003c/a\u003e fix: allow \u003ccode\u003ecollectCoverage\u003c/code\u003e and \u003ccode\u003ecoverageProvider\u003c/code\u003e in project config (\u003ca href=\"https://github.com/jestjs/jest/tree/HEAD/packages/jest/issues/16132\"\u003e#16132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jestjs/jest/commits/v30.4.2/packages/jest\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ts-jest` from 29.4.6 to 29.4.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kulshekhar/ts-jest/releases\"\u003ets-jest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev29.4.9\u003c/h2\u003e\n\u003cp\u003ePlease refer to \u003ca href=\"https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003ev29.4.8\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ev29.4.7\u003c/h2\u003e\n\u003cp\u003ePlease refer to \u003ca href=\"https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e for details.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md\"\u003ets-jest's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/compare/v29.4.8...v29.4.9\"\u003e29.4.9\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003euse correct registry for npm OIDC trusted publishing (\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/f8a9cc9892\"\u003ef8a9cc9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/compare/v29.4.7...v29.4.8\"\u003e29.4.8\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ewrong published assets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/compare/v29.4.6...v29.4.7\"\u003e29.4.7\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport TypeScript v6 (\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/eda517d226389317d99572887d3c1aa93c81be87\"\u003eeda517d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/bac2e77231418c35cb9b9946d7d871c0ee2322a1\"\u003e\u003ccode\u003ebac2e77\u003c/code\u003e\u003c/a\u003e chore(release): bump version to 29.4.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/f8a9cc98924bd1846aac96d6c544e6626f031f81\"\u003e\u003ccode\u003ef8a9cc9\u003c/code\u003e\u003c/a\u003e fix: use correct registry for npm OIDC trusted publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/e2eec26aa127e284719b4754937d17bd57b13518\"\u003e\u003ccode\u003ee2eec26\u003c/code\u003e\u003c/a\u003e fix: npm permissions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/263f2ac73e4a0c4163f8766c3ba9d0a13ca78812\"\u003e\u003ccode\u003e263f2ac\u003c/code\u003e\u003c/a\u003e chore: remove npm auth token\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/5df0e45f409994b34cae7d22db60946a8158d975\"\u003e\u003ccode\u003e5df0e45\u003c/code\u003e\u003c/a\u003e OIDC\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/f82c1444d4af0d9f27883510acc8178c18ee8f8a\"\u003e\u003ccode\u003ef82c144\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kulshekhar/ts-jest/issues/5250\"\u003e#5250\u003c/a\u003e from kulshekhar/copilot/bump-patch-version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/e6ec5aed410a803c2f972b3287cf233ce4c998f9\"\u003e\u003ccode\u003ee6ec5ae\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/62c3199a355d3ba483f0e976c868ddc6f20d53fe\"\u003e\u003ccode\u003e62c3199\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/052e751f124d059e1363b827f1709ed7607daded\"\u003e\u003ccode\u003e052e751\u003c/code\u003e\u003c/a\u003e Bump patch version to 29.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/f79e77b64f4a807605e277b1ea05f10abe9c94f0\"\u003e\u003ccode\u003ef79e77b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kulshekhar/ts-jest/issues/5249\"\u003e#5249\u003c/a\u003e from ext/feature/ts6-peer\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kulshekhar/ts-jest/compare/v29.4.6...v29.4.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for ts-jest since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-devkit/architect` from 0.2102.5 to 0.2102.11\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular-cli/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-devkit/core` from 21.2.5 to 21.2.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular-cli/releases\"\u003e@​angular-devkit/core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.11\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003e\u003cimg src=\"https://img.shields.io/badge/bbd63b7a5-fix-green\" alt=\"fix - bbd63b7a5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erobustly parse npm manifest from array\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003e\u003cimg src=\"https://img.shields.io/badge/eafe1a719-fix-green\" alt=\"fix - eafe1a719\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e\u003cimg src=\"https://img.shields.io/badge/7a116a80d-fix-green\" alt=\"fix - 7a116a80d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove stateful flag from URL_PARAMETER_REGEXP\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.10\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bb861191328fc2d25bd5ee99b0c8edc5e49d3a7d\"\u003e\u003cimg src=\"https://img.shields.io/badge/bb8611913-fix-green\" alt=\"fix - bb8611913\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erestrict MCP workspace access to allowed client roots during resolution\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.9\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​schematics/angular\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/e7abeb5c74024daf125070c9b4f7f8d2426bab66\"\u003e\u003cimg src=\"https://img.shields.io/badge/e7abeb5c7-fix-green\" alt=\"fix - e7abeb5c7\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd missing imports for focus and skip APIs in refactor-jasmine-vitest\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/233deef01288c6aa39a048d6bd66a1f09595dc15\"\u003e\u003cimg src=\"https://img.shields.io/badge/233deef01-fix-green\" alt=\"fix - 233deef01\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix broken img ref in ai-tutor\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7cea9885c64a747b391b74e6434cdf005c843766\"\u003e\u003cimg src=\"https://img.shields.io/badge/7cea9885c-fix-green\" alt=\"fix - 7cea9885c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eintroduce initial package manager workspace awareness\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/5b1a5b7434323eb383df1f53c389fe9dc948a785\"\u003e\u003cimg src=\"https://img.shields.io/badge/5b1a5b743-fix-green\" alt=\"fix - 5b1a5b743\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove standalone true ref in ai tutor\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/94023f62c5b51a669ff3187cc062057f82c79c52\"\u003e\u003cimg src=\"https://img.shields.io/badge/94023f62c-fix-green\" alt=\"fix - 94023f62c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eintroduce trustProxyHeaders option to safely validate and sanitize proxy headers\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/5ffe5c309a92e7fd42f1059171924c5942f35c36\"\u003e\u003cimg src=\"https://img.shields.io/badge/5ffe5c309-fix-green\" alt=\"fix - 5ffe5c309\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd support for configuring trusted proxy headers via environment variable\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/930ada9b73c5172d57830ce42a5a336ae9483a54\"\u003e\u003cimg src=\"https://img.shields.io/badge/930ada9b7-fix-green\" alt=\"fix - 930ada9b7\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edecode route segments when building and matching route tree\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/0dc8a440ca9e4242edb69ba5a8147fef1dddc4f0\"\u003e\u003cimg src=\"https://img.shields.io/badge/0dc8a440c-fix-green\" alt=\"fix - 0dc8a440c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003euse router to normalize URLs for comparison\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.8\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/e91280c05afe7b35b4f01e0eb2800f1ee21fd2ea\"\u003e\u003cimg src=\"https://img.shields.io/badge/e91280c05-fix-green\" alt=\"fix - e91280c05\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edynamically resolve project Angular CLI executable inside MCP tools\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/01af6741bfe489c3c8fd86feab8b5f14cdb92562\"\u003e\u003cimg src=\"https://img.shields.io/badge/01af6741b-fix-green\" alt=\"fix - 01af6741b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eignore EBADF file system errors during MCP project scan\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/f7a3e6ed871ff711723dcfdbaa8c3ae497f89a5b\"\u003e\u003cimg src=\"https://img.shields.io/badge/f7a3e6ed8-fix-green\" alt=\"fix - f7a3e6ed8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003euse headless option in MCP test tool\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular-devkit/build-angular\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/00336c037dd77d2b441f797580eb8a12c044006b\"\u003e\u003cimg src=\"https://img.shields.io/badge/00336c037-fix-green\" alt=\"fix - 00336c037\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure route has leading slash in prerender builder\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/e87d302d6df3f4d9fa9338e3d377e09a2e161fc1\"\u003e\u003cimg src=\"https://img.shields.io/badge/e87d302d6-fix-green\" alt=\"fix - e87d302d6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix app-shell route format and\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/build\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular-cli/blob/main/CHANGELOG.md\"\u003e@​angular-devkit/core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.11 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003ebbd63b7a5\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erobustly parse npm manifest from array\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003eeafe1a719\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e7a116a80d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove stateful flag from URL_PARAMETER_REGEXP\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.26 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7cc1871ee50d123853ddf6bd89857b354d647462\"\u003e7cc1871ee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.26 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/842fee0291b787b63fdabcaaac5680b05d395075\"\u003e842fee029\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e21.2.10 (2026-05-06)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bb861191328fc2d25bd5ee99b0c8edc5e49d3a7d\"\u003ebb8611913\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erestrict MCP workspace access to allowed client roots during resolution\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/00e366320108b39e60e67d28d45e5bcc6a044546\"\u003e\u003ccode\u003e00e3663\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.11 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003e\u003ccode\u003eeafe1a7\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/ssr\u003c/code\u003e): allow all hosts in common engine rendering options to prev...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e\u003ccode\u003e7a116a8\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/ssr\u003c/code\u003e): remove stateful flag from URL_PARAMETER_REGEXP\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/a7705fb96a27965b20365b04c79f0e2f386dfd95\"\u003e\u003ccode\u003ea7705fb\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/453ed5b6bf8a18b37cfa099955f37b234ded6003\"\u003e\u003ccode\u003e453ed5b\u003c/code\u003e\u003c/a\u003e build: update github/codeql-action action to v4.35.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/f0f9b2dad6d47d958bf98b52452bd8c944355951\"\u003e\u003ccode\u003ef0f9b2d\u003c/code\u003e\u003c/a\u003e refactor(\u003ccode\u003e@​angular/cli\u003c/code\u003e): add validation and logging to npm manifest parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003e\u003ccode\u003ebbd63b7\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/cli\u003c/code\u003e): robustly parse npm manifest from array\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/64cbd623af655487945ecc2d26afdaea20989330\"\u003e\u003ccode\u003e64cbd62\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.10 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/6f26f4fb9aa039a1afec76e172f58a962615e236\"\u003e\u003ccode\u003e6f26f4f\u003c/code\u003e\u003c/a\u003e build: lock file maintenance\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/111dcc3118d46c60143b1a10bf919a0ef76ec54a\"\u003e\u003ccode\u003e111dcc3\u003c/code\u003e\u003c/a\u003e refactor(\u003ccode\u003e@​angular/cli\u003c/code\u003e): re-add resolveModule for find examples tool\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular-cli/compare/v21.2.5...v21.2.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-devkit/schematics` from 21.2.5 to 21.2.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular-cli/releases\"\u003e@​angular-devkit/schematics's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.11\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003e\u003cimg src=\"https://img.shields.io/badge/bbd63b7a5-fix-green\" alt=\"fix - bbd63b7a5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erobustly parse npm manifest from array\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003e\u003cimg src=\"https://img.shields.io/badge/eafe1a719-fix-green\" alt=\"fix - eafe1a719\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e\u003cimg src=\"https://img.shields.io/badge/7a116a80d-fix-green\" alt=\"fix - 7a116a80d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove stateful flag from URL_PARAMETER_REGEXP\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.10\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bb861191328fc2d25bd5ee99b0c8edc5e49d3a7d\"\u003e\u003cimg src=\"https://img.shields.io/badge/bb8611913-fix-green\" alt=\"fix - bb8611913\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erestrict MCP workspace access to allowed client roots during resolution\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.9\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​schematics/angular\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/e7abeb5c74024daf125070c9b4f7f8d2426bab66\"\u003e\u003cimg src=\"https://img.shields.io/badge/e7abeb5c7-fix-green\" alt=\"fix - e7abeb5c7\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd missing imports for focus and skip APIs in refactor-jasmine-vitest\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/233deef01288c6aa39a048d6bd66a1f09595dc15\"\u003e\u003cimg src=\"https://img.shields.io/badge/233deef01-fix-green\" alt=\"fix - 233deef01\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix broken img ref in ai-tutor\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7cea9885c64a747b391b74e6434cdf005c843766\"\u003e\u003cimg src=\"https://img.shields.io/badge/7cea9885c-fix-green\" alt=\"fix - 7cea9885c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eintroduce initial package manager workspace awareness\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/5b1a5b7434323eb383df1f53c389fe9dc948a785\"\u003e\u003cimg src=\"https://img.shields.io/badge/5b1a5b743-fix-green\" alt=\"fix - 5b1a5b743\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove standalone true ref in ai tutor\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/94023f62c5b51a669ff3187cc062057f82c79c52\"\u003e\u003cimg src=\"https://img.shields.io/badge/94023f62c-fix-green\" alt=\"fix - 94023f62c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eintroduce trustProxyHeaders option to safely validate and sanitize proxy headers\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/5ffe5c309a92e7fd42f1059171924c5942f35c36\"\u003e\u003cimg src=\"https://img.shields.io/badge/5ffe5c309-fix-green\" alt=\"fix - 5ffe5c309\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd support for configuring trusted proxy headers via environment variable\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/930ada9b73c5172d57830ce42a5a336ae9483a54\"\u003e\u003cimg src=\"https://img.shields.io/badge/930ada9b7-fix-green\" alt=\"fix - 930ada9b7\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edecode route segments when building and matching route tree\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/0dc8a440ca9e4242edb69ba5a8147fef1dddc4f0\"\u003e\u003cimg src=\"https://img.shields.io/badge/0dc8a440c-fix-green\" alt=\"fix - 0dc8a440c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003euse router to normalize URLs for comparison\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.8\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/e91280c05afe7b35b4f01e0eb2800f1ee21fd2ea\"\u003e\u003cimg src=\"https://img.shields.io/badge/e91280c05-fix-green\" alt=\"fix - e91280c05\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edynamically resolve project Angular CLI executable inside MCP tools\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/01af6741bfe489c3c8fd86feab8b5f14cdb92562\"\u003e\u003cimg src=\"https://img.shields.io/badge/01af6741b-fix-green\" alt=\"fix - 01af6741b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eignore EBADF file system errors during MCP project scan\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/f7a3e6ed871ff711723dcfdbaa8c3ae497f89a5b\"\u003e\u003cimg src=\"https://img.shields.io/badge/f7a3e6ed8-fix-green\" alt=\"fix - f7a3e6ed8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003euse headless option in MCP test tool\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular-devkit/build-angular\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/00336c037dd77d2b441f797580eb8a12c044006b\"\u003e\u003cimg src=\"https://img.shields.io/badge/00336c037-fix-green\" alt=\"fix - 00336c037\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure route has leading slash in prerender builder\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/e87d302d6df3f4d9fa9338e3d377e09a2e161fc1\"\u003e\u003cimg src=\"https://img.shields.io/badge/e87d302d6-fix-green\" alt=\"fix - e87d302d6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix app-shell route format and\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/build\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular-cli/blob/main/CHANGELOG.md\"\u003e@​angular-devkit/schematics's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.11 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003ebbd63b7a5\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erobustly parse npm manifest from array\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003eeafe1a719\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e7a116a80d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove stateful flag from URL_PARAMETER_REGEXP\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.26 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7cc1871ee50d123853ddf6bd89857b354d647462\"\u003e7cc1871ee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.26 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/842fee0291b787b63fdabcaaac5680b05d395075\"\u003e842fee029\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e21.2.10 (2026-05-06)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bb861191328fc2d25bd5ee99b0c8edc5e49d3a7d\"\u003ebb8611913\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erestrict MCP workspace access to allowed client roots during resolution\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/00e366320108b39e60e67d28d45e5bcc6a044546\"\u003e\u003ccode\u003e00e3663\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.11 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003e\u003ccode\u003eeafe1a7\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/ssr\u003c/code\u003e): allow all hosts in common engine rendering options to prev...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e\u003ccode\u003e7a116a8\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/ssr\u003c/code\u003e): remove stateful flag from URL_PARAMETER_REGEXP\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/a7705fb96a27965b20365b04c79f0e2f386dfd95\"\u003e\u003ccode\u003ea7705fb\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/453ed5b6bf8a18b37cfa099955f37b234ded6003\"\u003e\u003ccode\u003e453ed5b\u003c/code\u003e\u003c/a\u003e build: update github/codeql-action action to v4.35.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/f0f9b2dad6d47d958bf98b52452bd8c944355951\"\u003e\u003ccode\u003ef0f9b2d\u003c/code\u003e\u003c/a\u003e refactor(\u003ccode\u003e@​angular/cli\u003c/code\u003e): add validation and logging to npm manifest parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003e\u003ccode\u003ebbd63b7\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/cli\u003c/code\u003e): robustly parse npm manifest from array\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/64cbd623af655487945ecc2d26afdaea20989330\"\u003e\u003ccode\u003e64cbd62\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.10 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/6f26f4fb9aa039a1afec76e172f58a962615e236\"\u003e\u003ccode\u003e6f26f4f\u003c/code\u003e\u003c/a\u003e build: lock file maintenance\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/111dcc3118d46c60143b1a10bf919a0ef76ec54a\"\u003e\u003ccode\u003e111dcc3\u003c/code\u003e\u003c/a\u003e refactor(\u003ccode\u003e@​angular/cli\u003c/code\u003e): re-add resolveModule for find examples tool\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular-cli/compare/v21.2.5...v21.2.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-eslint/builder` from 21.3.1 to 21.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e@​angular-eslint/builder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.4.0\u003c/h2\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [cyclomatic-complexity] add \u003ccode\u003evariant\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.57.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.6 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.1.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.8 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.58.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2984\"\u003e#2984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.9 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.59.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.11 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3019\"\u003e#3019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.3.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e append fixes in prefer-on-push-change-detection, use-injectable-provided-in (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2969\"\u003e#2969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-template-literal] do not check inline templates (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [no-non-null-assertion] report nested arrays (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [eqeqeq]  could not destructure null (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eschematics:\u003c/strong\u003e sync application schema with upstream \u003ccode\u003e@​schematics/angular\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003cli\u003egithubuser578 \u003ca href=\"https://github.com/githubuser578\"\u003e\u003ccode\u003e@​githubuser578\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e@​angular-eslint/builder's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/0a774c724574c3c35acf9ba432f60269e7418938\"\u003e\u003ccode\u003e0a774c7\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/cea1779a056ce7e16b80b017630b625e375e6ba6\"\u003e\u003ccode\u003ecea1779\u003c/code\u003e\u003c/a\u003e feat(builder): add apply-suppressions option (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/28434e76fde2d26e3c009749dd4cc20a9604fa15\"\u003e\u003ccode\u003e28434e7\u003c/code\u003e\u003c/a\u003e chore: update swc monorepo (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2987\"\u003e#2987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.4.0/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-eslint/eslint-plugin` from 21.3.1 to 21.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e@​angular-eslint/eslint-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.4.0\u003c/h2\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [cyclomatic-complexity] add \u003ccode\u003evariant\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.57.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.6 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.1.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.8 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.58.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2984\"\u003e#2984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.9 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.59.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.11 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3019\"\u003e#3019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.3.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e append fixes in prefer-on-push-change-detection, use-injectable-provided-in (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2969\"\u003e#2969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-template-literal] do not check inline templates (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [no-non-null-assertion] report nested arrays (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [eqeqeq]  could not destructure null (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eschematics:\u003c/strong\u003e sync application schema with upstream \u003ccode\u003e@​schematics/angular\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003cli\u003egithubuser578 \u003ca href=\"https://github.com/githubuser578\"\u003e\u003ccode\u003e@​githubuser578\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md\"\u003e@​angular-eslint/eslint-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e append fixes in prefer-on-push-change-detection, use-injectable-provided-in (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2969\"\u003e#2969\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/0a774c724574c3c35acf9ba432f60269e7418938\"\u003e\u003ccode\u003e0a774c7\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/ad2b76e4059c9d1e1ddbcf7f40c120f918d8ee59\"\u003e\u003ccode\u003ead2b76e\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): append fixes in prefer-on-push-change-detection, use-inje...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.4.0/packages/eslint-plugin\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-eslint/eslint-plugin-template` from 21.3.1 to 21.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e@​angular-eslint/eslint-plugin-template's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.4.0\u003c/h2\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [cyclomatic-complexity] add \u003ccode\u003evariant\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.57.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.6 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.1.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.8 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.58.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2984\"\u003e#2984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.9 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.59.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.11 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3019\"\u003e#3019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.3.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e append fixes in prefer-on-push-change-detection, use-injectable-provided-in (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2969\"\u003e#2969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-template-literal] do not check inline templates (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [no-non-null-assertion] report nested arrays (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [eqeqeq]  could not destructure null (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eschematics:\u003c/strong\u003e sync application schema with upstream \u003ccode\u003e@​schematics/angular\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003cli\u003egithubuser578 \u003ca href=\"https://github.com/githubuser578\"\u003e\u003ccode\u003e@​githubuser578\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/CHANGELOG.md\"\u003e@​angular-eslint/eslint-plugin-template's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [cyclomatic-complexity] add \u003ccode\u003evariant\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-template-literal] do not check inline templates (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [eqeqeq] could not destructure null (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [no-non-null-assertion] report nested arrays (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egithubuser578 \u003ca href=\"https://github.com/githubuser578\"\u003e\u003ccode\u003e@​githubuser578\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/0a774c724574c3c35acf9ba432f60269e7418938\"\u003e\u003ccode\u003e0a774c7\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/bfd04b2426611e2acab48e776d99a6546d00cf42\"\u003e\u003ccode\u003ebfd04b2\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [prefer-template-literal] do not check inline templates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/d8a063c15cf7db8c1c4a2f19e689805a9c80e0be\"\u003e\u003ccode\u003ed8a063c\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin-template): [eqeqeq]  could not destructure null (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template/issues/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/24373da714b8392cbb4d1c7af0dde78735e42604\"\u003e\u003ccode\u003e24373da\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin-template): [no-non-null-assertion] report nested arrays (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/bf94ba7cf1fca8465053d05d72322cc1440e0d38\"\u003e\u003ccode\u003ebf94ba7\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin-template): [cyclomatic-complexity] add \u003ccode\u003evariant\u003c/code\u003e option (#...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.4.0/packages/eslint-plugin-template\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-eslint/schematics` from 21.3.1 to 21.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e@​angular-eslint/schematics's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.4.0\u003c/h2\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [cyclomatic-complexity] add \u003ccode\u003evariant\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.57.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.6 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.1.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.8 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.58.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2984\"\u003e#2984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.9 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.59.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.11 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3019\"\u003e#3019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.3.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e append fixes in prefer-on-push-change-detection, use-injectable-provided-in (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2969\"\u003e#2969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-template-literal] do not check inline templates (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [no-non-null-assertion] report nested arrays (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [eqeqeq]  could not destructure null (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eschematics:\u003c/strong\u003e sync application schema with upstream \u003ccode\u003e@​schematics/angular\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003cli\u003egithubuser578 \u003ca href=\"https://github.com/githubuser578\"\u003e\u003ccode\u003e@​githubuser578\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/schematics/CHANGELOG.md\"\u003e@​angular-eslint/schematics's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eschematics:\u003c/strong\u003e sync application schema ...\n\n_Description has been truncated_","html_url":"https://github.com/b310-digital/teammapper/pull/1297","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/b310-digital%2Fteammapper/issues/1297","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1297/packages"},{"uuid":"4464460890","node_id":"PR_kwDORN0lL87caz4_","number":277,"state":"closed","title":"chore(deps)(deps-dev): bump @angular-eslint/builder from 21.3.1 to 21.4.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-18T01:19:40.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-17T18:04:34.000Z","updated_at":"2026-05-18T01:19:42.000Z","time_to_close":26106,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps-dev)","packages":[{"name":"@angular-eslint/builder","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":null,"ecosystem":"npm"},"body":"Bumps [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) from 21.3.1 to 21.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e@​angular-eslint/builder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.4.0\u003c/h2\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [cyclomatic-complexity] add \u003ccode\u003evariant\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.57.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.6 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.1.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.8 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.58.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2984\"\u003e#2984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.9 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.59.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.11 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3019\"\u003e#3019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.3.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e append fixes in prefer-on-push-change-detection, use-injectable-provided-in (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2969\"\u003e#2969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-template-literal] do not check inline templates (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [no-non-null-assertion] report nested arrays (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [eqeqeq]  could not destructure null (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eschematics:\u003c/strong\u003e sync application schema with upstream \u003ccode\u003e@​schematics/angular\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003cli\u003egithubuser578 \u003ca href=\"https://github.com/githubuser578\"\u003e\u003ccode\u003e@​githubuser578\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e@​angular-eslint/builder's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/0a774c724574c3c35acf9ba432f60269e7418938\"\u003e\u003ccode\u003e0a774c7\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/cea1779a056ce7e16b80b017630b625e375e6ba6\"\u003e\u003ccode\u003ecea1779\u003c/code\u003e\u003c/a\u003e feat(builder): add apply-suppressions option (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/28434e76fde2d26e3c009749dd4cc20a9604fa15\"\u003e\u003ccode\u003e28434e7\u003c/code\u003e\u003c/a\u003e chore: update swc monorepo (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2987\"\u003e#2987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.4.0/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular-eslint/builder\u0026package-manager=npm_and_yarn\u0026previous-version=21.3.1\u0026new-version=21.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Willseed/report-via-mobile/pull/277","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Willseed%2Freport-via-mobile/issues/277","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/277/packages"},{"uuid":"4460852760","node_id":"PR_kwDOC4Vf1M7cQNG7","number":740,"state":"open","title":"Bump @angular-eslint/builder from 21.2.0 to 21.4.0","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-16T18:10:47.000Z","updated_at":"2026-05-16T18:10:48.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"@angular-eslint/builder","old_version":"21.2.0","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":null,"ecosystem":"npm"},"body":"Bumps [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) from 21.2.0 to 21.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e@​angular-eslint/builder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.4.0\u003c/h2\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [cyclomatic-complexity] add \u003ccode\u003evariant\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.57.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.6 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.1.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.8 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.58.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2984\"\u003e#2984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.9 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.59.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.11 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3019\"\u003e#3019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.3.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e append fixes in prefer-on-push-change-detection, use-injectable-provided-in (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2969\"\u003e#2969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-template-literal] do not check inline templates (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [no-non-null-assertion] report nested arrays (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [eqeqeq]  could not destructure null (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eschematics:\u003c/strong\u003e sync application schema with upstream \u003ccode\u003e@​schematics/angular\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003cli\u003egithubuser578 \u003ca href=\"https://github.com/githubuser578\"\u003e\u003ccode\u003e@​githubuser578\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev21.3.1\u003c/h2\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.0.3 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2949\"\u003e#2949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2954\"\u003e#2954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] properly handle statements with unary operators (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2926\"\u003e#2926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eprefer-self-closing-tags:\u003c/strong\u003e add selectedcontent nonAriaElements (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e@​angular-eslint/builder's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/0a774c724574c3c35acf9ba432f60269e7418938\"\u003e\u003ccode\u003e0a774c7\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/cea1779a056ce7e16b80b017630b625e375e6ba6\"\u003e\u003ccode\u003ecea1779\u003c/code\u003e\u003c/a\u003e feat(builder): add apply-suppressions option (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/28434e76fde2d26e3c009749dd4cc20a9604fa15\"\u003e\u003ccode\u003e28434e7\u003c/code\u003e\u003c/a\u003e chore: update swc monorepo (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2987\"\u003e#2987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/8f2afdce28d4cbdac792465b33aff35915af23b5\"\u003e\u003ccode\u003e8f2afdc\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/77099ee61cda76136038dce9f21d3af6071a7d06\"\u003e\u003ccode\u003e77099ee\u003c/code\u003e\u003c/a\u003e chore: ensure dist artifacts are available for e2e publishing in DTE (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/af8900f087b09556bfaddd815ce483bf7b0262ea\"\u003e\u003ccode\u003eaf8900f\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix: narrow build target cache outputs to avoid clobbering compile ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/7e173918eb48b2db41ce4d5a934567dab26fe54b\"\u003e\u003ccode\u003e7e17391\u003c/code\u003e\u003c/a\u003e fix: narrow build target cache outputs to avoid clobbering compile artifacts ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/a959e4d2804bbeb3cbc7caaa9c2fb2be9da3348e\"\u003e\u003ccode\u003ea959e4d\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/5c214854f897cb698563f53db6b9bddfb23e4d8e\"\u003e\u003ccode\u003e5c21485\u003c/code\u003e\u003c/a\u003e chore(builder): change builder tests to be cross-platform (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/3ef7fb157e866d76ae76d41b706b92efbd54d72d\"\u003e\u003ccode\u003e3ef7fb1\u003c/code\u003e\u003c/a\u003e feat: add support for ESLint v10 (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.4.0/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular-eslint/builder\u0026package-manager=npm_and_yarn\u0026previous-version=21.2.0\u0026new-version=21.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/michaelsouellette/michaelsouellette.github.io/pull/740","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelsouellette%2Fmichaelsouellette.github.io/issues/740","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/740/packages"},{"uuid":"4458195457","node_id":"PR_kwDOPl75Hc7cIVp5","number":40,"state":"closed","title":"chore(deps): bump the npm-non-major group with 22 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-23T02:18:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-16T02:20:10.000Z","updated_at":"2026-05-23T02:18:53.000Z","time_to_close":604722,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"npm-non-major","update_count":22,"packages":[{"name":"eslint-plugin-storybook","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@angular-eslint/builder","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular/aria","old_version":"21.2.10","new_version":"21.2.11","repository_url":"https://github.com/angular/components"},{"name":"@angular/build","old_version":"21.2.3","new_version":"21.2.11","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/cdk","old_version":"21.2.10","new_version":"21.2.11","repository_url":"https://github.com/angular/components"},{"name":"@angular/cli","old_version":"21.2.10","new_version":"21.2.11","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/common","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler-cli","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/core","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/forms","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/router","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@storybook/addon-a11y","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/angular","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@types/node","old_version":"25.6.2","new_version":"25.8.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"angular-eslint","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"eslint","old_version":"10.3.0","new_version":"10.4.0","repository_url":"https://github.com/eslint/eslint"},{"name":"storybook","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"typescript-eslint","old_version":"8.59.2","new_version":"8.59.3","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"vitest","old_version":"4.1.5","new_version":"4.1.6","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"ws","old_version":"8.20.0","new_version":"8.20.1","repository_url":"https://github.com/websockets/ws"}],"path":null,"ecosystem":"npm"},"body":"Bumps the npm-non-major group with 22 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [eslint-plugin-storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/eslint-plugin) | `10.3.6` | `10.4.0` |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `21.3.1` | `21.4.0` |\n| [@angular/aria](https://github.com/angular/components) | `21.2.10` | `21.2.11` |\n| [@angular/build](https://github.com/angular/angular-cli) | `21.2.3` | `21.2.11` |\n| [@angular/cdk](https://github.com/angular/components) | `21.2.10` | `21.2.11` |\n| [@angular/cli](https://github.com/angular/angular-cli) | `21.2.10` | `21.2.11` |\n| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `21.2.12` | `21.2.13` |\n| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `21.2.12` | `21.2.13` |\n| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `21.2.12` | `21.2.13` |\n| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `21.2.12` | `21.2.13` |\n| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `21.2.12` | `21.2.13` |\n| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `21.2.12` | `21.2.13` |\n| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `21.2.12` | `21.2.13` |\n| [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `10.3.6` | `10.4.0` |\n| [@storybook/angular](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/angular) | `10.3.6` | `10.4.0` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.6.2` | `25.8.0` |\n| [angular-eslint](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/angular-eslint) | `21.3.1` | `21.4.0` |\n| [eslint](https://github.com/eslint/eslint) | `10.3.0` | `10.4.0` |\n| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/core) | `10.3.6` | `10.4.0` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.59.2` | `8.59.3` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.5` | `4.1.6` |\n| [ws](https://github.com/websockets/ws) | `8.20.0` | `8.20.1` |\n\nUpdates `eslint-plugin-storybook` from 10.3.6 to 10.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/storybookjs/storybook/releases\"\u003eeslint-plugin-storybook's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.4.0\u003c/h2\u003e\n\u003ch2\u003e10.4.0\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cem\u003eAI-assisted setup, change-aware review, and stronger framework support\u003c/em\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eStorybook 10.4 contains hundreds of fixes and improvements including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e🤖 Agentic Setup: New CLI workflow for AI-assisted Storybook setup and onboarding\u003c/li\u003e\n\u003cli\u003e🔍 Change review: Sidebar filtering to highlight new, modified, and related stories based on git changes\u003c/li\u003e\n\u003cli\u003e🧭 Sidebar review tools: Status filtering, URL-persisted filters, and clearer review signals in the sidebar\u003c/li\u003e\n\u003cli\u003e⚛️ TanStack React: New `@storybook/tanstack-react` framework with routing and server function support\u003c/li\u003e\n\u003cli\u003e🧩 React MCP: Faster, more accurate component docgen powered by the TypeScript Language Server\u003c/li\u003e\n\u003cli\u003e📱 React Native: Zero config RN project initialization\u003c/li\u003e\n\u003cli\u003e🤝 Sharing: Easily publish and share your local Storybook with teammates, powered by Chromatic\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003eA11y: Add aria-live announcements via \u003ccode\u003e@​react-aria/live-announcer\u003c/code\u003e - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/33970\"\u003e#33970\u003c/a\u003e, thanks \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eA11y: Improve boolean control contrast in forced colors mode - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34204\"\u003e#34204\u003c/a\u003e, thanks \u003ca href=\"https://github.com/anchmelev\"\u003e\u003ccode\u003e@​anchmelev\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eActions: Fix state mutation and keep newest actions when limit reached - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34286\"\u003e#34286\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAddon-Docs: Add Reset story button to re-render stories in docs - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34086\"\u003e#34086\u003c/a\u003e, thanks \u003ca href=\"https://github.com/6810779s\"\u003e\u003ccode\u003e@​6810779s\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAddon-Docs: Avoid rerendering static Source blocks - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34206\"\u003e#34206\u003c/a\u003e, thanks \u003ca href=\"https://github.com/anchmelev\"\u003e\u003ccode\u003e@​anchmelev\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAddon-Vitest: Use Vitest's provide-API for injecting values - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34518\"\u003e#34518\u003c/a\u003e, thanks \u003ca href=\"https://github.com/JReinhold\"\u003e\u003ccode\u003e@​JReinhold\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAgentic Setup: Add --extensive for an extra prompt - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34730\"\u003e#34730\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAgentic Setup: Allow failed stories to persist - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34717\"\u003e#34717\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAgentic Setup: Keep sample content if users want onboarding - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34704\"\u003e#34704\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAgentic Setup: Rework ai-init-opt-in logic - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34739\"\u003e#34739\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAngular: Use Story ID for renderer IDs (including standalone stories) - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/33982\"\u003e#33982\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ValentinFunk\"\u003e\u003ccode\u003e@​ValentinFunk\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAutomigration: Move RN on-device addons to `deviceAddons` - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34659\"\u003e#34659\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ndelangen\"\u003e\u003ccode\u003e@​ndelangen\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eBuilder-Vite: Add onModuleGraphChange method - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34323\"\u003e#34323\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ghengeveld\"\u003e\u003ccode\u003e@​ghengeveld\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Add automigrate check for 'storybook' package name conflict - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34290\"\u003e#34290\u003c/a\u003e, thanks \u003ca href=\"https://github.com/whdjh\"\u003e\u003ccode\u003e@​whdjh\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Add react-vite to tanstack-react automigration - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34718\"\u003e#34718\u003c/a\u003e, thanks \u003ca href=\"https://github.com/huang-julien\"\u003e\u003ccode\u003e@​huang-julien\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Change mock event detection - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34586\"\u003e#34586\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yannbf\"\u003e\u003ccode\u003e@​yannbf\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Explicitly tell whether smoke tests passed or failed - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34419\"\u003e#34419\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Fix Next.js Vite automigration corrupting configs already using `@storybook/nextjs-vite` - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34249\"\u003e#34249\u003c/a\u003e, thanks \u003ca href=\"https://github.com/nathanjessen\"\u003e\u003ccode\u003e@​nathanjessen\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Fix agentic check - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34678\"\u003e#34678\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yannbf\"\u003e\u003ccode\u003e@​yannbf\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Handle minimumReleaseAge conflicts across package managers - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34769\"\u003e#34769\u003c/a\u003e, thanks \u003ca href=\"https://github.com/JReinhold\"\u003e\u003ccode\u003e@​JReinhold\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Improve package incompatibility detection and warning - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34559\"\u003e#34559\u003c/a\u003e, thanks \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Improve self-healing scoring observability - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34699\"\u003e#34699\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yannbf\"\u003e\u003ccode\u003e@​yannbf\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Introduce Agentic Setup workflow - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34297\"\u003e#34297\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yannbf\"\u003e\u003ccode\u003e@​yannbf\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Remove extensive prompt option  - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34740\"\u003e#34740\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yannbf\"\u003e\u003ccode\u003e@​yannbf\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Streamline Node.js version detection code - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34440\"\u003e#34440\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eChange-Detection: Set GIT_OPTIONAL_LOCKS=0 to avoid blocking commits - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34726\"\u003e#34726\u003c/a\u003e, thanks \u003ca href=\"https://github.com/valentinpalkovic\"\u003e\u003ccode\u003e@​valentinpalkovic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCli: Set ai prompt to yes if yes flag for react-vite to tanstack migration - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34743\"\u003e#34743\u003c/a\u003e, thanks \u003ca href=\"https://github.com/huang-julien\"\u003e\u003ccode\u003e@​huang-julien\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCode: Fix inline code blocks inside links removing link affordance - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/33903\"\u003e#33903\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yatishgoel\"\u003e\u003ccode\u003e@​yatishgoel\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eControls: Add maxPresetColors option to ColorControl - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/33998\"\u003e#33998\u003c/a\u003e, thanks \u003ca href=\"https://github.com/mixelburg\"\u003e\u003ccode\u003e@​mixelburg\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCore: Add `ChangeDetectionService` and wire up builder-vite - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34369\"\u003e#34369\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ghengeveld\"\u003e\u003ccode\u003e@​ghengeveld\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCore: Add changeDetection feature flag - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34314\"\u003e#34314\u003c/a\u003e, thanks \u003ca href=\"https://github.com/valentinpalkovic\"\u003e\u003ccode\u003e@​valentinpalkovic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCore: Barrel-aware named import resolution for change detection - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34675\"\u003e#34675\u003c/a\u003e, thanks \u003ca href=\"https://github.com/valentinpalkovic\"\u003e\u003ccode\u003e@​valentinpalkovic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md\"\u003eeslint-plugin-storybook's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e10.4.0\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cem\u003eAI-assisted setup, change-aware review, and stronger framework support\u003c/em\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eStorybook 10.4 contains hundreds of fixes and improvements including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e🤖 Agentic Setup: New CLI workflow for AI-assisted Storybook setup and onboarding\u003c/li\u003e\n\u003cli\u003e🔍 Change review: Sidebar filtering to highlight new, modified, and related stories based on git changes\u003c/li\u003e\n\u003cli\u003e🧭 Sidebar review tools: Status filtering, URL-persisted filters, and clearer review signals in the sidebar\u003c/li\u003e\n\u003cli\u003e⚛️ TanStack React: New \u003ccode\u003e@storybook/tanstack-react\u003c/code\u003e framework with routing and server function support\u003c/li\u003e\n\u003cli\u003e🧩 React MCP: Faster, more accurate component docgen powered by the TypeScript Language Server\u003c/li\u003e\n\u003cli\u003e📱 React Native: Zero config RN project initialization\u003c/li\u003e\n\u003cli\u003e🤝 Sharing: Easily publish and share your local Storybook with teammates, powered by Chromatic\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003eA11y: Add aria-live announcements via \u003ccode\u003e@​react-aria/live-announcer\u003c/code\u003e - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/33970\"\u003e#33970\u003c/a\u003e, thanks \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eA11y: Improve boolean control contrast in forced colors mode - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34204\"\u003e#34204\u003c/a\u003e, thanks \u003ca href=\"https://github.com/anchmelev\"\u003e\u003ccode\u003e@​anchmelev\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eActions: Fix state mutation and keep newest actions when limit reached - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34286\"\u003e#34286\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAddon-Docs: Add Reset story button to re-render stories in docs - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34086\"\u003e#34086\u003c/a\u003e, thanks \u003ca href=\"https://github.com/6810779s\"\u003e\u003ccode\u003e@​6810779s\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAddon-Docs: Avoid rerendering static Source blocks - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34206\"\u003e#34206\u003c/a\u003e, thanks \u003ca href=\"https://github.com/anchmelev\"\u003e\u003ccode\u003e@​anchmelev\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAddon-Vitest: Use Vitest's provide-API for injecting values - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34518\"\u003e#34518\u003c/a\u003e, thanks \u003ca href=\"https://github.com/JReinhold\"\u003e\u003ccode\u003e@​JReinhold\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAgentic Setup: Add --extensive for an extra prompt - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34730\"\u003e#34730\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAgentic Setup: Allow failed stories to persist - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34717\"\u003e#34717\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAgentic Setup: Keep sample content if users want onboarding - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34704\"\u003e#34704\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAgentic Setup: Rework ai-init-opt-in logic - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34739\"\u003e#34739\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAngular: Use Story ID for renderer IDs (including standalone stories) - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/33982\"\u003e#33982\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ValentinFunk\"\u003e\u003ccode\u003e@​ValentinFunk\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAutomigration: Move RN on-device addons to \u003ccode\u003edeviceAddons\u003c/code\u003e - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34659\"\u003e#34659\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ndelangen\"\u003e\u003ccode\u003e@​ndelangen\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eBuilder-Vite: Add onModuleGraphChange method - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34323\"\u003e#34323\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ghengeveld\"\u003e\u003ccode\u003e@​ghengeveld\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Add automigrate check for 'storybook' package name conflict - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34290\"\u003e#34290\u003c/a\u003e, thanks \u003ca href=\"https://github.com/whdjh\"\u003e\u003ccode\u003e@​whdjh\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Add react-vite to tanstack-react automigration - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34718\"\u003e#34718\u003c/a\u003e, thanks \u003ca href=\"https://github.com/huang-julien\"\u003e\u003ccode\u003e@​huang-julien\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Change mock event detection - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34586\"\u003e#34586\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yannbf\"\u003e\u003ccode\u003e@​yannbf\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Explicitly tell whether smoke tests passed or failed - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34419\"\u003e#34419\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Fix Next.js Vite automigration corrupting configs already using \u003ccode\u003e@storybook/nextjs-vite\u003c/code\u003e - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34249\"\u003e#34249\u003c/a\u003e, thanks \u003ca href=\"https://github.com/nathanjessen\"\u003e\u003ccode\u003e@​nathanjessen\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Fix agentic check - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34678\"\u003e#34678\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yannbf\"\u003e\u003ccode\u003e@​yannbf\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Handle minimumReleaseAge conflicts across package managers - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34769\"\u003e#34769\u003c/a\u003e, thanks \u003ca href=\"https://github.com/JReinhold\"\u003e\u003ccode\u003e@​JReinhold\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Improve package incompatibility detection and warning - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34559\"\u003e#34559\u003c/a\u003e, thanks \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Improve self-healing scoring observability - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34699\"\u003e#34699\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yannbf\"\u003e\u003ccode\u003e@​yannbf\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Introduce Agentic Setup workflow - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34297\"\u003e#34297\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yannbf\"\u003e\u003ccode\u003e@​yannbf\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Remove extensive prompt option  - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34740\"\u003e#34740\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yannbf\"\u003e\u003ccode\u003e@​yannbf\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Streamline Node.js version detection code - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34440\"\u003e#34440\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eChange-Detection: Set GIT_OPTIONAL_LOCKS=0 to avoid blocking commits - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34726\"\u003e#34726\u003c/a\u003e, thanks \u003ca href=\"https://github.com/valentinpalkovic\"\u003e\u003ccode\u003e@​valentinpalkovic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCli: Set ai prompt to yes if yes flag for react-vite to tanstack migration - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34743\"\u003e#34743\u003c/a\u003e, thanks \u003ca href=\"https://github.com/huang-julien\"\u003e\u003ccode\u003e@​huang-julien\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCode: Fix inline code blocks inside links removing link affordance - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/33903\"\u003e#33903\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yatishgoel\"\u003e\u003ccode\u003e@​yatishgoel\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eControls: Add maxPresetColors option to ColorControl - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/33998\"\u003e#33998\u003c/a\u003e, thanks \u003ca href=\"https://github.com/mixelburg\"\u003e\u003ccode\u003e@​mixelburg\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCore: Add \u003ccode\u003eChangeDetectionService\u003c/code\u003e and wire up builder-vite - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34369\"\u003e#34369\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ghengeveld\"\u003e\u003ccode\u003e@​ghengeveld\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCore: Add changeDetection feature flag - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34314\"\u003e#34314\u003c/a\u003e, thanks \u003ca href=\"https://github.com/valentinpalkovic\"\u003e\u003ccode\u003e@​valentinpalkovic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCore: Barrel-aware named import resolution for change detection - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34675\"\u003e#34675\u003c/a\u003e, thanks \u003ca href=\"https://github.com/valentinpalkovic\"\u003e\u003ccode\u003e@​valentinpalkovic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCore: Ensure process termination on SIGINT when telemetry is disabled - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34585\"\u003e#34585\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ghengeveld\"\u003e\u003ccode\u003e@​ghengeveld\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/storybookjs/storybook/commit/f8c16d115cfcf0f79125b358266c37e5343bb70d\"\u003e\u003ccode\u003ef8c16d1\u003c/code\u003e\u003c/a\u003e Bump version from \u0026quot;10.4.0-beta.0\u0026quot; to \u0026quot;10.4.0\u0026quot; [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/storybookjs/storybook/commit/e02da0b0d4cf9673999184b8f11c85b026954b69\"\u003e\u003ccode\u003ee02da0b\u003c/code\u003e\u003c/a\u003e Bump version from \u0026quot;10.4.0-alpha.19\u0026quot; to \u0026quot;10.4.0-beta.0\u0026quot; [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/storybookjs/storybook/commit/429fb3e42609382e9d578cce3c8aa9817182c3c1\"\u003e\u003ccode\u003e429fb3e\u003c/code\u003e\u003c/a\u003e Bump version from \u0026quot;10.4.0-alpha.18\u0026quot; to \u0026quot;10.4.0-alpha.19\u0026quot; [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/storybookjs/storybook/commit/488dd0840b7e489b33c2c65975a195bcc991bec7\"\u003e\u003ccode\u003e488dd08\u003c/code\u003e\u003c/a\u003e Bump version from \u0026quot;10.4.0-alpha.17\u0026quot; to \u0026quot;10.4.0-alpha.18\u0026quot; [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/storybookjs/storybook/commit/f191df779aabd461fa3f5e65f57f2171681db255\"\u003e\u003ccode\u003ef191df7\u003c/code\u003e\u003c/a\u003e Bump version from \u0026quot;10.4.0-alpha.16\u0026quot; to \u0026quot;10.4.0-alpha.17\u0026quot; [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/storybookjs/storybook/commit/a80ca8fde2b65dfd5fcfc53f629dd3f39f733cc5\"\u003e\u003ccode\u003ea80ca8f\u003c/code\u003e\u003c/a\u003e Bump version from \u0026quot;10.4.0-alpha.15\u0026quot; to \u0026quot;10.4.0-alpha.16\u0026quot; [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/storybookjs/storybook/commit/c212c9e59bbc6ce27ad996bdc53a2b77436b83a3\"\u003e\u003ccode\u003ec212c9e\u003c/code\u003e\u003c/a\u003e refactor: fully move to oxfmt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/storybookjs/storybook/commit/a5e4fb5eb888e45c18e9b98f9910879f66259b61\"\u003e\u003ccode\u003ea5e4fb5\u003c/code\u003e\u003c/a\u003e Merge branch 'next' into chore/docs_oxfmt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/storybookjs/storybook/commit/fa7a92601b96887144f2b38c1e686e26e11ae41e\"\u003e\u003ccode\u003efa7a926\u003c/code\u003e\u003c/a\u003e fix: make docs generation oxfmt friendly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/storybookjs/storybook/commit/f1363a4c1eaabffb2d5d63b63e77e1beb9f8d68e\"\u003e\u003ccode\u003ef1363a4\u003c/code\u003e\u003c/a\u003e Bump version from \u0026quot;10.4.0-alpha.14\u0026quot; to \u0026quot;10.4.0-alpha.15\u0026quot; [skip ci]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/storybookjs/storybook/commits/v10.4.0/code/lib/eslint-plugin\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-eslint/builder` from 21.3.1 to 21.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e@​angular-eslint/builder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.4.0\u003c/h2\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [cyclomatic-complexity] add \u003ccode\u003evariant\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.57.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.6 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.1.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.8 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.58.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2984\"\u003e#2984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.9 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.59.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.11 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3019\"\u003e#3019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.3.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e append fixes in prefer-on-push-change-detection, use-injectable-provided-in (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2969\"\u003e#2969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-template-literal] do not check inline templates (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [no-non-null-assertion] report nested arrays (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [eqeqeq]  could not destructure null (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eschematics:\u003c/strong\u003e sync application schema with upstream \u003ccode\u003e@​schematics/angular\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003cli\u003egithubuser578 \u003ca href=\"https://github.com/githubuser578\"\u003e\u003ccode\u003e@​githubuser578\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e@​angular-eslint/builder's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/0a774c724574c3c35acf9ba432f60269e7418938\"\u003e\u003ccode\u003e0a774c7\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/cea1779a056ce7e16b80b017630b625e375e6ba6\"\u003e\u003ccode\u003ecea1779\u003c/code\u003e\u003c/a\u003e feat(builder): add apply-suppressions option (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/28434e76fde2d26e3c009749dd4cc20a9604fa15\"\u003e\u003ccode\u003e28434e7\u003c/code\u003e\u003c/a\u003e chore: update swc monorepo (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2987\"\u003e#2987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.4.0/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/aria` from 21.2.10 to 21.2.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/releases\"\u003e@​angular/aria's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.11\u003c/h2\u003e\n\u003cp\u003eNo user facing changes in this release\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/blob/main/CHANGELOG.md\"\u003e@​angular/aria's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.11 \u0026quot;crystal ball\u0026quot; (2026-05-13)\u003c/h1\u003e\n\u003cp\u003eNo user facing changes in this release\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.8 \u0026quot;plastic-wallaby\u0026quot; (2026-05-06)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003earia\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe legacy combobox and autocomplete implementations have been removed. Use the new standalone combobox instead.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efeat(aria/combobox): promote simple-combobox to stable un-prefixed combobox\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eRelocates public, private, and example directories to clean \u003ccode\u003ecombobox\u003c/code\u003e entry points.\u003c/li\u003e\n\u003cli\u003eRenames internal layout symbols, selectors, and uppercase tokens (\u003ccode\u003eSIMPLE_COMBOBOX_POPUP\u003c/code\u003e -\u0026gt; \u003ccode\u003eCOMBOBOX_POPUP\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eEstablishes full documentation extraction parity with the \u003ccode\u003ejson_api\u003c/code\u003e Bazel rule target.\u003c/li\u003e\n\u003cli\u003eStandardizes the accompanying toolbar component showcase into the clean \u003ccode\u003earia-toolbar\u003c/code\u003e path.\u003c/li\u003e\n\u003cli\u003eRe-routes dev-app navigation links and migrates public API golden records.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eSimpleCombobox\u003c/code\u003e has been promoted to \u003ccode\u003eCombobox\u003c/code\u003e. All \u003ccode\u003esimple-combobox\u003c/code\u003e prefixed symbols, selectors, and tokens have been renamed to use the \u003ccode\u003ecombobox\u003c/code\u003e prefix.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(aria/combobox): relocate and restructure autocomplete and toolbar examples\nRelocate the autocomplete examples to \u003ccode\u003esrc/components-examples/aria/autocomplete\u003c/code\u003e and toolbar examples to \u003ccode\u003esrc/components-examples/aria/toolbar\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eRestore naming continuity with the historical codebase by stripping redundant prefixes from example filenames and component selectors.\u003c/li\u003e\n\u003cli\u003eSync dev-app preview routing layout paths and strict Bazel target dependency links.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eCDK_DESCRIBEDBY_HOST_ATTRIBUTE\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCDK_DESCRIBEDBY_ID_PREFIX\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003einjector\u003c/code\u003e parameter of the \u003ccode\u003eConfigurableFocusTrap\u003c/code\u003e and \u003ccode\u003eFocusTrap\u003c/code\u003e constructors is now required.\u003c/li\u003e\n\u003cli\u003eThe boolean parameter of \u003ccode\u003eConfigurableFocusTrapFactory.create\u003c/code\u003e has been replaced with a config object.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMESSAGES_CONTAINER_ID\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eevent\u003c/code\u003e parameter of \u003ccode\u003eDropListRef.drop\u003c/code\u003e is now required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eContextMenuTracker\u003c/code\u003e has been renamed to \u003ccode\u003eMenuTracker\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eMatListOption.checkboxPosition\u003c/code\u003e has been removed. use \u003ccode\u003etogglePosition\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMatListOptionCheckboxPosition\u003c/code\u003e has been renamed to \u003ccode\u003eMatListOptionTogglePosition\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eArrowViewState\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eArrowViewStateTransition\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003egoogle-maps\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/b8201edeef62258c3d1e1ebeaf8ee14766918c22\"\u003eb8201edee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edeprecate heatmap layer (\u003ca href=\"https://redirect.github.com/angular/components/pull/33208\"\u003e#33208\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/add8f16c01ad683b9e2ab9e1bf5ad3a984dd9921\"\u003eadd8f16c0\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003elist:\u003c/strong\u003e breaking changes for v22\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/9d73c98b57d46454d51344bbd59055bc06dabc6b\"\u003e9d73c98b5\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003emenu:\u003c/strong\u003e missing panelClass getter (\u003ca href=\"https://redirect.github.com/angular/components/pull/33191\"\u003e#33191\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/75718e4fbebce2a7f8aa30550a12d58a5a6f9b93\"\u003e75718e4fb\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esort:\u003c/strong\u003e breaking changes for v22\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/1238d1573e706cbf0a2cabcc97e59d28a9499ecb\"\u003e\u003ccode\u003e1238d15\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.11 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/components/compare/v21.2.10...v21.2.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/build` from 21.2.3 to 21.2.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular-cli/releases\"\u003e@​angular/build's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.11\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003e\u003cimg src=\"https://img.shields.io/badge/bbd63b7a5-fix-green\" alt=\"fix - bbd63b7a5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erobustly parse npm manifest from array\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003e\u003cimg src=\"https://img.shields.io/badge/eafe1a719-fix-green\" alt=\"fix - eafe1a719\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e\u003cimg src=\"https://img.shields.io/badge/7a116a80d-fix-green\" alt=\"fix - 7a116a80d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove stateful flag from URL_PARAMETER_REGEXP\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.10\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bb861191328fc2d25bd5ee99b0c8edc5e49d3a7d\"\u003e\u003cimg src=\"https://img.shields.io/badge/bb8611913-fix-green\" alt=\"fix - bb8611913\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erestrict MCP workspace access to allowed client roots during resolution\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.9\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​schematics/angular\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/e7abeb5c74024daf125070c9b4f7f8d2426bab66\"\u003e\u003cimg src=\"https://img.shields.io/badge/e7abeb5c7-fix-green\" alt=\"fix - e7abeb5c7\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd missing imports for focus and skip APIs in refactor-jasmine-vitest\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/233deef01288c6aa39a048d6bd66a1f09595dc15\"\u003e\u003cimg src=\"https://img.shields.io/badge/233deef01-fix-green\" alt=\"fix - 233deef01\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix broken img ref in ai-tutor\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7cea9885c64a747b391b74e6434cdf005c843766\"\u003e\u003cimg src=\"https://img.shields.io/badge/7cea9885c-fix-green\" alt=\"fix - 7cea9885c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eintroduce initial package manager workspace awareness\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/5b1a5b7434323eb383df1f53c389fe9dc948a785\"\u003e\u003cimg src=\"https://img.shields.io/badge/5b1a5b743-fix-green\" alt=\"fix - 5b1a5b743\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove standalone true ref in ai tutor\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/94023f62c5b51a669ff3187cc062057f82c79c52\"\u003e\u003cimg src=\"https://img.shields.io/badge/94023f62c-fix-green\" alt=\"fix - 94023f62c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eintroduce trustProxyHeaders option to safely validate and sanitize proxy headers\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/5ffe5c309a92e7fd42f1059171924c5942f35c36\"\u003e\u003cimg src=\"https://img.shields.io/badge/5ffe5c309-fix-green\" alt=\"fix - 5ffe5c309\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd support for configuring trusted proxy headers via environment variable\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/930ada9b73c5172d57830ce42a5a336ae9483a54\"\u003e\u003cimg src=\"https://img.shields.io/badge/930ada9b7-fix-green\" alt=\"fix - 930ada9b7\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edecode route segments when building and matching route tree\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/0dc8a440ca9e4242edb69ba5a8147fef1dddc4f0\"\u003e\u003cimg src=\"https://img.shields.io/badge/0dc8a440c-fix-green\" alt=\"fix - 0dc8a440c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003euse router to normalize URLs for comparison\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.8\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/e91280c05afe7b35b4f01e0eb2800f1ee21fd2ea\"\u003e\u003cimg src=\"https://img.shields.io/badge/e91280c05-fix-green\" alt=\"fix - e91280c05\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edynamically resolve project Angular CLI executable inside MCP tools\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/01af6741bfe489c3c8fd86feab8b5f14cdb92562\"\u003e\u003cimg src=\"https://img.shields.io/badge/01af6741b-fix-green\" alt=\"fix - 01af6741b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eignore EBADF file system errors during MCP project scan\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/f7a3e6ed871ff711723dcfdbaa8c3ae497f89a5b\"\u003e\u003cimg src=\"https://img.shields.io/badge/f7a3e6ed8-fix-green\" alt=\"fix - f7a3e6ed8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003euse headless option in MCP test tool\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular-devkit/build-angular\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/00336c037dd77d2b441f797580eb8a12c044006b\"\u003e\u003cimg src=\"https://img.shields.io/badge/00336c037-fix-green\" alt=\"fix - 00336c037\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure route has leading slash in prerender builder\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/e87d302d6df3f4d9fa9338e3d377e09a2e161fc1\"\u003e\u003cimg src=\"https://img.shields.io/badge/e87d302d6-fix-green\" alt=\"fix - e87d302d6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix app-shell route format and\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/build\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular-cli/blob/main/CHANGELOG.md\"\u003e@​angular/build's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.11 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003ebbd63b7a5\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erobustly parse npm manifest from array\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003eeafe1a719\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e7a116a80d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove stateful flag from URL_PARAMETER_REGEXP\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.26 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7cc1871ee50d123853ddf6bd89857b354d647462\"\u003e7cc1871ee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.26 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/842fee0291b787b63fdabcaaac5680b05d395075\"\u003e842fee029\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e21.2.10 (2026-05-06)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bb861191328fc2d25bd5ee99b0c8edc5e49d3a7d\"\u003ebb8611913\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erestrict MCP workspace access to allowed client roots during resolution\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/00e366320108b39e60e67d28d45e5bcc6a044546\"\u003e\u003ccode\u003e00e3663\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.11 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003e\u003ccode\u003eeafe1a7\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/ssr\u003c/code\u003e): allow all hosts in common engine rendering options to prev...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e\u003ccode\u003e7a116a8\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/ssr\u003c/code\u003e): remove stateful flag from URL_PARAMETER_REGEXP\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/a7705fb96a27965b20365b04c79f0e2f386dfd95\"\u003e\u003ccode\u003ea7705fb\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/453ed5b6bf8a18b37cfa099955f37b234ded6003\"\u003e\u003ccode\u003e453ed5b\u003c/code\u003e\u003c/a\u003e build: update github/codeql-action action to v4.35.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/f0f9b2dad6d47d958bf98b52452bd8c944355951\"\u003e\u003ccode\u003ef0f9b2d\u003c/code\u003e\u003c/a\u003e refactor(\u003ccode\u003e@​angular/cli\u003c/code\u003e): add validation and logging to npm manifest parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003e\u003ccode\u003ebbd63b7\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/cli\u003c/code\u003e): robustly parse npm manifest from array\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/64cbd623af655487945ecc2d26afdaea20989330\"\u003e\u003ccode\u003e64cbd62\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.10 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/6f26f4fb9aa039a1afec76e172f58a962615e236\"\u003e\u003ccode\u003e6f26f4f\u003c/code\u003e\u003c/a\u003e build: lock file maintenance\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/111dcc3118d46c60143b1a10bf919a0ef76ec54a\"\u003e\u003ccode\u003e111dcc3\u003c/code\u003e\u003c/a\u003e refactor(\u003ccode\u003e@​angular/cli\u003c/code\u003e): re-add resolveModule for find examples tool\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular-cli/compare/v21.2.3...v21.2.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/cdk` from 21.2.10 to 21.2.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/releases\"\u003e@​angular/cdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.11\u003c/h2\u003e\n\u003cp\u003eNo user facing changes in this release\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/blob/main/CHANGELOG.md\"\u003e@​angular/cdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.11 \u0026quot;crystal ball\u0026quot; (2026-05-13)\u003c/h1\u003e\n\u003cp\u003eNo user facing changes in this release\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.8 \u0026quot;plastic-wallaby\u0026quot; (2026-05-06)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003earia\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe legacy combobox and autocomplete implementations have been removed. Use the new standalone combobox instead.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efeat(aria/combobox): promote simple-combobox to stable un-prefixed combobox\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eRelocates public, private, and example directories to clean \u003ccode\u003ecombobox\u003c/code\u003e entry points.\u003c/li\u003e\n\u003cli\u003eRenames internal layout symbols, selectors, and uppercase tokens (\u003ccode\u003eSIMPLE_COMBOBOX_POPUP\u003c/code\u003e -\u0026gt; \u003ccode\u003eCOMBOBOX_POPUP\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eEstablishes full documentation extraction parity with the \u003ccode\u003ejson_api\u003c/code\u003e Bazel rule target.\u003c/li\u003e\n\u003cli\u003eStandardizes the accompanying toolbar component showcase into the clean \u003ccode\u003earia-toolbar\u003c/code\u003e path.\u003c/li\u003e\n\u003cli\u003eRe-routes dev-app navigation links and migrates public API golden records.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eSimpleCombobox\u003c/code\u003e has been promoted to \u003ccode\u003eCombobox\u003c/code\u003e. All \u003ccode\u003esimple-combobox\u003c/code\u003e prefixed symbols, selectors, and tokens have been renamed to use the \u003ccode\u003ecombobox\u003c/code\u003e prefix.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(aria/combobox): relocate and restructure autocomplete and toolbar examples\nRelocate the autocomplete examples to \u003ccode\u003esrc/components-examples/aria/autocomplete\u003c/code\u003e and toolbar examples to \u003ccode\u003esrc/components-examples/aria/toolbar\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eRestore naming continuity with the historical codebase by stripping redundant prefixes from example filenames and component selectors.\u003c/li\u003e\n\u003cli\u003eSync dev-app preview routing layout paths and strict Bazel target dependency links.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eCDK_DESCRIBEDBY_HOST_ATTRIBUTE\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCDK_DESCRIBEDBY_ID_PREFIX\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003einjector\u003c/code\u003e parameter of the \u003ccode\u003eConfigurableFocusTrap\u003c/code\u003e and \u003ccode\u003eFocusTrap\u003c/code\u003e constructors is now required.\u003c/li\u003e\n\u003cli\u003eThe boolean parameter of \u003ccode\u003eConfigurableFocusTrapFactory.create\u003c/code\u003e has been replaced with a config object.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMESSAGES_CONTAINER_ID\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eevent\u003c/code\u003e parameter of \u003ccode\u003eDropListRef.drop\u003c/code\u003e is now required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eContextMenuTracker\u003c/code\u003e has been renamed to \u003ccode\u003eMenuTracker\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eMatListOption.checkboxPosition\u003c/code\u003e has been removed. use \u003ccode\u003etogglePosition\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMatListOptionCheckboxPosition\u003c/code\u003e has been renamed to \u003ccode\u003eMatListOptionTogglePosition\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eArrowViewState\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eArrowViewStateTransition\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003egoogle-maps\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/b8201edeef62258c3d1e1ebeaf8ee14766918c22\"\u003eb8201edee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edeprecate heatmap layer (\u003ca href=\"https://redirect.github.com/angular/components/pull/33208\"\u003e#33208\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/add8f16c01ad683b9e2ab9e1bf5ad3a984dd9921\"\u003eadd8f16c0\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003elist:\u003c/strong\u003e breaking changes for v22\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/9d73c98b57d46454d51344bbd59055bc06dabc6b\"\u003e9d73c98b5\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003emenu:\u003c/strong\u003e missing panelClass getter (\u003ca href=\"https://redirect.github.com/angular/components/pull/33191\"\u003e#33191\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/75718e4fbebce2a7f8aa30550a12d58a5a6f9b93\"\u003e75718e4fb\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esort:\u003c/strong\u003e breaking changes for v22\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/1238d1573e706cbf0a2cabcc97e59d28a9499ecb\"\u003e\u003ccode\u003e1238d15\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.11 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/components/compare/v21.2.10...v21.2.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/cli` from 21.2.10 to 21.2.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular-cli/releases\"\u003e@​angular/cli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.11\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003e\u003cimg src=\"https://img.shields.io/badge/bbd63b7a5-fix-green\" alt=\"fix - bbd63b7a5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erobustly parse npm manifest from array\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003e\u003cimg src=\"https://img.shields.io/badge/eafe1a719-fix-green\" alt=\"fix - eafe1a719\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e\u003cimg src=\"https://img.shields.io/badge/7a116a80d-fix-green\" alt=\"fix - 7a116a80d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove stateful flag from URL_PARAMETER_REGEXP\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular-cli/blob/main/CHANGELOG.md\"\u003e@​angular/cli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.11 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003ebbd63b7a5\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erobustly parse npm manifest from array\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003eeafe1a719\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e7a116a80d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove stateful flag from URL_PARAMETER_REGEXP\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.26 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7cc1871ee50d123853ddf6bd89857b354d647462\"\u003e7cc1871ee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.26 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/842fee0291b787b63fdabcaaac5680b05d395075\"\u003e842fee029\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/00e366320108b39e60e67d28d45e5bcc6a044546\"\u003e\u003ccode\u003e00e3663\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.11 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003e\u003ccode\u003eeafe1a7\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/ssr\u003c/code\u003e): allow all hosts in common engine rendering options to prev...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e\u003ccode\u003e7a116a8\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/ssr\u003c/code\u003e): remove stateful flag from URL_PARAMETER_REGEXP\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/a7705fb96a27965b20365b04c79f0e2f386dfd95\"\u003e\u003ccode\u003ea7705fb\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/453ed5b6bf8a18b37cfa099955f37b234ded6003\"\u003e\u003ccode\u003e453ed5b\u003c/code\u003e\u003c/a\u003e build: update github/codeql-action action to v4.35.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/f0f9b2dad6d47d958bf98b52452bd8c944355951\"\u003e\u003ccode\u003ef0f9b2d\u003c/code\u003e\u003c/a\u003e refactor(\u003ccode\u003e@​angular/cli\u003c/code\u003e): add validation and logging to npm manifest parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003e\u003ccode\u003ebbd63b7\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/cli\u003c/code\u003e): robustly parse npm manifest from array\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular-cli/compare/v21.2.10...v21.2.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/common` from 21.2.12 to 21.2.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/common's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/common's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.22 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/83a640516f7b1fff4dfb0fd0ed8b19876bdb00c4\"\u003e83a640516f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/24a0103a9898b1547f5d1f57314e2bb6545a2c7a\"\u003e24a0103a98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8569db88758d189544b03ec4474fd5334ff29346\"\u003e8569db8875\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/837a7102172502dd3d92793ec15b2d4e533a573d\"\u003e837a710217\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure origin has a trailing slash when parsing url (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.21 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/f584840e2e50f751397cf3fad5258e18e857427e\"\u003ef584840e2e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.12 (2026-05-08)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8ebae1de330729f945391283e25661aada11b4ed\"\u003e8ebae1de33\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow service with factory on abstract classes\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/6f525245cd97a934b2b5ea888ee9d52c26c58cb5\"\u003e6f525245cd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0f2160c4105a53ef6488d2c799dda9c0959ce7dc\"\u003e0f2160c410\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove compiler import from safe optional chaining migration\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003cp\u003e| Commit | Type | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.13/packages/common\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/compiler-cli` from 21.2.12 to 21.2.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/compiler-cli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/compiler-cli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.22 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/83a640516f7b1fff4dfb0fd0ed8b19876bdb00c4\"\u003e83a640516f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/24a0103a9898b1547f5d1f57314e2bb6545a2c7a\"\u003e24a0103a98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8569db88758d189544b03ec4474fd5334ff29346\"\u003e8569db8875\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/837a7102172502dd3d92793ec15b2d4e533a573d\"\u003e837a710217\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure origin has a trailing slash when parsing url (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.21 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/f584840e2e50f751397cf3fad5258e18e857427e\"\u003ef584840e2e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.12 (2026-05-08)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8ebae1de330729f945391283e25661aada11b4ed\"\u003e8ebae1de33\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow service with factory on abstract classes\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/6f525245cd97a934b2b5ea888ee9d52c26c58cb5\"\u003e6f525245cd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0f2160c4105a53ef6488d2c799dda9c0959ce7dc\"\u003e0f2160c410\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove compiler import from safe optional chaining migration\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003cp\u003e| Commit | Type | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/49a133aeaf979389436515adfcb9c39b12a6ef3b\"\u003e\u003ccode\u003e49a133a\u003c/code\u003e\u003c/a\u003e refactor(compiler-cli): drop \u003ca href=\"https://github.com/ts-ignore\"\u003e\u003ccode\u003e@​ts-ignore\u003c/code\u003e\u003c/a\u003e around jsDocParsingMode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"ht...\n\n_Description has been truncated_","html_url":"https://github.com/Hashory/aniens/pull/40","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hashory%2Faniens/issues/40","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/40/packages"},{"uuid":"4446998372","node_id":"PR_kwDOJgPHWM7bkaGu","number":870,"state":"open","title":"chore(deps): bump the minor-and-patch group across 1 directory with 18 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-14T15:07:23.000Z","updated_at":"2026-05-14T15:08:19.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"minor-and-patch","update_count":18,"packages":[{"name":"@angular/animations","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/cdk","old_version":"21.2.10","new_version":"21.2.11","repository_url":"https://github.com/angular/components"},{"name":"@angular/common","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/core","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/forms","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/material","old_version":"21.2.10","new_version":"21.2.11","repository_url":"https://github.com/angular/components"},{"name":"@angular/platform-browser","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser-dynamic","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/router","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular-eslint/builder","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin-template","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/template-parser","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular/build","old_version":"21.2.10","new_version":"21.2.11","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/cli","old_version":"21.2.10","new_version":"21.2.11","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/compiler-cli","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"stylelint","old_version":"17.11.0","new_version":"17.11.1","repository_url":"https://github.com/stylelint/stylelint"}],"path":null,"ecosystem":"npm"},"body":"Bumps the minor-and-patch group with 18 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `21.2.12` | `21.2.13` |\n| [@angular/cdk](https://github.com/angular/components) | `21.2.10` | `21.2.11` |\n| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `21.2.12` | `21.2.13` |\n| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `21.2.12` | `21.2.13` |\n| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `21.2.12` | `21.2.13` |\n| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `21.2.12` | `21.2.13` |\n| [@angular/material](https://github.com/angular/components) | `21.2.10` | `21.2.11` |\n| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `21.2.12` | `21.2.13` |\n| [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `21.2.12` | `21.2.13` |\n| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `21.2.12` | `21.2.13` |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `21.3.1` | `21.4.0` |\n| [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) | `21.3.1` | `21.4.0` |\n| [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template) | `21.3.1` | `21.4.0` |\n| [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `21.3.1` | `21.4.0` |\n| [@angular/build](https://github.com/angular/angular-cli) | `21.2.10` | `21.2.11` |\n| [@angular/cli](https://github.com/angular/angular-cli) | `21.2.10` | `21.2.11` |\n| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `21.2.12` | `21.2.13` |\n| [stylelint](https://github.com/stylelint/stylelint) | `17.11.0` | `17.11.1` |\n\n\nUpdates `@angular/animations` from 21.2.12 to 21.2.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/animations's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/animations's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.22 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/83a640516f7b1fff4dfb0fd0ed8b19876bdb00c4\"\u003e83a640516f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/24a0103a9898b1547f5d1f57314e2bb6545a2c7a\"\u003e24a0103a98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8569db88758d189544b03ec4474fd5334ff29346\"\u003e8569db8875\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/837a7102172502dd3d92793ec15b2d4e533a573d\"\u003e837a710217\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure origin has a trailing slash when parsing url (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.21 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/f584840e2e50f751397cf3fad5258e18e857427e\"\u003ef584840e2e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.12 (2026-05-08)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8ebae1de330729f945391283e25661aada11b4ed\"\u003e8ebae1de33\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow service with factory on abstract classes\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/6f525245cd97a934b2b5ea888ee9d52c26c58cb5\"\u003e6f525245cd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0f2160c4105a53ef6488d2c799dda9c0959ce7dc\"\u003e0f2160c410\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove compiler import from safe optional chaining migration\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003cp\u003e| Commit | Type | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.13/packages/animations\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/cdk` from 21.2.10 to 21.2.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/releases\"\u003e@​angular/cdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.11\u003c/h2\u003e\n\u003cp\u003eNo user facing changes in this release\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/blob/main/CHANGELOG.md\"\u003e@​angular/cdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.11 \u0026quot;crystal ball\u0026quot; (2026-05-13)\u003c/h1\u003e\n\u003cp\u003eNo user facing changes in this release\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.8 \u0026quot;plastic-wallaby\u0026quot; (2026-05-06)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003earia\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe legacy combobox and autocomplete implementations have been removed. Use the new standalone combobox instead.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efeat(aria/combobox): promote simple-combobox to stable un-prefixed combobox\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eRelocates public, private, and example directories to clean \u003ccode\u003ecombobox\u003c/code\u003e entry points.\u003c/li\u003e\n\u003cli\u003eRenames internal layout symbols, selectors, and uppercase tokens (\u003ccode\u003eSIMPLE_COMBOBOX_POPUP\u003c/code\u003e -\u0026gt; \u003ccode\u003eCOMBOBOX_POPUP\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eEstablishes full documentation extraction parity with the \u003ccode\u003ejson_api\u003c/code\u003e Bazel rule target.\u003c/li\u003e\n\u003cli\u003eStandardizes the accompanying toolbar component showcase into the clean \u003ccode\u003earia-toolbar\u003c/code\u003e path.\u003c/li\u003e\n\u003cli\u003eRe-routes dev-app navigation links and migrates public API golden records.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eSimpleCombobox\u003c/code\u003e has been promoted to \u003ccode\u003eCombobox\u003c/code\u003e. All \u003ccode\u003esimple-combobox\u003c/code\u003e prefixed symbols, selectors, and tokens have been renamed to use the \u003ccode\u003ecombobox\u003c/code\u003e prefix.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(aria/combobox): relocate and restructure autocomplete and toolbar examples\nRelocate the autocomplete examples to \u003ccode\u003esrc/components-examples/aria/autocomplete\u003c/code\u003e and toolbar examples to \u003ccode\u003esrc/components-examples/aria/toolbar\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eRestore naming continuity with the historical codebase by stripping redundant prefixes from example filenames and component selectors.\u003c/li\u003e\n\u003cli\u003eSync dev-app preview routing layout paths and strict Bazel target dependency links.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eCDK_DESCRIBEDBY_HOST_ATTRIBUTE\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCDK_DESCRIBEDBY_ID_PREFIX\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003einjector\u003c/code\u003e parameter of the \u003ccode\u003eConfigurableFocusTrap\u003c/code\u003e and \u003ccode\u003eFocusTrap\u003c/code\u003e constructors is now required.\u003c/li\u003e\n\u003cli\u003eThe boolean parameter of \u003ccode\u003eConfigurableFocusTrapFactory.create\u003c/code\u003e has been replaced with a config object.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMESSAGES_CONTAINER_ID\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eevent\u003c/code\u003e parameter of \u003ccode\u003eDropListRef.drop\u003c/code\u003e is now required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eContextMenuTracker\u003c/code\u003e has been renamed to \u003ccode\u003eMenuTracker\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eMatListOption.checkboxPosition\u003c/code\u003e has been removed. use \u003ccode\u003etogglePosition\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMatListOptionCheckboxPosition\u003c/code\u003e has been renamed to \u003ccode\u003eMatListOptionTogglePosition\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eArrowViewState\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eArrowViewStateTransition\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003egoogle-maps\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/b8201edeef62258c3d1e1ebeaf8ee14766918c22\"\u003eb8201edee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edeprecate heatmap layer (\u003ca href=\"https://redirect.github.com/angular/components/pull/33208\"\u003e#33208\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/add8f16c01ad683b9e2ab9e1bf5ad3a984dd9921\"\u003eadd8f16c0\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003elist:\u003c/strong\u003e breaking changes for v22\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/9d73c98b57d46454d51344bbd59055bc06dabc6b\"\u003e9d73c98b5\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003emenu:\u003c/strong\u003e missing panelClass getter (\u003ca href=\"https://redirect.github.com/angular/components/pull/33191\"\u003e#33191\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/75718e4fbebce2a7f8aa30550a12d58a5a6f9b93\"\u003e75718e4fb\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esort:\u003c/strong\u003e breaking changes for v22\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/1238d1573e706cbf0a2cabcc97e59d28a9499ecb\"\u003e\u003ccode\u003e1238d15\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.11 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/components/compare/v21.2.10...v21.2.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/common` from 21.2.12 to 21.2.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/common's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/common's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.22 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/83a640516f7b1fff4dfb0fd0ed8b19876bdb00c4\"\u003e83a640516f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/24a0103a9898b1547f5d1f57314e2bb6545a2c7a\"\u003e24a0103a98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8569db88758d189544b03ec4474fd5334ff29346\"\u003e8569db8875\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/837a7102172502dd3d92793ec15b2d4e533a573d\"\u003e837a710217\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure origin has a trailing slash when parsing url (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.21 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/f584840e2e50f751397cf3fad5258e18e857427e\"\u003ef584840e2e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.12 (2026-05-08)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8ebae1de330729f945391283e25661aada11b4ed\"\u003e8ebae1de33\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow service with factory on abstract classes\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/6f525245cd97a934b2b5ea888ee9d52c26c58cb5\"\u003e6f525245cd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0f2160c4105a53ef6488d2c799dda9c0959ce7dc\"\u003e0f2160c410\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove compiler import from safe optional chaining migration\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003cp\u003e| Commit | Type | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.13/packages/common\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/compiler` from 21.2.12 to 21.2.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/compiler's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/compiler's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.22 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/83a640516f7b1fff4dfb0fd0ed8b19876bdb00c4\"\u003e83a640516f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/24a0103a9898b1547f5d1f57314e2bb6545a2c7a\"\u003e24a0103a98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8569db88758d189544b03ec4474fd5334ff29346\"\u003e8569db8875\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/837a7102172502dd3d92793ec15b2d4e533a573d\"\u003e837a710217\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure origin has a trailing slash when parsing url (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.21 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/f584840e2e50f751397cf3fad5258e18e857427e\"\u003ef584840e2e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.12 (2026-05-08)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8ebae1de330729f945391283e25661aada11b4ed\"\u003e8ebae1de33\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow service with factory on abstract classes\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/6f525245cd97a934b2b5ea888ee9d52c26c58cb5\"\u003e6f525245cd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0f2160c4105a53ef6488d2c799dda9c0959ce7dc\"\u003e0f2160c410\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove compiler import from safe optional chaining migration\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003cp\u003e| Commit | Type | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/baf92da96ed73a0f4748edf05d3c0702cab219da\"\u003e\u003ccode\u003ebaf92da\u003c/code\u003e\u003c/a\u003e test: remove invalid css that was causing issues with the postcss parser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003ccode\u003e1c6553e\u003c/code\u003e\u003c/a\u003e fix(core): disallow event attribute bindings in host bindings unconditionally\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.13/packages/compiler\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/core` from 21.2.12 to 21.2.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.22 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/83a640516f7b1fff4dfb0fd0ed8b19876bdb00c4\"\u003e83a640516f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/24a0103a9898b1547f5d1f57314e2bb6545a2c7a\"\u003e24a0103a98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8569db88758d189544b03ec4474fd5334ff29346\"\u003e8569db8875\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/837a7102172502dd3d92793ec15b2d4e533a573d\"\u003e837a710217\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure origin has a trailing slash when parsing url (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.21 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/f584840e2e50f751397cf3fad5258e18e857427e\"\u003ef584840e2e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.12 (2026-05-08)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8ebae1de330729f945391283e25661aada11b4ed\"\u003e8ebae1de33\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow service with factory on abstract classes\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/6f525245cd97a934b2b5ea888ee9d52c26c58cb5\"\u003e6f525245cd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0f2160c4105a53ef6488d2c799dda9c0959ce7dc\"\u003e0f2160c410\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove compiler import from safe optional chaining migration\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003cp\u003e| Commit | Type | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003ccode\u003e1c6553e\u003c/code\u003e\u003c/a\u003e fix(core): disallow event attribute bindings in host bindings unconditionally\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.13/packages/core\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/forms` from 21.2.12 to 21.2.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/forms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/forms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.22 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/83a640516f7b1fff4dfb0fd0ed8b19876bdb00c4\"\u003e83a640516f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/24a0103a9898b1547f5d1f57314e2bb6545a2c7a\"\u003e24a0103a98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8569db88758d189544b03ec4474fd5334ff29346\"\u003e8569db8875\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/837a7102172502dd3d92793ec15b2d4e533a573d\"\u003e837a710217\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure origin has a trailing slash when parsing url (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.21 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/f584840e2e50f751397cf3fad5258e18e857427e\"\u003ef584840e2e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.12 (2026-05-08)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8ebae1de330729f945391283e25661aada11b4ed\"\u003e8ebae1de33\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow service with factory on abstract classes\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/6f525245cd97a934b2b5ea888ee9d52c26c58cb5\"\u003e6f525245cd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0f2160c4105a53ef6488d2c799dda9c0959ce7dc\"\u003e0f2160c410\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove compiler import from safe optional chaining migration\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003cp\u003e| Commit | Type | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.13/packages/forms\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/material` from 21.2.10 to 21.2.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/releases\"\u003e@​angular/material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.11\u003c/h2\u003e\n\u003cp\u003eNo user facing changes in this release\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/blob/main/CHANGELOG.md\"\u003e@​angular/material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.11 \u0026quot;crystal ball\u0026quot; (2026-05-13)\u003c/h1\u003e\n\u003cp\u003eNo user facing changes in this release\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.8 \u0026quot;plastic-wallaby\u0026quot; (2026-05-06)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003earia\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe legacy combobox and autocomplete implementations have been removed. Use the new standalone combobox instead.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efeat(aria/combobox): promote simple-combobox to stable un-prefixed combobox\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eRelocates public, private, and example directories to clean \u003ccode\u003ecombobox\u003c/code\u003e entry points.\u003c/li\u003e\n\u003cli\u003eRenames internal layout symbols, selectors, and uppercase tokens (\u003ccode\u003eSIMPLE_COMBOBOX_POPUP\u003c/code\u003e -\u0026gt; \u003ccode\u003eCOMBOBOX_POPUP\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eEstablishes full documentation extraction parity with the \u003ccode\u003ejson_api\u003c/code\u003e Bazel rule target.\u003c/li\u003e\n\u003cli\u003eStandardizes the accompanying toolbar component showcase into the clean \u003ccode\u003earia-toolbar\u003c/code\u003e path.\u003c/li\u003e\n\u003cli\u003eRe-routes dev-app navigation links and migrates public API golden records.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eSimpleCombobox\u003c/code\u003e has been promoted to \u003ccode\u003eCombobox\u003c/code\u003e. All \u003ccode\u003esimple-combobox\u003c/code\u003e prefixed symbols, selectors, and tokens have been renamed to use the \u003ccode\u003ecombobox\u003c/code\u003e prefix.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(aria/combobox): relocate and restructure autocomplete and toolbar examples\nRelocate the autocomplete examples to \u003ccode\u003esrc/components-examples/aria/autocomplete\u003c/code\u003e and toolbar examples to \u003ccode\u003esrc/components-examples/aria/toolbar\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eRestore naming continuity with the historical codebase by stripping redundant prefixes from example filenames and component selectors.\u003c/li\u003e\n\u003cli\u003eSync dev-app preview routing layout paths and strict Bazel target dependency links.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eCDK_DESCRIBEDBY_HOST_ATTRIBUTE\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCDK_DESCRIBEDBY_ID_PREFIX\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003einjector\u003c/code\u003e parameter of the \u003ccode\u003eConfigurableFocusTrap\u003c/code\u003e and \u003ccode\u003eFocusTrap\u003c/code\u003e constructors is now required.\u003c/li\u003e\n\u003cli\u003eThe boolean parameter of \u003ccode\u003eConfigurableFocusTrapFactory.create\u003c/code\u003e has been replaced with a config object.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMESSAGES_CONTAINER_ID\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eevent\u003c/code\u003e parameter of \u003ccode\u003eDropListRef.drop\u003c/code\u003e is now required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eContextMenuTracker\u003c/code\u003e has been renamed to \u003ccode\u003eMenuTracker\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eMatListOption.checkboxPosition\u003c/code\u003e has been removed. use \u003ccode\u003etogglePosition\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMatListOptionCheckboxPosition\u003c/code\u003e has been renamed to \u003ccode\u003eMatListOptionTogglePosition\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eArrowViewState\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eArrowViewStateTransition\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003egoogle-maps\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/b8201edeef62258c3d1e1ebeaf8ee14766918c22\"\u003eb8201edee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edeprecate heatmap layer (\u003ca href=\"https://redirect.github.com/angular/components/pull/33208\"\u003e#33208\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/add8f16c01ad683b9e2ab9e1bf5ad3a984dd9921\"\u003eadd8f16c0\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003elist:\u003c/strong\u003e breaking changes for v22\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/9d73c98b57d46454d51344bbd59055bc06dabc6b\"\u003e9d73c98b5\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003emenu:\u003c/strong\u003e missing panelClass getter (\u003ca href=\"https://redirect.github.com/angular/components/pull/33191\"\u003e#33191\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/75718e4fbebce2a7f8aa30550a12d58a5a6f9b93\"\u003e75718e4fb\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esort:\u003c/strong\u003e breaking changes for v22\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/1238d1573e706cbf0a2cabcc97e59d28a9499ecb\"\u003e\u003ccode\u003e1238d15\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.11 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/components/compare/v21.2.10...v21.2.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/platform-browser` from 21.2.12 to 21.2.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/platform-browser's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/platform-browser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.22 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/83a640516f7b1fff4dfb0fd0ed8b19876bdb00c4\"\u003e83a640516f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/24a0103a9898b1547f5d1f57314e2bb6545a2c7a\"\u003e24a0103a98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8569db88758d189544b03ec4474fd5334ff29346\"\u003e8569db8875\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/837a7102172502dd3d92793ec15b2d4e533a573d\"\u003e837a710217\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure origin has a trailing slash when parsing url (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.21 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/f584840e2e50f751397cf3fad5258e18e857427e\"\u003ef584840e2e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.12 (2026-05-08)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8ebae1de330729f945391283e25661aada11b4ed\"\u003e8ebae1de33\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow service with factory on abstract classes\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/6f525245cd97a934b2b5ea888ee9d52c26c58cb5\"\u003e6f525245cd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0f2160c4105a53ef6488d2c799dda9c0959ce7dc\"\u003e0f2160c410\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove compiler import from safe optional chaining migration\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003cp\u003e| Commit | Type | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.13/packages/platform-browser\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/platform-browser-dynamic` from 21.2.12 to 21.2.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/platform-browser-dynamic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/platform-browser-dynamic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.22 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/83a640516f7b1fff4dfb0fd0ed8b19876bdb00c4\"\u003e83a640516f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/24a0103a9898b1547f5d1f57314e2bb6545a2c7a\"\u003e24a0103a98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8569db88758d189544b03ec4474fd5334ff29346\"\u003e8569db8875\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/837a7102172502dd3d92793ec15b2d4e533a573d\"\u003e837a710217\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure origin has a trailing slash when parsing url (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.21 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/f584840e2e50f751397cf3fad5258e18e857427e\"\u003ef584840e2e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.12 (2026-05-08)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8ebae1de330729f945391283e25661aada11b4ed\"\u003e8ebae1de33\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow service with factory on abstract classes\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/6f525245cd97a934b2b5ea888ee9d52c26c58cb5\"\u003e6f525245cd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0f2160c4105a53ef6488d2c799dda9c0959ce7dc\"\u003e0f2160c410\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove compiler import from safe optional chaining migration\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003cp\u003e| Commit | Type | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.13/packages/platform-browser-dynamic\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/router` from 21.2.12 to 21.2.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/router's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/router's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.22 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/83a640516f7b1fff4dfb0fd0ed8b19876bdb00c4\"\u003e83a640516f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/24a0103a9898b1547f5d1f57314e2bb6545a2c7a\"\u003e24a0103a98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8569db88758d189544b03ec4474fd5334ff29346\"\u003e8569db8875\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/837a7102172502dd3d92793ec15b2d4e533a573d\"\u003e837a710217\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure origin has a trailing slash when parsing url (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.21 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/f584840e2e50f751397cf3fad5258e18e857427e\"\u003ef584840e2e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.12 (2026-05-08)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8ebae1de330729f945391283e25661aada11b4ed\"\u003e8ebae1de33\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow service with factory on abstract classes\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/6f525245cd97a934b2b5ea888ee9d52c26c58cb5\"\u003e6f525245cd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0f2160c4105a53ef6488d2c799dda9c0959ce7dc\"\u003e0f2160c410\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove compiler import from safe optional chaining migration\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003cp\u003e| Commit | Type | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.13/packages/router\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-eslint/builder` from 21.3.1 to 21.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e@​angular-eslint/builder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.4.0\u003c/h2\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [cyclomatic-complexity] add \u003ccode\u003evariant\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.57.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.6 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.1.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.8 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.58.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2984\"\u003e#2984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.9 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.59.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.11 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3019\"\u003e#3019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.3.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e append fixes in prefer-on-push-change-detection, use-injectable-provided-in (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2969\"\u003e#2969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-template-literal] do not check inline templates (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [no-non-null-assertion] report nested arrays (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [eqeqeq]  could not destructure null (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eschematics:\u003c/strong\u003e sync application schema with upstream \u003ccode\u003e@​schematics/angular\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003cli\u003egithubuser578 \u003ca href=\"https://github.com/githubuser578\"\u003e\u003ccode\u003e@​githubuser578\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e@​angular-eslint/builder's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/0a774c724574c3c35acf9ba432f60269e7418938\"\u003e\u003ccode\u003e0a774c7\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/cea1779a056ce7e16b80b017630b625e375e6ba6\"\u003e\u003ccode\u003ecea1779\u003c/code\u003e\u003c/a\u003e feat(builder): add apply-suppressions option (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/28434e76fde2d26e3c009749dd4cc20a9604fa15\"\u003e\u003ccode\u003e28434e7\u003c/code\u003e\u003c/a\u003e chore: update swc monorepo (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2987\"\u003e#2987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.4.0/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-eslint/eslint-plugin` from 21.3.1 to 21.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e@​angular-eslint/eslint-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.4.0\u003c/h2\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect...\n\n_Description has been truncated_","html_url":"https://github.com/sto-info-app/sto-info-frontend/pull/870","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sto-info-app%2Fsto-info-frontend/issues/870","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/870/packages"},{"uuid":"4277758935","node_id":"PR_kwDOD_-hQc7TEWFC","number":3433,"state":"closed","title":"chore(deps-dev): bump @angular-eslint/builder from 18.4.3 to 21.3.1","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-17T02:56:49.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-16T18:31:04.000Z","updated_at":"2026-04-17T02:57:00.000Z","time_to_close":30345,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"@angular-eslint/builder","old_version":"18.4.3","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":null,"ecosystem":"npm"},"body":"Bumps [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) from 18.4.3 to 21.3.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.3.1\u003c/h2\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.0.3 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2949\"\u003e#2949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2954\"\u003e#2954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] properly handle statements with unary operators (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2926\"\u003e#2926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eprefer-self-closing-tags:\u003c/strong\u003e add selectedcontent nonAriaElements (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebjarketrux\u003c/li\u003e\n\u003cli\u003eDaniil Demenev \u003ca href=\"https://github.com/BEGEMOT9I\"\u003e\u003ccode\u003e@​BEGEMOT9I\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev21.3.0\u003c/h2\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e add computed-must-return rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2882\"\u003e#2882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] detect Signal member access (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2848\"\u003e#2848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e add \u003ccode\u003eno-non-null-assertion\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2885\"\u003e#2885\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.1.4 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] add check \u003ccode\u003eInputSignalWithTransform\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2879\"\u003e#2879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] detect \u003ccode\u003eSignal\u003c/code\u003e type correctly (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [prefer-template-literal] preserve nested non string binary \u003ccode\u003e+\u003c/code\u003e operation (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2902\"\u003e#2902\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev21.2.0\u003c/h2\u003e\n\u003ch2\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for builder to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch2\u003e21.1.0 (2025-12-08)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ereference \u003ccode\u003e@​angular/cli\u003c/code\u003e peer in addition to direct dependencies (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2820\"\u003e#2820\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.0.1 (2025-11-23)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for builder to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch1\u003e21.0.0 (2025-11-22)\u003c/h1\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ \u003cstrong\u003ebuilder:\u003c/strong\u003e align formatter invocation with eslint CLI by always passing all files, even if quiet (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/bceaa80e\"\u003ebceaa80e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e⚠️ Breaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ \u003cstrong\u003ebuilder:\u003c/strong\u003e align formatter invocation with eslint CLI by always passing all files, even if quiet (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/bceaa80e\"\u003ebceaa80e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/8f2afdce28d4cbdac792465b33aff35915af23b5\"\u003e\u003ccode\u003e8f2afdc\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/77099ee61cda76136038dce9f21d3af6071a7d06\"\u003e\u003ccode\u003e77099ee\u003c/code\u003e\u003c/a\u003e chore: ensure dist artifacts are available for e2e publishing in DTE (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/af8900f087b09556bfaddd815ce483bf7b0262ea\"\u003e\u003ccode\u003eaf8900f\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix: narrow build target cache outputs to avoid clobbering compile ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/7e173918eb48b2db41ce4d5a934567dab26fe54b\"\u003e\u003ccode\u003e7e17391\u003c/code\u003e\u003c/a\u003e fix: narrow build target cache outputs to avoid clobbering compile artifacts ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/a959e4d2804bbeb3cbc7caaa9c2fb2be9da3348e\"\u003e\u003ccode\u003ea959e4d\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/5c214854f897cb698563f53db6b9bddfb23e4d8e\"\u003e\u003ccode\u003e5c21485\u003c/code\u003e\u003c/a\u003e chore(builder): change builder tests to be cross-platform (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/3ef7fb157e866d76ae76d41b706b92efbd54d72d\"\u003e\u003ccode\u003e3ef7fb1\u003c/code\u003e\u003c/a\u003e feat: add support for ESLint v10 (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/6fa321dc27993f55e6d5bc6e421010bb7b5ef1d3\"\u003e\u003ccode\u003e6fa321d\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/4fa7889c54600ba56d29928b8026ff30a16d600b\"\u003e\u003ccode\u003e4fa7889\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/e7bb47b27bfaef61af694ebc29bc5636378b232c\"\u003e\u003ccode\u003ee7bb47b\u003c/code\u003e\u003c/a\u003e fix: reference \u003ccode\u003e@​angular/cli\u003c/code\u003e peer in addition to direct dependencies (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2820\"\u003e#2820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.3.1/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by [GitHub Actions](\u003ca href=\"https://www.npmjs.com/~GitHub\"\u003ehttps://www.npmjs.com/~GitHub\u003c/a\u003e Actions), a new releaser for \u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/numbersprotocol/capture-cam/pull/3433","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/numbersprotocol%2Fcapture-cam/issues/3433","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3433/packages"},{"uuid":"4249998044","node_id":"PR_kwDORozMjs7R0iL0","number":197,"state":"closed","title":"deps: bump @angular-eslint/builder from 19.8.1 to 21.3.1 in /Applications/Pgan.PoracleWebNet.App/ClientApp","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-12T21:51:36.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-12T21:27:20.000Z","updated_at":"2026-04-12T21:51:46.000Z","time_to_close":1456,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps","packages":[{"name":"@angular-eslint/builder","old_version":"19.8.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":"/Applications/Pgan.PoracleWebNet.App/ClientApp","ecosystem":"npm"},"body":"Bumps [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) from 19.8.1 to 21.3.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.3.1\u003c/h2\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.0.3 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2949\"\u003e#2949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2954\"\u003e#2954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] properly handle statements with unary operators (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2926\"\u003e#2926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eprefer-self-closing-tags:\u003c/strong\u003e add selectedcontent nonAriaElements (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebjarketrux\u003c/li\u003e\n\u003cli\u003eDaniil Demenev \u003ca href=\"https://github.com/BEGEMOT9I\"\u003e\u003ccode\u003e@​BEGEMOT9I\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev21.3.0\u003c/h2\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e add computed-must-return rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2882\"\u003e#2882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] detect Signal member access (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2848\"\u003e#2848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e add \u003ccode\u003eno-non-null-assertion\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2885\"\u003e#2885\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.1.4 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] add check \u003ccode\u003eInputSignalWithTransform\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2879\"\u003e#2879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] detect \u003ccode\u003eSignal\u003c/code\u003e type correctly (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [prefer-template-literal] preserve nested non string binary \u003ccode\u003e+\u003c/code\u003e operation (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2902\"\u003e#2902\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev21.2.0\u003c/h2\u003e\n\u003ch2\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for builder to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch2\u003e21.1.0 (2025-12-08)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ereference \u003ccode\u003e@​angular/cli\u003c/code\u003e peer in addition to direct dependencies (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2820\"\u003e#2820\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.0.1 (2025-11-23)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for builder to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch1\u003e21.0.0 (2025-11-22)\u003c/h1\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ \u003cstrong\u003ebuilder:\u003c/strong\u003e align formatter invocation with eslint CLI by always passing all files, even if quiet (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/bceaa80e\"\u003ebceaa80e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e⚠️ Breaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ \u003cstrong\u003ebuilder:\u003c/strong\u003e align formatter invocation with eslint CLI by always passing all files, even if quiet (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/bceaa80e\"\u003ebceaa80e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/8f2afdce28d4cbdac792465b33aff35915af23b5\"\u003e\u003ccode\u003e8f2afdc\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/77099ee61cda76136038dce9f21d3af6071a7d06\"\u003e\u003ccode\u003e77099ee\u003c/code\u003e\u003c/a\u003e chore: ensure dist artifacts are available for e2e publishing in DTE (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/af8900f087b09556bfaddd815ce483bf7b0262ea\"\u003e\u003ccode\u003eaf8900f\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix: narrow build target cache outputs to avoid clobbering compile ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/7e173918eb48b2db41ce4d5a934567dab26fe54b\"\u003e\u003ccode\u003e7e17391\u003c/code\u003e\u003c/a\u003e fix: narrow build target cache outputs to avoid clobbering compile artifacts ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/a959e4d2804bbeb3cbc7caaa9c2fb2be9da3348e\"\u003e\u003ccode\u003ea959e4d\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/5c214854f897cb698563f53db6b9bddfb23e4d8e\"\u003e\u003ccode\u003e5c21485\u003c/code\u003e\u003c/a\u003e chore(builder): change builder tests to be cross-platform (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/3ef7fb157e866d76ae76d41b706b92efbd54d72d\"\u003e\u003ccode\u003e3ef7fb1\u003c/code\u003e\u003c/a\u003e feat: add support for ESLint v10 (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/6fa321dc27993f55e6d5bc6e421010bb7b5ef1d3\"\u003e\u003ccode\u003e6fa321d\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/4fa7889c54600ba56d29928b8026ff30a16d600b\"\u003e\u003ccode\u003e4fa7889\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/e7bb47b27bfaef61af694ebc29bc5636378b232c\"\u003e\u003ccode\u003ee7bb47b\u003c/code\u003e\u003c/a\u003e fix: reference \u003ccode\u003e@​angular/cli\u003c/code\u003e peer in addition to direct dependencies (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2820\"\u003e#2820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.3.1/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by [GitHub Actions](\u003ca href=\"https://www.npmjs.com/~GitHub\"\u003ehttps://www.npmjs.com/~GitHub\u003c/a\u003e Actions), a new releaser for \u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e","html_url":"https://github.com/PGAN-Dev/PoracleWeb.NET/pull/197","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/PGAN-Dev%2FPoracleWeb.NET/issues/197","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/197/packages"},{"uuid":"4245397119","node_id":"PR_kwDOC4Vf1M7RsBCN","number":678,"state":"open","title":"Bump @angular-eslint/builder from 21.2.0 to 21.3.1","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-11T17:53:11.000Z","updated_at":"2026-04-11T17:53:12.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"@angular-eslint/builder","old_version":"21.2.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":null,"ecosystem":"npm"},"body":"Bumps [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) from 21.2.0 to 21.3.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.3.1\u003c/h2\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.0.3 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2949\"\u003e#2949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2954\"\u003e#2954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] properly handle statements with unary operators (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2926\"\u003e#2926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eprefer-self-closing-tags:\u003c/strong\u003e add selectedcontent nonAriaElements (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebjarketrux\u003c/li\u003e\n\u003cli\u003eDaniil Demenev \u003ca href=\"https://github.com/BEGEMOT9I\"\u003e\u003ccode\u003e@​BEGEMOT9I\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev21.3.0\u003c/h2\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e add computed-must-return rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2882\"\u003e#2882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] detect Signal member access (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2848\"\u003e#2848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e add \u003ccode\u003eno-non-null-assertion\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2885\"\u003e#2885\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.1.4 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] add check \u003ccode\u003eInputSignalWithTransform\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2879\"\u003e#2879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] detect \u003ccode\u003eSignal\u003c/code\u003e type correctly (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [prefer-template-literal] preserve nested non string binary \u003ccode\u003e+\u003c/code\u003e operation (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2902\"\u003e#2902\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/8f2afdce28d4cbdac792465b33aff35915af23b5\"\u003e\u003ccode\u003e8f2afdc\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/77099ee61cda76136038dce9f21d3af6071a7d06\"\u003e\u003ccode\u003e77099ee\u003c/code\u003e\u003c/a\u003e chore: ensure dist artifacts are available for e2e publishing in DTE (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/af8900f087b09556bfaddd815ce483bf7b0262ea\"\u003e\u003ccode\u003eaf8900f\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix: narrow build target cache outputs to avoid clobbering compile ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/7e173918eb48b2db41ce4d5a934567dab26fe54b\"\u003e\u003ccode\u003e7e17391\u003c/code\u003e\u003c/a\u003e fix: narrow build target cache outputs to avoid clobbering compile artifacts ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/a959e4d2804bbeb3cbc7caaa9c2fb2be9da3348e\"\u003e\u003ccode\u003ea959e4d\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/5c214854f897cb698563f53db6b9bddfb23e4d8e\"\u003e\u003ccode\u003e5c21485\u003c/code\u003e\u003c/a\u003e chore(builder): change builder tests to be cross-platform (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/3ef7fb157e866d76ae76d41b706b92efbd54d72d\"\u003e\u003ccode\u003e3ef7fb1\u003c/code\u003e\u003c/a\u003e feat: add support for ESLint v10 (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.3.1/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular-eslint/builder\u0026package-manager=npm_and_yarn\u0026previous-version=21.2.0\u0026new-version=21.3.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/michaelsouellette/michaelsouellette.github.io/pull/678","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelsouellette%2Fmichaelsouellette.github.io/issues/678","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/678/packages"},{"uuid":"4244668409","node_id":"PR_kwDOBiCNks7RqnMk","number":1411,"state":"open","title":"Bump the angular group with 19 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-11T13:26:12.000Z","updated_at":"2026-04-11T13:27:16.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"angular","update_count":19,"packages":[{"name":"@angular/animations","old_version":"21.2.6","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/cdk","old_version":"21.2.4","new_version":"21.2.6","repository_url":"https://github.com/angular/components"},{"name":"@angular/common","old_version":"21.2.6","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler","old_version":"21.2.6","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/core","old_version":"21.2.6","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/forms","old_version":"21.2.6","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/material","old_version":"21.2.4","new_version":"21.2.6","repository_url":"https://github.com/angular/components"},{"name":"@angular/platform-browser","old_version":"21.2.6","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser-dynamic","old_version":"21.2.6","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/router","old_version":"21.2.6","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular-eslint/builder","old_version":"20.1.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin","old_version":"20.1.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin-template","old_version":"20.1.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/schematics","old_version":"20.1.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/template-parser","old_version":"20.1.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular/cli","old_version":"21.2.5","new_version":"21.2.7","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/compiler-cli","old_version":"21.2.6","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/language-service","old_version":"21.2.6","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"typescript","old_version":"5.9.3","new_version":"6.0.2","repository_url":"https://github.com/microsoft/TypeScript"}],"path":null,"ecosystem":"npm"},"body":"Bumps the angular group with 19 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `21.2.6` | `21.2.8` |\n| [@angular/cdk](https://github.com/angular/components) | `21.2.4` | `21.2.6` |\n| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `21.2.6` | `21.2.8` |\n| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `21.2.6` | `21.2.8` |\n| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `21.2.6` | `21.2.8` |\n| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `21.2.6` | `21.2.8` |\n| [@angular/material](https://github.com/angular/components) | `21.2.4` | `21.2.6` |\n| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `21.2.6` | `21.2.8` |\n| [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `21.2.6` | `21.2.8` |\n| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `21.2.6` | `21.2.8` |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `20.1.1` | `21.3.1` |\n| [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) | `20.1.1` | `21.3.1` |\n| [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template) | `20.1.1` | `21.3.1` |\n| [@angular-eslint/schematics](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics) | `20.1.1` | `21.3.1` |\n| [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `20.1.1` | `21.3.1` |\n| [@angular/cli](https://github.com/angular/angular-cli) | `21.2.5` | `21.2.7` |\n| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `21.2.6` | `21.2.8` |\n| [@angular/language-service](https://github.com/angular/angular/tree/HEAD/packages/language-service) | `21.2.6` | `21.2.8` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `6.0.2` |\n\nUpdates `@angular/animations` from 21.2.6 to 21.2.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/animations\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.8\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e40d378f3e3e7e57a45c8fbd9565ee06a3a6a13f\"\u003e\u003cimg src=\"https://img.shields.io/badge/e40d378f3e-fix-green\" alt=\"fix - e40d378f3e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ehandle nested brackets in host object bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c6781071f52d6378a002fba6611bb283fbb2fde\"\u003e\u003cimg src=\"https://img.shields.io/badge/2c6781071f-fix-green\" alt=\"fix - 2c6781071f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eerror for type parameter declarations\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/82192deda9c07113835e6c85af3f2c8c8218cda0\"\u003e\u003cimg src=\"https://img.shields.io/badge/82192deda9-fix-green\" alt=\"fix - 82192deda9\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ehandle missing serialized container hydration data\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/057cc6d09d234f401a810cfdd3ad14127652b88b\"\u003e\u003cimg src=\"https://img.shields.io/badge/057cc6d09d-fix-green\" alt=\"fix - 057cc6d09d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove obsolete iOS cursor pointer hack in event delegation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elanguage-service\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7797671257350665e8b3ceb2bc6a0201829dd338\"\u003e\u003cimg src=\"https://img.shields.io/badge/7797671257-fix-green\" alt=\"fix - 7797671257\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eget quick info at local var location to align with TS semantics and support type narrowing\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/animations\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.8 (2026-04-08)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e40d378f3e3e7e57a45c8fbd9565ee06a3a6a13f\"\u003ee40d378f3e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ehandle nested brackets in host object bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c6781071f52d6378a002fba6611bb283fbb2fde\"\u003e2c6781071f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eerror for type parameter declarations\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/82192deda9c07113835e6c85af3f2c8c8218cda0\"\u003e82192deda9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ehandle missing serialized container hydration data\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/057cc6d09d234f401a810cfdd3ad14127652b88b\"\u003e057cc6d09d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove obsolete iOS cursor pointer hack in event delegation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elanguage-service\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7797671257350665e8b3ceb2bc6a0201829dd338\"\u003e7797671257\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eget quick info at local var location to align with TS semantics and support type narrowing\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.6 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/08d36599d724d6b3dbe2c9891c32f783bef4e157\"\u003e08d36599d7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fcd0bb0db83576ef0bc13c5c32f158d95efbedd5\"\u003efcd0bb0db8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e84e35cdd60696d8670421189e4aa02c1db583a6\"\u003ee84e35cdd6\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fa66173523bb275d33de4bd43ce23947812922e\"\u003e8fa6617352\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/028e1d3ce0ed3a33d3b7730a51b549a5cf013b29\"\u003e028e1d3ce0\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/78710938225d2c29c6e3666e431c2952bb5560db\"\u003e7871093822\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/682aaf943fea3d99f9f834b0bad4d165b4b28071\"\u003e682aaf943f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eadd strictTemplates to tsconfig during ng update\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/daa9b2a9d67557ae9246559f74396f43b240581c\"\u003edaa9b2a9d6\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.8/packages/animations\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/cdk` from 21.2.4 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/releases\"\u003e\u003ccode\u003e@​angular/cdk\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/5b4bbe9c4f8c902d6923b139e7a925822c899bc1\"\u003e\u003cimg src=\"https://img.shields.io/badge/5b4bbe9c4f-fix-green\" alt=\"fix - 5b4bbe9c4f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eselect:\u003c/strong\u003e wrong transform origin when opening upwards inside another overlay (\u003ca href=\"https://redirect.github.com/angular/components/issues/33032\"\u003e#33032\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/895908a12dd81d889f95961da59e80823faf8889\"\u003e\u003cimg src=\"https://img.shields.io/badge/895908a12-fix-green\" alt=\"fix - 895908a12\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esidenav:\u003c/strong\u003e not resetting margin if transition does not start (\u003ca href=\"https://redirect.github.com/angular/components/issues/33001\"\u003e#33001\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/475a8aabb30044c4cdca1bdb0b1de832db6e5936\"\u003e\u003cimg src=\"https://img.shields.io/badge/475a8aabb-fix-green\" alt=\"fix - 475a8aabb\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eslider:\u003c/strong\u003e not picking up static direction (\u003ca href=\"https://redirect.github.com/angular/components/issues/33006\"\u003e#33006\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/8a5ed09e59e312f82b969b19ae4d077e4574bd12\"\u003e\u003cimg src=\"https://img.shields.io/badge/8a5ed09e5-fix-green\" alt=\"fix - 8a5ed09e5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003etooltip:\u003c/strong\u003e allow hover detection logic to be customized (\u003ca href=\"https://redirect.github.com/angular/components/issues/33018\"\u003e#33018\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/42e10553cfcf205fea44522ae631fe23f90b03ea\"\u003e\u003cimg src=\"https://img.shields.io/badge/42e10553c-fix-green\" alt=\"fix - 42e10553c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003estepper:\u003c/strong\u003e linear updates not reflected in the DOM (\u003ca href=\"https://redirect.github.com/angular/components/issues/33007\"\u003e#33007\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/cdk\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 \u0026quot;steel bottle\u0026quot; (2026-04-08)\u003c/h1\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/5b4bbe9c4f8c902d6923b139e7a925822c899bc1\"\u003e5b4bbe9c4f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eselect:\u003c/strong\u003e wrong transform origin when opening upwards inside another overlay (\u003ca href=\"https://redirect.github.com/angular/components/pull/33032\"\u003e#33032\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.3 \u0026quot;rubber-wombat\u0026quot; (2026-04-01)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003emultiple\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRenames the values input/model to value in Combobox, Listbox, Tree, Menu, Toolbar, and Select. Users must update their templates to use the value property instead of values.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(multiple): update api goldens\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/ac3911071810ac7c54ba3382125bf53094bce80b\"\u003eac3911071\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esidenav:\u003c/strong\u003e not resetting margin if transition does not start (\u003ca href=\"https://redirect.github.com/angular/components/pull/33001\"\u003e#33001\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/a7d5561803e2f365843cb763a4763ed51cb0ae03\"\u003ea7d556180\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eslider:\u003c/strong\u003e not picking up static direction (\u003ca href=\"https://redirect.github.com/angular/components/pull/33006\"\u003e#33006\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/236762fbc5d63bb6000a52c7d20612c0b14c3d8b\"\u003e236762fbc\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003etooltip:\u003c/strong\u003e allow hover detection logic to be customized (\u003ca href=\"https://redirect.github.com/angular/components/pull/33018\"\u003e#33018\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/a7fe128c353aec9065e942b63167e9019dc53350\"\u003ea7fe128c3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003estepper:\u003c/strong\u003e linear updates not reflected in the DOM (\u003ca href=\"https://redirect.github.com/angular/components/pull/33007\"\u003e#33007\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emultiple\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/94a50a25f95c0e28d661b957a0a17501cc9998f9\"\u003e94a50a25f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003erename values to value for signal forms compatibility (\u003ca href=\"https://redirect.github.com/angular/components/pull/33012\"\u003e#33012\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e21.2.5 \u0026quot;steel-wombat\u0026quot; (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/42e10553cfcf205fea44522ae631fe23f90b03ea\"\u003e42e10553c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003estepper:\u003c/strong\u003e linear updates not reflected in the DOM (\u003ca href=\"https://redirect.github.com/angular/components/pull/33007\"\u003e#33007\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/895908a12dd81d889f95961da59e80823faf8889\"\u003e895908a12\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esidenav:\u003c/strong\u003e not resetting margin if transition does not start (\u003ca href=\"https://redirect.github.com/angular/components/pull/33001\"\u003e#33001\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/475a8aabb30044c4cdca1bdb0b1de832db6e5936\"\u003e475a8aabb\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eslider:\u003c/strong\u003e not picking up static direction (\u003ca href=\"https://redirect.github.com/angular/components/pull/33006\"\u003e#33006\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/8a5ed09e59e312f82b969b19ae4d077e4574bd12\"\u003e8a5ed09e5\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003etooltip:\u003c/strong\u003e allow hover detection logic to be customized (\u003ca href=\"https://redirect.github.com/angular/components/pull/33018\"\u003e#33018\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/a236a4067ce1d3cf8b7e1362760db5907a26c86e\"\u003e\u003ccode\u003ea236a40\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.6 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/6b955a73fe44f0a58993c80836c03cf149ae11a2\"\u003e\u003ccode\u003e6b955a7\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies (\u003ca href=\"https://redirect.github.com/angular/components/issues/33043\"\u003e#33043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/2909c3ac0712119c8286dbc4118a3e4cd1e85a2f\"\u003e\u003ccode\u003e2909c3a\u003c/code\u003e\u003c/a\u003e build: lock file maintenance (\u003ca href=\"https://redirect.github.com/angular/components/issues/33038\"\u003e#33038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/5b4bbe9c4f8c902d6923b139e7a925822c899bc1\"\u003e\u003ccode\u003e5b4bbe9\u003c/code\u003e\u003c/a\u003e fix(material/select): wrong transform origin when opening upwards inside anot...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/2c877d284177bff3973e93f3948c2a926fca08de\"\u003e\u003ccode\u003e2c877d2\u003c/code\u003e\u003c/a\u003e Set generic on some \u003ccode\u003eInjectionToken\u003c/code\u003e.  (\u003ca href=\"https://redirect.github.com/angular/components/issues/32753\"\u003e#32753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/97be64ac8f54540af3ee8d7f08ca80d2c98b0e88\"\u003e\u003ccode\u003e97be64a\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies (\u003ca href=\"https://redirect.github.com/angular/components/issues/33030\"\u003e#33030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/424b282a690c725b76ae6c4f36eb32b6cdcdf5f7\"\u003e\u003ccode\u003e424b282\u003c/code\u003e\u003c/a\u003e build: update dependency aspect_rules_ts to v3.8.8 (\u003ca href=\"https://redirect.github.com/angular/components/issues/33025\"\u003e#33025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/e433a661551394cb740314e0bc2f002d0549c2a2\"\u003e\u003ccode\u003ee433a66\u003c/code\u003e\u003c/a\u003e docs(material/dialog): clarify that default options replace rather than merge...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/c9d40aa735751363a729723751aaf87dfb5d4819\"\u003e\u003ccode\u003ec9d40aa\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/899456f6e4b23d6c34643c223a42f0bbd67b9de8\"\u003e\u003ccode\u003e899456f\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies (\u003ca href=\"https://redirect.github.com/angular/components/issues/33017\"\u003e#33017\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/components/compare/v21.2.4...v21.2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/common` from 21.2.6 to 21.2.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.8\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e40d378f3e3e7e57a45c8fbd9565ee06a3a6a13f\"\u003e\u003cimg src=\"https://img.shields.io/badge/e40d378f3e-fix-green\" alt=\"fix - e40d378f3e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ehandle nested brackets in host object bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c6781071f52d6378a002fba6611bb283fbb2fde\"\u003e\u003cimg src=\"https://img.shields.io/badge/2c6781071f-fix-green\" alt=\"fix - 2c6781071f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eerror for type parameter declarations\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/82192deda9c07113835e6c85af3f2c8c8218cda0\"\u003e\u003cimg src=\"https://img.shields.io/badge/82192deda9-fix-green\" alt=\"fix - 82192deda9\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ehandle missing serialized container hydration data\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/057cc6d09d234f401a810cfdd3ad14127652b88b\"\u003e\u003cimg src=\"https://img.shields.io/badge/057cc6d09d-fix-green\" alt=\"fix - 057cc6d09d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove obsolete iOS cursor pointer hack in event delegation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elanguage-service\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7797671257350665e8b3ceb2bc6a0201829dd338\"\u003e\u003cimg src=\"https://img.shields.io/badge/7797671257-fix-green\" alt=\"fix - 7797671257\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eget quick info at local var location to align with TS semantics and support type narrowing\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.8 (2026-04-08)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e40d378f3e3e7e57a45c8fbd9565ee06a3a6a13f\"\u003ee40d378f3e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ehandle nested brackets in host object bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c6781071f52d6378a002fba6611bb283fbb2fde\"\u003e2c6781071f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eerror for type parameter declarations\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/82192deda9c07113835e6c85af3f2c8c8218cda0\"\u003e82192deda9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ehandle missing serialized container hydration data\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/057cc6d09d234f401a810cfdd3ad14127652b88b\"\u003e057cc6d09d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove obsolete iOS cursor pointer hack in event delegation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elanguage-service\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7797671257350665e8b3ceb2bc6a0201829dd338\"\u003e7797671257\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eget quick info at local var location to align with TS semantics and support type narrowing\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.6 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/08d36599d724d6b3dbe2c9891c32f783bef4e157\"\u003e08d36599d7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fcd0bb0db83576ef0bc13c5c32f158d95efbedd5\"\u003efcd0bb0db8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e84e35cdd60696d8670421189e4aa02c1db583a6\"\u003ee84e35cdd6\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fa66173523bb275d33de4bd43ce23947812922e\"\u003e8fa6617352\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/028e1d3ce0ed3a33d3b7730a51b549a5cf013b29\"\u003e028e1d3ce0\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/78710938225d2c29c6e3666e431c2952bb5560db\"\u003e7871093822\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/682aaf943fea3d99f9f834b0bad4d165b4b28071\"\u003e682aaf943f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eadd strictTemplates to tsconfig during ng update\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/daa9b2a9d67557ae9246559f74396f43b240581c\"\u003edaa9b2a9d6\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/8102331f82c808ca2256ba51a1d83803a61beabb\"\u003e\u003ccode\u003e8102331\u003c/code\u003e\u003c/a\u003e test(http): disable XSRF and mock location in HttpClient tests to avoid Domin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/13f050d2204285173273ebbfe9b34bc1b3c63c80\"\u003e\u003ccode\u003e13f050d\u003c/code\u003e\u003c/a\u003e test: construct local \u003ccode\u003eDate\u003c/code\u003e objects to fix timezone flakiness\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d0cf2995a2b63eb13fe574770ee8a756277852a4\"\u003e\u003ccode\u003ed0cf299\u003c/code\u003e\u003c/a\u003e test: remove unsupported timezone from \u003ccode\u003eformatDate\u003c/code\u003e tests\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.8/packages/common\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/compiler` from 21.2.6 to 21.2.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.8\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e40d378f3e3e7e57a45c8fbd9565ee06a3a6a13f\"\u003e\u003cimg src=\"https://img.shields.io/badge/e40d378f3e-fix-green\" alt=\"fix - e40d378f3e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ehandle nested brackets in host object bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c6781071f52d6378a002fba6611bb283fbb2fde\"\u003e\u003cimg src=\"https://img.shields.io/badge/2c6781071f-fix-green\" alt=\"fix - 2c6781071f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eerror for type parameter declarations\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/82192deda9c07113835e6c85af3f2c8c8218cda0\"\u003e\u003cimg src=\"https://img.shields.io/badge/82192deda9-fix-green\" alt=\"fix - 82192deda9\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ehandle missing serialized container hydration data\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/057cc6d09d234f401a810cfdd3ad14127652b88b\"\u003e\u003cimg src=\"https://img.shields.io/badge/057cc6d09d-fix-green\" alt=\"fix - 057cc6d09d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove obsolete iOS cursor pointer hack in event delegation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elanguage-service\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7797671257350665e8b3ceb2bc6a0201829dd338\"\u003e\u003cimg src=\"https://img.shields.io/badge/7797671257-fix-green\" alt=\"fix - 7797671257\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eget quick info at local var location to align with TS semantics and support type narrowing\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.8 (2026-04-08)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e40d378f3e3e7e57a45c8fbd9565ee06a3a6a13f\"\u003ee40d378f3e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ehandle nested brackets in host object bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c6781071f52d6378a002fba6611bb283fbb2fde\"\u003e2c6781071f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eerror for type parameter declarations\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/82192deda9c07113835e6c85af3f2c8c8218cda0\"\u003e82192deda9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ehandle missing serialized container hydration data\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/057cc6d09d234f401a810cfdd3ad14127652b88b\"\u003e057cc6d09d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove obsolete iOS cursor pointer hack in event delegation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elanguage-service\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7797671257350665e8b3ceb2bc6a0201829dd338\"\u003e7797671257\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eget quick info at local var location to align with TS semantics and support type narrowing\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.6 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/08d36599d724d6b3dbe2c9891c32f783bef4e157\"\u003e08d36599d7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fcd0bb0db83576ef0bc13c5c32f158d95efbedd5\"\u003efcd0bb0db8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e84e35cdd60696d8670421189e4aa02c1db583a6\"\u003ee84e35cdd6\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fa66173523bb275d33de4bd43ce23947812922e\"\u003e8fa6617352\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/028e1d3ce0ed3a33d3b7730a51b549a5cf013b29\"\u003e028e1d3ce0\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/78710938225d2c29c6e3666e431c2952bb5560db\"\u003e7871093822\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/682aaf943fea3d99f9f834b0bad4d165b4b28071\"\u003e682aaf943f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eadd strictTemplates to tsconfig during ng update\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/daa9b2a9d67557ae9246559f74396f43b240581c\"\u003edaa9b2a9d6\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/a4f312060cdf745e4fb0b15eda24ee2b4df0440c\"\u003e\u003ccode\u003ea4f3120\u003c/code\u003e\u003c/a\u003e refactor(compiler): require a reference in DirectiveMeta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/de533fe49181ee7409fd0b0ae4c0391a1e220ee6\"\u003e\u003ccode\u003ede533fe\u003c/code\u003e\u003c/a\u003e refactor(compiler-cli): move ClassPropertyMapping into compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/ea1e34c4ddf404cde8d5c4ba0ba762bb0b9edbf8\"\u003e\u003ccode\u003eea1e34c\u003c/code\u003e\u003c/a\u003e refactor(compiler): move matchSource into base metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/e40d378f3e3e7e57a45c8fbd9565ee06a3a6a13f\"\u003e\u003ccode\u003ee40d378\u003c/code\u003e\u003c/a\u003e fix(compiler): handle nested brackets in host object bindings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003ccode\u003ed04ddd7\u003c/code\u003e\u003c/a\u003e fix(core): prevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003ccode\u003efea25d1\u003c/code\u003e\u003c/a\u003e fix(compiler): register SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67\"\u003e#67\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.8/packages/compiler\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/core` from 21.2.6 to 21.2.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.8\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e40d378f3e3e7e57a45c8fbd9565ee06a3a6a13f\"\u003e\u003cimg src=\"https://img.shields.io/badge/e40d378f3e-fix-green\" alt=\"fix - e40d378f3e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ehandle nested brackets in host object bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c6781071f52d6378a002fba6611bb283fbb2fde\"\u003e\u003cimg src=\"https://img.shields.io/badge/2c6781071f-fix-green\" alt=\"fix - 2c6781071f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eerror for type parameter declarations\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/82192deda9c07113835e6c85af3f2c8c8218cda0\"\u003e\u003cimg src=\"https://img.shields.io/badge/82192deda9-fix-green\" alt=\"fix - 82192deda9\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ehandle missing serialized container hydration data\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/057cc6d09d234f401a810cfdd3ad14127652b88b\"\u003e\u003cimg src=\"https://img.shields.io/badge/057cc6d09d-fix-green\" alt=\"fix - 057cc6d09d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove obsolete iOS cursor pointer hack in event delegation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elanguage-service\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7797671257350665e8b3ceb2bc6a0201829dd338\"\u003e\u003cimg src=\"https://img.shields.io/badge/7797671257-fix-green\" alt=\"fix - 7797671257\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eget quick info at local var location to align with TS semantics and support type narrowing\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.8 (2026-04-08)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e40d378f3e3e7e57a45c8fbd9565ee06a3a6a13f\"\u003ee40d378f3e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ehandle nested brackets in host object bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c6781071f52d6378a002fba6611bb283fbb2fde\"\u003e2c6781071f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eerror for type parameter declarations\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/82192deda9c07113835e6c85af3f2c8c8218cda0\"\u003e82192deda9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ehandle missing serialized container hydration data\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/057cc6d09d234f401a810cfdd3ad14127652b88b\"\u003e057cc6d09d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove obsolete iOS cursor pointer hack in event delegation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elanguage-service\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7797671257350665e8b3ceb2bc6a0201829dd338\"\u003e7797671257\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eget quick info at local var location to align with TS semantics and support type narrowing\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.6 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/08d36599d724d6b3dbe2c9891c32f783bef4e157\"\u003e08d36599d7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fcd0bb0db83576ef0bc13c5c32f158d95efbedd5\"\u003efcd0bb0db8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e84e35cdd60696d8670421189e4aa02c1db583a6\"\u003ee84e35cdd6\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fa66173523bb275d33de4bd43ce23947812922e\"\u003e8fa6617352\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/028e1d3ce0ed3a33d3b7730a51b549a5cf013b29\"\u003e028e1d3ce0\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/78710938225d2c29c6e3666e431c2952bb5560db\"\u003e7871093822\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/682aaf943fea3d99f9f834b0bad4d165b4b28071\"\u003e682aaf943f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eadd strictTemplates to tsconfig during ng update\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/daa9b2a9d67557ae9246559f74396f43b240581c\"\u003edaa9b2a9d6\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d4c8a9a887a28fa4f3dfce663095ec13ef3bebd0\"\u003e\u003ccode\u003ed4c8a9a\u003c/code\u003e\u003c/a\u003e refactor(compiler-cli): decouple SymbolBuilder from BoundTarget and minimize ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/057cc6d09d234f401a810cfdd3ad14127652b88b\"\u003e\u003ccode\u003e057cc6d\u003c/code\u003e\u003c/a\u003e fix(core): remove obsolete iOS cursor pointer hack in event delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/c9f8f3afb68ac921e02354473ebae5fae229400a\"\u003e\u003ccode\u003ec9f8f3a\u003c/code\u003e\u003c/a\u003e test(core): add missing import of ChangeDetectionStrategy in query_spec\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/910dcb6d6aaf0fd5f592cda00a1f45c5ed3e71c1\"\u003e\u003ccode\u003e910dcb6\u003c/code\u003e\u003c/a\u003e refactor(compiler-cli): decouple TemplateSymbolBuilder from ts.TypeChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/82192deda9c07113835e6c85af3f2c8c8218cda0\"\u003e\u003ccode\u003e82192de\u003c/code\u003e\u003c/a\u003e fix(core): handle missing serialized container hydration data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/2ae0912eea38d63201e94a5ecdee781c8491d78b\"\u003e\u003ccode\u003e2ae0912\u003c/code\u003e\u003c/a\u003e refactor(core): address review comments on NG0750 error message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/e583f4c80811202ffbd321b98cc957fd586df1bd\"\u003e\u003ccode\u003ee583f4c\u003c/code\u003e\u003c/a\u003e refactor(core): Add more detail to NG0750 error message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b08e29f2634a86d3903a679fc37a21bd21a0bcc\"\u003e\u003ccode\u003e0b08e29\u003c/code\u003e\u003c/a\u003e test(core): refactors test to use \u003ccode\u003etimeout\u003c/code\u003e utility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/4ad6d582d2a9f887c8530ff10ae513a4181ad24c\"\u003e\u003ccode\u003e4ad6d58\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies to v21.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003ccode\u003ed04ddd7\u003c/code\u003e\u003c/a\u003e fix(core): prevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.8/packages/core\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/forms` from 21.2.6 to 21.2.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.8\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e40d378f3e3e7e57a45c8fbd9565ee06a3a6a13f\"\u003e\u003cimg src=\"https://img.shields.io/badge/e40d378f3e-fix-green\" alt=\"fix - e40d378f3e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ehandle nested brackets in host object bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c6781071f52d6378a002fba6611bb283fbb2fde\"\u003e\u003cimg src=\"https://img.shields.io/badge/2c6781071f-fix-green\" alt=\"fix - 2c6781071f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eerror for type parameter declarations\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/82192deda9c07113835e6c85af3f2c8c8218cda0\"\u003e\u003cimg src=\"https://img.shields.io/badge/82192deda9-fix-green\" alt=\"fix - 82192deda9\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ehandle missing serialized container hydration data\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/057cc6d09d234f401a810cfdd3ad14127652b88b\"\u003e\u003cimg src=\"https://img.shields.io/badge/057cc6d09d-fix-green\" alt=\"fix - 057cc6d09d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove obsolete iOS cursor pointer hack in event delegation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elanguage-service\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7797671257350665e8b3ceb2bc6a0201829dd338\"\u003e\u003cimg src=\"https://img.shields.io/badge/7797671257-fix-green\" alt=\"fix - 7797671257\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eget quick info at local var location to align with TS semantics and support type narrowing\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/forms/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/forms/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/forms/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.8 (2026-04-08)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e40d378f3e3e7e57a45c8fbd9565ee06a3a6a13f\"\u003ee40d378f3e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ehandle nested brackets in host object bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c6781071f52d6378a002fba6611bb283fbb2fde\"\u003e2c6781071f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eerror for type parameter declarations\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/82192deda9c07113835e6c85af3f2c8c8218cda0\"\u003e82192deda9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ehandle missing serialized container hydration data\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/057cc6d09d234f401a810cfdd3ad14127652b88b\"\u003e057cc6d09d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove obsolete iOS cursor pointer hack in event delegation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elanguage-service\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7797671257350665e8b3ceb2bc6a0201829dd338\"\u003e7797671257\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eget quick info at local var location to align with TS semantics and support type narrowing\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.6 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/08d36599d724d6b3dbe2c9891c32f783bef4e157\"\u003e08d36599d7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fcd0bb0db83576ef0bc13c5c32f158d95efbedd5\"\u003efcd0bb0db8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e84e35cdd60696d8670421189e4aa02c1db583a6\"\u003ee84e35cdd6\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fa66173523bb275d33de4bd43ce23947812922e\"\u003e8fa6617352\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/028e1d3ce0ed3a33d3b7730a51b549a5cf013b29\"\u003e028e1d3ce0\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/78710938225d2c29c6e3666e431c2952bb5560db\"\u003e7871093822\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/682aaf943fea3d99f9f834b0bad4d165b4b28071\"\u003e682aaf943f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eadd strictTemplates to tsconfig during ng update\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/daa9b2a9d67557ae9246559f74396f43b240581c\"\u003edaa9b2a9d6\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b0dc2fbfcb909c558c7dcff89c2fe47c89878991\"\u003e\u003ccode\u003eb0dc2fb\u003c/code\u003e\u003c/a\u003e docs(forms): clarify disabled FormArray value behavior\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/895c576d494111f819e8a790d3a0695b6b9f8b4b\"\u003e\u003ccode\u003e895c576\u003c/code\u003e\u003c/a\u003e refactor(forms): use strict equality for pending status getter\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.8/packages/forms\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/material` from 21.2.4 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/compon...\n\n_Description has been truncated_","html_url":"https://github.com/SubJunk/TimelineTools/pull/1411","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SubJunk%2FTimelineTools/issues/1411","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1411/packages"},{"uuid":"4216514043","node_id":"PR_kwDOOhC4n87Qbn8V","number":611,"state":"open","title":"deps(deps): bump the all-minor-patch group with 55 updates","user":"dependabot[bot]","labels":["dependencies","javascript","pnpm"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-07T08:42:58.000Z","updated_at":"2026-04-07T08:43:43.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"all-minor-patch","update_count":55,"packages":[{"name":"@adobe/jsonschema2md","old_version":"8.0.10","new_version":"8.0.11","repository_url":"https://github.com/adobe/jsonschema2md"},{"name":"@apidevtools/json-schema-ref-parser","old_version":"15.3.1","new_version":"15.3.5","repository_url":"https://github.com/APIDevTools/json-schema-ref-parser"},{"name":"@semantic-release/npm","old_version":"13.1.4","new_version":"13.1.5","repository_url":"https://github.com/semantic-release/npm"},{"name":"@types/node","old_version":"25.5.0","new_version":"25.5.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@aws-sdk/client-kms","old_version":"3.1015.0","new_version":"3.1025.0","repository_url":"https://github.com/aws/aws-sdk-js-v3"},{"name":"@aws-sdk/client-s3","old_version":"3.1015.0","new_version":"3.1025.0","repository_url":"https://github.com/aws/aws-sdk-js-v3"},{"name":"@aws-sdk/client-secrets-manager","old_version":"3.1015.0","new_version":"3.1025.0","repository_url":"https://github.com/aws/aws-sdk-js-v3"},{"name":"@aws-sdk/s3-request-presigner","old_version":"3.1015.0","new_version":"3.1025.0","repository_url":"https://github.com/aws/aws-sdk-js-v3"},{"name":"@azure/identity","old_version":"4.13.0","new_version":"4.13.1","repository_url":"https://github.com/Azure/azure-sdk-for-js"},{"name":"@keycloak/keycloak-admin-client","old_version":"26.5.6","new_version":"26.5.7","repository_url":"https://github.com/keycloak/keycloak"},{"name":"@nestjs/common","old_version":"11.1.17","new_version":"11.1.18","repository_url":"https://github.com/nestjs/nest"},{"name":"@nestjs/core","old_version":"11.1.17","new_version":"11.1.18","repository_url":"https://github.com/nestjs/nest"},{"name":"@nestjs/platform-express","old_version":"11.1.17","new_version":"11.1.18","repository_url":"https://github.com/nestjs/nest"},{"name":"@nestjs/typeorm","old_version":"11.0.0","new_version":"11.0.1","repository_url":"https://github.com/nestjs/typeorm"},{"name":"@willsoto/nestjs-prometheus","old_version":"6.0.2","new_version":"6.1.0","repository_url":"https://github.com/willsoto/nestjs-prometheus"},{"name":"axios","old_version":"1.13.6","new_version":"1.14.0","repository_url":"https://github.com/axios/axios"},{"name":"joi","old_version":"18.0.2","new_version":"18.1.2","repository_url":"https://github.com/hapijs/joi"},{"name":"jose","old_version":"6.1.3","new_version":"6.2.2","repository_url":"https://github.com/panva/jose"},{"name":"jwks-rsa","old_version":"4.0.0","new_version":"4.0.1","repository_url":"https://github.com/auth0/node-jwks-rsa"},{"name":"nestjs-pino","old_version":"4.6.0","new_version":"4.6.1","repository_url":"https://github.com/iamolegga/nestjs-pino"},{"name":"nestjs-zod","old_version":"5.1.1","new_version":"5.3.0","repository_url":"https://github.com/BenLorantfy/nestjs-zod"},{"name":"@biomejs/biome","old_version":"2.4.4","new_version":"2.4.10","repository_url":"https://github.com/biomejs/biome"},{"name":"@hey-api/openapi-ts","old_version":"0.93.1","new_version":"0.95.0","repository_url":"https://github.com/hey-api/openapi-ts"},{"name":"@nestjs/cli","old_version":"11.0.16","new_version":"11.0.17","repository_url":"https://github.com/nestjs/nest-cli"},{"name":"@nestjs/schematics","old_version":"11.0.9","new_version":"11.0.10","repository_url":"https://github.com/nestjs/schematics"},{"name":"@nestjs/testing","old_version":"11.1.17","new_version":"11.1.18","repository_url":"https://github.com/nestjs/nest"},{"name":"@swc/cli","old_version":"0.8.0","new_version":"0.8.1","repository_url":"https://github.com/swc-project/pkgs"},{"name":"@swc/core","old_version":"1.15.18","new_version":"1.15.24","repository_url":"https://github.com/swc-project/swc"},{"name":"@testcontainers/postgresql","old_version":"11.12.0","new_version":"11.13.0","repository_url":"https://github.com/testcontainers/testcontainers-node"},{"name":"@vitest/coverage-v8","old_version":"4.1.0","new_version":"4.1.2","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"dotenv","old_version":"17.3.1","new_version":"17.4.1","repository_url":"https://github.com/motdotla/dotenv"},{"name":"nock","old_version":"14.0.11","new_version":"14.0.12","repository_url":"https://github.com/nock/nock"},{"name":"testcontainers","old_version":"11.12.0","new_version":"11.13.0","repository_url":"https://github.com/testcontainers/testcontainers-node"},{"name":"ts-loader","old_version":"9.5.4","new_version":"9.5.7","repository_url":"https://github.com/TypeStrong/ts-loader"},{"name":"vitest","old_version":"4.1.0","new_version":"4.1.2","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"@angular/animations","old_version":"21.2.5","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/cdk","old_version":"21.2.3","new_version":"21.2.5","repository_url":"https://github.com/angular/components"},{"name":"@angular/common","old_version":"21.2.5","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler","old_version":"21.2.5","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/core","old_version":"21.2.5","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/forms","old_version":"21.2.5","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/material","old_version":"21.2.3","new_version":"21.2.5","repository_url":"https://github.com/angular/components"},{"name":"@angular/platform-browser","old_version":"21.2.5","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser-dynamic","old_version":"21.2.5","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/router","old_version":"21.2.5","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"ngx-flexible-layout","old_version":"21.0.0","new_version":"21.0.1","repository_url":"https://github.com/jtc10005/ngx-flex-layout"},{"name":"@angular-eslint/builder","old_version":"21.2.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular/build","old_version":"21.2.3","new_version":"21.2.6","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/cli","old_version":"21.2.3","new_version":"21.2.6","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/compiler-cli","old_version":"21.2.5","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@playwright/test","old_version":"1.58.2","new_version":"1.59.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"angular-eslint","old_version":"21.2.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"playwright-ng-schematics","old_version":"21.0.5","new_version":"21.0.9","repository_url":"https://github.com/jfgreffier/playwright-ng-schematics"},{"name":"typescript-eslint","old_version":"8.57.2","new_version":"8.58.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"wrangler","old_version":"4.69.0","new_version":"4.80.0","repository_url":"https://github.com/cloudflare/workers-sdk"}],"path":null,"ecosystem":"npm"},"body":"Bumps the all-minor-patch group with 55 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@adobe/jsonschema2md](https://github.com/adobe/jsonschema2md) | `8.0.10` | `8.0.11` |\n| [@apidevtools/json-schema-ref-parser](https://github.com/APIDevTools/json-schema-ref-parser) | `15.3.1` | `15.3.5` |\n| [@semantic-release/npm](https://github.com/semantic-release/npm) | `13.1.4` | `13.1.5` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.5.0` | `25.5.2` |\n| [@aws-sdk/client-kms](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-kms) | `3.1015.0` | `3.1025.0` |\n| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.1015.0` | `3.1025.0` |\n| [@aws-sdk/client-secrets-manager](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-secrets-manager) | `3.1015.0` | `3.1025.0` |\n| [@aws-sdk/s3-request-presigner](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/packages/s3-request-presigner) | `3.1015.0` | `3.1025.0` |\n| [@azure/identity](https://github.com/Azure/azure-sdk-for-js) | `4.13.0` | `4.13.1` |\n| [@keycloak/keycloak-admin-client](https://github.com/keycloak/keycloak/tree/HEAD/js/libs/keycloak-admin-client) | `26.5.6` | `26.5.7` |\n| [@nestjs/common](https://github.com/nestjs/nest/tree/HEAD/packages/common) | `11.1.17` | `11.1.18` |\n| [@nestjs/core](https://github.com/nestjs/nest/tree/HEAD/packages/core) | `11.1.17` | `11.1.18` |\n| [@nestjs/platform-express](https://github.com/nestjs/nest/tree/HEAD/packages/platform-express) | `11.1.17` | `11.1.18` |\n| [@nestjs/typeorm](https://github.com/nestjs/typeorm) | `11.0.0` | `11.0.1` |\n| [@willsoto/nestjs-prometheus](https://github.com/willsoto/nestjs-prometheus) | `6.0.2` | `6.1.0` |\n| [axios](https://github.com/axios/axios) | `1.13.6` | `1.14.0` |\n| [joi](https://github.com/hapijs/joi) | `18.0.2` | `18.1.2` |\n| [jose](https://github.com/panva/jose) | `6.1.3` | `6.2.2` |\n| [jwks-rsa](https://github.com/auth0/node-jwks-rsa) | `4.0.0` | `4.0.1` |\n| [nestjs-pino](https://github.com/iamolegga/nestjs-pino) | `4.6.0` | `4.6.1` |\n| [nestjs-zod](https://github.com/BenLorantfy/nestjs-zod/tree/HEAD/packages/nestjs-zod) | `5.1.1` | `5.3.0` |\n| [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) | `2.4.4` | `2.4.10` |\n| [@hey-api/openapi-ts](https://github.com/hey-api/openapi-ts) | `0.93.1` | `0.95.0` |\n| [@nestjs/cli](https://github.com/nestjs/nest-cli) | `11.0.16` | `11.0.17` |\n| [@nestjs/schematics](https://github.com/nestjs/schematics) | `11.0.9` | `11.0.10` |\n| [@nestjs/testing](https://github.com/nestjs/nest/tree/HEAD/packages/testing) | `11.1.17` | `11.1.18` |\n| [@swc/cli](https://github.com/swc-project/pkgs) | `0.8.0` | `0.8.1` |\n| [@swc/core](https://github.com/swc-project/swc/tree/HEAD/packages/core) | `1.15.18` | `1.15.24` |\n| [@testcontainers/postgresql](https://github.com/testcontainers/testcontainers-node) | `11.12.0` | `11.13.0` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.1.0` | `4.1.2` |\n| [dotenv](https://github.com/motdotla/dotenv) | `17.3.1` | `17.4.1` |\n| [nock](https://github.com/nock/nock) | `14.0.11` | `14.0.12` |\n| [testcontainers](https://github.com/testcontainers/testcontainers-node) | `11.12.0` | `11.13.0` |\n| [ts-loader](https://github.com/TypeStrong/ts-loader) | `9.5.4` | `9.5.7` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.0` | `4.1.2` |\n| [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `21.2.5` | `21.2.7` |\n| [@angular/cdk](https://github.com/angular/components) | `21.2.3` | `21.2.5` |\n| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `21.2.5` | `21.2.7` |\n| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `21.2.5` | `21.2.7` |\n| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `21.2.5` | `21.2.7` |\n| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `21.2.5` | `21.2.7` |\n| [@angular/material](https://github.com/angular/components) | `21.2.3` | `21.2.5` |\n| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `21.2.5` | `21.2.7` |\n| [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `21.2.5` | `21.2.7` |\n| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `21.2.5` | `21.2.7` |\n| [ngx-flexible-layout](https://github.com/jtc10005/ngx-flex-layout) | `21.0.0` | `21.0.1` |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `21.2.0` | `21.3.1` |\n| [@angular/build](https://github.com/angular/angular-cli) | `21.2.3` | `21.2.6` |\n| [@angular/cli](https://github.com/angular/angular-cli) | `21.2.3` | `21.2.6` |\n| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `21.2.5` | `21.2.7` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.58.2` | `1.59.1` |\n| [angular-eslint](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/angular-eslint) | `21.2.0` | `21.3.1` |\n| [playwright-ng-schematics](https://github.com/jfgreffier/playwright-ng-schematics) | `21.0.5` | `21.0.9` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.57.2` | `8.58.0` |\n| [wrangler](https://github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler) | `4.69.0` | `4.80.0` |\n\nUpdates `@adobe/jsonschema2md` from 8.0.10 to 8.0.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/adobe/jsonschema2md/releases\"\u003e\u003ccode\u003e@​adobe/jsonschema2md\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.11\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/compare/v8.0.10...v8.0.11\"\u003e8.0.11\u003c/a\u003e (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e update external fixes (\u003ca href=\"https://redirect.github.com/adobe/jsonschema2md/issues/716\"\u003e#716\u003c/a\u003e) (\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/bb4188b0630f2618d94a5c6a2a97246224b0de0a\"\u003ebb4188b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/adobe/jsonschema2md/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​adobe/jsonschema2md\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/compare/v8.0.10...v8.0.11\"\u003e8.0.11\u003c/a\u003e (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e update external fixes (\u003ca href=\"https://redirect.github.com/adobe/jsonschema2md/issues/716\"\u003e#716\u003c/a\u003e) (\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/bb4188b0630f2618d94a5c6a2a97246224b0de0a\"\u003ebb4188b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/58a2324895bb0346c8e4a057aa06de73875e36ca\"\u003e\u003ccode\u003e58a2324\u003c/code\u003e\u003c/a\u003e chore(release): 8.0.11 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/bb4188b0630f2618d94a5c6a2a97246224b0de0a\"\u003e\u003ccode\u003ebb4188b\u003c/code\u003e\u003c/a\u003e fix(deps): update external fixes (\u003ca href=\"https://redirect.github.com/adobe/jsonschema2md/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/2a000e435e0bd768752923e4b370c34d121eafdb\"\u003e\u003ccode\u003e2a000e4\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency \u003ccode\u003e@​adobe/eslint-config-helix\u003c/code\u003e to v3.0.22 (\u003ca href=\"https://redirect.github.com/adobe/jsonschema2md/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/7dac3c41344241df260a0689331e021a607acea1\"\u003e\u003ccode\u003e7dac3c4\u003c/code\u003e\u003c/a\u003e chore(deps): update external fixes (\u003ca href=\"https://redirect.github.com/adobe/jsonschema2md/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/57bb9a9ceb2ddf3b6c91e3d21e13acacc4210bc3\"\u003e\u003ccode\u003e57bb9a9\u003c/code\u003e\u003c/a\u003e chore(deps): update external fixes (\u003ca href=\"https://redirect.github.com/adobe/jsonschema2md/issues/710\"\u003e#710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/a158caeaae96658ae7910e5fe9adf543896c3695\"\u003e\u003ccode\u003ea158cae\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency \u003ccode\u003e@​adobe/eslint-config-helix\u003c/code\u003e to v3.0.21 (\u003ca href=\"https://redirect.github.com/adobe/jsonschema2md/issues/709\"\u003e#709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/dc3584ba0cf363cae34d165bfd0f78e310e04598\"\u003e\u003ccode\u003edc3584b\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency \u003ccode\u003e@​adobe/eslint-config-helix\u003c/code\u003e to v3.0.19 (\u003ca href=\"https://redirect.github.com/adobe/jsonschema2md/issues/707\"\u003e#707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/651fd01d8d3861352380103e27d44231f8d8aecd\"\u003e\u003ccode\u003e651fd01\u003c/code\u003e\u003c/a\u003e chore(deps): update external fixes (\u003ca href=\"https://redirect.github.com/adobe/jsonschema2md/issues/706\"\u003e#706\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/f88fefac03f569e3b5eb13858b160e4b40b5478d\"\u003e\u003ccode\u003ef88fefa\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency \u003ccode\u003e@​adobe/eslint-config-helix\u003c/code\u003e to v3.0.18 (\u003ca href=\"https://redirect.github.com/adobe/jsonschema2md/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/d13a4a8e5ffeb5bb10d0f87acbdd67cd25163d5f\"\u003e\u003ccode\u003ed13a4a8\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency \u003ccode\u003e@​types/node\u003c/code\u003e to v24.10.9 (\u003ca href=\"https://redirect.github.com/adobe/jsonschema2md/issues/704\"\u003e#704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/adobe/jsonschema2md/compare/v8.0.10...v8.0.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@apidevtools/json-schema-ref-parser` from 15.3.1 to 15.3.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/releases\"\u003e\u003ccode\u003e@​apidevtools/json-schema-ref-parser\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.3.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/compare/v15.3.4...v15.3.5\"\u003e15.3.5\u003c/a\u003e (2026-03-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eedge:\u003c/strong\u003e fix some edge cases and add more tests (\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/df7967ecb4f93cb789c0e41f0ac84dd8eeafb264\"\u003edf7967e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.3.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/compare/v15.3.3...v15.3.4\"\u003e15.3.4\u003c/a\u003e (2026-03-27)\u003c/h2\u003e\n\u003ch3\u003eReverts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRevert \u0026quot;fix: support 2020-12 anchors and ref siblings\u0026quot; (\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/f26d8c7b0f341a2a26dbc3ba83a4e5ce411f0807\"\u003ef26d8c7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.3.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/compare/v15.3.2...v15.3.3\"\u003e15.3.3\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport 2020-12 anchors and ref siblings (\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/f3f7e35ee69af911432940963087d1f01203692b\"\u003ef3f7e35\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/APIDevTools/json-schema-ref-parser/issues/145\"\u003e#145\u003c/a\u003e \u003ca href=\"https://redirect.github.com/APIDevTools/json-schema-ref-parser/issues/419\"\u003e#419\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.3.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/compare/v15.3.1...v15.3.2\"\u003e15.3.2\u003c/a\u003e (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eref:\u003c/strong\u003e pass original ref (\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/889e69ef56a81e4e71e6c82e43866dd5e3aacad9\"\u003e889e69e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/fddef8a4ab653ac07bd4ccc02290e6191da4b620\"\u003e\u003ccode\u003efddef8a\u003c/code\u003e\u003c/a\u003e versions and tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/ecea9d50fb32b1fa8f556fa2a7734c77ab23ef49\"\u003e\u003ccode\u003eecea9d5\u003c/code\u003e\u003c/a\u003e test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/c81b48fe9d1107e67de7fbf622e0cb6fe5871c9a\"\u003e\u003ccode\u003ec81b48f\u003c/code\u003e\u003c/a\u003e normalize path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/df7967ecb4f93cb789c0e41f0ac84dd8eeafb264\"\u003e\u003ccode\u003edf7967e\u003c/code\u003e\u003c/a\u003e fix(edge): fix some edge cases and add more tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/f249657d23d47a71356c42ead24d30bc49aa7cfd\"\u003e\u003ccode\u003ef249657\u003c/code\u003e\u003c/a\u003e only test on lts and current\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/ba43eb833aaeb189862834bbf14ea700b8398811\"\u003e\u003ccode\u003eba43eb8\u003c/code\u003e\u003c/a\u003e chore(deps): deps bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/f26d8c7b0f341a2a26dbc3ba83a4e5ce411f0807\"\u003e\u003ccode\u003ef26d8c7\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix: support 2020-12 anchors and ref siblings\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/f3f7e35ee69af911432940963087d1f01203692b\"\u003e\u003ccode\u003ef3f7e35\u003c/code\u003e\u003c/a\u003e fix: support 2020-12 anchors and ref siblings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/c355f09e73cda4e98c03e3f07270790e58ee5d0b\"\u003e\u003ccode\u003ec355f09\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/889e69ef56a81e4e71e6c82e43866dd5e3aacad9\"\u003e\u003ccode\u003e889e69e\u003c/code\u003e\u003c/a\u003e fix(ref): pass original ref\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/compare/v15.3.1...v15.3.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@semantic-release/npm` from 13.1.4 to 13.1.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/semantic-release/npm/releases\"\u003e\u003ccode\u003e@​semantic-release/npm\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev13.1.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/semantic-release/npm/compare/v13.1.4...v13.1.5\"\u003e13.1.5\u003c/a\u003e (2026-03-01)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e update dependency normalize-url to v9 (\u003ca href=\"https://redirect.github.com/semantic-release/npm/issues/1095\"\u003e#1095\u003c/a\u003e) (\u003ca href=\"https://github.com/semantic-release/npm/commit/daec492f715f00a6ce61ed1e942d93c735c8fba8\"\u003edaec492\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/semantic-release/npm/commit/daec492f715f00a6ce61ed1e942d93c735c8fba8\"\u003e\u003ccode\u003edaec492\u003c/code\u003e\u003c/a\u003e fix(deps): update dependency normalize-url to v9 (\u003ca href=\"https://redirect.github.com/semantic-release/npm/issues/1095\"\u003e#1095\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/semantic-release/npm/commit/af8362f874f817b11d960e3350561fff45286db1\"\u003e\u003ccode\u003eaf8362f\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency strip-ansi to v7.2.0 (\u003ca href=\"https://redirect.github.com/semantic-release/npm/issues/1098\"\u003e#1098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/semantic-release/npm/commit/7354e1152590de8a8020ac208351a8005add18a3\"\u003e\u003ccode\u003e7354e11\u003c/code\u003e\u003c/a\u003e chore(deps): update node.js to v24 (\u003ca href=\"https://redirect.github.com/semantic-release/npm/issues/1027\"\u003e#1027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/semantic-release/npm/commit/2c4d2c94c819ec1fced1ea5cbdff4019ae0f7fc5\"\u003e\u003ccode\u003e2c4d2c9\u003c/code\u003e\u003c/a\u003e chore(deps): update npm to v11.11.0 (\u003ca href=\"https://redirect.github.com/semantic-release/npm/issues/1097\"\u003e#1097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/semantic-release/npm/commit/95ba68947e3d7d2b22a3989727cd700692f2035c\"\u003e\u003ccode\u003e95ba689\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency c8 to v11 (\u003ca href=\"https://redirect.github.com/semantic-release/npm/issues/1096\"\u003e#1096\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/semantic-release/npm/commit/5d32912ab7e1593a329a0aa1a101544b04df1346\"\u003e\u003ccode\u003e5d32912\u003c/code\u003e\u003c/a\u003e chore(deps): update npm to v11.10.1 (\u003ca href=\"https://redirect.github.com/semantic-release/npm/issues/1094\"\u003e#1094\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/semantic-release/npm/commit/54f908c81a8b8d836653d0eb840e1fb55f259e0c\"\u003e\u003ccode\u003e54f908c\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/semantic-release/npm/issues/1093\"\u003e#1093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/semantic-release/npm/commit/91e1f14a87086fbb5d783d8684f87e07f7f2a16b\"\u003e\u003ccode\u003e91e1f14\u003c/code\u003e\u003c/a\u003e chore(deps): update npm to v11.10.0 (\u003ca href=\"https://redirect.github.com/semantic-release/npm/issues/1092\"\u003e#1092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/semantic-release/npm/commit/0d7d37ef14c6442a5da0ca146f25a81ceabab293\"\u003e\u003ccode\u003e0d7d37e\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/semantic-release/npm/issues/1089\"\u003e#1089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/semantic-release/npm/commit/c5411cc2d0158e2bca5b8fb01c3ba31bcfbea490\"\u003e\u003ccode\u003ec5411cc\u003c/code\u003e\u003c/a\u003e chore(deps): update npm to v11.9.0 (\u003ca href=\"https://redirect.github.com/semantic-release/npm/issues/1088\"\u003e#1088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/semantic-release/npm/compare/v13.1.4...v13.1.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@types/node` from 25.5.0 to 25.5.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@aws-sdk/client-kms` from 3.1015.0 to 3.1025.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/releases\"\u003e\u003ccode\u003e@​aws-sdk/client-kms\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.1025.0\u003c/h2\u003e\n\u003ch4\u003e3.1025.0(2026-04-06)\u003c/h4\u003e\n\u003ch5\u003eDocumentation Changes\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-geo-maps:\u003c/strong\u003e  This release updates API reference documentation for Amazon Location Service Maps APIs to reflect regional restrictions for Grab Maps users (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/8e08de511e39c5edf01510c5dad47ef5e3050f80\"\u003e8e08de51\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003eNew Features\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclients:\u003c/strong\u003e  update client endpoints as of 2026-04-06 (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/a2eb33dab191fcd690a3b7010b62b3097d44dbda\"\u003ea2eb33da\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-mediatailor:\u003c/strong\u003e  This change adds support for Tagging the resource types Programs and Prefetch Schedules (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/cfa9a0a9a29534151741cdcc1a24ead2b36bf665\"\u003ecfa9a0a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-qconnect:\u003c/strong\u003e  Added optional originRequestId parameter to SendMessageRequest and ListSpans response in Amazon Q in Connect to support request tracing across service boundaries. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/5b3e0a76e4c5cec1d955b98fa6d8f8c70577f574\"\u003e5b3e0a76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-dlm:\u003c/strong\u003e  This release adds support for Fast Snapshot Restore AvailabilityZone Ids in Amazon Data Lifecycle Manager EBS snapshot lifecycle policies. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/18d4b471019f383d44daa7e42cd8feb23dcb5a14\"\u003e18d4b471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-guardduty:\u003c/strong\u003e  Migrated to Smithy. No functional changes (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/0054ddde0e7b5cc663ac42ad7be76811cb2c57e1\"\u003e0054ddde\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-transfer:\u003c/strong\u003e  AWS Transfer Family Connectors now support IPv6 connectivity, enabling outbound connections to remote SFTP or AS2 servers using IPv4-only or dual-stack (IPv4 and IPv6) configurations based on network requirements. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/51cf6a624b30aaa76d96aa7447b110ec6ed1240c\"\u003e51cf6a62\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-lightsail:\u003c/strong\u003e  This release adds support for the Asia Pacific (Malaysia) (ap-southeast-5) Region. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/6ceeb5d63759e180ca54aac1d36aaac4b90addc4\"\u003e6ceeb5d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-accessanalyzer:\u003c/strong\u003e  Brookie helps customers preview the impact of SCPs before deployment using historical access activity. It evaluates attached policies and proposed policy updates using collected access activity through CloudTrail authorization events and reports where currently allowed access will be denied. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/940df70360ac51652192675a9f377cac4ba3db4d\"\u003e940df703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-deadline:\u003c/strong\u003e  Added 8 batch APIs (BatchGetJob, BatchGetStep, BatchGetTask, BatchGetSession, BatchGetSessionAction, BatchGetWorker, BatchUpdateJob, BatchUpdateTask) for bulk operations. Monitors can now use an Identity Center instance in a different region via the identityCenterRegion parameter. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/64147e0837aeeade6809d40f34c443403a30f58b\"\u003e64147e08\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eFor list of updated packages, view \u003cstrong\u003eupdated-packages.md\u003c/strong\u003e in \u003cstrong\u003eassets-3.1025.0.zip\u003c/strong\u003e\u003c/p\u003e\n\u003ch2\u003ev3.1024.0\u003c/h2\u003e\n\u003ch4\u003e3.1024.0(2026-04-03)\u003c/h4\u003e\n\u003ch5\u003eDocumentation Changes\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-organizations:\u003c/strong\u003e  Updates close Account quota for member accounts in an Organization. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/4bc933f480ae1789df6e0acd34243376abc970b7\"\u003e4bc933f4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock-agentcore-control:\u003c/strong\u003e  Documentation Update for Adds support for three-legged (Authorization Code grant type) OAuth along with predefined MCP tool schema configuration for Amazon Bedrock AgentCore gateway MCP server targets. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/96ae995ba8c3ea1d41eef297ca44eaf05d4f093d\"\u003e96ae995b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003eNew Features\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock-agent:\u003c/strong\u003e  Added strict parameter to ToolSpecification to allow users to enforce strict JSON schema adherence for tool input schemas. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/2d57cd61c7c6e65c716726b117de387a3c985143\"\u003e2d57cd61\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-medialive:\u003c/strong\u003e  AWS Elemental MediaLive released a new features that allows customers to use HLG 2020 as a color space for AV1 video codec. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/b9ff368c11c6747f7d104bda4955407cfea000c1\"\u003eb9ff368c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-imagebuilder:\u003c/strong\u003e  Updated pagination token validation for ListContainerRecipes API to support maximum size of 65K characters (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/0d392c9013b89fa469e08ac59415ab1b6d79daef\"\u003e0d392c90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-cloudwatch-logs:\u003c/strong\u003e  Added queryDuration, bytesScanned, and userIdentity fields to the QueryInfo response object returned by DescribeQueries. Customers can now view detailed query cost information including who ran the query, how long it took, and the volume of data scanned. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/c4b9df8e63abc716559d7a9c6f96a4562f43f6c1\"\u003ec4b9df8e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-payment-cryptography:\u003c/strong\u003e  Adds optional support to retrieve previously generated import and export tokens to simplify import and export functions (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/7627474328ec5741df10bff91b7db564a672d30d\"\u003e76274743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock:\u003c/strong\u003e  Amazon Bedrock Guardrails enforcement configuration APIs now support selective guarding controls for system prompts as well as user and assistant messages, along with SDK support for Amazon Bedrock resource policy APIs. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/4aa232cc268e3cb4f3b24d947fe3b39742a8a0f3\"\u003e4aa232cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-lightsail:\u003c/strong\u003e  Add support for tagging of Alarm resource type (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/ad9e0d7195bffce0987ba447089a9c068c30c0f3\"\u003ead9e0d71\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eFor list of updated packages, view \u003cstrong\u003eupdated-packages.md\u003c/strong\u003e in \u003cstrong\u003eassets-3.1024.0.zip\u003c/strong\u003e\u003c/p\u003e\n\u003ch2\u003ev3.1023.0\u003c/h2\u003e\n\u003ch4\u003e3.1023.0(2026-04-02)\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-kms/CHANGELOG.md\"\u003e\u003ccode\u003e@​aws-sdk/client-kms\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1024.0...v3.1025.0\"\u003e3.1025.0\u003c/a\u003e (2026-04-06)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-kms\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1023.0...v3.1024.0\"\u003e3.1024.0\u003c/a\u003e (2026-04-03)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-kms\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1022.0...v3.1023.0\"\u003e3.1023.0\u003c/a\u003e (2026-04-02)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-kms\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1021.0...v3.1022.0\"\u003e3.1022.0\u003c/a\u003e (2026-04-01)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-kms\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1020.0...v3.1021.0\"\u003e3.1021.0\u003c/a\u003e (2026-03-31)\u003c/h1\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecodegen:\u003c/strong\u003e sync for adaptive retry throttling detection fix (\u003ca href=\"https://redirect.github.com/aws/aws-sdk-js-v3/issues/7905\"\u003e#7905\u003c/a\u003e) (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/03f108d08c37fcde9de0a62c29887458e980d84e\"\u003e03f108d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1019.0...v3.1020.0\"\u003e3.1020.0\u003c/a\u003e (2026-03-30)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-kms\u003c/code\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/8cfa946642fbfebcb3e71f1aff1094d1bb7683bd\"\u003e\u003ccode\u003e8cfa946\u003c/code\u003e\u003c/a\u003e Publish v3.1025.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/99bf9fc2c6f7e26a1a027b12b5fe03f061bf55e1\"\u003e\u003ccode\u003e99bf9fc\u003c/code\u003e\u003c/a\u003e Publish v3.1024.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/34e7b07a5c7829b78a436ae096096269bb53d9ee\"\u003e\u003ccode\u003e34e7b07\u003c/code\u003e\u003c/a\u003e Publish v3.1023.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/e7e636a6fd5dceb06b91f5e616390ef73ed40b53\"\u003e\u003ccode\u003ee7e636a\u003c/code\u003e\u003c/a\u003e Publish v3.1022.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/86db17036c92a1b5de6c5b3484bf945a87788e0a\"\u003e\u003ccode\u003e86db170\u003c/code\u003e\u003c/a\u003e Publish v3.1021.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/03f108d08c37fcde9de0a62c29887458e980d84e\"\u003e\u003ccode\u003e03f108d\u003c/code\u003e\u003c/a\u003e fix(codegen): sync for adaptive retry throttling detection fix (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-kms/issues/7905\"\u003e#7905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/15cfc71196c1aa0437c2646ce5042173ed281142\"\u003e\u003ccode\u003e15cfc71\u003c/code\u003e\u003c/a\u003e Publish v3.1020.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/c702a7595037829166db776cffdfea785588d78a\"\u003e\u003ccode\u003ec702a75\u003c/code\u003e\u003c/a\u003e chore(codegen): update smithy package versions (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-kms/issues/7903\"\u003e#7903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/7f8c031600f8c396ab8cc25da8b32ee8414312d9\"\u003e\u003ccode\u003e7f8c031\u003c/code\u003e\u003c/a\u003e chore(codegen): differentiate type imports (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-kms/issues/7897\"\u003e#7897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/a84cde64ab1985fbc1058f3188f82dd1b34428ce\"\u003e\u003ccode\u003ea84cde6\u003c/code\u003e\u003c/a\u003e Publish v3.1019.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commits/v3.1025.0/clients/client-kms\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@aws-sdk/client-s3` from 3.1015.0 to 3.1025.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/releases\"\u003e\u003ccode\u003e@​aws-sdk/client-s3\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.1025.0\u003c/h2\u003e\n\u003ch4\u003e3.1025.0(2026-04-06)\u003c/h4\u003e\n\u003ch5\u003eDocumentation Changes\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-geo-maps:\u003c/strong\u003e  This release updates API reference documentation for Amazon Location Service Maps APIs to reflect regional restrictions for Grab Maps users (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/8e08de511e39c5edf01510c5dad47ef5e3050f80\"\u003e8e08de51\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003eNew Features\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclients:\u003c/strong\u003e  update client endpoints as of 2026-04-06 (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/a2eb33dab191fcd690a3b7010b62b3097d44dbda\"\u003ea2eb33da\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-mediatailor:\u003c/strong\u003e  This change adds support for Tagging the resource types Programs and Prefetch Schedules (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/cfa9a0a9a29534151741cdcc1a24ead2b36bf665\"\u003ecfa9a0a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-qconnect:\u003c/strong\u003e  Added optional originRequestId parameter to SendMessageRequest and ListSpans response in Amazon Q in Connect to support request tracing across service boundaries. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/5b3e0a76e4c5cec1d955b98fa6d8f8c70577f574\"\u003e5b3e0a76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-dlm:\u003c/strong\u003e  This release adds support for Fast Snapshot Restore AvailabilityZone Ids in Amazon Data Lifecycle Manager EBS snapshot lifecycle policies. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/18d4b471019f383d44daa7e42cd8feb23dcb5a14\"\u003e18d4b471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-guardduty:\u003c/strong\u003e  Migrated to Smithy. No functional changes (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/0054ddde0e7b5cc663ac42ad7be76811cb2c57e1\"\u003e0054ddde\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-transfer:\u003c/strong\u003e  AWS Transfer Family Connectors now support IPv6 connectivity, enabling outbound connections to remote SFTP or AS2 servers using IPv4-only or dual-stack (IPv4 and IPv6) configurations based on network requirements. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/51cf6a624b30aaa76d96aa7447b110ec6ed1240c\"\u003e51cf6a62\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-lightsail:\u003c/strong\u003e  This release adds support for the Asia Pacific (Malaysia) (ap-southeast-5) Region. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/6ceeb5d63759e180ca54aac1d36aaac4b90addc4\"\u003e6ceeb5d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-accessanalyzer:\u003c/strong\u003e  Brookie helps customers preview the impact of SCPs before deployment using historical access activity. It evaluates attached policies and proposed policy updates using collected access activity through CloudTrail authorization events and reports where currently allowed access will be denied. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/940df70360ac51652192675a9f377cac4ba3db4d\"\u003e940df703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-deadline:\u003c/strong\u003e  Added 8 batch APIs (BatchGetJob, BatchGetStep, BatchGetTask, BatchGetSession, BatchGetSessionAction, BatchGetWorker, BatchUpdateJob, BatchUpdateTask) for bulk operations. Monitors can now use an Identity Center instance in a different region via the identityCenterRegion parameter. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/64147e0837aeeade6809d40f34c443403a30f58b\"\u003e64147e08\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eFor list of updated packages, view \u003cstrong\u003eupdated-packages.md\u003c/strong\u003e in \u003cstrong\u003eassets-3.1025.0.zip\u003c/strong\u003e\u003c/p\u003e\n\u003ch2\u003ev3.1024.0\u003c/h2\u003e\n\u003ch4\u003e3.1024.0(2026-04-03)\u003c/h4\u003e\n\u003ch5\u003eDocumentation Changes\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-organizations:\u003c/strong\u003e  Updates close Account quota for member accounts in an Organization. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/4bc933f480ae1789df6e0acd34243376abc970b7\"\u003e4bc933f4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock-agentcore-control:\u003c/strong\u003e  Documentation Update for Adds support for three-legged (Authorization Code grant type) OAuth along with predefined MCP tool schema configuration for Amazon Bedrock AgentCore gateway MCP server targets. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/96ae995ba8c3ea1d41eef297ca44eaf05d4f093d\"\u003e96ae995b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003eNew Features\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock-agent:\u003c/strong\u003e  Added strict parameter to ToolSpecification to allow users to enforce strict JSON schema adherence for tool input schemas. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/2d57cd61c7c6e65c716726b117de387a3c985143\"\u003e2d57cd61\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-medialive:\u003c/strong\u003e  AWS Elemental MediaLive released a new features that allows customers to use HLG 2020 as a color space for AV1 video codec. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/b9ff368c11c6747f7d104bda4955407cfea000c1\"\u003eb9ff368c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-imagebuilder:\u003c/strong\u003e  Updated pagination token validation for ListContainerRecipes API to support maximum size of 65K characters (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/0d392c9013b89fa469e08ac59415ab1b6d79daef\"\u003e0d392c90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-cloudwatch-logs:\u003c/strong\u003e  Added queryDuration, bytesScanned, and userIdentity fields to the QueryInfo response object returned by DescribeQueries. Customers can now view detailed query cost information including who ran the query, how long it took, and the volume of data scanned. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/c4b9df8e63abc716559d7a9c6f96a4562f43f6c1\"\u003ec4b9df8e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-payment-cryptography:\u003c/strong\u003e  Adds optional support to retrieve previously generated import and export tokens to simplify import and export functions (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/7627474328ec5741df10bff91b7db564a672d30d\"\u003e76274743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock:\u003c/strong\u003e  Amazon Bedrock Guardrails enforcement configuration APIs now support selective guarding controls for system prompts as well as user and assistant messages, along with SDK support for Amazon Bedrock resource policy APIs. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/4aa232cc268e3cb4f3b24d947fe3b39742a8a0f3\"\u003e4aa232cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-lightsail:\u003c/strong\u003e  Add support for tagging of Alarm resource type (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/ad9e0d7195bffce0987ba447089a9c068c30c0f3\"\u003ead9e0d71\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eFor list of updated packages, view \u003cstrong\u003eupdated-packages.md\u003c/strong\u003e in \u003cstrong\u003eassets-3.1024.0.zip\u003c/strong\u003e\u003c/p\u003e\n\u003ch2\u003ev3.1023.0\u003c/h2\u003e\n\u003ch4\u003e3.1023.0(2026-04-02)\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md\"\u003e\u003ccode\u003e@​aws-sdk/client-s3\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1024.0...v3.1025.0\"\u003e3.1025.0\u003c/a\u003e (2026-04-06)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-s3\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1023.0...v3.1024.0\"\u003e3.1024.0\u003c/a\u003e (2026-04-03)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-s3\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1022.0...v3.1023.0\"\u003e3.1023.0\u003c/a\u003e (2026-04-02)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-s3\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1021.0...v3.1022.0\"\u003e3.1022.0\u003c/a\u003e (2026-04-01)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-s3\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1020.0...v3.1021.0\"\u003e3.1021.0\u003c/a\u003e (2026-03-31)\u003c/h1\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecodegen:\u003c/strong\u003e sync for adaptive retry throttling detection fix (\u003ca href=\"https://redirect.github.com/aws/aws-sdk-js-v3/issues/7905\"\u003e#7905\u003c/a\u003e) (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/03f108d08c37fcde9de0a62c29887458e980d84e\"\u003e03f108d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-s3:\u003c/strong\u003e Add Bucket Metrics configuration support to directory buckets (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/67ff7cc5dd608937694b7d1e10aceef09e611011\"\u003e67ff7cc\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1019.0...v3.1020.0\"\u003e3.1020.0\u003c/a\u003e (2026-03-30)\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/8cfa946642fbfebcb3e71f1aff1094d1bb7683bd\"\u003e\u003ccode\u003e8cfa946\u003c/code\u003e\u003c/a\u003e Publish v3.1025.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/99bf9fc2c6f7e26a1a027b12b5fe03f061bf55e1\"\u003e\u003ccode\u003e99bf9fc\u003c/code\u003e\u003c/a\u003e Publish v3.1024.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/34e7b07a5c7829b78a436ae096096269bb53d9ee\"\u003e\u003ccode\u003e34e7b07\u003c/code\u003e\u003c/a\u003e Publish v3.1023.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/e7e636a6fd5dceb06b91f5e616390ef73ed40b53\"\u003e\u003ccode\u003ee7e636a\u003c/code\u003e\u003c/a\u003e Publish v3.1022.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/86db17036c92a1b5de6c5b3484bf945a87788e0a\"\u003e\u003ccode\u003e86db170\u003c/code\u003e\u003c/a\u003e Publish v3.1021.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/67ff7cc5dd608937694b7d1e10aceef09e611011\"\u003e\u003ccode\u003e67ff7cc\u003c/code\u003e\u003c/a\u003e feat(client-s3): Add Bucket Metrics configuration support to directory buckets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/03f108d08c37fcde9de0a62c29887458e980d84e\"\u003e\u003ccode\u003e03f108d\u003c/code\u003e\u003c/a\u003e fix(codegen): sync for adaptive retry throttling detection fix (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3/issues/7905\"\u003e#7905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/15cfc71196c1aa0437c2646ce5042173ed281142\"\u003e\u003ccode\u003e15cfc71\u003c/code\u003e\u003c/a\u003e Publish v3.1020.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/c702a7595037829166db776cffdfea785588d78a\"\u003e\u003ccode\u003ec702a75\u003c/code\u003e\u003c/a\u003e chore(codegen): update smithy package versions (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3/issues/7903\"\u003e#7903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/7f8c031600f8c396ab8cc25da8b32ee8414312d9\"\u003e\u003ccode\u003e7f8c031\u003c/code\u003e\u003c/a\u003e chore(codegen): differentiate type imports (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3/issues/7897\"\u003e#7897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commits/v3.1025.0/clients/client-s3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@aws-sdk/client-secrets-manager` from 3.1015.0 to 3.1025.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/releases\"\u003e\u003ccode\u003e@​aws-sdk/client-secrets-manager\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.1025.0\u003c/h2\u003e\n\u003ch4\u003e3.1025.0(2026-04-06)\u003c/h4\u003e\n\u003ch5\u003eDocumentation Changes\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-geo-maps:\u003c/strong\u003e  This release updates API reference documentation for Amazon Location Service Maps APIs to reflect regional restrictions for Grab Maps users (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/8e08de511e39c5edf01510c5dad47ef5e3050f80\"\u003e8e08de51\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003eNew Features\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclients:\u003c/strong\u003e  update client endpoints as of 2026-04-06 (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/a2eb33dab191fcd690a3b7010b62b3097d44dbda\"\u003ea2eb33da\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-mediatailor:\u003c/strong\u003e  This change adds support for Tagging the resource types Programs and Prefetch Schedules (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/cfa9a0a9a29534151741cdcc1a24ead2b36bf665\"\u003ecfa9a0a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-qconnect:\u003c/strong\u003e  Added optional originRequestId parameter to SendMessageRequest and ListSpans response in Amazon Q in Connect to support request tracing across service boundaries. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/5b3e0a76e4c5cec1d955b98fa6d8f8c70577f574\"\u003e5b3e0a76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-dlm:\u003c/strong\u003e  This release adds support for Fast Snapshot Restore AvailabilityZone Ids in Amazon Data Lifecycle Manager EBS snapshot lifecycle policies. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/18d4b471019f383d44daa7e42cd8feb23dcb5a14\"\u003e18d4b471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-guardduty:\u003c/strong\u003e  Migrated to Smithy. No functional changes (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/0054ddde0e7b5cc663ac42ad7be76811cb2c57e1\"\u003e0054ddde\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-transfer:\u003c/strong\u003e  AWS Transfer Family Connectors now support IPv6 connectivity, enabling outbound connections to remote SFTP or AS2 servers using IPv4-only or dual-stack (IPv4 and IPv6) configurations based on network requirements. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/51cf6a624b30aaa76d96aa7447b110ec6ed1240c\"\u003e51cf6a62\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-lightsail:\u003c/strong\u003e  This release adds support for the Asia Pacific (Malaysia) (ap-southeast-5) Region. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/6ceeb5d63759e180ca54aac1d36aaac4b90addc4\"\u003e6ceeb5d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-accessanalyzer:\u003c/strong\u003e  Brookie helps customers preview the impact of SCPs before deployment using historical access activity. It evaluates attached policies and proposed policy updates using collected access activity through CloudTrail authorization events and reports where currently allowed access will be denied. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/940df70360ac51652192675a9f377cac4ba3db4d\"\u003e940df703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-deadline:\u003c/strong\u003e  Added 8 batch APIs (BatchGetJob, BatchGetStep, BatchGetTask, BatchGetSession, BatchGetSessionAction, BatchGetWorker, BatchUpdateJob, BatchUpdateTask) for bulk operations. Monitors can now use an Identity Center instance in a different region via the identityCenterRegion parameter. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/64147e0837aeeade6809d40f34c443403a30f58b\"\u003e64147e08\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eFor list of updated packages, view \u003cstrong\u003eupdated-packages.md\u003c/strong\u003e in \u003cstrong\u003eassets-3.1025.0.zip\u003c/strong\u003e\u003c/p\u003e\n\u003ch2\u003ev3.1024.0\u003c/h2\u003e\n\u003ch4\u003e3.1024.0(2026-04-03)\u003c/h4\u003e\n\u003ch5\u003eDocumentation Changes\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-organizations:\u003c/strong\u003e  Updates close Account quota for member accounts in an Organization. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/4bc933f480ae1789df6e0acd34243376abc970b7\"\u003e4bc933f4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock-agentcore-control:\u003c/strong\u003e  Documentation Update for Adds support for three-legged (Authorization Code grant type) OAuth along with predefined MCP tool schema configuration for Amazon Bedrock AgentCore gateway MCP server targets. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/96ae995ba8c3ea1d41eef297ca44eaf05d4f093d\"\u003e96ae995b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003eNew Features\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock-agent:\u003c/strong\u003e  Added strict parameter to ToolSpecification to allow users to enforce strict JSON schema adherence for tool input schemas. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/2d57cd61c7c6e65c716726b117de387a3c985143\"\u003e2d57cd61\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-medialive:\u003c/strong\u003e  AWS Elemental MediaLive released a new features that allows customers to use HLG 2020 as a color space for AV1 video codec. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/b9ff368c11c6747f7d104bda4955407cfea000c1\"\u003eb9ff368c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-imagebuilder:\u003c/strong\u003e  Updated pagination token validation for ListContainerRecipes API to support maximum size of 65K characters (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/0d392c9013b89fa469e08ac59415ab1b6d79daef\"\u003e0d392c90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-cloudwatch-logs:\u003c/strong\u003e  Added queryDuration, bytesScanned, and userIdentity fields to the QueryInfo response object returned by DescribeQueries. Customers can now view detailed query cost information including who ran the query, how long it took, and the volume of data scanned. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/c4b9df8e63abc716559d7a9c6f96a4562f43f6c1\"\u003ec4b9df8e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-payment-cryptography:\u003c/strong\u003e  Adds optional support to retrieve previously generated import and export tokens to simplify import and export functions (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/7627474328ec5741df10bff91b7db564a672d30d\"\u003e76274743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock:\u003c/strong\u003e  Amazon Bedrock Guardrails enforcement configuration APIs now support selective guarding controls for system prompts as well as user and assistant messages, along with SDK support for Amazon Bedrock resource policy APIs. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/4aa232cc268e3cb4f3b24d947fe3b39742a8a0f3\"\u003e4aa232cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-lightsail:\u003c/strong\u003e  Add support for tagging of Alarm resource type (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/ad9e0d7195bffce0987ba447089a9c068c30c0f3\"\u003ead9e0d71\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eFor list of updated packages, view \u003cstrong\u003eupdated-packages.md\u003c/strong\u003e in \u003cstrong\u003eassets-3.1024.0.zip\u003c/strong\u003e\u003c/p\u003e\n\u003ch2\u003ev3.1023.0\u003c/h2\u003e\n\u003ch4\u003e3.1023.0(2026-04-02)\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-secrets-manager/CHANGELOG.md\"\u003e\u003ccode\u003e@​aws-sdk/client-secrets-manager\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1024.0...v3.1025.0\"\u003e3.1025.0\u003c/a\u003e (2026-04-06)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-secrets-manager\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1023.0...v3.1024.0\"\u003e3.1024.0\u003c/a\u003e (2026-04-03)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-secrets-manager\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1022.0...v3.1023.0\"\u003e3.1023.0\u003c/a\u003e (2026-04-02)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-secrets-manager\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1021.0...v3.1022.0\"\u003e3.1022.0\u003c/a\u003e (2026-04-01)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-secrets-manager\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1020.0...v3.1021.0\"\u003e3.1021.0\u003c/a\u003e (2026-03-31)\u003c/h1\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecodegen:\u003c/strong\u003e sync for adaptive retry throttling detection fix (\u003ca href=\"https://redirect.github.com/aws/aws-sdk-js-v3/issues/7905\"\u003e#7905\u003c/a\u003e) (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/03f108d08c37fcde9de0a62c29887458e980d84e\"\u003e03f108d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1019.0...v3.1020.0\"\u003e3.1020.0\u003c/a\u003e (2026-03-30)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-secrets-manager\u003c/code\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/8cfa946642fbfebcb3e71f1aff1094d1bb7683bd\"\u003e\u003ccode\u003e8cfa946\u003c/code\u003e\u003c/a\u003e Publish v3.1025.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/99bf9fc2c6f7e26a1a027b12b5fe03f061bf55e1\"\u003e\u003ccode\u003e99bf9fc\u003c/code\u003e\u003c/a\u003e Publish v3.1024.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/34e7b07a5c7829b78a436ae096096269bb53d9ee\"\u003e\u003ccode\u003e34e7b07\u003c/code\u003e\u003c/a\u003e Publish v3.1023.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/e7e636a6fd5dceb06b91f5e616390ef73ed40b53\"\u003e\u003ccode\u003ee7e636a\u003c/code\u003e\u003c/a\u003e Publish v3.1022.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/86db17036c92a1b5de6c5b3484bf945a87788e0a\"\u003e\u003ccode\u003e86db170\u003c/code\u003e\u003c/a\u003e Publish v3.1021.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/03f108d08c37fcde9de0a62c29887458e980d84e\"\u003e\u003ccode\u003e03f108d\u003c/code\u003e\u003c/a\u003e fix(codegen): sync for adaptive retry throttling detection fix (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-secrets-manager/issues/7905\"\u003e#7905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/15cfc71196c1aa0437c2646ce5042173ed281142\"\u003e\u003ccode\u003e15cfc71\u003c/code\u003e\u003c/a\u003e Publish v3.1020.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/c702a7595037829166db776cffdfea785588d78a\"\u003e\u003ccode\u003ec702a75\u003c/code\u003e\u003c/a\u003e chore(codegen): update smithy package versions (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-secrets-manager/issues/7903\"\u003e#7903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/7f8c031600f8c396ab8cc25da8b32ee8414312d9\"\u003e\u003ccode\u003e7f8c031\u003c/code\u003e\u003c/a\u003e chore(codegen): differentiate type imports (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-secrets-manager/issues/7897\"\u003e#7897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/a84cde64ab1985fbc1058f3188f82dd1b34428ce\"\u003e\u003ccode\u003ea84cde6\u003c/code\u003e\u003c/a\u003e Publish v3.1019.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commits/v3.1025.0/clients/client-secrets-manager\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@aws-sdk/s3-request-presigner` from 3.1015.0 to 3.1025.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/releases\"\u003e\u003ccode\u003e@​aws-sdk/s3-request-presigner\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.1025.0\u003c/h2\u003e\n\u003ch4\u003e3.1025.0(2026-04-06)\u003c/h4\u003e\n\u003ch5\u003eDocumentation Changes\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-geo-maps:\u003c/strong\u003e  This release updates API reference documentation for Amazon Location Service Maps APIs to reflect regional restrictions for Grab Maps users (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/8e08de511e39c5edf01510c5dad47ef5e3050f80\"\u003e8e08de51\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003eNew Features\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclients:\u003c/strong\u003e  update client endpoints as of 2026-04-06 (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/a2eb33dab191fcd690a3b7010b62b3097d44dbda\"\u003ea2eb33da\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-mediatailor:\u003c/strong\u003e  This change adds support for Tagging the resource types Programs and Prefetch Schedules (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/cfa9a0a9a29534151741cdcc1a24ead2b36bf665\"\u003ecfa9a0a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-qconnect:\u003c/strong\u003e  Added optional originRequestId parameter to SendMessageRequest and ListSpans response in Amazon Q in Connect to support request tracing across service boundaries. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/5b3e0a76e4c5cec1d955b98fa6d8f8c70577f574\"\u003e5b3e0a76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-dlm:\u003c/strong\u003e  This release adds support for Fast Snapshot Restore AvailabilityZone Ids in Amazon Data Lifecycle Manager EBS snapshot lifecycle policies. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/18d4b471019f383d44daa7e42cd8feb23dcb5a14\"\u003e18d4b471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-guardduty:\u003c/strong\u003e  Migrated to Smithy. No functional changes (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/0054ddde0e7b5cc663ac42ad7be76811cb2c57e1\"\u003e0054ddde\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-transfer:\u003c/strong\u003e  AWS Transfer Family Connectors now support IPv6 connectivity, enabling outbound connections to remote SFTP or AS2 servers using IPv4-only or dual-stack (IPv4 and IPv6) configurations based on network requirements. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/51cf6a624b30aaa76d96aa7447b110ec6ed1240c\"\u003e51cf6a62\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-lightsail:\u003c/strong\u003e  This release adds support for the Asia Pacific (Malaysia) (ap-southeast-5) Region. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/6ceeb5d63759e180ca54aac1d36aaac4b90addc4\"\u003e6ceeb5d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-accessanalyzer:\u003c/strong\u003e  Brookie helps customers preview the impact of SCPs before deployment using historical access activity. It evaluates attached policies and proposed policy updates using collected access activity through CloudTrail authorization events and reports where currently allowed access will be denied. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/940df70360ac51652192675a9f377cac4ba3db4d\"\u003e940df703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-deadline:\u003c/strong\u003e  Added 8 batch APIs (BatchGetJob, BatchGetStep, BatchGetTask, BatchGetSession, BatchGetSessionAction, BatchGetWorker, BatchUpdateJob, BatchUpdateTask) for bulk operations. Monitors can now use an Identity Center instance in a different region via the identityCenterRegion parameter. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/64147e0837aeeade6809d40f34c443403a30f58b\"\u003e64147e08\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eFor list of updated packages, view \u003cstrong\u003eupdated-packages.md\u003c/strong\u003e in \u003cstrong\u003eassets-3.1025.0.zip\u003c/strong\u003e\u003c/p\u003e\n\u003ch2\u003ev3.1024.0\u003c/h2\u003e\n\u003ch4\u003e3.1024.0(2026-04-03)\u003c/h4\u003e\n\u003ch5\u003eDocumentation Changes\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-organizations:\u003c/strong\u003e  Updates close Account quota for member accounts in an Organization. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/4bc933f480ae1789df6e0acd34243376abc970b7\"\u003e4bc933f4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock-agentcore-control:\u003c/strong\u003e  Documentation Update for Adds support for three-legged (Authorization Code grant type) OAuth along with predefined MCP tool schema configuration for Amazon Bedrock AgentCore gateway MCP server targets. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/96ae995ba8c3ea1d41eef297ca44eaf05d4f093d\"\u003e96ae995b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003eNew Features\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock-agent:\u003c/strong\u003e  Added strict parameter to ToolSpecification to allow users to enforce strict JSON schema adherence for tool input schemas. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/2d57cd61c7c6e65c716726b117de387a3c985143\"\u003e2d57cd61\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-medialive:\u003c/strong\u003e  AWS Elemental MediaLive released a new features that allows customers to use HLG 2020 as a color space for AV1 video codec. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/b9ff368c11c6747f7d104bda4955407cfea000c1\"\u003eb9ff368c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-imagebuilder:\u003c/strong\u003e  Updated pagination token validation for ListContainerRecipes API to support maximum size of 65K characters (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/0d392c9013b89fa469e08ac59415ab1b6d79daef\"\u003e0d392c90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-cloudwatch-logs:\u003c/strong\u003e  Added queryDuration, bytesScanned, and userIdentity fields to the QueryInfo response object returned by DescribeQueries. Customers can now view detailed query cost information including who ran the query, how long it took, and the volume of data scanned. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/c4b9df8e63abc716559d7a9c6f96a4562f43f6c1\"\u003ec4b9df8e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-payment-cryptography:\u003c/strong\u003e  Adds optional support to retrieve previously generated import and export tokens to simplify import and export functions (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/7627474328ec5741df10bff91b7db564a672d30d\"\u003e76274743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock:\u003c/strong\u003e  Amazon Bedrock Guardrails enforcement configuration APIs now support selective guarding controls for system prompts as well as user and assistant messages, along with SDK support for Amazon Bedrock resource policy APIs. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/4aa232cc268e3cb4f3b24d947fe3b39742a8a0f3\"\u003e4aa232cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-lightsail:\u003c/strong\u003e  Add support for tagging of Alarm resource type (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/ad9e0d7195bffce0987ba447089a9c068c30c0f3\"\u003ead9e0d71\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eFor list of updated packages, view \u003cstrong\u003eupdated-packages.md\u003c/strong\u003e in \u003cstrong\u003eassets-3.1024.0.zip\u003c/strong\u003e\u003c/p\u003e\n\u003ch2\u003ev3.1023.0\u003c/h2\u003e\n\u003ch4\u003e3.1023.0(2026-04-02)\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/blob/main/packages/s3-request-presigner/CHANGELOG.md\"\u003e\u003ccode\u003e@​aws-sdk/s3-request-presigner\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1024.0...v3.1025.0\"\u003e3.1025.0\u003c/a\u003e (2026-04-06)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/s3-request-presigner\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1023.0...v3.1024.0\"\u003e3.1024.0\u003c/a\u003e (2026-04-03)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/s3-request-presigner\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1022.0...v3.1023.0\"\u003e3.1023.0\u003c/a\u003e (2026-04-02)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/s3-request-presigner\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1021.0...v3.1022.0\"\u003e3.1022.0\u003c/a\u003e (2026-04-01)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/s3-request-presigner\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1020.0...v3.1021.0\"\u003e3.1021.0\u003c/a\u003e (2026-03-31)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/s3-request-presigner\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1019.0...v3.1020.0\"\u003e3.1020.0\u003c/a\u003e (2026-03-30)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/s3-request-presigner\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1018.0...v3.1019.0\"\u003e3.1019.0\u003c/a\u003e (2026-03-27)\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/8cfa946642fbfebcb3e71f1aff1094d1bb7683bd\"\u003e\u003ccode\u003e8cfa946\u003c/code\u003e\u003c/a\u003e Publish v3.1025.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/99bf9fc2c6f7e26a1a027b12b5fe03f061bf55e1\"\u003e\u003ccode\u003e99bf9fc\u003c/code\u003e\u003c/a\u003e Publish v3.1024.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/34e7b07a5c7829b78a436ae096096269bb53d9ee\"\u003e\u003ccode\u003e34e7b07\u003c/code\u003e\u003c/a\u003e Publish v3.1023.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/e7e636a6fd5dceb06b91f5e616390ef73ed40b53\"\u003e\u003ccode\u003ee7e636a\u003c/code\u003e\u003c/a\u003e Publish v3.1022.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/86db17036c92a1b5de6c5b3484bf945a87788e0a\"\u003e\u003ccode\u003e86db170\u003c/code\u003e\u003c/a\u003e Publish v3.1021.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/15cfc71196c1aa0437c2646ce5042173ed281142\"\u003e\u003ccode\u003e15cfc71\u003c/code\u003e\u003c/a\u003e Publish v3.1020.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/c702a7595037829166db776cffdfea785588d78a\"\u003e\u003ccode\u003ec702a75\u003c/code\u003e\u003c/a\u003e chore(codegen): update smithy package versions (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/tree/HEAD/packages/s3-request-presigner/issues/7903\"\u003e#7903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/a84cde64ab1985fbc1058f3188f82dd1b34428ce\"\u003e\u003ccode\u003ea84cde6\u003c/code\u003e\u003c/a\u003e Publish v3.1019.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/a3a34e38278f3d1fa1e8ee078d6d85d7cbe3dd56\"\u003e\u003ccode\u003ea3a34e3\u003c/code\u003e\u003c/a\u003e Publish v3.1018.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/32dfe7f4f724e639381e985dbdbfd1fc948f2ffa\"\u003e\u003ccode\u003e32dfe7f\u003c/code\u003e\u003c/a\u003e Publish v3.1017.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commits/v3.1025.0/packages/s3-request-presigner\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@azure/identity` from 4.13.0 to 4.13.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-js/commit/0604e47fff8917b9f4674d75a88dafe2a72cc3de\"\u003e\u003ccode\u003e0604e47\u003c/code\u003e\u003c/a\u003e Sync eng/common directory with azure-sdk-tools for PR 13235 (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-js/issues/36861\"\u003e#36861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-js/commit/85a1361f61b24e53fe90000768fbe9cea72cdf39\"\u003e\u003ccode\u003e85a1361\u003c/code\u003e\u003c/a\u003e Silence 1ESPT non-blocking error (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-js/issues/36342\"\u003e#36342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-js/commit/a6ce3c792f0349aff13136314fc3084fc83923c3\"\u003e\u003ccode\u003ea6ce3c7\u003c/code\u003e\u003c/a\u003e [Identity] Bump MSAL dependency to v5 (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-js/issues/37685\"\u003e#37685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-js/commit/6d2d18010a6e517bc9a8ec030e0522957ae46331\"\u003e\u003ccode\u003e6d2d180\u003c/code\u003e\u003c/a\u003e restore assets.json from \u003ccode\u003e@​azure/storage-blob\u003c/code\u003e_12.31.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Azure/azure-sdk-for-js/compare/@azure/identity_4.13.0...@azure/identity_4.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@keycloak/keycloak-admin-client` from 26.5.6 to 26.5.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/keycloak/keycloak/releases\"\u003e\u003ccode\u003e@​keycloak/keycloak-admin-client\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.5.7\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/keycloak/keycloak/commit/97c2dad98597b17efae79006be47a51c6f5a72e9\"\u003e\u003ccode\u003e97c2dad\u003c/code\u003e\u003c/a\u003e Set version to 26.5.7\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/keycloak/keycloak/commits/26.5.7/js/libs/keycloak-admin-client\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@nestjs/common` from 11.1.17 to 11.1.18\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nestjs/nest/releases\"\u003e\u003ccode\u003e@​nestjs/common\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev11.1.18 (2026-04-03)\u003c/h2\u003e\n\u003ch4\u003eBug fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emicroservices\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/16675\"\u003e#16675\u003c/a\u003e fix(microservices): preserve packet headers in nats serializer (\u003ca href=\"https://github.com/wwenrr\"\u003e\u003ccode\u003e@​wwenrr\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecore\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/16683\"\u003e#16683\u003c/a\u003e fix(core): prevent injector hang when design:paramtypes is missing (\u003ca href=\"https://github.com/Youmoo\"\u003e\u003ccode\u003e@​Youmoo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/16637\"\u003e#16637\u003c/a\u003e fix(core): dependency injection edge case with moduleref.create (\u003ca href=\"https://github.com/JakobStaudinger\"\u003e\u003ccode\u003e@​JakobStaudinger\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/16686\"\u003enestjs/nest#16686\u003c/a\u003e fix(core): sanitize sse message\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eDependencies\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecore\u003c/code\u003e, \u003ccode\u003eplatform-express\u003c/code\u003e, \u003ccode\u003eplatform-fastify\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/16679\"\u003e#16679\u003c/a\u003e fix(deps): update dependency path-to-regexp to v8.4.2 (\u003ca href=\"https://github.com/apps/renovate\"\u003e\u003ccode\u003e@​renovate[bot]\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eplatform-fastify\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/16623\"\u003e#16623\u003c/a\u003e fix(deps): update dependency fastify to v5.8.4 (\u003ca href=\"https://github.com/apps/renovate\"\u003e\u003ccode\u003e@​renovate[bot]\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eplatform-ws\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/16618\"\u003e#16618\u003c/a\u003e chore(deps): bump ws from 8.19.0 to 8.20.0 (\u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecommon\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/16619\"\u003e#16619\u003c/a\u003e chore(deps): bump file-type from 21.3.3 to 21.3.4 (\u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eCommitters: 6\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAnkit San (\u003ca href=\"https://github.com/ankitbelal\"\u003e\u003ccode\u003e@​ankitbelal\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJakob Staudinger (\u003ca href=\"https://github.com/JakobStaudinger\"\u003e\u003ccode\u003e@​JakobStaudinger\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eKamil Mysliwiec (\u003ca href=\"https://github.com/kamilmysliwiec\"\u003e\u003ccode\u003e@​kamilmysliwiec\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eKrishna Chaitanya (\u003ca href=\"https://github.com/Krishnachaitanyakc\"\u003e\u003ccode\u003e@​Krishnachaitanyakc\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMK (\u003ca href=\"https://github.com/wwenrr\"\u003e\u003ccode\u003e@​wwenrr\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eyoumoo (\u003ca href=\"https://github.com/Youmoo\"\u003e\u003ccode\u003e@​Youmoo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/3c1cc5f91e95fcec27c3694cd42a08a50e85cc5f\"\u003e\u003ccode\u003e3c1cc5f\u003c/code\u003e\u003c/a\u003e chore(release): publish v11.1.18 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/a39e345b0af1dc1aeff87c1843df6712b18ee6ee\"\u003e\u003ccode\u003ea39e345\u003c/code\u003e\u003c/a\u003e refactor(common): change console logger helpers to protected\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/34f0f28d5f30e0ac0d39618d9f84ce0b7429a7f2\"\u003e\u003ccode\u003e34f0f28\u003c/code\u003e\u003c/a\u003e chore(deps): bump file-type from 21.3.3 to 21.3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/0e96b0a93c1ad83d761eb3a836b42f7edfcf8c4c\"\u003e\u003ccode\u003e0e96b0a\u003c/code\u003e\u003c/a\u003e chore(deps): bump file-type from 21.3.2 to 21.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/5a05f52c4368157219ea15c30ba881d9ddd64bd9\"\u003e\u003ccode\u003e5a05f52\u003c/code\u003e\u003c/a\u003e chore: update readme\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/nestjs/nest/commits/v11.1.18/packages/common\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@nestjs/core` from 11.1.17 to 11.1.18\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nestjs/nest/releases\"\u003e\u003ccode\u003e@​nestjs/core\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev11.1.18 (2026-04-03)\u003c/h2\u003e\n\u003ch4\u003eBug fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emicroservices\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/16675\"\u003e#16675\u003c/a\u003e fix(microservices): preserve packet headers in na...\n\n_Description has been truncated_","html_url":"https://github.com/openwallet-foundation-labs/eudiplo/pull/611","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/openwallet-foundation-labs%2Feudiplo/issues/611","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/611/packages"},{"uuid":"4214308353","node_id":"PR_kwDOKDWd9s7QVEE3","number":710,"state":"open","title":"chore(deps-dev): bump @angular-eslint/builder from 18.2.0 to 21.3.1 in /edc-policy-playground","user":"dependabot[bot]","labels":["dependencies","npm","stale"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-06T22:05:13.000Z","updated_at":"2026-04-21T04:01:02.442Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"@angular-eslint/builder","old_version":"18.2.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":"/edc-policy-playground","ecosystem":"npm"},"body":"Bumps [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) from 18.2.0 to 21.3.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.3.1\u003c/h2\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.0.3 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2949\"\u003e#2949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2954\"\u003e#2954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] properly handle statements with unary operators (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2926\"\u003e#2926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eprefer-self-closing-tags:\u003c/strong\u003e add selectedcontent nonAriaElements (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebjarketrux\u003c/li\u003e\n\u003cli\u003eDaniil Demenev \u003ca href=\"https://github.com/BEGEMOT9I\"\u003e\u003ccode\u003e@​BEGEMOT9I\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev21.3.0\u003c/h2\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e add computed-must-return rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2882\"\u003e#2882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] detect Signal member access (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2848\"\u003e#2848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e add \u003ccode\u003eno-non-null-assertion\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2885\"\u003e#2885\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.1.4 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] add check \u003ccode\u003eInputSignalWithTransform\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2879\"\u003e#2879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] detect \u003ccode\u003eSignal\u003c/code\u003e type correctly (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [prefer-template-literal] preserve nested non string binary \u003ccode\u003e+\u003c/code\u003e operation (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2902\"\u003e#2902\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev21.2.0\u003c/h2\u003e\n\u003ch2\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for builder to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch2\u003e21.1.0 (2025-12-08)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ereference \u003ccode\u003e@​angular/cli\u003c/code\u003e peer in addition to direct dependencies (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2820\"\u003e#2820\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.0.1 (2025-11-23)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for builder to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch1\u003e21.0.0 (2025-11-22)\u003c/h1\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ \u003cstrong\u003ebuilder:\u003c/strong\u003e align formatter invocation with eslint CLI by always passing all files, even if quiet (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/bceaa80e\"\u003ebceaa80e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e⚠️ Breaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ \u003cstrong\u003ebuilder:\u003c/strong\u003e align formatter invocation with eslint CLI by always passing all files, even if quiet (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/bceaa80e\"\u003ebceaa80e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/8f2afdce28d4cbdac792465b33aff35915af23b5\"\u003e\u003ccode\u003e8f2afdc\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/77099ee61cda76136038dce9f21d3af6071a7d06\"\u003e\u003ccode\u003e77099ee\u003c/code\u003e\u003c/a\u003e chore: ensure dist artifacts are available for e2e publishing in DTE (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/af8900f087b09556bfaddd815ce483bf7b0262ea\"\u003e\u003ccode\u003eaf8900f\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix: narrow build target cache outputs to avoid clobbering compile ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/7e173918eb48b2db41ce4d5a934567dab26fe54b\"\u003e\u003ccode\u003e7e17391\u003c/code\u003e\u003c/a\u003e fix: narrow build target cache outputs to avoid clobbering compile artifacts ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/a959e4d2804bbeb3cbc7caaa9c2fb2be9da3348e\"\u003e\u003ccode\u003ea959e4d\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/5c214854f897cb698563f53db6b9bddfb23e4d8e\"\u003e\u003ccode\u003e5c21485\u003c/code\u003e\u003c/a\u003e chore(builder): change builder tests to be cross-platform (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/3ef7fb157e866d76ae76d41b706b92efbd54d72d\"\u003e\u003ccode\u003e3ef7fb1\u003c/code\u003e\u003c/a\u003e feat: add support for ESLint v10 (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/6fa321dc27993f55e6d5bc6e421010bb7b5ef1d3\"\u003e\u003ccode\u003e6fa321d\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/4fa7889c54600ba56d29928b8026ff30a16d600b\"\u003e\u003ccode\u003e4fa7889\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/e7bb47b27bfaef61af694ebc29bc5636378b232c\"\u003e\u003ccode\u003ee7bb47b\u003c/code\u003e\u003c/a\u003e fix: reference \u003ccode\u003e@​angular/cli\u003c/code\u003e peer in addition to direct dependencies (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2820\"\u003e#2820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.3.1/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by [GitHub Actions](\u003ca href=\"https://www.npmjs.com/~GitHub\"\u003ehttps://www.npmjs.com/~GitHub\u003c/a\u003e Actions), a new releaser for \u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular-eslint/builder\u0026package-manager=npm_and_yarn\u0026previous-version=18.2.0\u0026new-version=21.3.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/eclipse-tractusx/tutorial-resources/pull/710","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-tractusx%2Ftutorial-resources/issues/710","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/710/packages"},{"uuid":"4209486661","node_id":"PR_kwDOQ2d8W87QHN2Q","number":57,"state":"open","title":"chore(deps)(deps-dev): bump the dev-dependencies group across 1 directory with 25 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-06T04:16:56.000Z","updated_at":"2026-04-06T04:17:10.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps-dev): bump","group_name":"dev-dependencies","update_count":25,"packages":[{"name":"@angular-eslint/builder","old_version":"21.2.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@commitlint/cli","old_version":"20.4.1","new_version":"20.5.0","repository_url":"https://github.com/conventional-changelog/commitlint"},{"name":"@commitlint/config-conventional","old_version":"20.4.1","new_version":"20.5.0","repository_url":"https://github.com/conventional-changelog/commitlint"},{"name":"@types/dompurify","old_version":"3.0.5","new_version":"3.2.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@types/node","old_version":"25.5.0","new_version":"25.5.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"globals","old_version":"17.3.0","new_version":"17.4.0","repository_url":"https://github.com/sindresorhus/globals"},{"name":"lint-staged","old_version":"16.2.7","new_version":"16.4.0","repository_url":"https://github.com/lint-staged/lint-staged"},{"name":"typescript-eslint","old_version":"8.55.0","new_version":"8.58.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"@vitest/coverage-v8","old_version":"4.0.18","new_version":"4.1.2","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"rimraf","old_version":"6.1.2","new_version":"6.1.3","repository_url":"https://github.com/isaacs/rimraf"},{"name":"vitest","old_version":"4.0.18","new_version":"4.1.2","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"ng-packagr","old_version":"21.1.0","new_version":"21.2.2","repository_url":"https://github.com/ng-packagr/ng-packagr"},{"name":"@types/lodash","old_version":"4.17.23","new_version":"4.17.24","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@capacitor/cli","old_version":"8.1.0","new_version":"8.3.0","repository_url":"https://github.com/ionic-team/capacitor"},{"name":"jasmine-core","old_version":"6.0.1","new_version":"6.1.0","repository_url":"https://github.com/jasmine/jasmine"},{"name":"postcss","old_version":"8.5.6","new_version":"8.5.8","repository_url":"https://github.com/postcss/postcss"},{"name":"@playwright/test","old_version":"1.58.2","new_version":"1.59.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"msw","old_version":"2.12.10","new_version":"2.12.14","repository_url":"https://github.com/mswjs/msw"},{"name":"@types/multer","old_version":"2.0.0","new_version":"2.1.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@types/sharp","old_version":"0.31.1","new_version":"0.32.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"nodemon","old_version":"3.1.11","new_version":"3.1.14","repository_url":"https://github.com/remy/nodemon"},{"name":"shx","old_version":"0.3.4","new_version":"0.4.0","repository_url":"https://github.com/shelljs/shx"}],"path":null,"ecosystem":"npm"},"body":"Bumps the dev-dependencies group with 22 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `21.2.0` | `21.3.1` |\n| [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) | `20.4.1` | `20.5.0` |\n| [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) | `20.4.1` | `20.5.0` |\n| [@types/dompurify](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/dompurify) | `3.0.5` | `3.2.0` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.5.0` | `25.5.2` |\n| [globals](https://github.com/sindresorhus/globals) | `17.3.0` | `17.4.0` |\n| [lint-staged](https://github.com/lint-staged/lint-staged) | `16.2.7` | `16.4.0` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.55.0` | `8.58.0` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.0.18` | `4.1.2` |\n| [rimraf](https://github.com/isaacs/rimraf) | `6.1.2` | `6.1.3` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.0.18` | `4.1.2` |\n| [ng-packagr](https://github.com/ng-packagr/ng-packagr) | `21.1.0` | `21.2.2` |\n| [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) | `4.17.23` | `4.17.24` |\n| [@capacitor/cli](https://github.com/ionic-team/capacitor) | `8.1.0` | `8.3.0` |\n| [jasmine-core](https://github.com/jasmine/jasmine) | `6.0.1` | `6.1.0` |\n| [postcss](https://github.com/postcss/postcss) | `8.5.6` | `8.5.8` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.58.2` | `1.59.1` |\n| [msw](https://github.com/mswjs/msw) | `2.12.10` | `2.12.14` |\n| [@types/multer](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/multer) | `2.0.0` | `2.1.0` |\n| [@types/sharp](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/sharp) | `0.31.1` | `0.32.0` |\n| [nodemon](https://github.com/remy/nodemon) | `3.1.11` | `3.1.14` |\n| [shx](https://github.com/shelljs/shx) | `0.3.4` | `0.4.0` |\n\n\nUpdates `@angular-eslint/builder` from 21.2.0 to 21.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.3.1\u003c/h2\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.0.3 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2949\"\u003e#2949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2954\"\u003e#2954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] properly handle statements with unary operators (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2926\"\u003e#2926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eprefer-self-closing-tags:\u003c/strong\u003e add selectedcontent nonAriaElements (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebjarketrux\u003c/li\u003e\n\u003cli\u003eDaniil Demenev \u003ca href=\"https://github.com/BEGEMOT9I\"\u003e\u003ccode\u003e@​BEGEMOT9I\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev21.3.0\u003c/h2\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e add computed-must-return rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2882\"\u003e#2882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] detect Signal member access (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2848\"\u003e#2848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e add \u003ccode\u003eno-non-null-assertion\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2885\"\u003e#2885\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.1.4 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] add check \u003ccode\u003eInputSignalWithTransform\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2879\"\u003e#2879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] detect \u003ccode\u003eSignal\u003c/code\u003e type correctly (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [prefer-template-literal] preserve nested non string binary \u003ccode\u003e+\u003c/code\u003e operation (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2902\"\u003e#2902\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/8f2afdce28d4cbdac792465b33aff35915af23b5\"\u003e\u003ccode\u003e8f2afdc\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/77099ee61cda76136038dce9f21d3af6071a7d06\"\u003e\u003ccode\u003e77099ee\u003c/code\u003e\u003c/a\u003e chore: ensure dist artifacts are available for e2e publishing in DTE (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/af8900f087b09556bfaddd815ce483bf7b0262ea\"\u003e\u003ccode\u003eaf8900f\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix: narrow build target cache outputs to avoid clobbering compile ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/7e173918eb48b2db41ce4d5a934567dab26fe54b\"\u003e\u003ccode\u003e7e17391\u003c/code\u003e\u003c/a\u003e fix: narrow build target cache outputs to avoid clobbering compile artifacts ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/a959e4d2804bbeb3cbc7caaa9c2fb2be9da3348e\"\u003e\u003ccode\u003ea959e4d\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/5c214854f897cb698563f53db6b9bddfb23e4d8e\"\u003e\u003ccode\u003e5c21485\u003c/code\u003e\u003c/a\u003e chore(builder): change builder tests to be cross-platform (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/3ef7fb157e866d76ae76d41b706b92efbd54d72d\"\u003e\u003ccode\u003e3ef7fb1\u003c/code\u003e\u003c/a\u003e feat: add support for ESLint v10 (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.3.1/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@commitlint/cli` from 20.4.1 to 20.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/conventional-changelog/commitlint/releases\"\u003e\u003ccode\u003e@​commitlint/cli\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev20.5.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.4...v20.5.0\"\u003e20.5.0\u003c/a\u003e (2026-03-15)\u003c/h1\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(resolve-extends): always resolve extended parser presets for proper merging by \u003ca href=\"https://github.com/omar-y-abdi\"\u003e\u003ccode\u003e@​omar-y-abdi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4647\"\u003econventional-changelog/commitlint#4647\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(load): resolve async config exports in CJS projects by \u003ca href=\"https://github.com/omar-y-abdi\"\u003e\u003ccode\u003e@​omar-y-abdi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4659\"\u003econventional-changelog/commitlint#4659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): validate that --cwd directory exists before execution by \u003ca href=\"https://github.com/omar-y-abdi\"\u003e\u003ccode\u003e@​omar-y-abdi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4658\"\u003econventional-changelog/commitlint#4658\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(cz-commitlint): add exclamation mark support for breaking changes by \u003ca href=\"https://github.com/mrt181\"\u003e\u003ccode\u003e@​mrt181\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4655\"\u003econventional-changelog/commitlint#4655\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrt181\"\u003e\u003ccode\u003e@​mrt181\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4655\"\u003econventional-changelog/commitlint#4655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omar-y-abdi\"\u003e\u003ccode\u003e@​omar-y-abdi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4647\"\u003econventional-changelog/commitlint#4647\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.4...v20.5.0\"\u003ehttps://github.com/conventional-changelog/commitlint/compare/v20.4.4...v20.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev20.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.3...v20.4.4\"\u003e20.4.4\u003c/a\u003e (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): allow context parameter in QualifiedRuleConfig functions by \u003ca href=\"https://github.com/Br1an67\"\u003e\u003ccode\u003e@​Br1an67\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4636\"\u003econventional-changelog/commitlint#4636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(read): update git-raw-commits to v5 API by \u003ca href=\"https://github.com/Tamas-hi\"\u003e\u003ccode\u003e@​Tamas-hi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4638\"\u003econventional-changelog/commitlint#4638\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(is-ignored): strip CI skip markers from release commits by \u003ca href=\"https://github.com/Br1an67\"\u003e\u003ccode\u003e@​Br1an67\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4637\"\u003econventional-changelog/commitlint#4637\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Br1an67\"\u003e\u003ccode\u003e@​Br1an67\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4636\"\u003econventional-changelog/commitlint#4636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tamas-hi\"\u003e\u003ccode\u003e@​Tamas-hi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4638\"\u003econventional-changelog/commitlint#4638\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.3...v20.4.4\"\u003ehttps://github.com/conventional-changelog/commitlint/compare/v20.4.3...v20.4.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev20.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.2...v20.4.3\"\u003e20.4.3\u003c/a\u003e (2026-03-03)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: npx usage \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/613\"\u003e#613\u003c/a\u003e by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4630\"\u003econventional-changelog/commitlint#4630\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(types): incorrect types for rule options by \u003ca href=\"https://github.com/Zamiell\"\u003e\u003ccode\u003e@​Zamiell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4633\"\u003econventional-changelog/commitlint#4633\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md\"\u003e\u003ccode\u003e@​commitlint/cli\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.4...v20.5.0\"\u003e20.5.0\u003c/a\u003e (2026-03-15)\u003c/h1\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecli:\u003c/strong\u003e validate that --cwd directory exists before execution (\u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/issues/4658\"\u003e#4658\u003c/a\u003e) (\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/cf80f75745593f4f018cac301a91f23316c974fd\"\u003ecf80f75\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/issues/4595\"\u003e#4595\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.3...v20.4.4\"\u003e20.4.4\u003c/a\u003e (2026-03-12)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​commitlint/cli\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.2...v20.4.3\"\u003e20.4.3\u003c/a\u003e (2026-03-03)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efooter parser does not escape special chars for regex \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/issues/4560\"\u003e#4560\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/issues/4634\"\u003e#4634\u003c/a\u003e) (\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/8ff7c7fcbc2db2b45910ecb5c01e9f1763060770\"\u003e8ff7c7f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.1...v20.4.2\"\u003e20.4.2\u003c/a\u003e (2026-02-19)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​commitlint/cli\u003c/code\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/a7918e9cf70f822505cb4422c03150a86f802627\"\u003e\u003ccode\u003ea7918e9\u003c/code\u003e\u003c/a\u003e v20.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/cf80f75745593f4f018cac301a91f23316c974fd\"\u003e\u003ccode\u003ecf80f75\u003c/code\u003e\u003c/a\u003e fix(cli): validate that --cwd directory exists before execution (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4658\"\u003e#4658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/02d7245e9b204ed07a68298e4d73c8d82a4b7f81\"\u003e\u003ccode\u003e02d7245\u003c/code\u003e\u003c/a\u003e v20.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/a7469817974796a6e89f55911bb66b7bffa44099\"\u003e\u003ccode\u003ea746981\u003c/code\u003e\u003c/a\u003e v20.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/18bd371428771ecc98a7b2f00194bfcbfb4ba809\"\u003e\u003ccode\u003e18bd371\u003c/code\u003e\u003c/a\u003e chore: deps (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4635\"\u003e#4635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/8ff7c7fcbc2db2b45910ecb5c01e9f1763060770\"\u003e\u003ccode\u003e8ff7c7f\u003c/code\u003e\u003c/a\u003e fix: footer parser does not escape special chars for regex \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4560\"\u003e#4560\u003c/a\u003e (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4634\"\u003e#4634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/81cfc9e5e9d452b68b5809e57196ca0c03fd7b85\"\u003e\u003ccode\u003e81cfc9e\u003c/code\u003e\u003c/a\u003e v20.4.2\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/conventional-changelog/commitlint/commits/v20.5.0/@commitlint/cli\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@commitlint/config-conventional` from 20.4.1 to 20.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/conventional-changelog/commitlint/releases\"\u003e\u003ccode\u003e@​commitlint/config-conventional\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev20.5.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.4...v20.5.0\"\u003e20.5.0\u003c/a\u003e (2026-03-15)\u003c/h1\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(resolve-extends): always resolve extended parser presets for proper merging by \u003ca href=\"https://github.com/omar-y-abdi\"\u003e\u003ccode\u003e@​omar-y-abdi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4647\"\u003econventional-changelog/commitlint#4647\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(load): resolve async config exports in CJS projects by \u003ca href=\"https://github.com/omar-y-abdi\"\u003e\u003ccode\u003e@​omar-y-abdi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4659\"\u003econventional-changelog/commitlint#4659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): validate that --cwd directory exists before execution by \u003ca href=\"https://github.com/omar-y-abdi\"\u003e\u003ccode\u003e@​omar-y-abdi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4658\"\u003econventional-changelog/commitlint#4658\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(cz-commitlint): add exclamation mark support for breaking changes by \u003ca href=\"https://github.com/mrt181\"\u003e\u003ccode\u003e@​mrt181\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4655\"\u003econventional-changelog/commitlint#4655\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrt181\"\u003e\u003ccode\u003e@​mrt181\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4655\"\u003econventional-changelog/commitlint#4655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omar-y-abdi\"\u003e\u003ccode\u003e@​omar-y-abdi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4647\"\u003econventional-changelog/commitlint#4647\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.4...v20.5.0\"\u003ehttps://github.com/conventional-changelog/commitlint/compare/v20.4.4...v20.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev20.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.3...v20.4.4\"\u003e20.4.4\u003c/a\u003e (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): allow context parameter in QualifiedRuleConfig functions by \u003ca href=\"https://github.com/Br1an67\"\u003e\u003ccode\u003e@​Br1an67\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4636\"\u003econventional-changelog/commitlint#4636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(read): update git-raw-commits to v5 API by \u003ca href=\"https://github.com/Tamas-hi\"\u003e\u003ccode\u003e@​Tamas-hi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4638\"\u003econventional-changelog/commitlint#4638\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(is-ignored): strip CI skip markers from release commits by \u003ca href=\"https://github.com/Br1an67\"\u003e\u003ccode\u003e@​Br1an67\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4637\"\u003econventional-changelog/commitlint#4637\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Br1an67\"\u003e\u003ccode\u003e@​Br1an67\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4636\"\u003econventional-changelog/commitlint#4636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tamas-hi\"\u003e\u003ccode\u003e@​Tamas-hi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4638\"\u003econventional-changelog/commitlint#4638\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.3...v20.4.4\"\u003ehttps://github.com/conventional-changelog/commitlint/compare/v20.4.3...v20.4.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev20.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.2...v20.4.3\"\u003e20.4.3\u003c/a\u003e (2026-03-03)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: npx usage \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/613\"\u003e#613\u003c/a\u003e by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4630\"\u003econventional-changelog/commitlint#4630\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(types): incorrect types for rule options by \u003ca href=\"https://github.com/Zamiell\"\u003e\u003ccode\u003e@​Zamiell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4633\"\u003econventional-changelog/commitlint#4633\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-conventional/CHANGELOG.md\"\u003e\u003ccode\u003e@​commitlint/config-conventional\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.4...v20.5.0\"\u003e20.5.0\u003c/a\u003e (2026-03-15)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​commitlint/config-conventional\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.3...v20.4.4\"\u003e20.4.4\u003c/a\u003e (2026-03-12)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​commitlint/config-conventional\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.2...v20.4.3\"\u003e20.4.3\u003c/a\u003e (2026-03-03)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efooter parser does not escape special chars for regex \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/issues/4560\"\u003e#4560\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/issues/4634\"\u003e#4634\u003c/a\u003e) (\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/8ff7c7fcbc2db2b45910ecb5c01e9f1763060770\"\u003e8ff7c7f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.1...v20.4.2\"\u003e20.4.2\u003c/a\u003e (2026-02-19)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​commitlint/config-conventional\u003c/code\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/a7918e9cf70f822505cb4422c03150a86f802627\"\u003e\u003ccode\u003ea7918e9\u003c/code\u003e\u003c/a\u003e v20.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/02d7245e9b204ed07a68298e4d73c8d82a4b7f81\"\u003e\u003ccode\u003e02d7245\u003c/code\u003e\u003c/a\u003e v20.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/a7469817974796a6e89f55911bb66b7bffa44099\"\u003e\u003ccode\u003ea746981\u003c/code\u003e\u003c/a\u003e v20.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/8ff7c7fcbc2db2b45910ecb5c01e9f1763060770\"\u003e\u003ccode\u003e8ff7c7f\u003c/code\u003e\u003c/a\u003e fix: footer parser does not escape special chars for regex \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4560\"\u003e#4560\u003c/a\u003e (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4634\"\u003e#4634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/81cfc9e5e9d452b68b5809e57196ca0c03fd7b85\"\u003e\u003ccode\u003e81cfc9e\u003c/code\u003e\u003c/a\u003e v20.4.2\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/conventional-changelog/commitlint/commits/v20.5.0/@commitlint/config-conventional\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@types/dompurify` from 3.0.5 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/dompurify\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@types/node` from 25.5.0 to 25.5.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `globals` from 17.3.0 to 17.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sindresorhus/globals/releases\"\u003eglobals's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev17.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate globals (2026-03-01) (\u003ca href=\"https://redirect.github.com/sindresorhus/globals/issues/338\"\u003e#338\u003c/a\u003e)  d43a051\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/sindresorhus/globals/compare/v17.3.0...v17.4.0\"\u003ehttps://github.com/sindresorhus/globals/compare/v17.3.0...v17.4.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sindresorhus/globals/commit/a9cfd7493fb701474d4dc946283c7b9d63d64134\"\u003e\u003ccode\u003ea9cfd74\u003c/code\u003e\u003c/a\u003e 17.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sindresorhus/globals/commit/d43a051c48fbb8c549bb98a7cf294ba84680a7a1\"\u003e\u003ccode\u003ed43a051\u003c/code\u003e\u003c/a\u003e Update globals (2026-03-01) (\u003ca href=\"https://redirect.github.com/sindresorhus/globals/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sindresorhus/globals/compare/v17.3.0...v17.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lint-staged` from 16.2.7 to 16.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lint-staged/lint-staged/releases\"\u003elint-staged's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev16.4.0\u003c/h2\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1739\"\u003e#1739\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/687fc9069a312ac83ca48f035a1bbf453db91814\"\u003e\u003ccode\u003e687fc90\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/hyperz111\"\u003e\u003ccode\u003e@​hyperz111\u003c/code\u003e\u003c/a\u003e! - Replace \u003ccode\u003emicromatch\u003c/code\u003e with \u003ccode\u003epicomatch\u003c/code\u003e to reduce dependencies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev16.3.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1742\"\u003e#1742\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/9d6e827b0c55da5b091c989111f6c55dd76539d9\"\u003e\u003ccode\u003e9d6e827\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Update dependencies, including \u003ca href=\"https://github.com/tinylibs/tinyexec/releases/tag/1.0.4\"\u003e\u003ccode\u003etinyexec@1.0.4\u003c/code\u003e\u003c/a\u003e to make sure local \u003ccode\u003enode_modules/.bin\u003c/code\u003e are preferred to global locations (released in \u003ca href=\"https://github.com/tinylibs/tinyexec/releases/tag/1.0.3\"\u003e\u003ccode\u003etinyexec@1.0.3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev16.3.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1740\"\u003e#1740\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/0109e8d1507409d950dab0d65ce27bd40b1137c7\"\u003e\u003ccode\u003e0109e8d\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Make sure Git's warning about CRLF line-endings doesn't interfere with creating initial backup stash.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev16.3.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1735\"\u003e#1735\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/2adaf6c3a76152abddbf23b749dfa5d62982f3cf\"\u003e\u003ccode\u003e2adaf6c\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Hide the extra \u003ccode\u003ecmd\u003c/code\u003e window on Windows by spawning tasks without the \u003ccode\u003edetached\u003c/code\u003e option.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev16.3.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1729\"\u003e#1729\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/cd5d762c288bcfe36274c32f018cea97dfe11280\"\u003e\u003ccode\u003ecd5d762\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Remove \u003ccode\u003enano-spawn\u003c/code\u003e as a dependency from \u003ccode\u003epackage.json\u003c/code\u003e as it was replaced with \u003ccode\u003etinyexec\u003c/code\u003e and is no longer used.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev16.3.0\u003c/h2\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1698\"\u003e#1698\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/feda37aa590789e847f32a4aabc346af1d79c547\"\u003e\u003ccode\u003efeda37a\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Run external processes with \u003ca href=\"https://github.com/tinylibs/tinyexec\"\u003e\u003ccode\u003etinyexec\u003c/code\u003e\u003c/a\u003e instead of \u003ca href=\"https://github.com/sindresorhus/nano-spawn\"\u003e\u003ccode\u003enano-spawn\u003c/code\u003e\u003c/a\u003e. \u003ccode\u003enano-spawn\u003c/code\u003e replaced \u003ca href=\"https://github.com/sindresorhus/execa\"\u003e\u003ccode\u003eexeca\u003c/code\u003e\u003c/a\u003e in \u003cem\u003elint-staged\u003c/em\u003e version 16 to limit the amount of npm dependencies required, but caused some unknown issues related to spawning tasks. Let's hope \u003ccode\u003etinyexec\u003c/code\u003e improves the situation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1699\"\u003e#1699\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/1346d16387e188911ef64e8bad6b8a6252cb6d71\"\u003e\u003ccode\u003e1346d16\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Remove \u003ccode\u003epidtree\u003c/code\u003e as a dependency. When a task fails, its sub-processes are killed more efficiently via the process group on Unix systems, and the \u003ccode\u003etaskkill\u003c/code\u003e command on Windows.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1726\"\u003e#1726\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/87467aaa76e1edc2547f3f3d462a4495afa5337d\"\u003e\u003ccode\u003e87467aa\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Incorrect brace expansions like \u003ccode\u003e*.{js}\u003c/code\u003e (\u003cem\u003enothing to expand\u003c/em\u003e) are detected exhaustively, instead of just a single pass.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md\"\u003elint-staged's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e16.4.0\u003c/h2\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1739\"\u003e#1739\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/687fc9069a312ac83ca48f035a1bbf453db91814\"\u003e\u003ccode\u003e687fc90\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/hyperz111\"\u003e\u003ccode\u003e@​hyperz111\u003c/code\u003e\u003c/a\u003e! - Replace \u003ccode\u003emicromatch\u003c/code\u003e with \u003ccode\u003epicomatch\u003c/code\u003e to reduce dependencies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e16.3.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1742\"\u003e#1742\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/9d6e827b0c55da5b091c989111f6c55dd76539d9\"\u003e\u003ccode\u003e9d6e827\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Update dependencies, including \u003ca href=\"https://github.com/tinylibs/tinyexec/releases/tag/1.0.4\"\u003e\u003ccode\u003etinyexec@1.0.4\u003c/code\u003e\u003c/a\u003e to make sure local \u003ccode\u003enode_modules/.bin\u003c/code\u003e are preferred to global locations (released in \u003ca href=\"https://github.com/tinylibs/tinyexec/releases/tag/1.0.3\"\u003e\u003ccode\u003etinyexec@1.0.3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e16.3.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1740\"\u003e#1740\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/0109e8d1507409d950dab0d65ce27bd40b1137c7\"\u003e\u003ccode\u003e0109e8d\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Make sure Git's warning about CRLF line-endings doesn't interfere with creating initial backup stash.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e16.3.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1735\"\u003e#1735\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/2adaf6c3a76152abddbf23b749dfa5d62982f3cf\"\u003e\u003ccode\u003e2adaf6c\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Hide the extra \u003ccode\u003ecmd\u003c/code\u003e window on Windows by spawning tasks without the \u003ccode\u003edetached\u003c/code\u003e option.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e16.3.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1729\"\u003e#1729\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/cd5d762c288bcfe36274c32f018cea97dfe11280\"\u003e\u003ccode\u003ecd5d762\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Remove \u003ccode\u003enano-spawn\u003c/code\u003e as a dependency from \u003ccode\u003epackage.json\u003c/code\u003e as it was replaced with \u003ccode\u003etinyexec\u003c/code\u003e and is no longer used.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e16.3.0\u003c/h2\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1698\"\u003e#1698\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/feda37aa590789e847f32a4aabc346af1d79c547\"\u003e\u003ccode\u003efeda37a\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Run external processes with \u003ca href=\"https://github.com/tinylibs/tinyexec\"\u003e\u003ccode\u003etinyexec\u003c/code\u003e\u003c/a\u003e instead of \u003ca href=\"https://github.com/sindresorhus/nano-spawn\"\u003e\u003ccode\u003enano-spawn\u003c/code\u003e\u003c/a\u003e. \u003ccode\u003enano-spawn\u003c/code\u003e replaced \u003ca href=\"https://github.com/sindresorhus/execa\"\u003e\u003ccode\u003eexeca\u003c/code\u003e\u003c/a\u003e in \u003cem\u003elint-staged\u003c/em\u003e version 16 to limit the amount of npm dependencies required, but caused some unknown issues related to spawning tasks. Let's hope \u003ccode\u003etinyexec\u003c/code\u003e improves the situation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1699\"\u003e#1699\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/1346d16387e188911ef64e8bad6b8a6252cb6d71\"\u003e\u003ccode\u003e1346d16\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Remove \u003ccode\u003epidtree\u003c/code\u003e as a dependency. When a task fails, its sub-processes are killed more efficiently via the process group on Unix systems, and the \u003ccode\u003etaskkill\u003c/code\u003e command on Windows.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1726\"\u003e#1726\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/87467aaa76e1edc2547f3f3d462a4495afa5337d\"\u003e\u003ccode\u003e87467aa\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Incorrect brace expansions like \u003ccode\u003e*.{js}\u003c/code\u003e (\u003cem\u003enothing to expand\u003c/em\u003e) are detected exhaustively, instead of just a single pass.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lint-staged/lint-staged/commit/445f9dd042b88528c798b2e25c21c9adbc69a732\"\u003e\u003ccode\u003e445f9dd\u003c/code\u003e\u003c/a\u003e chore(changeset): release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lint-staged/lint-staged/commit/d91be60800d59565cb601c4802ed35253bce5b2a\"\u003e\u003ccode\u003ed91be60\u003c/code\u003e\u003c/a\u003e docs: update readme to use picomatch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lint-staged/lint-staged/commit/b392a9ffecd9cfeb167bd2273c6496b8b3c41b47\"\u003e\u003ccode\u003eb392a9f\u003c/code\u003e\u003c/a\u003e refactor: extract \u003ccode\u003ematchFiles\u003c/code\u003e and add unit tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lint-staged/lint-staged/commit/687fc9069a312ac83ca48f035a1bbf453db91814\"\u003e\u003ccode\u003e687fc90\u003c/code\u003e\u003c/a\u003e refactor: replace micromatch with picomatch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lint-staged/lint-staged/commit/26dadf9a0472d283112d6cfaaa1fb1f040fd6760\"\u003e\u003ccode\u003e26dadf9\u003c/code\u003e\u003c/a\u003e chore(changeset): release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lint-staged/lint-staged/commit/9d6e827b0c55da5b091c989111f6c55dd76539d9\"\u003e\u003ccode\u003e9d6e827\u003c/code\u003e\u003c/a\u003e build(deps): update dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lint-staged/lint-staged/commit/8aea986068501841a5741868e0895fef2a7618c3\"\u003e\u003ccode\u003e8aea986\u003c/code\u003e\u003c/a\u003e chore(changeset): release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lint-staged/lint-staged/commit/0109e8d1507409d950dab0d65ce27bd40b1137c7\"\u003e\u003ccode\u003e0109e8d\u003c/code\u003e\u003c/a\u003e fix: strip Git CRLF warning from output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lint-staged/lint-staged/commit/dfd6a7a4afa1147c9b6ad7d441b1f6278da499c5\"\u003e\u003ccode\u003edfd6a7a\u003c/code\u003e\u003c/a\u003e chore(changeset): release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lint-staged/lint-staged/commit/2adaf6c3a76152abddbf23b749dfa5d62982f3cf\"\u003e\u003ccode\u003e2adaf6c\u003c/code\u003e\u003c/a\u003e fix(Windows): do not spawn  tasks as detached since it opens a cmd window on ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lint-staged/lint-staged/compare/v16.2.7...v16.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typescript-eslint` from 8.55.0 to 8.58.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases\"\u003etypescript-eslint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.58.0\u003c/h2\u003e\n\u003ch2\u003e8.58.0 (2026-03-30)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport TypeScript 6 (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12124\"\u003e#12124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e crash in \u003ccode\u003eno-unnecessary-type-arguments\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12163\"\u003e#12163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-extraneous-class] handle index signatures (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12142\"\u003e#12142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-regexp-exec] avoid fixing unknown RegExp flags (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12161\"\u003e#12161\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eej shafran \u003ca href=\"https://github.com/ej-shafran\"\u003e\u003ccode\u003e@​ej-shafran\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGG ZIBLAKING\u003c/li\u003e\n\u003cli\u003emilkboy2564 \u003ca href=\"https://github.com/SeolJaeHyeok\"\u003e\u003ccode\u003e@​SeolJaeHyeok\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eteee32 \u003ca href=\"https://github.com/teee32\"\u003e\u003ccode\u003e@​teee32\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.58.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003ev8.57.2\u003c/h2\u003e\n\u003ch2\u003e8.57.2 (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-optional-chain] remove dangling closing parenthesis (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11865\"\u003e#11865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [array-type] ignore Array and ReadonlyArray without type arguments (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11971\"\u003e#11971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-restricted-types] flag banned generics in extends or implements (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12120\"\u003e#12120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unsafe-return] false positive on unwrapping generic (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12125\"\u003e#12125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unsafe-return] false positive on unwrapping generic (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12125\"\u003e#12125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-useless-default-assignment] skip reporting false positives for unresolved type parameters (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12127\"\u003e#12127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-readonly-parameter-types] preserve type alias infomation (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11954\"\u003e#11954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript-estree:\u003c/strong\u003e skip createIsolatedProgram fallback for projectService (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12066\"\u003e#12066\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/issues/12065\"\u003e#12065\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKirk Waiblinger \u003ca href=\"https://github.com/kirkwaiblinger\"\u003e\u003ccode\u003e@​kirkwaiblinger\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKonv Suu\u003c/li\u003e\n\u003cli\u003emdm317\u003c/li\u003e\n\u003cli\u003eNewton Yuan \u003ca href=\"https://github.com/NewtonYuan\"\u003e\u003ccode\u003e@​NewtonYuan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRyoheiYamamoto\u003c/li\u003e\n\u003cli\u003eSungHyun627 \u003ca href=\"https://github.com/SungHyun627\"\u003e\u003ccode\u003e@​SungHyun627\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTamashoo \u003ca href=\"https://github.com/Tamashoo\"\u003e\u003ccode\u003e@​Tamashoo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.2\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md\"\u003etypescript-eslint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.58.0 (2026-03-30)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport TypeScript 6 (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12124\"\u003e#12124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.58.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.57.2 (2026-03-23)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for typescript-eslint to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.2\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.57.1 (2026-03-16)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for typescript-eslint to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.1\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.57.0 (2026-03-09)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for typescript-eslint to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.56.1 (2026-02-23)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for typescript-eslint to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.56.1\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.56.0 (2026-02-16)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/493341709fe7d1d6433332b7bd2724e3332c7cdf\"\u003e\u003ccode\u003e4933417\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.58.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/8cde2d06fb9bc591a4c93452509ddbd600c76a35\"\u003e\u003ccode\u003e8cde2d0\u003c/code\u003e\u003c/a\u003e feat: support TypeScript 6 (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint/issues/12124\"\u003e#12124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/be4d54d26e695cc93605ffcca67dd75848e95c6f\"\u003e\u003ccode\u003ebe4d54d\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.57.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/c7c38aa252d7bf6708a225aebedc57686ac33dcd\"\u003e\u003ccode\u003ec7c38aa\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.57.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/2c6aeeec238dfea860b9f3c146a55f8f49f15cf5\"\u003e\u003ccode\u003e2c6aeee\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.57.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/f696dadfc37078efe4119ad2ab0609cde3e42766\"\u003e\u003ccode\u003ef696dad\u003c/code\u003e\u003c/a\u003e chore: use pnpm catalog (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint/issues/12047\"\u003e#12047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/a09921e2de2e8790e6a803016b825815ca9409d8\"\u003e\u003ccode\u003ea09921e\u003c/code\u003e\u003c/a\u003e chore: update vitest to 4.x (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint/issues/12071\"\u003e#12071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/96a04a97454cf6b6ae8366711c09333bf6e2327a\"\u003e\u003ccode\u003e96a04a9\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.56.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/8b8b68f200a48ee9d6f7be8670e964629375196c\"\u003e\u003ccode\u003e8b8b68f\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/68a074fb61a10c3627f09678859fb4d42a3b88f5\"\u003e\u003ccode\u003e68a074f\u003c/code\u003e\u003c/a\u003e feat: support ESLint v10 (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint/issues/12057\"\u003e#12057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commits/v8.58.0/packages/typescript-eslint\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@typescript-eslint/eslint-plugin` from 8.55.0 to 8.58.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases\"\u003e\u003ccode\u003e@​typescript-eslint/eslint-plugin\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.58.0\u003c/h2\u003e\n\u003ch2\u003e8.58.0 (2026-03-30)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport TypeScript 6 (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12124\"\u003e#12124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e crash in \u003ccode\u003eno-unnecessary-type-arguments\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12163\"\u003e#12163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-extraneous-class] handle index signatures (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12142\"\u003e#12142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-regexp-exec] avoid fixing unknown RegExp flags (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12161\"\u003e#12161\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eej shafran \u003ca href=\"https://github.com/ej-shafran\"\u003e\u003ccode\u003e@​ej-shafran\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGG ZIBLAKING\u003c/li\u003e\n\u003cli\u003emilkboy2564 \u003ca href=\"https://github.com/SeolJaeHyeok\"\u003e\u003ccode\u003e@​SeolJaeHyeok\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eteee32 \u003ca href=\"https://github.com/teee32\"\u003e\u003ccode\u003e@​teee32\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.58.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003ev8.57.2\u003c/h2\u003e\n\u003ch2\u003e8.57.2 (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-optional-chain] remove dangling closing parenthesis (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11865\"\u003e#11865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [array-type] ignore Array and ReadonlyArray without type arguments (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11971\"\u003e#11971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-restricted-types] flag banned generics in extends or implements (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12120\"\u003e#12120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unsafe-return] false positive on unwrapping generic (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12125\"\u003e#12125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unsafe-return] false positive on unwrapping generic (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12125\"\u003e#12125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-useless-default-assignment] skip reporting false positives for unresolved type parameters (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12127\"\u003e#12127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-readonly-parameter-types] preserve type alias infomation (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11954\"\u003e#11954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript-estree:\u003c/strong\u003e skip createIsolatedProgram fallback for projectService (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12066\"\u003e#12066\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/issues/12065\"\u003e#12065\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKirk Waiblinger \u003ca href=\"https://github.com/kirkwaiblinger\"\u003e\u003ccode\u003e@​kirkwaiblinger\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKonv Suu\u003c/li\u003e\n\u003cli\u003emdm317\u003c/li\u003e\n\u003cli\u003eNewton Yuan \u003ca href=\"https://github.com/NewtonYuan\"\u003e\u003ccode\u003e@​NewtonYuan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRyoheiYamamoto\u003c/li\u003e\n\u003cli\u003eSungHyun627 \u003ca href=\"https://github.com/SungHyun627\"\u003e\u003ccode\u003e@​SungHyun627\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTamashoo \u003ca href=\"https://github.com/Tamashoo\"\u003e\u003ccode\u003e@​Tamashoo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.2\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md\"\u003e\u003ccode\u003e@​typescript-eslint/eslint-plugin\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.58.0 (2026-03-30)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport TypeScript 6 (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12124\"\u003e#12124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-regexp-exec] avoid fixing unknown RegExp flags (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12161\"\u003e#12161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-extraneous-class] handle index signatures (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12142\"\u003e#12142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e crash in \u003ccode\u003eno-unnecessary-type-arguments\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12163\"\u003e#12163\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eej shafran \u003ca href=\"https://github.com/ej-shafran\"\u003e\u003ccode\u003e@​ej-shafran\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGG ZIBLAKING\u003c/li\u003e\n\u003cli\u003emilkboy2564 \u003ca href=\"https://github.com/SeolJaeHyeok\"\u003e\u003ccode\u003e@​SeolJaeHyeok\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eteee32 \u003ca href=\"https://github.com/teee32\"\u003e\u003ccode\u003e@​teee32\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.58.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.57.2 (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-readonly-parameter-types] preserve type alias infomation (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11954\"\u003e#11954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-useless-default-assignment] skip reporting false positives for unresolved type parameters (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12127\"\u003e#12127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unsafe-return] false positive on unwrapping generic (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12125\"\u003e#12125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-restricted-types] flag banned generics in extends or implements (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12120\"\u003e#12120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [array-type] ignore Array and ReadonlyArray without type arguments (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11971\"\u003e#11971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-optional-chain] remove dangling closing parenthesis (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11865\"\u003e#11865\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKirk Waiblinger \u003ca href=\"https://github.com/kirkwaiblinger\"\u003e\u003ccode\u003e@​kirkwaiblinger\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKonv Suu\u003c/li\u003e\n\u003cli\u003emdm317\u003c/li\u003e\n\u003cli\u003eNewton Yuan \u003ca href=\"https://github.com/NewtonYuan\"\u003e\u003ccode\u003e@​NewtonYuan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSungHyun627 \u003ca href=\"https://github.com/SungHyun627\"\u003e\u003ccode\u003e@​SungHyun627\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTamashoo \u003ca href=\"https://github.com/Tamashoo\"\u003e\u003ccode\u003e@​Tamashoo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.2\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.57.1 (2026-03-16)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/493341709fe7d1d6433332b7bd2724e3332c7cdf\"\u003e\u003ccode\u003e4933417\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.58.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/5a9bd366139c8e306dd78ae906d4389972de42b6\"\u003e\u003ccode\u003e5a9bd36\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [prefer-regexp-exec] avoid fixing unknown RegExp flags (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/edb90ebf7c75a71065bed719f3e72d18b830c6a0\"\u003e\u003ccode\u003eedb90eb\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-extraneous-class] handle index signatures (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12142\"\u003e#12142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/8cde2d06fb9bc591a4c93452509ddbd600c76a35\"\u003e\u003ccode\u003e8cde2d0\u003c/code\u003e\u003c/a\u003e feat: support TypeScript 6 (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12124\"\u003e#12124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/1bf86c9f5c799916d12079c037c79e10b29cdc9c\"\u003e\u003ccode\u003e1bf86c9\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): crash in \u003ccode\u003eno-unnecessary-type-arguments\u003c/code\u003e (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12163\"\u003e#12163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/e9cc25a794dbf82a241807f394489a2aad39ffae\"\u003e\u003ccode\u003ee9cc25a\u003c/code\u003e\u003c/a\u003e docs(eslint-plugin): fix typo (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12155\"\u003e#12155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/be4d54d26e695cc93605ffcca67dd75848e95c6f\"\u003e\u003ccode\u003ebe4d54d\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.57.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/f68c8e4baca096281b458ccb6ff16ca6c5a1d199\"\u003e\u003ccode\u003ef68c8e4\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [prefer-readonly-parameter-types] preserve type alias inf...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/73acd2e6833c4757d2743a8dbb979154d31a1e98\"\u003e\u003ccode\u003e73acd2e\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-useless-default-assignment] skip reporting false posi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/3d21482030e4fd220f466cea7036e07695277364\"\u003e\u003ccode\u003e3d21482\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-unsafe-return] false positive on unwrapping generic (...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commits/v8.58.0/packages/eslint-plugin\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@typescript-eslint/parser` from 8.55.0 to 8.58.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases\"\u003e\u003ccode\u003e@​typescript-eslint/parser\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.58.0\u003c/h2\u003e\n\u003ch2\u003e8.58.0 (2026-03-30)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport TypeScript 6 (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12124\"\u003e#12124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e crash in \u003ccode\u003eno-unnecessary-type-arguments\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12163\"\u003e#12163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-extraneous-class] handle index signatures (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12142\"\u003e#12142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-regexp-exec] avoid fixing unknown RegExp flags (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12161\"\u003e#12161\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eej shafran \u003ca href=\"https://github.com/ej-shafran\"\u003e\u003ccode\u003e@​ej-shafran\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGG ZIBLAKING\u003c/li\u003e\n\u003cli\u003emilkboy2564 \u003ca href=\"https://github.com/SeolJaeHyeok\"\u003e\u003ccode\u003e@​SeolJaeHyeok\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eteee32 \u003ca href=\"https://github.com/teee32\"\u003e\u003ccode\u003e@​teee32\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.58.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003ev8.57.2\u003c/h2\u003e\n\u003ch2\u003e8.57.2 (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-optional-chain] remove dangling closing parenthesis (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11865\"\u003e#11865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [array-type] ignore Array and ReadonlyArray without type arguments (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11971\"\u003e#11971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-restricted-types] flag banned generics in extends or implements (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12120\"\u003e#12120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unsafe-return] false positive on unwrapping generic (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12125\"\u003e#12125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unsafe-return] false positive on unwrapping generic (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12125\"\u003e#12125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-useless-default-assignment] skip reporting false positives for unresolved type parameters (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12127\"\u003e#12127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-readonly-parameter-types] preserve type alias infomation (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11954\"\u003e#11954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript-estree:\u003c/strong\u003e skip createIsolatedProgram fallback for projectService (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12066\"\u003e#12066\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/issues/12065\"\u003e#12065\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKirk Waiblinger \u003ca href=\"https://github.com/kirkwaiblinger\"\u003e\u003ccode\u003e@​kirkwaiblinger\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKonv Suu\u003c/li\u003e\n\u003cli\u003emdm317\u003c/li\u003e\n\u003cli\u003eNewton Yuan \u003ca href=\"https://github.com/NewtonYuan\"\u003e\u003ccode\u003e@​NewtonYuan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRyoheiYamamoto\u003c/li\u003e\n\u003cli\u003eSungHyun627 \u003ca href=\"https://github.com/SungHyun627\"\u003e\u003ccode\u003e@​SungHyun627\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTamashoo \u003ca href=\"https://github.com/Tamashoo\"\u003e\u003ccode\u003e@​Tamashoo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.2\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md\"\u003e\u003ccode\u003e@​typescript-eslint/parser\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.58.0 (2026-03-30)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport TypeScript 6 (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12124\"\u003e#12124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.58.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.57.2 (2026-03-23)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for parser to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.2\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.57.1 (2026-03-16)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for parser to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.1\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.57.0 (2026-03-09)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for parser to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.56.1 (2026-02-23)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for parser to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.56.1\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003erel...\n\n_Description has been truncated_","html_url":"https://github.com/NXT1-Sports/nxt1-repo/pull/57","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/NXT1-Sports%2Fnxt1-repo/issues/57","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/57/packages"},{"uuid":"4208575827","node_id":"PR_kwDORAWCRc7QFAtQ","number":109,"state":"open","title":"chore(deps): Bump the angular group in /src/portal with 17 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-05T21:06:26.000Z","updated_at":"2026-04-07T22:02:26.839Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"angular","update_count":17,"packages":[{"name":"@angular/animations","old_version":"16.2.12","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/common","old_version":"16.2.12","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler","old_version":"16.2.12","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/core","old_version":"16.2.12","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/forms","old_version":"16.2.12","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/localize","old_version":"16.2.12","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser","old_version":"16.2.12","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser-dynamic","old_version":"16.2.12","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/router","old_version":"16.2.12","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular-devkit/build-angular","old_version":"16.2.16","new_version":"21.2.6","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular-eslint/builder","old_version":"16.1.2","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin","old_version":"16.1.2","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin-template","old_version":"16.1.2","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/schematics","old_version":"16.1.2","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/template-parser","old_version":"16.1.2","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular/cli","old_version":"16.2.16","new_version":"21.2.6","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/compiler-cli","old_version":"16.2.12","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"}],"path":"/src/portal","ecosystem":"npm"},"body":"Bumps the angular group in /src/portal with 17 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `16.2.12` | `21.2.7` |\n| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `16.2.12` | `21.2.7` |\n| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `16.2.12` | `21.2.7` |\n| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `16.2.12` | `21.2.7` |\n| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `16.2.12` | `21.2.7` |\n| [@angular/localize](https://github.com/angular/angular) | `16.2.12` | `21.2.7` |\n| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `16.2.12` | `21.2.7` |\n| [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `16.2.12` | `21.2.7` |\n| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `16.2.12` | `21.2.7` |\n| [@angular-devkit/build-angular](https://github.com/angular/angular-cli) | `16.2.16` | `21.2.6` |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `16.1.2` | `21.3.1` |\n| [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) | `16.1.2` | `21.3.1` |\n| [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template) | `16.1.2` | `21.3.1` |\n| [@angular-eslint/schematics](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics) | `16.1.2` | `21.3.1` |\n| [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `16.1.2` | `21.3.1` |\n| [@angular/cli](https://github.com/angular/angular-cli) | `16.2.16` | `21.2.6` |\n| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `16.2.12` | `21.2.7` |\n\nUpdates `@angular/animations` from 16.2.12 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/animations\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/animations\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.7 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003efea25d1a60\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003ebba5ed8e64\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003ed04ddd73df\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e8fd896e99a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003eb682c62873\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e3c41e74fdd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e0960592d3d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.5 (2026-03-25)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eElements with multiple matching selectors will now throw at compile time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComponent with undefined \u003ccode\u003echangeDetection\u003c/code\u003e property are now \u003ccode\u003eOnPush\u003c/code\u003e by default. Specify \u003ccode\u003echangeDetection: ChangeDetectionStrategy.Eager\u003c/code\u003e to keep the previous behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eplatform-browser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHammer.js integration has been removed. Use your own implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1312da1832e2b59ce18edae8fae13d3f562d9b0\"\u003ec1312da183\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a\"\u003ee850643b1b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eSupport comments in html element.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943\"\u003e96be4f429b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eabstract emitter producing incorrect code for dynamic imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/5a712d42d161c93f6315d6462543c26c4e4a4490\"\u003e5a712d42d1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24\"\u003eca67828ee2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eintroduce NG8023 compile-time diagnostic for duplicate selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/7907e982ee90778e596d3e849f0a31c6c26db235\"\u003e\u003ccode\u003e7907e98\u003c/code\u003e\u003c/a\u003e test: remove duplicate tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/81cabc14777a3b4966c29d60e1505aca8c29b71c\"\u003e\u003ccode\u003e81cabc1\u003c/code\u003e\u003c/a\u003e feat(core): add support for TypeScript 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/abb179466d8cfb512a8b80b1b8a1831ebd910145\"\u003e\u003ccode\u003eabb1794\u003c/code\u003e\u003c/a\u003e refactor(core): mark VERSION exports as pure for better tree-shaking\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/26fed34e0e340166b70702d6177ad639bbfa94aa\"\u003e\u003ccode\u003e26fed34\u003c/code\u003e\u003c/a\u003e build: format md files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b9e2ccdda8b428de8259934879e4431bae16a8ce\"\u003e\u003ccode\u003eb9e2ccd\u003c/code\u003e\u003c/a\u003e refactor(common): remove unused import (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/64699\"\u003e#64699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/70332b04532311276dd025ba00e8fcb6c1350880\"\u003e\u003ccode\u003e70332b0\u003c/code\u003e\u003c/a\u003e fix(core): pass element removal property through in all locations (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/64565\"\u003e#64565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/2b257b36590677d436d45e98cefe7ca886c7bd57\"\u003e\u003ccode\u003e2b257b3\u003c/code\u003e\u003c/a\u003e fix(animations): account for \u003ccode\u003eElement.animate\u003c/code\u003e exceptions (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/64506\"\u003e#64506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/dde5badb7133826187314e07fcdc578297aabbc9\"\u003e\u003ccode\u003edde5bad\u003c/code\u003e\u003c/a\u003e fix(core): prevent animations renderer from impacting \u003ccode\u003eanimate.leave\u003c/code\u003e (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/63921\"\u003e#63921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/c3576506b3c13389e18fa4c0c29bdf536f604142\"\u003e\u003ccode\u003ec357650\u003c/code\u003e\u003c/a\u003e refactor(core): Update tests for zoneless by default (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/63668\"\u003e#63668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/021ead5399ab1136da160c7348ec8555ef5ee8fd\"\u003e\u003ccode\u003e021ead5\u003c/code\u003e\u003c/a\u003e refactor(animations): remove dependency on \u003ccode\u003e@angular/common\u003c/code\u003e (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/63248\"\u003e#63248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.7/packages/animations\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/common` from 16.2.12 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.7 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003efea25d1a60\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003ebba5ed8e64\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003ed04ddd73df\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e8fd896e99a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003eb682c62873\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e3c41e74fdd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e0960592d3d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.5 (2026-03-25)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eElements with multiple matching selectors will now throw at compile time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComponent with undefined \u003ccode\u003echangeDetection\u003c/code\u003e property are now \u003ccode\u003eOnPush\u003c/code\u003e by default. Specify \u003ccode\u003echangeDetection: ChangeDetectionStrategy.Eager\u003c/code\u003e to keep the previous behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eplatform-browser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHammer.js integration has been removed. Use your own implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1312da1832e2b59ce18edae8fae13d3f562d9b0\"\u003ec1312da183\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a\"\u003ee850643b1b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eSupport comments in html element.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943\"\u003e96be4f429b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eabstract emitter producing incorrect code for dynamic imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/5a712d42d161c93f6315d6462543c26c4e4a4490\"\u003e5a712d42d1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24\"\u003eca67828ee2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eintroduce NG8023 compile-time diagnostic for duplicate selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/13f050d2204285173273ebbfe9b34bc1b3c63c80\"\u003e\u003ccode\u003e13f050d\u003c/code\u003e\u003c/a\u003e test: construct local \u003ccode\u003eDate\u003c/code\u003e objects to fix timezone flakiness\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d0cf2995a2b63eb13fe574770ee8a756277852a4\"\u003e\u003ccode\u003ed0cf299\u003c/code\u003e\u003c/a\u003e test: remove unsupported timezone from \u003ccode\u003eformatDate\u003c/code\u003e tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003ccode\u003eb4ab6ba\u003c/code\u003e\u003c/a\u003e fix(common): avoid redundant image fetch on destroy with auto sizes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/adda6c5c106815c727c1b820634614a045b42e9a\"\u003e\u003ccode\u003eadda6c5\u003c/code\u003e\u003c/a\u003e build: update \u003ccode\u003easpect_rules_js\u003c/code\u003e to \u003ccode\u003e3.0.2\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/93c6dc6395d681dacd1dbbc46b95773038b6c32f\"\u003e\u003ccode\u003e93c6dc6\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;refactor(http): Improves base64 encoding/decoding with feature detect...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/76431ed3e3bd8bf90ac2fb481152a33587187037\"\u003e\u003ccode\u003e76431ed\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix(http): correctly cache blob responses in transfer cache (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67002\"\u003e#67002\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/277ade97ac2a3a7f2a5b513acaa93e7663cdc55f\"\u003e\u003ccode\u003e277ade9\u003c/code\u003e\u003c/a\u003e fix(http): correctly cache blob responses in transfer cache (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67002\"\u003e#67002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/aeb9b819d2cda782de85338dc9a5457c11e51bfe\"\u003e\u003ccode\u003eaeb9b81\u003c/code\u003e\u003c/a\u003e refactor(http): Improves base64 encoding/decoding with feature detection (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67\"\u003e#67\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/ecf0bb466875d17e0823f2d793491c6f354d6c34\"\u003e\u003ccode\u003eecf0bb4\u003c/code\u003e\u003c/a\u003e test(http): refactors HTTP client tests to use TestBed and providers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/e2e9a9a531c9e9a69701e549f28354cc5d5edd77\"\u003e\u003ccode\u003ee2e9a9a\u003c/code\u003e\u003c/a\u003e fix(core): adds transfer cache to httpResource to fix hydration\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.7/packages/common\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/compiler` from 16.2.12 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.7 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003efea25d1a60\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003ebba5ed8e64\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003ed04ddd73df\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e8fd896e99a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003eb682c62873\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e3c41e74fdd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e0960592d3d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.5 (2026-03-25)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eElements with multiple matching selectors will now throw at compile time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComponent with undefined \u003ccode\u003echangeDetection\u003c/code\u003e property are now \u003ccode\u003eOnPush\u003c/code\u003e by default. Specify \u003ccode\u003echangeDetection: ChangeDetectionStrategy.Eager\u003c/code\u003e to keep the previous behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eplatform-browser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHammer.js integration has been removed. Use your own implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1312da1832e2b59ce18edae8fae13d3f562d9b0\"\u003ec1312da183\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a\"\u003ee850643b1b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eSupport comments in html element.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943\"\u003e96be4f429b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eabstract emitter producing incorrect code for dynamic imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/5a712d42d161c93f6315d6462543c26c4e4a4490\"\u003e5a712d42d1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24\"\u003eca67828ee2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eintroduce NG8023 compile-time diagnostic for duplicate selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003ccode\u003ed04ddd7\u003c/code\u003e\u003c/a\u003e fix(core): prevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003ccode\u003efea25d1\u003c/code\u003e\u003c/a\u003e fix(compiler): register SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67\"\u003e#67\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003ccode\u003e880a57d\u003c/code\u003e\u003c/a\u003e fix(compiler): prevent shimCssText from adding extra blank lines per CSS comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003ccode\u003e23ea431\u003c/code\u003e\u003c/a\u003e fix(compiler): parse named HTML entities containing digits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003ccode\u003e334ae10\u003c/code\u003e\u003c/a\u003e fix(compiler): ensure generated code compiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003ccode\u003eed2d324\u003c/code\u003e\u003c/a\u003e fix(compiler): disallow translations of iframe src\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/1df1697c6e3a6b1d302f7692b495146943faa12f\"\u003e\u003ccode\u003e1df1697\u003c/code\u003e\u003c/a\u003e fix(compiler): prevent mutation of children array in RecursiveVisitor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/95b3f37d4a7d9a38f616d56df746dfcda3c2139b\"\u003e\u003ccode\u003e95b3f37\u003c/code\u003e\u003c/a\u003e feat(compiler): Exhaustive checks for switch blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/9c5658adb1146b24ebf31fef534c4bbae1ced548\"\u003e\u003ccode\u003e9c5658a\u003c/code\u003e\u003c/a\u003e refactor(compiler): clean up pipeline compatibility distinction\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/6e0d783e5b5a256c0aa2fb1d3e008677c0603382\"\u003e\u003ccode\u003e6e0d783\u003c/code\u003e\u003c/a\u003e refactor(compiler): Add info about unclosed element.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.7/packages/compiler\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/core` from 16.2.12 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.7 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003efea25d1a60\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003ebba5ed8e64\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003ed04ddd73df\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e8fd896e99a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003eb682c62873\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e3c41e74fdd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e0960592d3d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.5 (2026-03-25)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eElements with multiple matching selectors will now throw at compile time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComponent with undefined \u003ccode\u003echangeDetection\u003c/code\u003e property are now \u003ccode\u003eOnPush\u003c/code\u003e by default. Specify \u003ccode\u003echangeDetection: ChangeDetectionStrategy.Eager\u003c/code\u003e to keep the previous behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eplatform-browser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHammer.js integration has been removed. Use your own implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1312da1832e2b59ce18edae8fae13d3f562d9b0\"\u003ec1312da183\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a\"\u003ee850643b1b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eSupport comments in html element.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943\"\u003e96be4f429b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eabstract emitter producing incorrect code for dynamic imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/5a712d42d161c93f6315d6462543c26c4e4a4490\"\u003e5a712d42d1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24\"\u003eca67828ee2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eintroduce NG8023 compile-time diagnostic for duplicate selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/4ad6d582d2a9f887c8530ff10ae513a4181ad24c\"\u003e\u003ccode\u003e4ad6d58\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies to v21.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003ccode\u003ed04ddd7\u003c/code\u003e\u003c/a\u003e fix(core): prevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003ccode\u003eb682c62\u003c/code\u003e\u003c/a\u003e fix(core): treat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003ccode\u003efea25d1\u003c/code\u003e\u003c/a\u003e fix(compiler): register SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67\"\u003e#67\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003ccode\u003e8fd896e\u003c/code\u003e\u003c/a\u003e fix(core): resolve component import by exact specifier in route lazy-loading ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/4b2008d0f2455cab7503b3a0349feecbff3b3b5a\"\u003e\u003ccode\u003e4b2008d\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1579163b7464edc69f7fa0548f53d978b007021\"\u003e\u003ccode\u003ec157916\u003c/code\u003e\u003c/a\u003e build: consolidate domino bundling in platform-server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/9be5e2c2113db3fe5d799663b6539d34d1e18f47\"\u003e\u003ccode\u003e9be5e2c\u003c/code\u003e\u003c/a\u003e docs: fix typo in Input decorator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/a21be36e15a6d9cf21722f9f6a31dad9380037e9\"\u003e\u003ccode\u003ea21be36\u003c/code\u003e\u003c/a\u003e refactor: prepare for required \u003ccode\u003echangeDetection\u003c/code\u003e prop on G3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/831746eff1e7442bfc96bfa739f54091b26a7997\"\u003e\u003ccode\u003e831746e\u003c/code\u003e\u003c/a\u003e docs: Add callout about the Component interface.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.7/packages/core\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/forms` from 16.2.12 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/forms/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/forms/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/forms/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.7 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003efea25d1a60\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003ebba5ed8e64\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003ed04ddd73df\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e8fd896e99a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003eb682c62873\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e3c41e74fdd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e0960592d3d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.5 (2026-03-25)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eElements with multiple matching selectors will now throw at compile time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComponent with undefined \u003ccode\u003echangeDetection\u003c/code\u003e property are now \u003ccode\u003eOnPush\u003c/code\u003e by default. Specify \u003ccode\u003echangeDetection: ChangeDetectionStrategy.Eager\u003c/code\u003e to keep the previous behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eplatform-browser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHammer.js integration has been removed. Use your own implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1312da1832e2b59ce18edae8fae13d3f562d9b0\"\u003ec1312da183\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a\"\u003ee850643b1b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eSupport comments in html element.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943\"\u003e96be4f429b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eabstract emitter producing incorrect code for dynamic imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/5a712d42d161c93f6315d6462543c26c4e4a4490\"\u003e5a712d42d1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24\"\u003eca67828ee2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eintroduce NG8023 compile-time diagnostic for duplicate selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/895c576d494111f819e8a790d3a0695b6b9f8b4b\"\u003e\u003ccode\u003e895c576\u003c/code\u003e\u003c/a\u003e refactor(forms): use strict equality for pending status getter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b658accf1f99a240de19090350bd6d3a9620735a\"\u003e\u003ccode\u003eb658acc\u003c/code\u003e\u003c/a\u003e docs: fix js doc of signal forms ignoreValidators option.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/7907e982ee90778e596d3e849f0a31c6c26db235\"\u003e\u003ccode\u003e7907e98\u003c/code\u003e\u003c/a\u003e test: remove duplicate tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/4a9b715b3abd3e51184937f764376883d6bb98a1\"\u003e\u003ccode\u003e4a9b715\u003c/code\u003e\u003c/a\u003e test(forms): cover transformedValue without FormField context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/670d1660c40504e3f55e094c3ebbcccad14163f3\"\u003e\u003ccode\u003e670d166\u003c/code\u003e\u003c/a\u003e feat(forms): add 'blur' option to debounce rule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/23cb9a4291dc7ee0db3a78416b5ca2b51cfad1ac\"\u003e\u003ccode\u003e23cb9a4\u003c/code\u003e\u003c/a\u003e refactor(forms): address feedback\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/0a863ba03f5eb83f383f647b7015bc3640072a1d\"\u003e\u003ccode\u003e0a863ba\u003c/code\u003e\u003c/a\u003e refactor(forms): hide adapter in public options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/fe7b26e403febfe2662828945d41bc4567cbcc8b\"\u003e\u003ccode\u003efe7b26e\u003c/code\u003e\u003c/a\u003e docs(forms): transformedValue parse error wiring\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/bdfb60f3e33065e047183dc1890c36e527e2b304\"\u003e\u003ccode\u003ebdfb60f\u003c/code\u003e\u003c/a\u003e fix(forms): use consistent error format returned from parse\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/631f60d1f9be72cb68330308a6ff18cc195babb8\"\u003e\u003ccode\u003e631f60d\u003c/code\u003e\u003c/a\u003e fix(forms): preserve parse errors when parse returns value\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.7/packages/forms\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/localize` from 16.2.12 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/localize\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/...\n\n_Description has been truncated_","html_url":"https://github.com/container-registry/harbor-next/pull/109","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/container-registry%2Fharbor-next/issues/109","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/109/packages"},{"uuid":"4204937837","node_id":"PR_kwDOBiCNks7P9TT8","number":1404,"state":"open","title":"Bump the angular group across 1 directory with 20 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-04T13:26:34.000Z","updated_at":"2026-04-04T13:28:20.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"angular","update_count":20,"packages":[{"name":"@angular/animations","old_version":"21.2.6","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/cdk","old_version":"21.2.4","new_version":"21.2.5","repository_url":"https://github.com/angular/components"},{"name":"@angular/common","old_version":"21.2.6","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler","old_version":"21.2.6","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/core","old_version":"21.2.6","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/forms","old_version":"21.2.6","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/material","old_version":"21.2.4","new_version":"21.2.5","repository_url":"https://github.com/angular/components"},{"name":"@angular/platform-browser","old_version":"21.2.6","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser-dynamic","old_version":"21.2.6","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/router","old_version":"21.2.6","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular-devkit/build-angular","old_version":"21.2.5","new_version":"21.2.6","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular-eslint/builder","old_version":"20.1.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin","old_version":"20.1.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin-template","old_version":"20.1.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/schematics","old_version":"20.1.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/template-parser","old_version":"20.1.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular/cli","old_version":"21.2.5","new_version":"21.2.6","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/compiler-cli","old_version":"21.2.6","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/language-service","old_version":"21.2.6","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"typescript","old_version":"5.9.3","new_version":"6.0.2","repository_url":"https://github.com/microsoft/TypeScript"}],"path":null,"ecosystem":"npm"},"body":"Bumps the angular group with 20 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `21.2.6` | `21.2.7` |\n| [@angular/cdk](https://github.com/angular/components) | `21.2.4` | `21.2.5` |\n| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `21.2.6` | `21.2.7` |\n| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `21.2.6` | `21.2.7` |\n| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `21.2.6` | `21.2.7` |\n| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `21.2.6` | `21.2.7` |\n| [@angular/material](https://github.com/angular/components) | `21.2.4` | `21.2.5` |\n| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `21.2.6` | `21.2.7` |\n| [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `21.2.6` | `21.2.7` |\n| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `21.2.6` | `21.2.7` |\n| [@angular-devkit/build-angular](https://github.com/angular/angular-cli) | `21.2.5` | `21.2.6` |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `20.1.1` | `21.3.1` |\n| [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) | `20.1.1` | `21.3.1` |\n| [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template) | `20.1.1` | `21.3.1` |\n| [@angular-eslint/schematics](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics) | `20.1.1` | `21.3.1` |\n| [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `20.1.1` | `21.3.1` |\n| [@angular/cli](https://github.com/angular/angular-cli) | `21.2.5` | `21.2.6` |\n| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `21.2.6` | `21.2.7` |\n| [@angular/language-service](https://github.com/angular/angular/tree/HEAD/packages/language-service) | `21.2.6` | `21.2.7` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `6.0.2` |\n\n\nUpdates `@angular/animations` from 21.2.6 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/animations\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/animations\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.7 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003efea25d1a60\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003ebba5ed8e64\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003ed04ddd73df\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e8fd896e99a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003eb682c62873\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e3c41e74fdd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e0960592d3d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.5 (2026-03-25)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eElements with multiple matching selectors will now throw at compile time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComponent with undefined \u003ccode\u003echangeDetection\u003c/code\u003e property are now \u003ccode\u003eOnPush\u003c/code\u003e by default. Specify \u003ccode\u003echangeDetection: ChangeDetectionStrategy.Eager\u003c/code\u003e to keep the previous behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eplatform-browser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHammer.js integration has been removed. Use your own implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1312da1832e2b59ce18edae8fae13d3f562d9b0\"\u003ec1312da183\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a\"\u003ee850643b1b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eSupport comments in html element.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943\"\u003e96be4f429b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eabstract emitter producing incorrect code for dynamic imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/5a712d42d161c93f6315d6462543c26c4e4a4490\"\u003e5a712d42d1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24\"\u003eca67828ee2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eintroduce NG8023 compile-time diagnostic for duplicate selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.7/packages/animations\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/cdk` from 21.2.4 to 21.2.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/releases\"\u003e\u003ccode\u003e@​angular/cdk\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/895908a12dd81d889f95961da59e80823faf8889\"\u003e\u003cimg src=\"https://img.shields.io/badge/895908a12-fix-green\" alt=\"fix - 895908a12\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esidenav:\u003c/strong\u003e not resetting margin if transition does not start (\u003ca href=\"https://redirect.github.com/angular/components/issues/33001\"\u003e#33001\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/475a8aabb30044c4cdca1bdb0b1de832db6e5936\"\u003e\u003cimg src=\"https://img.shields.io/badge/475a8aabb-fix-green\" alt=\"fix - 475a8aabb\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eslider:\u003c/strong\u003e not picking up static direction (\u003ca href=\"https://redirect.github.com/angular/components/issues/33006\"\u003e#33006\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/8a5ed09e59e312f82b969b19ae4d077e4574bd12\"\u003e\u003cimg src=\"https://img.shields.io/badge/8a5ed09e5-fix-green\" alt=\"fix - 8a5ed09e5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003etooltip:\u003c/strong\u003e allow hover detection logic to be customized (\u003ca href=\"https://redirect.github.com/angular/components/issues/33018\"\u003e#33018\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/42e10553cfcf205fea44522ae631fe23f90b03ea\"\u003e\u003cimg src=\"https://img.shields.io/badge/42e10553c-fix-green\" alt=\"fix - 42e10553c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003estepper:\u003c/strong\u003e linear updates not reflected in the DOM (\u003ca href=\"https://redirect.github.com/angular/components/issues/33007\"\u003e#33007\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/cdk\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.5 \u0026quot;steel-wombat\u0026quot; (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/42e10553cfcf205fea44522ae631fe23f90b03ea\"\u003e42e10553c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003estepper:\u003c/strong\u003e linear updates not reflected in the DOM (\u003ca href=\"https://redirect.github.com/angular/components/pull/33007\"\u003e#33007\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/895908a12dd81d889f95961da59e80823faf8889\"\u003e895908a12\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esidenav:\u003c/strong\u003e not resetting margin if transition does not start (\u003ca href=\"https://redirect.github.com/angular/components/pull/33001\"\u003e#33001\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/475a8aabb30044c4cdca1bdb0b1de832db6e5936\"\u003e475a8aabb\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eslider:\u003c/strong\u003e not picking up static direction (\u003ca href=\"https://redirect.github.com/angular/components/pull/33006\"\u003e#33006\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/8a5ed09e59e312f82b969b19ae4d077e4574bd12\"\u003e8a5ed09e5\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003etooltip:\u003c/strong\u003e allow hover detection logic to be customized (\u003ca href=\"https://redirect.github.com/angular/components/pull/33018\"\u003e#33018\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/c9d40aa735751363a729723751aaf87dfb5d4819\"\u003e\u003ccode\u003ec9d40aa\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/899456f6e4b23d6c34643c223a42f0bbd67b9de8\"\u003e\u003ccode\u003e899456f\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies (\u003ca href=\"https://redirect.github.com/angular/components/issues/33017\"\u003e#33017\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/b3f60001228f8c92c96256ed5025acef828cb2dc\"\u003e\u003ccode\u003eb3f6000\u003c/code\u003e\u003c/a\u003e build: lock file maintenance (\u003ca href=\"https://redirect.github.com/angular/components/issues/33015\"\u003e#33015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/8a5ed09e59e312f82b969b19ae4d077e4574bd12\"\u003e\u003ccode\u003e8a5ed09\u003c/code\u003e\u003c/a\u003e fix(material/tooltip): allow hover detection logic to be customized (\u003ca href=\"https://redirect.github.com/angular/components/issues/33018\"\u003e#33018\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/7f04529c759f9e43fffb59d8daa8b1cb5a0a1e51\"\u003e\u003ccode\u003e7f04529\u003c/code\u003e\u003c/a\u003e build: update github/codeql-action action to v4.35.1 (\u003ca href=\"https://redirect.github.com/angular/components/issues/32990\"\u003e#32990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/ec90218b8fd2720bcf0baa79e6bf6d1473d5a053\"\u003e\u003ccode\u003eec90218\u003c/code\u003e\u003c/a\u003e build: update bazel dependencies (\u003ca href=\"https://redirect.github.com/angular/components/issues/32989\"\u003e#32989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/895908a12dd81d889f95961da59e80823faf8889\"\u003e\u003ccode\u003e895908a\u003c/code\u003e\u003c/a\u003e fix(material/sidenav): not resetting margin if transition does not start (\u003ca href=\"https://redirect.github.com/angular/components/issues/33\"\u003e#33\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/475a8aabb30044c4cdca1bdb0b1de832db6e5936\"\u003e\u003ccode\u003e475a8aa\u003c/code\u003e\u003c/a\u003e fix(material/slider): not picking up static direction (\u003ca href=\"https://redirect.github.com/angular/components/issues/33006\"\u003e#33006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/42e10553cfcf205fea44522ae631fe23f90b03ea\"\u003e\u003ccode\u003e42e1055\u003c/code\u003e\u003c/a\u003e fix(cdk/stepper): linear updates not reflected in the DOM (\u003ca href=\"https://redirect.github.com/angular/components/issues/33007\"\u003e#33007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/e444cc41a069f66581fcb2f7dcc728fc59ef2892\"\u003e\u003ccode\u003ee444cc4\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies (\u003ca href=\"https://redirect.github.com/angular/components/issues/32998\"\u003e#32998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/components/compare/v21.2.4...v21.2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/common` from 21.2.6 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.7 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003efea25d1a60\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003ebba5ed8e64\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003ed04ddd73df\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e8fd896e99a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003eb682c62873\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e3c41e74fdd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e0960592d3d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.5 (2026-03-25)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eElements with multiple matching selectors will now throw at compile time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComponent with undefined \u003ccode\u003echangeDetection\u003c/code\u003e property are now \u003ccode\u003eOnPush\u003c/code\u003e by default. Specify \u003ccode\u003echangeDetection: ChangeDetectionStrategy.Eager\u003c/code\u003e to keep the previous behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eplatform-browser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHammer.js integration has been removed. Use your own implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1312da1832e2b59ce18edae8fae13d3f562d9b0\"\u003ec1312da183\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a\"\u003ee850643b1b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eSupport comments in html element.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943\"\u003e96be4f429b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eabstract emitter producing incorrect code for dynamic imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/5a712d42d161c93f6315d6462543c26c4e4a4490\"\u003e5a712d42d1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24\"\u003eca67828ee2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eintroduce NG8023 compile-time diagnostic for duplicate selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/13f050d2204285173273ebbfe9b34bc1b3c63c80\"\u003e\u003ccode\u003e13f050d\u003c/code\u003e\u003c/a\u003e test: construct local \u003ccode\u003eDate\u003c/code\u003e objects to fix timezone flakiness\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d0cf2995a2b63eb13fe574770ee8a756277852a4\"\u003e\u003ccode\u003ed0cf299\u003c/code\u003e\u003c/a\u003e test: remove unsupported timezone from \u003ccode\u003eformatDate\u003c/code\u003e tests\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.7/packages/common\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/compiler` from 21.2.6 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.7 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003efea25d1a60\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003ebba5ed8e64\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003ed04ddd73df\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e8fd896e99a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003eb682c62873\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e3c41e74fdd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e0960592d3d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.5 (2026-03-25)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eElements with multiple matching selectors will now throw at compile time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComponent with undefined \u003ccode\u003echangeDetection\u003c/code\u003e property are now \u003ccode\u003eOnPush\u003c/code\u003e by default. Specify \u003ccode\u003echangeDetection: ChangeDetectionStrategy.Eager\u003c/code\u003e to keep the previous behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eplatform-browser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHammer.js integration has been removed. Use your own implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1312da1832e2b59ce18edae8fae13d3f562d9b0\"\u003ec1312da183\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a\"\u003ee850643b1b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eSupport comments in html element.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943\"\u003e96be4f429b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eabstract emitter producing incorrect code for dynamic imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/5a712d42d161c93f6315d6462543c26c4e4a4490\"\u003e5a712d42d1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24\"\u003eca67828ee2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eintroduce NG8023 compile-time diagnostic for duplicate selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003ccode\u003ed04ddd7\u003c/code\u003e\u003c/a\u003e fix(core): prevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003ccode\u003efea25d1\u003c/code\u003e\u003c/a\u003e fix(compiler): register SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67\"\u003e#67\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.7/packages/compiler\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/core` from 21.2.6 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.7 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003efea25d1a60\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003ebba5ed8e64\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003ed04ddd73df\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e8fd896e99a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003eb682c62873\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e3c41e74fdd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e0960592d3d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.5 (2026-03-25)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eElements with multiple matching selectors will now throw at compile time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComponent with undefined \u003ccode\u003echangeDetection\u003c/code\u003e property are now \u003ccode\u003eOnPush\u003c/code\u003e by default. Specify \u003ccode\u003echangeDetection: ChangeDetectionStrategy.Eager\u003c/code\u003e to keep the previous behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eplatform-browser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHammer.js integration has been removed. Use your own implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1312da1832e2b59ce18edae8fae13d3f562d9b0\"\u003ec1312da183\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a\"\u003ee850643b1b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eSupport comments in html element.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943\"\u003e96be4f429b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eabstract emitter producing incorrect code for dynamic imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/5a712d42d161c93f6315d6462543c26c4e4a4490\"\u003e5a712d42d1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24\"\u003eca67828ee2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eintroduce NG8023 compile-time diagnostic for duplicate selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/4ad6d582d2a9f887c8530ff10ae513a4181ad24c\"\u003e\u003ccode\u003e4ad6d58\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies to v21.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003ccode\u003ed04ddd7\u003c/code\u003e\u003c/a\u003e fix(core): prevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003ccode\u003eb682c62\u003c/code\u003e\u003c/a\u003e fix(core): treat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003ccode\u003efea25d1\u003c/code\u003e\u003c/a\u003e fix(compiler): register SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67\"\u003e#67\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003ccode\u003e8fd896e\u003c/code\u003e\u003c/a\u003e fix(core): resolve component import by exact specifier in route lazy-loading ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/4b2008d0f2455cab7503b3a0349feecbff3b3b5a\"\u003e\u003ccode\u003e4b2008d\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.7/packages/core\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/forms` from 21.2.6 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/forms/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/forms/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/forms/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.7 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003efea25d1a60\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003ebba5ed8e64\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003ed04ddd73df\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e8fd896e99a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003eb682c62873\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e3c41e74fdd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e0960592d3d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.5 (2026-03-25)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eElements with multiple matching selectors will now throw at compile time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComponent with undefined \u003ccode\u003echangeDetection\u003c/code\u003e property are now \u003ccode\u003eOnPush\u003c/code\u003e by default. Specify \u003ccode\u003echangeDetection: ChangeDetectionStrategy.Eager\u003c/code\u003e to keep the previous behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eplatform-browser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHammer.js integration has been removed. Use your own implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1312da1832e2b59ce18edae8fae13d3f562d9b0\"\u003ec1312da183\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a\"\u003ee850643b1b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eSupport comments in html element.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943\"\u003e96be4f429b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eabstract emitter producing incorrect code for dynamic imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/5a712d42d161c93f6315d6462543c26c4e4a4490\"\u003e5a712d42d1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24\"\u003eca67828ee2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eintroduce NG8023 compile-time diagnostic for duplicate selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/895c576d494111f819e8a790d3a0695b6b9f8b4b\"\u003e\u003ccode\u003e895c576\u003c/code\u003e\u003c/a\u003e refactor(forms): use strict equality for pending status getter\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.7/packages/forms\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/material` from 21.2.4 to 21.2.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/releases\"\u003e\u003ccode\u003e@​angular/material\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/895908a12dd81d889f95961da59e80823faf8889\"\u003e\u003cimg src=\"https://img.shields.io/badge/895908a12-fix-green\" alt=\"fix - 895908a12\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esidenav:\u003c/strong\u003e not resetting margin if transition does not start (\u003ca href=\"https://redirect.github.com/angular/components/issues/33001\"\u003e#33001\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/475a8aabb30044c4cdca1bdb0b1de832db6e5936\"\u003e\u003cimg src=\"https://img.shields.io/badge/475a8aabb-fix-green\" alt=\"fix - 475a8aabb\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eslider:\u003c/strong\u003e not picking up static direction (\u003ca href=\"https://redirect.github.com/angular/components/issues/33006\"\u003e#33006\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/8a5ed09e59e312f82b969b19ae4d077e4574bd12\"\u003e\u003cimg src=\"https://img.shields.io/badge/8a5ed09e5-fix-green\" alt=\"fix - 8a5ed09e5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003etooltip:\u003c/strong\u003e allow hover detection logic to be customized (\u003ca href=\"https://redirect.github.com/angular/components/issues/33018\"\u003e#33018\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/42e10553cfcf205fea44522ae631fe23f90b03ea\"\u003e\u003cimg src=\"https://img.shields.io/badge/42e10553c-fix-green\" alt=\"fix - 42e10553c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003estepper:\u003c/strong\u003e linear updates not reflected in the DOM (\u003ca href=\"https://redirect.github.com/angular/components/issues/33007\"\u003e#33007\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/material\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.5 \u0026quot;steel-wombat\u0026quot; (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/42e10553cfcf205fea44522ae631fe23f90b03ea\"\u003e42e10553c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003estepper:\u003c/strong\u003e linear updates not reflected in the DOM (\u003ca href=\"https://redirect.github.com/angular/components/pull/33007\"\u003e#33007\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/895908a12dd81d889f95961da59e80823faf8889\"\u003e895908a12\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esidenav:\u003c/strong\u003e not resetting margin if transition does not start (\u003ca href=\"https://redirect.github.com/angular/components/pull/33001\"\u003e#33001\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/475a8aabb30044c4cdca1bdb0b1de832db6e5936\"\u003e475a8aabb\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eslider:\u003c/strong\u003e not picking up static direction (\u003ca href=\"https://redirect.github.com/angular/components/pull/33006\"\u003e#33006\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/8a5ed09e59e312f82b969b19ae4d077e4574bd12\"\u003e8a5ed09e5\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003etooltip:\u003c/strong\u003e allow hover detection logic to be customized (\u003ca href=\"https://redirect.github.com/angular/components/pull/33018\"\u003e#33018\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/c9d40aa735751363a729723751aaf87dfb5d4819\"\u003e\u003ccode\u003ec9d40aa\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/899456f6e4b23d6c34643c223a42f0bbd67b9de8\"\u003e\u003ccode\u003e899456f\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies (\u003ca href=\"https://redirect.github.com/angular/components/issues/33017\"\u003e#33017\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/b3f60001228f8c92c96256ed5025acef828cb2dc\"\u003e\u003ccode\u003eb3f6000\u003c/code\u003e\u003c/a\u003e build: lock file maintenance (\u003ca href=\"https://redirect.github.com/angular/components/issues/33015\"\u003e#33015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/8a5ed09e59e312f82b969b19ae4d077e4574bd12\"\u003e\u003ccode\u003e8a5ed09\u003c/code\u003e\u003c/a\u003e fix(material/tooltip): allow hover detection logic to be customized (\u003ca href=\"https://redirect.github.com/angular/components/issues/33018\"\u003e#33018\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/7f04529c759f9e43fffb59d8daa8b1cb5a0a1e51\"\u003e\u003ccode\u003e7f04529\u003c/code\u003e\u003c/a\u003e build: update github/codeql-action action to v4.35.1 (\u003ca href=\"https://redirect.github.com/angular/components/issues/32990\"\u003e#32990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/ec90218b8fd2720bcf0baa79e6bf6d1473d5a053\"\u003e\u003ccode\u003eec90218\u003c/code\u003e\u003c/a\u003e build: update bazel dependencies (\u003ca href=\"https://redirect.github.com/angular/components/issues/32989\"\u003e#32989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/895908a12dd81d889f95961da59e80823faf8889\"\u003e\u003ccode\u003e895908a\u003c/code\u003e\u003c/a\u003e fix(material/sidenav): not resetting margin if transition does not start (\u003ca href=\"https://redirect.github.com/angular/components/issues/33\"\u003e#33\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/475a8aabb30044c4cdca1bdb0b1de832db6e5936\"\u003e\u003ccode\u003e475a8aa\u003c/code\u003e\u003c/a\u003e fix(material/slider): not picking up static direction (\u003ca href=\"https://redirect.github.com/angular/components/issues/33006\"\u003e#33006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/42e10553cfcf205fea44522ae631fe23f90b03ea\"\u003e\u003ccode\u003e42e1055\u003c/code\u003e\u003c/a\u003e fix(cdk/stepper): linear updates not reflected in the DOM (\u003ca href=\"https://redirect.github.com/angular/components/issues/33007\"\u003e#33007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/e444cc41a069f66581fcb2f7dcc728fc59ef2892\"\u003e\u003ccode\u003ee444cc4\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies (\u003ca href=\"https://redirect.github.com/angular/components/issues/32998\"\u003e#32998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/components/compare/v21.2.4...v21.2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/platform-browser` from 21.2.6 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/platform-browser\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/platform-browser/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/platform-browser/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/platform-browser/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/platform-browser\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.7 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003efea25d1a60\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003ebba5ed8e64\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003ed04ddd73df\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e8fd896e99a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003eb682c62873\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e3c41e74fdd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e0960592d3d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.5 (2026-03-25)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eElements with multiple matching selectors will now throw at compile time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComponent with undefined \u003ccode\u003echangeDetection\u003c/code\u003e property are now \u003ccode\u003eOnPush\u003c/code\u003e by default. Specify \u003ccode\u003echangeDetection: ChangeDetectionStrategy.Eager\u003c/code\u003e to keep the previous behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eplatform-browser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHammer.js integration has been removed. Use your own implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1312da1832e2b59ce18edae8fae13d3f562d9b0\"\u003ec1312da183\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a\"\u003ee850643b1b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eSupport comments in html element.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943\"\u003e96be4f429b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eabstract emitter producing incorrect code for dynamic imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/5a712d42d161c93f6315d6462543c26c4e4a4490\"\u003e5a712d42d1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescriptio...\n\n_Description has been truncated_","html_url":"https://github.com/SubJunk/TimelineTools/pull/1404","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SubJunk%2FTimelineTools/issues/1404","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1404/packages"},{"uuid":"4190751338","node_id":"PR_kwDOG1Zs187Paq-R","number":12491,"state":"open","title":"Chore(deps): Bump the frontend-angular-dependencies group across 1 directory with 20 updates","user":"dependabot[bot]","labels":["non-trivial","frontend","dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-02T00:58:04.000Z","updated_at":"2026-05-02T06:00:24.140Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Chore(deps): Bump","group_name":"frontend-angular-dependencies","update_count":20,"packages":[{"name":"@angular/cdk","old_version":"21.2.2","new_version":"21.2.4","repository_url":"https://github.com/angular/components"},{"name":"@angular/common","old_version":"21.2.4","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler","old_version":"21.2.4","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/core","old_version":"21.2.4","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/forms","old_version":"21.2.4","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/localize","old_version":"21.2.4","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser","old_version":"21.2.4","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser-dynamic","old_version":"21.2.4","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/router","old_version":"21.2.4","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"ngx-cookie-service","old_version":"21.1.0","new_version":"21.3.1","repository_url":"https://github.com/stevermeister/ngx-cookie-service"},{"name":"@angular-devkit/core","old_version":"21.2.2","new_version":"21.2.3","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular-devkit/schematics","old_version":"21.2.2","new_version":"21.2.3","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular-eslint/builder","old_version":"21.3.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin","old_version":"21.3.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin-template","old_version":"21.3.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/schematics","old_version":"21.3.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/template-parser","old_version":"21.3.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular/build","old_version":"21.2.2","new_version":"21.2.3","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/cli","old_version":"21.2.2","new_version":"21.2.3","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/compiler-cli","old_version":"21.2.4","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"}],"path":null,"ecosystem":"npm"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps the frontend-angular-dependencies group with 20 updates in the /src-ui directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@angular/cdk](https://github.com/angular/components) | `21.2.2` | `21.2.4` |\n| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `21.2.4` | `21.2.6` |\n| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `21.2.4` | `21.2.6` |\n| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `21.2.4` | `21.2.6` |\n| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `21.2.4` | `21.2.6` |\n| [@angular/localize](https://github.com/angular/angular) | `21.2.4` | `21.2.6` |\n| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `21.2.4` | `21.2.6` |\n| [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `21.2.4` | `21.2.6` |\n| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `21.2.4` | `21.2.6` |\n| [ngx-cookie-service](https://github.com/stevermeister/ngx-cookie-service) | `21.1.0` | `21.3.1` |\n| [@angular-devkit/core](https://github.com/angular/angular-cli) | `21.2.2` | `21.2.3` |\n| [@angular-devkit/schematics](https://github.com/angular/angular-cli) | `21.2.2` | `21.2.3` |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `21.3.0` | `21.3.1` |\n| [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) | `21.3.0` | `21.3.1` |\n| [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template) | `21.3.0` | `21.3.1` |\n| [@angular-eslint/schematics](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics) | `21.3.0` | `21.3.1` |\n| [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `21.3.0` | `21.3.1` |\n| [@angular/build](https://github.com/angular/angular-cli) | `21.2.2` | `21.2.3` |\n| [@angular/cli](https://github.com/angular/angular-cli) | `21.2.2` | `21.2.3` |\n| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `21.2.4` | `21.2.6` |\n\n\nUpdates `@angular/cdk` from 21.2.2 to 21.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/releases\"\u003e\u003ccode\u003e@​angular/cdk\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.4\u003c/h2\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/87aa6d977166d09b0f321eed6300663bfe57b8aa\"\u003e\u003cimg src=\"https://img.shields.io/badge/87aa6d977-fix-green\" alt=\"fix - 87aa6d977\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003etooltip:\u003c/strong\u003e wrong type for shape token (\u003ca href=\"https://redirect.github.com/angular/components/issues/32968\"\u003e#32968\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.3\u003c/h2\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/917526511e1d52bb2d9fa665e10f087e62aa2229\"\u003e\u003cimg src=\"https://img.shields.io/badge/917526511-fix-green\" alt=\"fix - 917526511\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003edatepicker:\u003c/strong\u003e add harness for datepicker actions (\u003ca href=\"https://redirect.github.com/angular/components/issues/32925\"\u003e#32925\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/688deda580c9141e2a7e36164dbba860d060e5df\"\u003e\u003cimg src=\"https://img.shields.io/badge/688deda58-fix-green\" alt=\"fix - 688deda58\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003edrag-drop:\u003c/strong\u003e item returned to wrong index in initial container (\u003ca href=\"https://redirect.github.com/angular/components/issues/32944\"\u003e#32944\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/cdk\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.4 \u0026quot;hassium-halfpipe\u0026quot; (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/87aa6d977166d09b0f321eed6300663bfe57b8aa\"\u003e87aa6d977\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003etooltip:\u003c/strong\u003e wrong type for shape token (\u003ca href=\"https://redirect.github.com/angular/components/pull/32968\"\u003e#32968\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.2 \u0026quot;hassium-helicopter\u0026quot; (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/a46b0a1d4200bf74b036c25ee477d22025f444c8\"\u003ea46b0a1d4\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003ecore:\u003c/strong\u003e add mixins for Material Design typography (\u003ca href=\"https://redirect.github.com/angular/components/pull/32959\"\u003e#32959\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/ff7d697ec5ed280d3e28029571bc86d7c0c2c3a8\"\u003eff7d697ec\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003etooltip:\u003c/strong\u003e wrong type for shape token (\u003ca href=\"https://redirect.github.com/angular/components/pull/32968\"\u003e#32968\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.1 \u0026quot;22-0-0\u0026quot; (2026-03-18)\u003c/h1\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/0767a3cb4fe9f6fd3496cea991592855cf885b3a\"\u003e0767a3cb4\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003edrag-drop:\u003c/strong\u003e item returned to wrong index in initial container (\u003ca href=\"https://redirect.github.com/angular/components/pull/32944\"\u003e#32944\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/46b67d15053ce31b4742b809f1777b32eb2f1863\"\u003e46b67d150\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003edatepicker:\u003c/strong\u003e add harness for datepicker actions (\u003ca href=\"https://redirect.github.com/angular/components/pull/32925\"\u003e#32925\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/6ed6218c474bfe4578b17d2391d8677fe92671cc\"\u003e6ed6218c4\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003etabs:\u003c/strong\u003e incorrect animation variable name (\u003ca href=\"https://redirect.github.com/angular/components/pull/32941\"\u003e#32941\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e21.2.3 \u0026quot;21-2-3\u0026quot; (2026-03-18)\u003c/h1\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/688deda580c9141e2a7e36164dbba860d060e5df\"\u003e688deda58\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003edrag-drop:\u003c/strong\u003e item returned to wrong index in initial container (\u003ca href=\"https://redirect.github.com/angular/components/pull/32944\"\u003e#32944\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/917526511e1d52bb2d9fa665e10f087e62aa2229\"\u003e917526511\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003edatepicker:\u003c/strong\u003e add harness for datepicker actions (\u003ca href=\"https://redirect.github.com/angular/components/pull/32925\"\u003e#32925\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.0 \u0026quot;plastic-bear\u0026quot; (2026-03-11)\u003c/h1\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/f556281ba1d7ba4327ab6a3253bbb1828886e1cd\"\u003e\u003ccode\u003ef556281\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/df6718b9db92385f9781c40bcbcf45454282ec59\"\u003e\u003ccode\u003edf6718b\u003c/code\u003e\u003c/a\u003e refactor(youtube-player): avoid build errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/7db3d111ff6f21d8f7a5afb06add6e9763b1c77f\"\u003e\u003ccode\u003e7db3d11\u003c/code\u003e\u003c/a\u003e test(multiple): remove usage of deprecated API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/ef1be1ea232bdf379c71a4ce97bf9b09ddd96702\"\u003e\u003ccode\u003eef1be1e\u003c/code\u003e\u003c/a\u003e docs(aria/grid): calendar example with arrow key scrolling (\u003ca href=\"https://redirect.github.com/angular/components/issues/32323\"\u003e#32323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/12163dc0d5ee82122b657fb477b34fb81520dfc3\"\u003e\u003ccode\u003e12163dc\u003c/code\u003e\u003c/a\u003e build: update dependency node to v22.22.2 (\u003ca href=\"https://redirect.github.com/angular/components/issues/32973\"\u003e#32973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/fd215163d615c4113a4fa23e047ba2e02fa74f9c\"\u003e\u003ccode\u003efd21516\u003c/code\u003e\u003c/a\u003e docs(material/datepicker): fix typo in aria-accessible-name comment (\u003ca href=\"https://redirect.github.com/angular/components/issues/32703\"\u003e#32703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/82ab19160613a0b9ae1080d6f3776616bf7fbe13\"\u003e\u003ccode\u003e82ab191\u003c/code\u003e\u003c/a\u003e docs(cdk/overlay): rename template variable from trigger to origin in example...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/c2b85560847d9b69291004663e0917dfd590928c\"\u003e\u003ccode\u003ec2b8556\u003c/code\u003e\u003c/a\u003e docs(material/button): document iconPositionEnd and matButtonIcon attributes ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/5e83cb26a3f57e9995a52d3200f8386571ba0703\"\u003e\u003ccode\u003e5e83cb2\u003c/code\u003e\u003c/a\u003e docs: update remaining NgModule prose references to standalone pattern (\u003ca href=\"https://redirect.github.com/angular/components/issues/32825\"\u003e#32825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/f86039779ff11dda144721c1fa8a846aa5f0e2ce\"\u003e\u003ccode\u003ef860397\u003c/code\u003e\u003c/a\u003e docs: use standalone import in getting-started guide (\u003ca href=\"https://redirect.github.com/angular/components/issues/32826\"\u003e#32826\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/components/compare/v21.2.2...v21.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/common` from 21.2.4 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003ccode\u003eb4ab6ba\u003c/code\u003e\u003c/a\u003e fix(common): avoid redundant image fetch on destroy with auto sizes\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/common\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/compiler` from 21.2.4 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003ccode\u003e880a57d\u003c/code\u003e\u003c/a\u003e fix(compiler): prevent shimCssText from adding extra blank lines per CSS comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003ccode\u003e23ea431\u003c/code\u003e\u003c/a\u003e fix(compiler): parse named HTML entities containing digits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003ccode\u003e334ae10\u003c/code\u003e\u003c/a\u003e fix(compiler): ensure generated code compiles\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/compiler\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/core` from 21.2.4 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1579163b7464edc69f7fa0548f53d978b007021\"\u003e\u003ccode\u003ec157916\u003c/code\u003e\u003c/a\u003e build: consolidate domino bundling in platform-server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/9be5e2c2113db3fe5d799663b6539d34d1e18f47\"\u003e\u003ccode\u003e9be5e2c\u003c/code\u003e\u003c/a\u003e docs: fix typo in Input decorator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/a21be36e15a6d9cf21722f9f6a31dad9380037e9\"\u003e\u003ccode\u003ea21be36\u003c/code\u003e\u003c/a\u003e refactor: prepare for required \u003ccode\u003echangeDetection\u003c/code\u003e prop on G3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/831746eff1e7442bfc96bfa739f54091b26a7997\"\u003e\u003ccode\u003e831746e\u003c/code\u003e\u003c/a\u003e docs: Add callout about the Component interface.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003ccode\u003ead0156e\u003c/code\u003e\u003c/a\u003e fix(core): fixes a regression with animate.leave and reordering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003ccode\u003e73d6b01\u003c/code\u003e\u003c/a\u003e fix(migrations): inject migration not work in multi-project workspace with op...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/3838554503dfe0585e4df93547741fbc34a150d1\"\u003e\u003ccode\u003e3838554\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies to v21.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/851ef77318541580d186d7f1c02061cc615450da\"\u003e\u003ccode\u003e851ef77\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;refactor(core): Ensure determineLongestAnimation is run synchronously...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003ccode\u003e076d41c\u003c/code\u003e\u003c/a\u003e fix(migrations): prevent trailing comma syntax errors after removing NgStyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/a8f80c1f995dd7bab6ee1d42f033ebc3d101e9bd\"\u003e\u003ccode\u003ea8f80c1\u003c/code\u003e\u003c/a\u003e refactor(core): declare explicit reactive node prototypes types\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/core\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/forms` from 21.2.4 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b658accf1f99a240de19090350bd6d3a9620735a\"\u003e\u003ccode\u003eb658acc\u003c/code\u003e\u003c/a\u003e docs: fix js doc of signal forms ignoreValidators option.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/forms\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/localize` from 21.2.4 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/localize\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/localize\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d8239c7836638f3e32095ff67b3943f88e5af616\"\u003e\u003ccode\u003ed8239c7\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.6 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1579163b7464edc69f7fa0548f53d978b007021\"\u003e\u003ccode\u003ec157916\u003c/code\u003e\u003c/a\u003e build: consolidate domino bundling in platform-server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/dbb15ebab2956d14238849384af95d6bd7ca3435\"\u003e\u003ccode\u003edbb15eb\u003c/code\u003e\u003c/a\u003e build: update dependency node to v22.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/a6c49e0ea9c5919828e0ff3e1f01d62dee749fb9\"\u003e\u003ccode\u003ea6c49e0\u003c/code\u003e\u003c/a\u003e refactor(language-service): Export template target from API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c12339ab86243b76a2de24d0c5e9cab648f6fcf\"\u003e\u003ccode\u003e2c12339\u003c/code\u003e\u003c/a\u003e docs(forms): replace \u003ccode\u003erxResource\u003c/code\u003e \u003ccode\u003erequest\u003c/code\u003e w/ \u003ccode\u003eparams\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/a3048f231cbcca4be6cfa8c94aed5b20a3c6bd71\"\u003e\u003ccode\u003ea3048f2\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/ae2f2497d39a9920aef4ab2ef343007eaa40c1d4\"\u003e\u003ccode\u003eae2f249\u003c/code\u003e\u003c/a\u003e docs: reword allowedHosts security warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c7d3b570459131b91949920f0f8765aab1f47ce\"\u003e\u003ccode\u003e2c7d3b5\u003c/code\u003e\u003c/a\u003e build: re-sync file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/6bd21218177d253d54fa388fc024225af09d60f1\"\u003e\u003ccode\u003e6bd2121\u003c/code\u003e\u003c/a\u003e docs: fix incorrect getHarnesses() method to getAllHarnesses and broken link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/e8c047bd8df877e2178a4ac027eff2bff93bec75\"\u003e\u003ccode\u003ee8c047b\u003c/code\u003e\u003c/a\u003e docs: update defer section to Markdown and fix absolute URL to relative in adev\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/compare/v21.2.4...v21.2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/platform-browser` from 21.2.4 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/platform-browser\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/paperless-ngx/paperless-ngx/pull/12491","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/paperless-ngx%2Fpaperless-ngx/issues/12491","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12491/packages"},{"uuid":"4176390771","node_id":"PR_kwDOPW-Qps7O2O-t","number":121,"state":"open","title":"build(deps-dev): bump @angular-eslint/builder from 21.3.0 to 21.3.1 in /ng-frontend","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-31T06:45:38.000Z","updated_at":"2026-03-31T06:49:34.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"@angular-eslint/builder","old_version":"21.3.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":"/ng-frontend","ecosystem":"npm"},"body":"Bumps [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) from 21.3.0 to 21.3.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.3.1\u003c/h2\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.0.3 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2949\"\u003e#2949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2954\"\u003e#2954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] properly handle statements with unary operators (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2926\"\u003e#2926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eprefer-self-closing-tags:\u003c/strong\u003e add selectedcontent nonAriaElements (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebjarketrux\u003c/li\u003e\n\u003cli\u003eDaniil Demenev \u003ca href=\"https://github.com/BEGEMOT9I\"\u003e\u003ccode\u003e@​BEGEMOT9I\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/8f2afdce28d4cbdac792465b33aff35915af23b5\"\u003e\u003ccode\u003e8f2afdc\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/77099ee61cda76136038dce9f21d3af6071a7d06\"\u003e\u003ccode\u003e77099ee\u003c/code\u003e\u003c/a\u003e chore: ensure dist artifacts are available for e2e publishing in DTE (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/af8900f087b09556bfaddd815ce483bf7b0262ea\"\u003e\u003ccode\u003eaf8900f\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix: narrow build target cache outputs to avoid clobbering compile ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/7e173918eb48b2db41ce4d5a934567dab26fe54b\"\u003e\u003ccode\u003e7e17391\u003c/code\u003e\u003c/a\u003e fix: narrow build target cache outputs to avoid clobbering compile artifacts ...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.3.1/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular-eslint/builder\u0026package-manager=npm_and_yarn\u0026previous-version=21.3.0\u0026new-version=21.3.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/my-ellersdorfer-at/my-stuff/pull/121","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/my-ellersdorfer-at%2Fmy-stuff/issues/121","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/121/packages"},{"uuid":"4161953626","node_id":"PR_kwDORtMf787OUrsJ","number":21,"state":"closed","title":"chore(deps): Bump the angular group across 1 directory with 19 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-06T03:36:59.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-28T23:28:34.000Z","updated_at":"2026-04-06T03:37:01.000Z","time_to_close":706105,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"angular","update_count":19,"packages":[{"name":"@angular/common","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/core","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/forms","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser-dynamic","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/router","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@ngrx/effects","old_version":"19.2.1","new_version":"21.1.0","repository_url":"https://github.com/ngrx/platform"},{"name":"@ngrx/entity","old_version":"19.2.1","new_version":"21.1.0","repository_url":"https://github.com/ngrx/platform"},{"name":"@ngrx/router-store","old_version":"19.2.1","new_version":"21.1.0","repository_url":"https://github.com/ngrx/platform"},{"name":"@ngrx/store","old_version":"19.2.1","new_version":"21.1.0","repository_url":"https://github.com/ngrx/platform"},{"name":"@ngrx/store-devtools","old_version":"19.2.1","new_version":"21.1.0","repository_url":"https://github.com/ngrx/platform"},{"name":"@angular-eslint/builder","old_version":"19.8.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin","old_version":"19.8.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin-template","old_version":"19.8.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/schematics","old_version":"19.8.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/template-parser","old_version":"19.8.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular/cli","old_version":"19.2.23","new_version":"21.2.5","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/compiler-cli","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"}],"path":null,"ecosystem":"npm"},"body":"Bumps the angular group with 19 updates in the /frontend/angular directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `19.2.20` | `21.2.6` |\n| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `19.2.20` | `21.2.6` |\n| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `19.2.20` | `21.2.6` |\n| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `19.2.20` | `21.2.6` |\n| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `19.2.20` | `21.2.6` |\n| [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `19.2.20` | `21.2.6` |\n| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `19.2.20` | `21.2.6` |\n| [@ngrx/effects](https://github.com/ngrx/platform) | `19.2.1` | `21.1.0` |\n| [@ngrx/entity](https://github.com/ngrx/platform) | `19.2.1` | `21.1.0` |\n| [@ngrx/router-store](https://github.com/ngrx/platform) | `19.2.1` | `21.1.0` |\n| [@ngrx/store](https://github.com/ngrx/platform) | `19.2.1` | `21.1.0` |\n| [@ngrx/store-devtools](https://github.com/ngrx/platform) | `19.2.1` | `21.1.0` |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `19.8.1` | `21.3.1` |\n| [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) | `19.8.1` | `21.3.1` |\n| [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template) | `19.8.1` | `21.3.1` |\n| [@angular-eslint/schematics](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics) | `19.8.1` | `21.3.1` |\n| [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `19.8.1` | `21.3.1` |\n| [@angular/cli](https://github.com/angular/angular-cli) | `19.2.23` | `21.2.5` |\n| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `19.2.20` | `21.2.6` |\n\n\nUpdates `@angular/common` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.4\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003cimg src=\"https://img.shields.io/badge/ed2d324f9c-fix-green\" alt=\"fix - ed2d324f9c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow translations of iframe src\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003ccode\u003eb4ab6ba\u003c/code\u003e\u003c/a\u003e fix(common): avoid redundant image fetch on destroy with auto sizes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/adda6c5c106815c727c1b820634614a045b42e9a\"\u003e\u003ccode\u003eadda6c5\u003c/code\u003e\u003c/a\u003e build: update \u003ccode\u003easpect_rules_js\u003c/code\u003e to \u003ccode\u003e3.0.2\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/93c6dc6395d681dacd1dbbc46b95773038b6c32f\"\u003e\u003ccode\u003e93c6dc6\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;refactor(http): Improves base64 encoding/decoding with feature detect...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/76431ed3e3bd8bf90ac2fb481152a33587187037\"\u003e\u003ccode\u003e76431ed\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix(http): correctly cache blob responses in transfer cache (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67002\"\u003e#67002\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/277ade97ac2a3a7f2a5b513acaa93e7663cdc55f\"\u003e\u003ccode\u003e277ade9\u003c/code\u003e\u003c/a\u003e fix(http): correctly cache blob responses in transfer cache (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67002\"\u003e#67002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/aeb9b819d2cda782de85338dc9a5457c11e51bfe\"\u003e\u003ccode\u003eaeb9b81\u003c/code\u003e\u003c/a\u003e refactor(http): Improves base64 encoding/decoding with feature detection (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67\"\u003e#67\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/ecf0bb466875d17e0823f2d793491c6f354d6c34\"\u003e\u003ccode\u003eecf0bb4\u003c/code\u003e\u003c/a\u003e test(http): refactors HTTP client tests to use TestBed and providers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/e2e9a9a531c9e9a69701e549f28354cc5d5edd77\"\u003e\u003ccode\u003ee2e9a9a\u003c/code\u003e\u003c/a\u003e fix(core): adds transfer cache to httpResource to fix hydration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/70e4c7fbabb45277cf76ee138c0be275beec7919\"\u003e\u003ccode\u003e70e4c7f\u003c/code\u003e\u003c/a\u003e refactor(common): log a warning when a KeyValuePipe receives a signal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/2eeeabb7606900ad4fe8e3370d73f6add985f35d\"\u003e\u003ccode\u003e2eeeabb\u003c/code\u003e\u003c/a\u003e fix(common): fix LCP image detection with duplicate URLs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/common\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/compiler` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.4\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003cimg src=\"https://img.shields.io/badge/ed2d324f9c-fix-green\" alt=\"fix - ed2d324f9c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow translations of iframe src\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003ccode\u003e880a57d\u003c/code\u003e\u003c/a\u003e fix(compiler): prevent shimCssText from adding extra blank lines per CSS comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003ccode\u003e23ea431\u003c/code\u003e\u003c/a\u003e fix(compiler): parse named HTML entities containing digits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003ccode\u003e334ae10\u003c/code\u003e\u003c/a\u003e fix(compiler): ensure generated code compiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003ccode\u003eed2d324\u003c/code\u003e\u003c/a\u003e fix(compiler): disallow translations of iframe src\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/1df1697c6e3a6b1d302f7692b495146943faa12f\"\u003e\u003ccode\u003e1df1697\u003c/code\u003e\u003c/a\u003e fix(compiler): prevent mutation of children array in RecursiveVisitor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/95b3f37d4a7d9a38f616d56df746dfcda3c2139b\"\u003e\u003ccode\u003e95b3f37\u003c/code\u003e\u003c/a\u003e feat(compiler): Exhaustive checks for switch blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/9c5658adb1146b24ebf31fef534c4bbae1ced548\"\u003e\u003ccode\u003e9c5658a\u003c/code\u003e\u003c/a\u003e refactor(compiler): clean up pipeline compatibility distinction\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/6e0d783e5b5a256c0aa2fb1d3e008677c0603382\"\u003e\u003ccode\u003e6e0d783\u003c/code\u003e\u003c/a\u003e refactor(compiler): Add info about unclosed element.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/06d94ac0caacce20d5afbdb1e940911bdc500d78\"\u003e\u003ccode\u003e06d94ac\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;refactor(compiler): Add info about unclosed element.\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/097208454bb0d5ebaad701a991125d2a33d1f79b\"\u003e\u003ccode\u003e0972084\u003c/code\u003e\u003c/a\u003e refactor(compiler): Add info about unclosed element.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/compiler\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/core` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.4\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003cimg src=\"https://img.shields.io/badge/ed2d324f9c-fix-green\" alt=\"fix - ed2d324f9c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow translations of iframe src\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1579163b7464edc69f7fa0548f53d978b007021\"\u003e\u003ccode\u003ec157916\u003c/code\u003e\u003c/a\u003e build: consolidate domino bundling in platform-server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/9be5e2c2113db3fe5d799663b6539d34d1e18f47\"\u003e\u003ccode\u003e9be5e2c\u003c/code\u003e\u003c/a\u003e docs: fix typo in Input decorator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/a21be36e15a6d9cf21722f9f6a31dad9380037e9\"\u003e\u003ccode\u003ea21be36\u003c/code\u003e\u003c/a\u003e refactor: prepare for required \u003ccode\u003echangeDetection\u003c/code\u003e prop on G3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/831746eff1e7442bfc96bfa739f54091b26a7997\"\u003e\u003ccode\u003e831746e\u003c/code\u003e\u003c/a\u003e docs: Add callout about the Component interface.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003ccode\u003ead0156e\u003c/code\u003e\u003c/a\u003e fix(core): fixes a regression with animate.leave and reordering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003ccode\u003e73d6b01\u003c/code\u003e\u003c/a\u003e fix(migrations): inject migration not work in multi-project workspace with op...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/3838554503dfe0585e4df93547741fbc34a150d1\"\u003e\u003ccode\u003e3838554\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies to v21.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/851ef77318541580d186d7f1c02061cc615450da\"\u003e\u003ccode\u003e851ef77\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;refactor(core): Ensure determineLongestAnimation is run synchronously...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003ccode\u003e076d41c\u003c/code\u003e\u003c/a\u003e fix(migrations): prevent trailing comma syntax errors after removing NgStyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/a8f80c1f995dd7bab6ee1d42f033ebc3d101e9bd\"\u003e\u003ccode\u003ea8f80c1\u003c/code\u003e\u003c/a\u003e refactor(core): declare explicit reactive node prototypes types\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/core\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/forms` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.4\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003cimg src=\"https://img.shields.io/badge/ed2d324f9c-fix-green\" alt=\"fix - ed2d324f9c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow translations of iframe src\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b658accf1f99a240de19090350bd6d3a9620735a\"\u003e\u003ccode\u003eb658acc\u003c/code\u003e\u003c/a\u003e docs: fix js doc of signal forms ignoreValidators option.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/7907e982ee90778e596d3e849f0a31c6c26db235\"\u003e\u003ccode\u003e7907e98\u003c/code\u003e\u003c/a\u003e test: remove duplicate tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/4a9b715b3abd3e51184937f764376883d6bb98a1\"\u003e\u003ccode\u003e4a9b715\u003c/code\u003e\u003c/a\u003e test(forms): cover transformedValue without FormField context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/670d1660c40504e3f55e094c3ebbcccad14163f3\"\u003e\u003ccode\u003e670d166\u003c/code\u003e\u003c/a\u003e feat(forms): add 'blur' option to debounce rule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/23cb9a4291dc7ee0db3a78416b5ca2b51cfad1ac\"\u003e\u003ccode\u003e23cb9a4\u003c/code\u003e\u003c/a\u003e refactor(forms): address feedback\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/0a863ba03f5eb83f383f647b7015bc3640072a1d\"\u003e\u003ccode\u003e0a863ba\u003c/code\u003e\u003c/a\u003e refactor(forms): hide adapter in public options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/fe7b26e403febfe2662828945d41bc4567cbcc8b\"\u003e\u003ccode\u003efe7b26e\u003c/code\u003e\u003c/a\u003e docs(forms): transformedValue parse error wiring\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/bdfb60f3e33065e047183dc1890c36e527e2b304\"\u003e\u003ccode\u003ebdfb60f\u003c/code\u003e\u003c/a\u003e fix(forms): use consistent error format returned from parse\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/631f60d1f9be72cb68330308a6ff18cc195babb8\"\u003e\u003ccode\u003e631f60d\u003c/code\u003e\u003c/a\u003e fix(forms): preserve parse errors when parse returns value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/567f292e8e0f9d2b5ddebadfa1c6d6dd6c456f39\"\u003e\u003ccode\u003e567f292\u003c/code\u003e\u003c/a\u003e fix(forms): support custom controls as host directives\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/forms\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/platform-browser` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/platform-browser\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.4\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003cimg src=\"https://img.shields.io/badge/ed2d324f9c-fix-green\" alt=\"fix - ed2d324f9c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow translations of iframe src\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/platform-browser\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/76431ed3e3bd8bf90ac2fb481152a33587187037\"\u003e\u003ccode\u003e76431ed\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix(http): correctly cache blob responses in transfer cache (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/platform-browser/issues/67002\"\u003e#67002\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/277ade97ac2a3a7f2a5b513acaa93e7663cdc55f\"\u003e\u003ccode\u003e277ade9\u003c/code\u003e\u003c/a\u003e fix(http): correctly cache blob responses in transfer cache (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/platform-browser/issues/67002\"\u003e#67002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/11767cabe48606a1f575d50b8af79b8bbb35a852\"\u003e\u003ccode\u003e11767ca\u003c/code\u003e\u003c/a\u003e build: update Jasmine to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/85122cb12d30141aa3abb997c4b3ee31713ec07b\"\u003e\u003ccode\u003e85122cb\u003c/code\u003e\u003c/a\u003e docs: update \u003ccode\u003ebootstrapApplication\u003c/code\u003e docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/f4469ad583a97c39843309270095c55f0a758692\"\u003e\u003ccode\u003ef4469ad\u003c/code\u003e\u003c/a\u003e refactor(core): update error message links to versioned docs (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/platform-browser/issues/66374\"\u003e#66374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/99ad18a4ee82ecc5524106d1d403ccfa9bae2304\"\u003e\u003ccode\u003e99ad18a\u003c/code\u003e\u003c/a\u003e feat(core): Add stability debugging utility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/6270bba056cfaadb3fe0b2bf3b17036bdc28b90e\"\u003e\u003ccode\u003e6270bba\u003c/code\u003e\u003c/a\u003e ci: reformat files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/2ccdf50fba9536d931988098f6d4f5ebb52588f9\"\u003e\u003ccode\u003e2ccdf50\u003c/code\u003e\u003c/a\u003e refactor(platform-browser): remove unused \u003ccode\u003eplatformIsServer\u003c/code\u003e  flag from renderer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4f584cf42235c94bb8389fa55bc634e23d7b010\"\u003e\u003ccode\u003eb4f584c\u003c/code\u003e\u003c/a\u003e fix(core): return \u003ccode\u003eStaticProvider\u003c/code\u003e for \u003ccode\u003eprovidePlatformInitializer\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/96b79fc393855777c69e817a5bddbc295af4806b\"\u003e\u003ccode\u003e96b79fc\u003c/code\u003e\u003c/a\u003e refactor(core): correct all \u003ccode\u003etypeof ngDevMode\u003c/code\u003e comparison patterns introduced...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/platform-browser\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/platform-browser-dynamic` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/platform-browser-dynamic\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensur...\n\n_Description has been truncated_","html_url":"https://github.com/MynorXico/racephotos/pull/21","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MynorXico%2Fracephotos/issues/21","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/21/packages"},{"uuid":"4161895590","node_id":"PR_kwDORtMf787OUhpp","number":15,"state":"open","title":"chore(deps): Bump the angular group in /frontend/angular with 14 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-28T22:55:43.000Z","updated_at":"2026-03-28T22:55:44.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"angular","update_count":14,"packages":[{"name":"@angular/common","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/core","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/forms","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser-dynamic","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/router","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular-eslint/builder","old_version":"19.8.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin","old_version":"19.8.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin-template","old_version":"19.8.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/schematics","old_version":"19.8.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/template-parser","old_version":"19.8.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular/cli","old_version":"19.2.23","new_version":"21.2.5","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/compiler-cli","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"}],"path":"/frontend/angular","ecosystem":"npm"},"body":"Bumps the angular group in /frontend/angular with 14 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `19.2.20` | `21.2.6` |\n| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `19.2.20` | `21.2.6` |\n| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `19.2.20` | `21.2.6` |\n| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `19.2.20` | `21.2.6` |\n| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `19.2.20` | `21.2.6` |\n| [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `19.2.20` | `21.2.6` |\n| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `19.2.20` | `21.2.6` |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `19.8.1` | `21.3.1` |\n| [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) | `19.8.1` | `21.3.1` |\n| [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template) | `19.8.1` | `21.3.1` |\n| [@angular-eslint/schematics](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics) | `19.8.1` | `21.3.1` |\n| [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `19.8.1` | `21.3.1` |\n| [@angular/cli](https://github.com/angular/angular-cli) | `19.2.23` | `21.2.5` |\n| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `19.2.20` | `21.2.6` |\n\nUpdates `@angular/common` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.4\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003cimg src=\"https://img.shields.io/badge/ed2d324f9c-fix-green\" alt=\"fix - ed2d324f9c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow translations of iframe src\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003ccode\u003eb4ab6ba\u003c/code\u003e\u003c/a\u003e fix(common): avoid redundant image fetch on destroy with auto sizes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/adda6c5c106815c727c1b820634614a045b42e9a\"\u003e\u003ccode\u003eadda6c5\u003c/code\u003e\u003c/a\u003e build: update \u003ccode\u003easpect_rules_js\u003c/code\u003e to \u003ccode\u003e3.0.2\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/93c6dc6395d681dacd1dbbc46b95773038b6c32f\"\u003e\u003ccode\u003e93c6dc6\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;refactor(http): Improves base64 encoding/decoding with feature detect...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/76431ed3e3bd8bf90ac2fb481152a33587187037\"\u003e\u003ccode\u003e76431ed\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix(http): correctly cache blob responses in transfer cache (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67002\"\u003e#67002\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/277ade97ac2a3a7f2a5b513acaa93e7663cdc55f\"\u003e\u003ccode\u003e277ade9\u003c/code\u003e\u003c/a\u003e fix(http): correctly cache blob responses in transfer cache (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67002\"\u003e#67002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/aeb9b819d2cda782de85338dc9a5457c11e51bfe\"\u003e\u003ccode\u003eaeb9b81\u003c/code\u003e\u003c/a\u003e refactor(http): Improves base64 encoding/decoding with feature detection (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67\"\u003e#67\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/ecf0bb466875d17e0823f2d793491c6f354d6c34\"\u003e\u003ccode\u003eecf0bb4\u003c/code\u003e\u003c/a\u003e test(http): refactors HTTP client tests to use TestBed and providers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/e2e9a9a531c9e9a69701e549f28354cc5d5edd77\"\u003e\u003ccode\u003ee2e9a9a\u003c/code\u003e\u003c/a\u003e fix(core): adds transfer cache to httpResource to fix hydration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/70e4c7fbabb45277cf76ee138c0be275beec7919\"\u003e\u003ccode\u003e70e4c7f\u003c/code\u003e\u003c/a\u003e refactor(common): log a warning when a KeyValuePipe receives a signal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/2eeeabb7606900ad4fe8e3370d73f6add985f35d\"\u003e\u003ccode\u003e2eeeabb\u003c/code\u003e\u003c/a\u003e fix(common): fix LCP image detection with duplicate URLs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/common\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/compiler` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.4\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003cimg src=\"https://img.shields.io/badge/ed2d324f9c-fix-green\" alt=\"fix - ed2d324f9c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow translations of iframe src\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003ccode\u003e880a57d\u003c/code\u003e\u003c/a\u003e fix(compiler): prevent shimCssText from adding extra blank lines per CSS comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003ccode\u003e23ea431\u003c/code\u003e\u003c/a\u003e fix(compiler): parse named HTML entities containing digits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003ccode\u003e334ae10\u003c/code\u003e\u003c/a\u003e fix(compiler): ensure generated code compiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003ccode\u003eed2d324\u003c/code\u003e\u003c/a\u003e fix(compiler): disallow translations of iframe src\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/1df1697c6e3a6b1d302f7692b495146943faa12f\"\u003e\u003ccode\u003e1df1697\u003c/code\u003e\u003c/a\u003e fix(compiler): prevent mutation of children array in RecursiveVisitor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/95b3f37d4a7d9a38f616d56df746dfcda3c2139b\"\u003e\u003ccode\u003e95b3f37\u003c/code\u003e\u003c/a\u003e feat(compiler): Exhaustive checks for switch blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/9c5658adb1146b24ebf31fef534c4bbae1ced548\"\u003e\u003ccode\u003e9c5658a\u003c/code\u003e\u003c/a\u003e refactor(compiler): clean up pipeline compatibility distinction\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/6e0d783e5b5a256c0aa2fb1d3e008677c0603382\"\u003e\u003ccode\u003e6e0d783\u003c/code\u003e\u003c/a\u003e refactor(compiler): Add info about unclosed element.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/06d94ac0caacce20d5afbdb1e940911bdc500d78\"\u003e\u003ccode\u003e06d94ac\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;refactor(compiler): Add info about unclosed element.\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/097208454bb0d5ebaad701a991125d2a33d1f79b\"\u003e\u003ccode\u003e0972084\u003c/code\u003e\u003c/a\u003e refactor(compiler): Add info about unclosed element.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/compiler\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/core` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.4\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003cimg src=\"https://img.shields.io/badge/ed2d324f9c-fix-green\" alt=\"fix - ed2d324f9c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow translations of iframe src\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1579163b7464edc69f7fa0548f53d978b007021\"\u003e\u003ccode\u003ec157916\u003c/code\u003e\u003c/a\u003e build: consolidate domino bundling in platform-server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/9be5e2c2113db3fe5d799663b6539d34d1e18f47\"\u003e\u003ccode\u003e9be5e2c\u003c/code\u003e\u003c/a\u003e docs: fix typo in Input decorator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/a21be36e15a6d9cf21722f9f6a31dad9380037e9\"\u003e\u003ccode\u003ea21be36\u003c/code\u003e\u003c/a\u003e refactor: prepare for required \u003ccode\u003echangeDetection\u003c/code\u003e prop on G3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/831746eff1e7442bfc96bfa739f54091b26a7997\"\u003e\u003ccode\u003e831746e\u003c/code\u003e\u003c/a\u003e docs: Add callout about the Component interface.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003ccode\u003ead0156e\u003c/code\u003e\u003c/a\u003e fix(core): fixes a regression with animate.leave and reordering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003ccode\u003e73d6b01\u003c/code\u003e\u003c/a\u003e fix(migrations): inject migration not work in multi-project workspace with op...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/3838554503dfe0585e4df93547741fbc34a150d1\"\u003e\u003ccode\u003e3838554\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies to v21.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/851ef77318541580d186d7f1c02061cc615450da\"\u003e\u003ccode\u003e851ef77\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;refactor(core): Ensure determineLongestAnimation is run synchronously...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003ccode\u003e076d41c\u003c/code\u003e\u003c/a\u003e fix(migrations): prevent trailing comma syntax errors after removing NgStyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/a8f80c1f995dd7bab6ee1d42f033ebc3d101e9bd\"\u003e\u003ccode\u003ea8f80c1\u003c/code\u003e\u003c/a\u003e refactor(core): declare explicit reactive node prototypes types\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/core\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/forms` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.4\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003cimg src=\"https://img.shields.io/badge/ed2d324f9c-fix-green\" alt=\"fix - ed2d324f9c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow translations of iframe src\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b658accf1f99a240de19090350bd6d3a9620735a\"\u003e\u003ccode\u003eb658acc\u003c/code\u003e\u003c/a\u003e docs: fix js doc of signal forms ignoreValidators option.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/7907e982ee90778e596d3e849f0a31c6c26db235\"\u003e\u003ccode\u003e7907e98\u003c/code\u003e\u003c/a\u003e test: remove duplicate tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/4a9b715b3abd3e51184937f764376883d6bb98a1\"\u003e\u003ccode\u003e4a9b715\u003c/code\u003e\u003c/a\u003e test(forms): cover transformedValue without FormField context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/670d1660c40504e3f55e094c3ebbcccad14163f3\"\u003e\u003ccode\u003e670d166\u003c/code\u003e\u003c/a\u003e feat(forms): add 'blur' option to debounce rule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/23cb9a4291dc7ee0db3a78416b5ca2b51cfad1ac\"\u003e\u003ccode\u003e23cb9a4\u003c/code\u003e\u003c/a\u003e refactor(forms): address feedback\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/0a863ba03f5eb83f383f647b7015bc3640072a1d\"\u003e\u003ccode\u003e0a863ba\u003c/code\u003e\u003c/a\u003e refactor(forms): hide adapter in public options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/fe7b26e403febfe2662828945d41bc4567cbcc8b\"\u003e\u003ccode\u003efe7b26e\u003c/code\u003e\u003c/a\u003e docs(forms): transformedValue parse error wiring\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/bdfb60f3e33065e047183dc1890c36e527e2b304\"\u003e\u003ccode\u003ebdfb60f\u003c/code\u003e\u003c/a\u003e fix(forms): use consistent error format returned from parse\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/631f60d1f9be72cb68330308a6ff18cc195babb8\"\u003e\u003ccode\u003e631f60d\u003c/code\u003e\u003c/a\u003e fix(forms): preserve parse errors when parse returns value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/567f292e8e0f9d2b5ddebadfa1c6d6dd6c456f39\"\u003e\u003ccode\u003e567f292\u003c/code\u003e\u003c/a\u003e fix(forms): support custom controls as host directives\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/forms\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/platform-browser` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/platform-browser\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.4\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003cimg src=\"https://img.shields.io/badge/ed2d324f9c-fix-green\" alt=\"fix - ed2d324f9c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow translations of iframe src\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/platform-browser\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/76431ed3e3bd8bf90ac2fb481152a33587187037\"\u003e\u003ccode\u003e76431ed\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix(http): correctly cache blob responses in transfer cache (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/platform-browser/issues/67002\"\u003e#67002\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/277ade97ac2a3a7f2a5b513acaa93e7663cdc55f\"\u003e\u003ccode\u003e277ade9\u003c/code\u003e\u003c/a\u003e fix(http): correctly cache blob responses in transfer cache (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/platform-browser/issues/67002\"\u003e#67002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/11767cabe48606a1f575d50b8af79b8bbb35a852\"\u003e\u003ccode\u003e11767ca\u003c/code\u003e\u003c/a\u003e build: update Jasmine to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/85122cb12d30141aa3abb997c4b3ee31713ec07b\"\u003e\u003ccode\u003e85122cb\u003c/code\u003e\u003c/a\u003e docs: update \u003ccode\u003ebootstrapApplication\u003c/code\u003e docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/f4469ad583a97c39843309270095c55f0a758692\"\u003e\u003ccode\u003ef4469ad\u003c/code\u003e\u003c/a\u003e refactor(core): update error message links to versioned docs (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/platform-browser/issues/66374\"\u003e#66374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/99ad18a4ee82ecc5524106d1d403ccfa9bae2304\"\u003e\u003ccode\u003e99ad18a\u003c/code\u003e\u003c/a\u003e feat(core): Add stability debugging utility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/6270bba056cfaadb3fe0b2bf3b17036bdc28b90e\"\u003e\u003ccode\u003e6270bba\u003c/code\u003e\u003c/a\u003e ci: reformat files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/2ccdf50fba9536d931988098f6d4f5ebb52588f9\"\u003e\u003ccode\u003e2ccdf50\u003c/code\u003e\u003c/a\u003e refactor(platform-browser): remove unused \u003ccode\u003eplatformIsServer\u003c/code\u003e  flag from renderer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4f584cf42235c94bb8389fa55bc634e23d7b010\"\u003e\u003ccode\u003eb4f584c\u003c/code\u003e\u003c/a\u003e fix(core): return \u003ccode\u003eStaticProvider\u003c/code\u003e for \u003ccode\u003eprovidePlatformInitializer\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/96b79fc393855777c69e817a5bddbc295af4806b\"\u003e\u003ccode\u003e96b79fc\u003c/code\u003e\u003c/a\u003e refactor(core): correct all \u003ccode\u003etypeof ngDevMode\u003c/code\u003e comparison patterns introduced...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/platform-browser\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/platform-browser-dynamic` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/platform-browser-dynamic\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/the...\n\n_Description has been truncated_","html_url":"https://github.com/MynorXico/racephotos/pull/15","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MynorXico%2Fracephotos/issues/15","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/15/packages"}],"issue_packages":[{"old_version":"21.3.1","new_version":"21.4.0","update_type":"minor","path":"/app-components","pr_created_at":"2026-05-28T09:45:30.000Z","version_change":"21.3.1 → 21.4.0","issue":{"uuid":"4539401124","node_id":"PR_kwDOInCflM7gLeDA","number":778,"state":"open","title":"Bump the all-dependencies group in /app-components with 17 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-28T09:45:30.000Z","updated_at":"2026-05-31T09:01:12.930Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-dependencies","update_count":17,"packages":[{"name":"@angular/animations","old_version":"21.2.11","new_version":"21.2.14","repository_url":"https://github.com/angular/angular"},{"name":"@angular/cdk","old_version":"21.2.9","new_version":"21.2.13","repository_url":"https://github.com/angular/components"},{"name":"@angular/common","old_version":"21.2.11","new_version":"21.2.14","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler","old_version":"21.2.11","new_version":"21.2.14","repository_url":"https://github.com/angular/angular"},{"name":"@angular/core","old_version":"21.2.11","new_version":"21.2.14","repository_url":"https://github.com/angular/angular"},{"name":"@angular/elements","old_version":"21.2.11","new_version":"21.2.14","repository_url":"https://github.com/angular/angular"},{"name":"@angular/forms","old_version":"21.2.11","new_version":"21.2.14","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser","old_version":"21.2.11","new_version":"21.2.14","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser-dynamic","old_version":"21.2.11","new_version":"21.2.14","repository_url":"https://github.com/angular/angular"},{"name":"@angular/router","old_version":"21.2.11","new_version":"21.2.14","repository_url":"https://github.com/angular/angular"},{"name":"@angular-eslint/builder","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin-template","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/schematics","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/template-parser","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@typescript-eslint/eslint-plugin","old_version":"8.59.2","new_version":"8.60.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"@typescript-eslint/parser","old_version":"8.59.2","new_version":"8.60.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"}],"path":"/app-components","ecosystem":"npm"},"body":"Bumps the all-dependencies group in /app-components with 17 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `21.2.11` | `21.2.14` |\n| [@angular/cdk](https://github.com/angular/components) | `21.2.9` | `21.2.13` |\n| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `21.2.11` | `21.2.14` |\n| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `21.2.11` | `21.2.14` |\n| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `21.2.11` | `21.2.14` |\n| [@angular/elements](https://github.com/angular/angular/tree/HEAD/packages/elements) | `21.2.11` | `21.2.14` |\n| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `21.2.11` | `21.2.14` |\n| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `21.2.11` | `21.2.14` |\n| [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `21.2.11` | `21.2.14` |\n| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `21.2.11` | `21.2.14` |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `21.3.1` | `21.4.0` |\n| [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) | `21.3.1` | `21.4.0` |\n| [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template) | `21.3.1` | `21.4.0` |\n| [@angular-eslint/schematics](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics) | `21.3.1` | `21.4.0` |\n| [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `21.3.1` | `21.4.0` |\n| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.59.2` | `8.60.0` |\n| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.59.2` | `8.60.0` |\n\nUpdates `@angular/animations` from 21.2.11 to 21.2.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/animations's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.14\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e\u003cimg src=\"https://img.shields.io/badge/68282dff9f-fix-green\" alt=\"fix - 68282dff9f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003estrip namespaced SVG script elements during template compilation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c0f52272ed337d4776bd4178cbbdc7f32037500f\"\u003e\u003cimg src=\"https://img.shields.io/badge/c0f52272ed-fix-green\" alt=\"fix - c0f52272ed\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edo not insert todo when migrating void \u003ca href=\"https://github.com/Output\"\u003e\u003ccode\u003e@​Output\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/938a7f3eddda97a39edb9edcc8b4dd970858b3a2\"\u003e\u003cimg src=\"https://img.shields.io/badge/938a7f3edd-fix-green\" alt=\"fix - 938a7f3edd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003emakes resource URL sanitizer lookup case-insensitive\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0fb272419407a64a0a47096b03a911f4e7e83d79\"\u003e\u003cimg src=\"https://img.shields.io/badge/0fb2724194-fix-green\" alt=\"fix - 0fb2724194\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ereject script element as a dynamic component host\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/49113ac0eff852d987b5acb28a9bbda0242842cd\"\u003e\u003cimg src=\"https://img.shields.io/badge/49113ac0ef-fix-green\" alt=\"fix - 49113ac0ef\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evisit ICU expressions in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/099bf577ee8f0bab60593a8fd2a1de7d298e3cd6\"\u003e\u003cimg src=\"https://img.shields.io/badge/099bf577ee-fix-green\" alt=\"fix - 099bf577ee\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eskip scroll-to-top on initial navigation when hydrating\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.12\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fe13bb669d2bfab4713623d17b41c430aa0a61d8\"\u003e\u003cimg src=\"https://img.shields.io/badge/fe13bb669d-fix-green\" alt=\"fix - fe13bb669d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eallow explicit read generic with signal input transforms\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3430251fef93f6aec1fa9c7867e85df23f67c9a0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3430251fef-fix-green\" alt=\"fix - 3430251fef\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ei18n flags leaking on errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1aeebbe3048b5aa612dd0a5448de9883ed51e7e8\"\u003e\u003cimg src=\"https://img.shields.io/badge/1aeebbe304-fix-green\" alt=\"fix - 1aeebbe304\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erespect ngSkipHydration on components with projectable nodes in LContainers\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9e38ed7d5773a9193ba07afdba3f7a9f2fe02d18\"\u003e\u003cimg src=\"https://img.shields.io/badge/9e38ed7d57-fix-green\" alt=\"fix - 9e38ed7d57\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003esanitizer typings\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a05a9a71a5ab75042ec5560c01526de6e61e062\"\u003e\u003cimg src=\"https://img.shields.io/badge/7a05a9a71a-fix-green\" alt=\"fix - 7a05a9a71a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c37f6ca42f263353cb9563fa90d7b31d3c7837ca\"\u003e\u003cimg src=\"https://img.shields.io/badge/c37f6ca42f-fix-green\" alt=\"fix - c37f6ca42f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evisit ng-let expression value in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/03ad53863bf3c368f0f02a4322d4141e8f70f674\"\u003e\u003cimg src=\"https://img.shields.io/badge/03ad53863b-fix-green\" alt=\"fix - 03ad53863b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprohibit concurrent submits in signal forms\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/animations's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.14 (2026-05-20)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e68282dff9f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estrip namespaced SVG script elements during template compilation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c0f52272ed337d4776bd4178cbbdc7f32037500f\"\u003ec0f52272ed\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edo not insert todo when migrating void \u003ca href=\"https://github.com/Output\"\u003e\u003ccode\u003e@​Output\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/938a7f3eddda97a39edb9edcc8b4dd970858b3a2\"\u003e938a7f3edd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003emakes resource URL sanitizer lookup case-insensitive\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0fb272419407a64a0a47096b03a911f4e7e83d79\"\u003e0fb2724194\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ereject script element as a dynamic component host\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/49113ac0eff852d987b5acb28a9bbda0242842cd\"\u003e49113ac0ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evisit ICU expressions in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/099bf577ee8f0bab60593a8fd2a1de7d298e3cd6\"\u003e099bf577ee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eskip scroll-to-top on initial navigation when hydrating\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-rc.0 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c7aef8ec5dd12b5b1d4c703a61bd1dd43f998e18\"\u003ec7aef8ec5d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eenforce parentheses containing arguments for :host-context\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8a1533c9ad7c306e03d7c50676f87b56bade5bf6\"\u003e8a1533c9ad\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epreserve leading commas in animation definitions\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/194f723f6620ea3cdf490b762ecbef8df6bb2c8a\"\u003e194f723f66\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove dedicated support for legacy shadow DOM selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/4c25a42e988e7a59d4d4dc3121cd77f7b344c048\"\u003e4c25a42e98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove deprecated shadow CSS encapsulation polyfills\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7dc1017e517c077a6aa8fd749392a2af1277e1b7\"\u003e7dc1017e51\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003esimplify handling of colon host with a selector list\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ccb7d427e4f07506c14c50ce0cbe87c57930ebb5\"\u003eccb7d427e4\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etype check invalid for loops\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/119a19e604a500f295867fc2cf2e6dbd43a9d807\"\u003e119a19e604\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.14/packages/animations\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/cdk` from 21.2.9 to 21.2.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/releases\"\u003e@​angular/cdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003cp\u003eNo user facing changes in this release\u003c/p\u003e\n\u003ch2\u003e21.2.12\u003c/h2\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/da87be76464d76ec11ae922abd5f4c72c5b4ea3e\"\u003e\u003cimg src=\"https://img.shields.io/badge/da87be7646-fix-green\" alt=\"fix - da87be7646\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003edatepicker:\u003c/strong\u003e ensure dates don't overflow on a small screen (\u003ca href=\"https://redirect.github.com/angular/components/issues/33281\"\u003e#33281\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.11\u003c/h2\u003e\n\u003cp\u003eNo user facing changes in this release\u003c/p\u003e\n\u003ch2\u003e21.2.10\u003c/h2\u003e\n\u003ch3\u003earia\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/48973661ec50649918e3dcafc096d340219135da\"\u003e\u003cimg src=\"https://img.shields.io/badge/48973661e-fix-green\" alt=\"fix - 48973661e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003emenu:\u003c/strong\u003e do not set default aria-label (\u003ca href=\"https://redirect.github.com/angular/components/issues/33202\"\u003e#33202\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/blob/main/CHANGELOG.md\"\u003e@​angular/cdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.13 \u0026quot;21-2-13\u0026quot; (2026-05-27)\u003c/h1\u003e\n\u003cp\u003eNo user facing changes in this release\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-rc.1 \u0026quot;metal-monkey\u0026quot; (2026-05-20)\u003c/h1\u003e\n\u003ch3\u003earia\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/ce1d9a7286b66e2c9511183586fceabf2a925c02\"\u003ece1d9a7286\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003emenu:\u003c/strong\u003e allow menu item role override (\u003ca href=\"https://redirect.github.com/angular/components/pull/33264\"\u003e#33264\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/196b7064db336830ee9c43244c00631935dd2c55\"\u003e196b7064db\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003emenu:\u003c/strong\u003e defer menu item focus in case menus in cdk overlay (\u003ca href=\"https://redirect.github.com/angular/components/pull/33258\"\u003e#33258\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/6443b79f9a629c67766675ebd740722eb65b2926\"\u003e6443b79f9a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003emenu:\u003c/strong\u003e unable to set softDisabled (\u003ca href=\"https://redirect.github.com/angular/components/pull/33265\"\u003e#33265\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/4c298970ed67abfa7b9980e219bbbafe3c71ddc5\"\u003e4c298970ed\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003escrolling:\u003c/strong\u003e make it easier to provide custom scrollable (\u003ca href=\"https://redirect.github.com/angular/components/pull/33269\"\u003e#33269\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/f2f62675e19020fb6443f1477b4b1d93015a5927\"\u003ef2f62675e1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003edatepicker:\u003c/strong\u003e ensure dates don't overflow on a small screen (\u003ca href=\"https://redirect.github.com/angular/components/pull/33281\"\u003e#33281\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/f1a435508ada291b580e20e628464f552288690d\"\u003ef1a435508a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esidenav:\u003c/strong\u003e handle mixed sidenav and drawer (\u003ca href=\"https://redirect.github.com/angular/components/pull/33274\"\u003e#33274\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/a4d92c5fcb7d163ec8dd180815175bbaa0a38491\"\u003ea4d92c5fcb\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esidenav:\u003c/strong\u003e more robust reset logic for inert attribute (\u003ca href=\"https://redirect.github.com/angular/components/pull/33257\"\u003e#33257\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e21.2.12 \u0026quot;plastic-moose\u0026quot; (2026-05-20)\u003c/h1\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/da87be76464d76ec11ae922abd5f4c72c5b4ea3e\"\u003eda87be7646\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003edatepicker:\u003c/strong\u003e ensure dates don't overflow on a small screen (\u003ca href=\"https://redirect.github.com/angular/components/pull/33281\"\u003e#33281\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-rc.0 \u0026quot;crystal lotion\u0026quot; (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/c3161985279bf49f9aae55b732fdd3b2872e1f7e\"\u003ec316198527\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esidenav:\u003c/strong\u003e mark content as inert while open\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/c2f1c5b035795079b155b9e60a290abe4d4c9537\"\u003ec2f1c5b035\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esidenav:\u003c/strong\u003e query not resolving\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emultiple\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/84f2afd24933c8742662ee6d12a6f3f98f5dea9e\"\u003e84f2afd249\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove developer preview tag from aria (\u003ca href=\"https://redirect.github.com/angular/components/pull/33232\"\u003e#33232\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/7828452e964b62f058f83f0d97cf9daedf875b57\"\u003e\u003ccode\u003e7828452\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.13 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/e43b7aacd86fb00e34e894d9093a8255e4201ec8\"\u003e\u003ccode\u003ee43b7aa\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.12 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/da87be76464d76ec11ae922abd5f4c72c5b4ea3e\"\u003e\u003ccode\u003eda87be7\u003c/code\u003e\u003c/a\u003e fix(material/datepicker): ensure dates don't overflow on a small screen (\u003ca href=\"https://redirect.github.com/angular/components/issues/33281\"\u003e#33281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/e101874701ed790345f2af292cee81fff573a46e\"\u003e\u003ccode\u003ee101874\u003c/code\u003e\u003c/a\u003e docs(material/tooltip): fix tooltip-position-at-origin example overflow (\u003ca href=\"https://redirect.github.com/angular/components/issues/33218\"\u003e#33218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/1238d1573e706cbf0a2cabcc97e59d28a9499ecb\"\u003e\u003ccode\u003e1238d15\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.11 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/583da8a564dcb667cb8928e79d286eadee0a5013\"\u003e\u003ccode\u003e583da8a\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.10 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/babfbb7430547d5f4558174aec1a07ce6c67a26f\"\u003e\u003ccode\u003ebabfbb7\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies (\u003ca href=\"https://redirect.github.com/angular/components/issues/33205\"\u003e#33205\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/e08fdf2a6a120078b512043bf5804bc3c7f9716a\"\u003e\u003ccode\u003ee08fdf2\u003c/code\u003e\u003c/a\u003e build: fix failing test (\u003ca href=\"https://redirect.github.com/angular/components/issues/33212\"\u003e#33212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/09e89fa188f157c0892019a461459cd9a252a673\"\u003e\u003ccode\u003e09e89fa\u003c/code\u003e\u003c/a\u003e build: lock file maintenance (\u003ca href=\"https://redirect.github.com/angular/components/issues/33201\"\u003e#33201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/48973661ec50649918e3dcafc096d340219135da\"\u003e\u003ccode\u003e4897366\u003c/code\u003e\u003c/a\u003e fix(aria/menu): do not set default aria-label (\u003ca href=\"https://redirect.github.com/angular/components/issues/33202\"\u003e#33202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/components/compare/v21.2.9...v21.2.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/common` from 21.2.11 to 21.2.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/common's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.14\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e\u003cimg src=\"https://img.shields.io/badge/68282dff9f-fix-green\" alt=\"fix - 68282dff9f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003estrip namespaced SVG script elements during template compilation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c0f52272ed337d4776bd4178cbbdc7f32037500f\"\u003e\u003cimg src=\"https://img.shields.io/badge/c0f52272ed-fix-green\" alt=\"fix - c0f52272ed\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edo not insert todo when migrating void \u003ca href=\"https://github.com/Output\"\u003e\u003ccode\u003e@​Output\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/938a7f3eddda97a39edb9edcc8b4dd970858b3a2\"\u003e\u003cimg src=\"https://img.shields.io/badge/938a7f3edd-fix-green\" alt=\"fix - 938a7f3edd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003emakes resource URL sanitizer lookup case-insensitive\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0fb272419407a64a0a47096b03a911f4e7e83d79\"\u003e\u003cimg src=\"https://img.shields.io/badge/0fb2724194-fix-green\" alt=\"fix - 0fb2724194\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ereject script element as a dynamic component host\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/49113ac0eff852d987b5acb28a9bbda0242842cd\"\u003e\u003cimg src=\"https://img.shields.io/badge/49113ac0ef-fix-green\" alt=\"fix - 49113ac0ef\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evisit ICU expressions in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/099bf577ee8f0bab60593a8fd2a1de7d298e3cd6\"\u003e\u003cimg src=\"https://img.shields.io/badge/099bf577ee-fix-green\" alt=\"fix - 099bf577ee\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eskip scroll-to-top on initial navigation when hydrating\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.12\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fe13bb669d2bfab4713623d17b41c430aa0a61d8\"\u003e\u003cimg src=\"https://img.shields.io/badge/fe13bb669d-fix-green\" alt=\"fix - fe13bb669d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eallow explicit read generic with signal input transforms\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3430251fef93f6aec1fa9c7867e85df23f67c9a0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3430251fef-fix-green\" alt=\"fix - 3430251fef\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ei18n flags leaking on errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1aeebbe3048b5aa612dd0a5448de9883ed51e7e8\"\u003e\u003cimg src=\"https://img.shields.io/badge/1aeebbe304-fix-green\" alt=\"fix - 1aeebbe304\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erespect ngSkipHydration on components with projectable nodes in LContainers\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9e38ed7d5773a9193ba07afdba3f7a9f2fe02d18\"\u003e\u003cimg src=\"https://img.shields.io/badge/9e38ed7d57-fix-green\" alt=\"fix - 9e38ed7d57\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003esanitizer typings\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a05a9a71a5ab75042ec5560c01526de6e61e062\"\u003e\u003cimg src=\"https://img.shields.io/badge/7a05a9a71a-fix-green\" alt=\"fix - 7a05a9a71a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c37f6ca42f263353cb9563fa90d7b31d3c7837ca\"\u003e\u003cimg src=\"https://img.shields.io/badge/c37f6ca42f-fix-green\" alt=\"fix - c37f6ca42f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evisit ng-let expression value in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/03ad53863bf3c368f0f02a4322d4141e8f70f674\"\u003e\u003cimg src=\"https://img.shields.io/badge/03ad53863b-fix-green\" alt=\"fix - 03ad53863b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprohibit concurrent submits in signal forms\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/common's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.14 (2026-05-20)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e68282dff9f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estrip namespaced SVG script elements during template compilation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c0f52272ed337d4776bd4178cbbdc7f32037500f\"\u003ec0f52272ed\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edo not insert todo when migrating void \u003ca href=\"https://github.com/Output\"\u003e\u003ccode\u003e@​Output\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/938a7f3eddda97a39edb9edcc8b4dd970858b3a2\"\u003e938a7f3edd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003emakes resource URL sanitizer lookup case-insensitive\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0fb272419407a64a0a47096b03a911f4e7e83d79\"\u003e0fb2724194\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ereject script element as a dynamic component host\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/49113ac0eff852d987b5acb28a9bbda0242842cd\"\u003e49113ac0ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evisit ICU expressions in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/099bf577ee8f0bab60593a8fd2a1de7d298e3cd6\"\u003e099bf577ee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eskip scroll-to-top on initial navigation when hydrating\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-rc.0 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c7aef8ec5dd12b5b1d4c703a61bd1dd43f998e18\"\u003ec7aef8ec5d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eenforce parentheses containing arguments for :host-context\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8a1533c9ad7c306e03d7c50676f87b56bade5bf6\"\u003e8a1533c9ad\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epreserve leading commas in animation definitions\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/194f723f6620ea3cdf490b762ecbef8df6bb2c8a\"\u003e194f723f66\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove dedicated support for legacy shadow DOM selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/4c25a42e988e7a59d4d4dc3121cd77f7b344c048\"\u003e4c25a42e98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove deprecated shadow CSS encapsulation polyfills\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7dc1017e517c077a6aa8fd749392a2af1277e1b7\"\u003e7dc1017e51\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003esimplify handling of colon host with a selector list\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ccb7d427e4f07506c14c50ce0cbe87c57930ebb5\"\u003eccb7d427e4\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etype check invalid for loops\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/119a19e604a500f295867fc2cf2e6dbd43a9d807\"\u003e119a19e604\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/30cf85f71c52683016200ecf6d68b4418084ee6e\"\u003e\u003ccode\u003e30cf85f\u003c/code\u003e\u003c/a\u003e refactor(common): update deprecation message\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.14/packages/common\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/compiler` from 21.2.11 to 21.2.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/compiler's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.14\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e\u003cimg src=\"https://img.shields.io/badge/68282dff9f-fix-green\" alt=\"fix - 68282dff9f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003estrip namespaced SVG script elements during template compilation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c0f52272ed337d4776bd4178cbbdc7f32037500f\"\u003e\u003cimg src=\"https://img.shields.io/badge/c0f52272ed-fix-green\" alt=\"fix - c0f52272ed\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edo not insert todo when migrating void \u003ca href=\"https://github.com/Output\"\u003e\u003ccode\u003e@​Output\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/938a7f3eddda97a39edb9edcc8b4dd970858b3a2\"\u003e\u003cimg src=\"https://img.shields.io/badge/938a7f3edd-fix-green\" alt=\"fix - 938a7f3edd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003emakes resource URL sanitizer lookup case-insensitive\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0fb272419407a64a0a47096b03a911f4e7e83d79\"\u003e\u003cimg src=\"https://img.shields.io/badge/0fb2724194-fix-green\" alt=\"fix - 0fb2724194\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ereject script element as a dynamic component host\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/49113ac0eff852d987b5acb28a9bbda0242842cd\"\u003e\u003cimg src=\"https://img.shields.io/badge/49113ac0ef-fix-green\" alt=\"fix - 49113ac0ef\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evisit ICU expressions in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/099bf577ee8f0bab60593a8fd2a1de7d298e3cd6\"\u003e\u003cimg src=\"https://img.shields.io/badge/099bf577ee-fix-green\" alt=\"fix - 099bf577ee\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eskip scroll-to-top on initial navigation when hydrating\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.12\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fe13bb669d2bfab4713623d17b41c430aa0a61d8\"\u003e\u003cimg src=\"https://img.shields.io/badge/fe13bb669d-fix-green\" alt=\"fix - fe13bb669d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eallow explicit read generic with signal input transforms\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3430251fef93f6aec1fa9c7867e85df23f67c9a0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3430251fef-fix-green\" alt=\"fix - 3430251fef\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ei18n flags leaking on errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1aeebbe3048b5aa612dd0a5448de9883ed51e7e8\"\u003e\u003cimg src=\"https://img.shields.io/badge/1aeebbe304-fix-green\" alt=\"fix - 1aeebbe304\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erespect ngSkipHydration on components with projectable nodes in LContainers\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9e38ed7d5773a9193ba07afdba3f7a9f2fe02d18\"\u003e\u003cimg src=\"https://img.shields.io/badge/9e38ed7d57-fix-green\" alt=\"fix - 9e38ed7d57\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003esanitizer typings\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a05a9a71a5ab75042ec5560c01526de6e61e062\"\u003e\u003cimg src=\"https://img.shields.io/badge/7a05a9a71a-fix-green\" alt=\"fix - 7a05a9a71a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c37f6ca42f263353cb9563fa90d7b31d3c7837ca\"\u003e\u003cimg src=\"https://img.shields.io/badge/c37f6ca42f-fix-green\" alt=\"fix - c37f6ca42f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evisit ng-let expression value in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/03ad53863bf3c368f0f02a4322d4141e8f70f674\"\u003e\u003cimg src=\"https://img.shields.io/badge/03ad53863b-fix-green\" alt=\"fix - 03ad53863b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprohibit concurrent submits in signal forms\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/compiler's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.14 (2026-05-20)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e68282dff9f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estrip namespaced SVG script elements during template compilation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c0f52272ed337d4776bd4178cbbdc7f32037500f\"\u003ec0f52272ed\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edo not insert todo when migrating void \u003ca href=\"https://github.com/Output\"\u003e\u003ccode\u003e@​Output\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/938a7f3eddda97a39edb9edcc8b4dd970858b3a2\"\u003e938a7f3edd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003emakes resource URL sanitizer lookup case-insensitive\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0fb272419407a64a0a47096b03a911f4e7e83d79\"\u003e0fb2724194\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ereject script element as a dynamic component host\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/49113ac0eff852d987b5acb28a9bbda0242842cd\"\u003e49113ac0ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evisit ICU expressions in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/099bf577ee8f0bab60593a8fd2a1de7d298e3cd6\"\u003e099bf577ee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eskip scroll-to-top on initial navigation when hydrating\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-rc.0 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c7aef8ec5dd12b5b1d4c703a61bd1dd43f998e18\"\u003ec7aef8ec5d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eenforce parentheses containing arguments for :host-context\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8a1533c9ad7c306e03d7c50676f87b56bade5bf6\"\u003e8a1533c9ad\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epreserve leading commas in animation definitions\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/194f723f6620ea3cdf490b762ecbef8df6bb2c8a\"\u003e194f723f66\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove dedicated support for legacy shadow DOM selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/4c25a42e988e7a59d4d4dc3121cd77f7b344c048\"\u003e4c25a42e98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove deprecated shadow CSS encapsulation polyfills\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7dc1017e517c077a6aa8fd749392a2af1277e1b7\"\u003e7dc1017e51\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003esimplify handling of colon host with a selector list\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ccb7d427e4f07506c14c50ce0cbe87c57930ebb5\"\u003eccb7d427e4\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etype check invalid for loops\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/119a19e604a500f295867fc2cf2e6dbd43a9d807\"\u003e119a19e604\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e\u003ccode\u003e68282df\u003c/code\u003e\u003c/a\u003e fix(compiler): strip namespaced SVG script elements during template compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/6652ec0115b20a6f8721137769afac30cd70f9a6\"\u003e\u003ccode\u003e6652ec0\u003c/code\u003e\u003c/a\u003e refactor(core): align namespaced attribute validation and security schema con...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/baf92da96ed73a0f4748edf05d3c0702cab219da\"\u003e\u003ccode\u003ebaf92da\u003c/code\u003e\u003c/a\u003e test: remove invalid css that was causing issues with the postcss parser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003ccode\u003e1c6553e\u003c/code\u003e\u003c/a\u003e fix(core): disallow event attribute bindings in host bindings unconditionally\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.14/packages/compiler\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/core` from 21.2.11 to 21.2.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.14\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e\u003cimg src=\"https://img.shields.io/badge/68282dff9f-fix-green\" alt=\"fix - 68282dff9f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003estrip namespaced SVG script elements during template compilation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c0f52272ed337d4776bd4178cbbdc7f32037500f\"\u003e\u003cimg src=\"https://img.shields.io/badge/c0f52272ed-fix-green\" alt=\"fix - c0f52272ed\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edo not insert todo when migrating void \u003ca href=\"https://github.com/Output\"\u003e\u003ccode\u003e@​Output\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/938a7f3eddda97a39edb9edcc8b4dd970858b3a2\"\u003e\u003cimg src=\"https://img.shields.io/badge/938a7f3edd-fix-green\" alt=\"fix - 938a7f3edd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003emakes resource URL sanitizer lookup case-insensitive\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0fb272419407a64a0a47096b03a911f4e7e83d79\"\u003e\u003cimg src=\"https://img.shields.io/badge/0fb2724194-fix-green\" alt=\"fix - 0fb2724194\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ereject script element as a dynamic component host\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/49113ac0eff852d987b5acb28a9bbda0242842cd\"\u003e\u003cimg src=\"https://img.shields.io/badge/49113ac0ef-fix-green\" alt=\"fix - 49113ac0ef\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evisit ICU expressions in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/099bf577ee8f0bab60593a8fd2a1de7d298e3cd6\"\u003e\u003cimg src=\"https://img.shields.io/badge/099bf577ee-fix-green\" alt=\"fix - 099bf577ee\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eskip scroll-to-top on initial navigation when hydrating\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.12\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fe13bb669d2bfab4713623d17b41c430aa0a61d8\"\u003e\u003cimg src=\"https://img.shields.io/badge/fe13bb669d-fix-green\" alt=\"fix - fe13bb669d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eallow explicit read generic with signal input transforms\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3430251fef93f6aec1fa9c7867e85df23f67c9a0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3430251fef-fix-green\" alt=\"fix - 3430251fef\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ei18n flags leaking on errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1aeebbe3048b5aa612dd0a5448de9883ed51e7e8\"\u003e\u003cimg src=\"https://img.shields.io/badge/1aeebbe304-fix-green\" alt=\"fix - 1aeebbe304\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erespect ngSkipHydration on components with projectable nodes in LContainers\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9e38ed7d5773a9193ba07afdba3f7a9f2fe02d18\"\u003e\u003cimg src=\"https://img.shields.io/badge/9e38ed7d57-fix-green\" alt=\"fix - 9e38ed7d57\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003esanitizer typings\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a05a9a71a5ab75042ec5560c01526de6e61e062\"\u003e\u003cimg src=\"https://img.shields.io/badge/7a05a9a71a-fix-green\" alt=\"fix - 7a05a9a71a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c37f6ca42f263353cb9563fa90d7b31d3c7837ca\"\u003e\u003cimg src=\"https://img.shields.io/badge/c37f6ca42f-fix-green\" alt=\"fix - c37f6ca42f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evisit ng-let expression value in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/03ad53863bf3c368f0f02a4322d4141e8f70f674\"\u003e\u003cimg src=\"https://img.shields.io/badge/03ad53863b-fix-green\" alt=\"fix - 03ad53863b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprohibit concurrent submits in signal forms\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.14 (2026-05-20)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e68282dff9f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estrip namespaced SVG script elements during template compilation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c0f52272ed337d4776bd4178cbbdc7f32037500f\"\u003ec0f52272ed\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edo not insert todo when migrating void \u003ca href=\"https://github.com/Output\"\u003e\u003ccode\u003e@​Output\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/938a7f3eddda97a39edb9edcc8b4dd970858b3a2\"\u003e938a7f3edd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003emakes resource URL sanitizer lookup case-insensitive\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0fb272419407a64a0a47096b03a911f4e7e83d79\"\u003e0fb2724194\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ereject script element as a dynamic component host\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/49113ac0eff852d987b5acb28a9bbda0242842cd\"\u003e49113ac0ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evisit ICU expressions in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/099bf577ee8f0bab60593a8fd2a1de7d298e3cd6\"\u003e099bf577ee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eskip scroll-to-top on initial navigation when hydrating\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-rc.0 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c7aef8ec5dd12b5b1d4c703a61bd1dd43f998e18\"\u003ec7aef8ec5d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eenforce parentheses containing arguments for :host-context\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8a1533c9ad7c306e03d7c50676f87b56bade5bf6\"\u003e8a1533c9ad\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epreserve leading commas in animation definitions\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/194f723f6620ea3cdf490b762ecbef8df6bb2c8a\"\u003e194f723f66\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove dedicated support for legacy shadow DOM selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/4c25a42e988e7a59d4d4dc3121cd77f7b344c048\"\u003e4c25a42e98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove deprecated shadow CSS encapsulation polyfills\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7dc1017e517c077a6aa8fd749392a2af1277e1b7\"\u003e7dc1017e51\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003esimplify handling of colon host with a selector list\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ccb7d427e4f07506c14c50ce0cbe87c57930ebb5\"\u003eccb7d427e4\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etype check invalid for loops\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/119a19e604a500f295867fc2cf2e6dbd43a9d807\"\u003e119a19e604\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/1d6e71dd788ebda5d9bb9d3c560cc27bb503f44b\"\u003e\u003ccode\u003e1d6e71d\u003c/code\u003e\u003c/a\u003e docs: clarify ngDoCheck invocation behavior with OnPush strategy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/49113ac0eff852d987b5acb28a9bbda0242842cd\"\u003e\u003ccode\u003e49113ac\u003c/code\u003e\u003c/a\u003e fix(core): visit ICU expressions in signal migration schematics\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e\u003ccode\u003e68282df\u003c/code\u003e\u003c/a\u003e fix(compiler): strip namespaced SVG script elements during template compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/c0f52272ed337d4776bd4178cbbdc7f32037500f\"\u003e\u003ccode\u003ec0f5227\u003c/code\u003e\u003c/a\u003e fix(core): do not insert todo when migrating void \u003ca href=\"https://github.com/Output\"\u003e\u003ccode\u003e@​Output\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/0fb272419407a64a0a47096b03a911f4e7e83d79\"\u003e\u003ccode\u003e0fb2724\u003c/code\u003e\u003c/a\u003e fix(core): reject script element as a dynamic component host\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/6652ec0115b20a6f8721137769afac30cd70f9a6\"\u003e\u003ccode\u003e6652ec0\u003c/code\u003e\u003c/a\u003e refactor(core): align namespaced attribute validation and security schema con...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/938a7f3eddda97a39edb9edcc8b4dd970858b3a2\"\u003e\u003ccode\u003e938a7f3\u003c/code\u003e\u003c/a\u003e fix(core): makes resource URL sanitizer lookup case-insensitive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003ccode\u003e1c6553e\u003c/code\u003e\u003c/a\u003e fix(core): disallow event attribute bindings in host bindings unconditionally\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/9e38ed7d5773a9193ba07afdba3f7a9f2fe02d18\"\u003e\u003ccode\u003e9e38ed7\u003c/code\u003e\u003c/a\u003e fix(core): sanitizer typings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/3430251fef93f6aec1fa9c7867e85df23f67c9a0\"\u003e\u003ccode\u003e3430251\u003c/code\u003e\u003c/a\u003e fix(core): i18n flags leaking on errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.14/packages/core\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/elements` from 21.2.11 to 21.2.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/elements's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.14\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e\u003cimg src=\"https://img.shields.io/badge/68282dff9f-fix-green\" alt=\"fix - 68282dff9f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003estrip namespaced SVG script elements during template compilation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c0f52272ed337d4776bd4178cbbdc7f32037500f\"\u003e\u003cimg src=\"https://img.shields.io/badge/c0f52272ed-fix-green\" alt=\"fix - c0f52272ed\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edo not insert todo when migrating void \u003ca href=\"https://github.com/Output\"\u003e\u003ccode\u003e@​Output\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/938a7f3eddda97a39edb9edcc8b4dd970858b3a2\"\u003e\u003cimg src=\"https://img.shields.io/badge/938a7f3edd-fix-green\" alt=\"fix - 938a7f3edd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003emakes resource URL sanitizer lookup case-insensitive\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0fb272419407a64a0a47096b03a911f4e7e83d79\"\u003e\u003cimg src=\"https://img.shields.io/badge/0fb2724194-fix-green\" alt=\"fix - 0fb2724194\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ereject script element as a dynamic component host\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/49113ac0eff852d987b5acb28a9bbda0242842cd\"\u003e\u003cimg src=\"https://img.shields.io/badge/49113ac0ef-fix-green\" alt=\"fix - 49113ac0ef\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evisit ICU expressions in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/099bf577ee8f0bab60593a8fd2a1de7d298e3cd6\"\u003e\u003cimg src=\"https://img.shields.io/badge/099bf577ee-fix-green\" alt=\"fix - 099bf577ee\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eskip scroll-to-top on initial navigation when hydrating\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.12\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fe13bb669d2bfab4713623d17b41c430aa0a61d8\"\u003e\u003cimg src=\"https://img.shields.io/badge/fe13bb669d-fix-green\" alt=\"fix - fe13bb669d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eallow explicit read generic with signal input transforms\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3430251fef93f6aec1fa9c7867e85df23f67c9a0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3430251fef-fix-green\" alt=\"fix - 3430251fef\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ei18n flags leaking on errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1aeebbe3048b5aa612dd0a5448de9883ed51e7e8\"\u003e\u003cimg src=\"https://img.shields.io/badge/1aeebbe304-fix-green\" alt=\"fix - 1aeebbe304\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erespect ngSkipHydration on components with projectable nodes in LContainers\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9e38ed7d5773a9193ba07afdba3f7a9f2fe02d18\"\u003e\u003cimg src=\"https://img.shields.io/badge/9e38ed7d57-fix-green\" alt=\"fix - 9e38ed7d57\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003esanitizer typings\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a05a9a71a5ab75042ec5560c01526de6e61e062\"\u003e\u003cimg src=\"https://img.shields.io/badge/7a05a9a71a-fix-green\" alt=\"fix - 7a05a9a71a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c37f6ca42f263353cb9563fa90d7b31d3c7837ca\"\u003e\u003cimg src=\"https://img.shields.io/badge/c37f6ca42f-fix-green\" alt=\"fix - c37f6ca42f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evisit ng-let expression value in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/03ad53863bf3c368f0f02a4322d4141e8f70f674\"\u003e\u003cimg src=\"https://img.shields.io/badge/03ad53863b-fix-green\" alt=\"fix - 03ad53863b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprohibit concurrent submits in signal forms\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/elements's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.14 (2026-05-20)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/68282dff9f9ef46540cca4bd38fc1ab739c8a783\"\u003e68282dff9f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estrip namespaced SVG script elements during template compilation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c0f52272ed337d4776bd4178cbbdc7f32037500f\"\u003ec0f52272ed\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edo not insert todo when migrating void \u003ca href=\"https://github.com/Output\"\u003e\u003ccode\u003e@​Output\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/938a7f3eddda97a39edb9edcc8b4dd970858b3a2\"\u003e938a7f3edd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003emakes resource URL sanitizer lookup case-insensitive\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0fb272419407a64a0a47096b03a911f4e7e83d79\"\u003e0fb2724194\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ereject script element as a dynamic component host\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/49113ac0eff852d987b5acb28a9bbda0242842cd\"\u003e49113ac0ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evisit ICU expressions in signal migration schematics\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/099bf577ee8f0bab60593a8fd2a1de7d298e3cd6\"\u003e099bf577ee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eskip scroll-to-top on initial navigation when hydrating\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-rc.0 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c7aef8ec5dd12b5b1d4c703a61bd1dd43f998e18\"\u003ec7aef8ec5d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eenforce parentheses containing arguments for :host-context\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8a1533c9ad7c306e03d7c50676f87b56bade5bf6\"\u003e8a1533c9ad\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epreserve leading commas in animation definitions\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/194f723f6620ea3cdf490b762ecbef8df6bb2c8a\"\u003e194f723f66\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove dedicated support for legacy shadow DOM selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/4c25a42e988e7a59d4d4dc3121cd77f7b344c048\"\u003e4c25a42e98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove deprecated shadow CSS encapsulation polyfills\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7dc1017e517c077a6aa8fd749392a2af1277e1b7\"\u003e7dc1017e51\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003esimplify handling of colon host with a selector list\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ccb7d427e4f07506c14c50ce0cbe87c57930ebb5\"\u003eccb7d427e4\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etype check invalid for loops\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/119a19e604a500f295867fc2cf2e6dbd43a9d807\"\u003e119a19e604\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/t...\n\n_Description has been truncated_\n\n\u003c!-- CURSOR_SUMMARY --\u003e\n---\n\n\u003e [!NOTE]\n\u003e **Medium Risk**\n\u003e Patch-level Angular updates can change runtime security and template/host binding behavior; verify build, tests, and lint even though no app source changed.\n\u003e \n\u003e **Overview**\n\u003e This PR **only updates dependencies** in `app-components` (`package.json` and `package-lock.json`); there are **no application source changes**.\n\u003e \n\u003e **Runtime Angular** packages move from **21.2.11 → 21.2.14** (and `@angular/cdk` **21.2.9 → 21.2.13**), covering animations, common, compiler, core, elements, forms, platform-browser, platform-browser-dynamic, and router.\n\u003e \n\u003e **Tooling** bumps include `@angular-eslint/*` **21.3.1 → 21.4.0** and `@typescript-eslint/eslint-plugin` **8.59.2 → 8.60.0**; the lockfile also refreshes related transitive versions (e.g. Rollup, msgpackr, more `@typescript-eslint/*` at 8.60.0).\n\u003e \n\u003e Several devDependency pins in `package.json` are **unchanged** in this diff (e.g. `@angular/compiler-cli`, `@angular/cli`, `@angular-eslint/template-parser`, `@typescript-eslint/parser`), so the tree may still mix patch levels until a follow-up align.\n\u003e \n\u003e **Review focus:** run `npm ci`, `ng build`, `ng test`, and `ng lint` in `app-components`; upstream 21.2.x patches include security and binding/sanitizer fixes that can affect behavior without local code edits.\n\u003e \n\u003e \u003csup\u003eReviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 87753c54359befd1ea741db176e029e1dc1bd869. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).\u003c/sup\u003e\n\u003c!-- /CURSOR_SUMMARY --\u003e","html_url":"https://github.com/trimble-oss/modus-icons/pull/778","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/trimble-oss%2Fmodus-icons/issues/778","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/778/packages"}},{"old_version":"19.8.1","new_version":"21.4.0","update_type":"major","path":"/frontend","pr_created_at":"2026-05-24T14:37:54.000Z","version_change":"19.8.1 → 21.4.0","issue":{"uuid":"4511925986","node_id":"PR_kwDOSmfgZM7eyyXc","number":9,"state":"open","title":"Build(deps-dev): Bump @angular-eslint/builder from 19.8.1 to 21.4.0 in /frontend","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-24T14:37:54.000Z","updated_at":"2026-05-24T18:23:55.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Build(deps-dev): Bump","packages":[{"name":"@angular-eslint/builder","old_version":"19.8.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":"/frontend","ecosystem":"npm"},"body":"Bumps [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) from 19.8.1 to 21.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e@​angular-eslint/builder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.4.0\u003c/h2\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [cyclomatic-complexity] add \u003ccode\u003evariant\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.57.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.6 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.1.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.8 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.58.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2984\"\u003e#2984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.9 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.59.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.11 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3019\"\u003e#3019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.3.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e append fixes in prefer-on-push-change-detection, use-injectable-provided-in (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2969\"\u003e#2969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-template-literal] do not check inline templates (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [no-non-null-assertion] report nested arrays (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [eqeqeq]  could not destructure null (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eschematics:\u003c/strong\u003e sync application schema with upstream \u003ccode\u003e@​schematics/angular\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003cli\u003egithubuser578 \u003ca href=\"https://github.com/githubuser578\"\u003e\u003ccode\u003e@​githubuser578\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev21.3.1\u003c/h2\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.0.3 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2949\"\u003e#2949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2954\"\u003e#2954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] properly handle statements with unary operators (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2926\"\u003e#2926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eprefer-self-closing-tags:\u003c/strong\u003e add selectedcontent nonAriaElements (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e@​angular-eslint/builder's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for builder to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch2\u003e21.1.0 (2025-12-08)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ereference \u003ccode\u003e@​angular/cli\u003c/code\u003e peer in addition to direct dependencies (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2820\"\u003e#2820\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.0.1 (2025-11-23)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for builder to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/0a774c724574c3c35acf9ba432f60269e7418938\"\u003e\u003ccode\u003e0a774c7\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/cea1779a056ce7e16b80b017630b625e375e6ba6\"\u003e\u003ccode\u003ecea1779\u003c/code\u003e\u003c/a\u003e feat(builder): add apply-suppressions option (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/28434e76fde2d26e3c009749dd4cc20a9604fa15\"\u003e\u003ccode\u003e28434e7\u003c/code\u003e\u003c/a\u003e chore: update swc monorepo (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2987\"\u003e#2987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/8f2afdce28d4cbdac792465b33aff35915af23b5\"\u003e\u003ccode\u003e8f2afdc\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/77099ee61cda76136038dce9f21d3af6071a7d06\"\u003e\u003ccode\u003e77099ee\u003c/code\u003e\u003c/a\u003e chore: ensure dist artifacts are available for e2e publishing in DTE (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/af8900f087b09556bfaddd815ce483bf7b0262ea\"\u003e\u003ccode\u003eaf8900f\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix: narrow build target cache outputs to avoid clobbering compile ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/7e173918eb48b2db41ce4d5a934567dab26fe54b\"\u003e\u003ccode\u003e7e17391\u003c/code\u003e\u003c/a\u003e fix: narrow build target cache outputs to avoid clobbering compile artifacts ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/a959e4d2804bbeb3cbc7caaa9c2fb2be9da3348e\"\u003e\u003ccode\u003ea959e4d\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/5c214854f897cb698563f53db6b9bddfb23e4d8e\"\u003e\u003ccode\u003e5c21485\u003c/code\u003e\u003c/a\u003e chore(builder): change builder tests to be cross-platform (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/3ef7fb157e866d76ae76d41b706b92efbd54d72d\"\u003e\u003ccode\u003e3ef7fb1\u003c/code\u003e\u003c/a\u003e feat: add support for ESLint v10 (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.4.0/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/WillSams/example-ts-angular-with-java/pull/9","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/WillSams%2Fexample-ts-angular-with-java/issues/9","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9/packages"}},{"old_version":"21.3.1","new_version":"21.4.0","update_type":"minor","path":null,"pr_created_at":"2026-05-24T05:57:47.000Z","version_change":"21.3.1 → 21.4.0","issue":{"uuid":"4510660393","node_id":"PR_kwDOGe8x_M7evEoz","number":1297,"state":"open","title":"chore(deps-dev)(deps-dev): bump the development-dependencies group across 1 directory with 12 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-24T05:57:47.000Z","updated_at":"2026-05-24T05:57:48.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)(deps-dev): bump","group_name":"development-dependencies","update_count":12,"packages":[{"name":"eslint-plugin-jest","old_version":"29.15.1","new_version":"29.15.2","repository_url":"https://github.com/jest-community/eslint-plugin-jest"},{"name":"jest","old_version":"30.3.0","new_version":"30.4.2","repository_url":"https://github.com/jestjs/jest"},{"name":"ts-jest","old_version":"29.4.6","new_version":"29.4.9","repository_url":"https://github.com/kulshekhar/ts-jest"},{"name":"@angular-devkit/architect","old_version":"0.2102.5","new_version":"0.2102.11","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular-devkit/core","old_version":"21.2.5","new_version":"21.2.11","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular-devkit/schematics","old_version":"21.2.5","new_version":"21.2.11","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular-eslint/builder","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin-template","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/schematics","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/template-parser","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular/language-service","old_version":"21.2.6","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"}],"path":null,"ecosystem":"npm"},"body":"Bumps the development-dependencies group with 12 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) | `29.15.1` | `29.15.2` |\n| [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) | `30.3.0` | `30.4.2` |\n| [ts-jest](https://github.com/kulshekhar/ts-jest) | `29.4.6` | `29.4.9` |\n| [@angular-devkit/architect](https://github.com/angular/angular-cli) | `0.2102.5` | `0.2102.11` |\n| [@angular-devkit/core](https://github.com/angular/angular-cli) | `21.2.5` | `21.2.11` |\n| [@angular-devkit/schematics](https://github.com/angular/angular-cli) | `21.2.5` | `21.2.11` |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `21.3.1` | `21.4.0` |\n| [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) | `21.3.1` | `21.4.0` |\n| [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template) | `21.3.1` | `21.4.0` |\n| [@angular-eslint/schematics](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics) | `21.3.1` | `21.4.0` |\n| [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `21.3.1` | `21.4.0` |\n| [@angular/language-service](https://github.com/angular/angular/tree/HEAD/packages/language-service) | `21.2.6` | `21.2.13` |\n\n\nUpdates `eslint-plugin-jest` from 29.15.1 to 29.15.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/releases\"\u003eeslint-plugin-jest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev29.15.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/compare/v29.15.1...v29.15.2\"\u003e29.15.2\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evalid-mock-module-path:\u003c/strong\u003e don't report virtual mocks (\u003ca href=\"https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1946\"\u003e#1946\u003c/a\u003e) (\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/commit/a1916d16350344c1693384af34900055ec465e1c\"\u003ea1916d1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md\"\u003eeslint-plugin-jest's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/compare/v29.15.1...v29.15.2\"\u003e29.15.2\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evalid-mock-module-path:\u003c/strong\u003e don't report virtual mocks (\u003ca href=\"https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1946\"\u003e#1946\u003c/a\u003e) (\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/commit/a1916d16350344c1693384af34900055ec465e1c\"\u003ea1916d1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/commit/f14a941887e2b598053f757f91c10a5910ffffca\"\u003e\u003ccode\u003ef14a941\u003c/code\u003e\u003c/a\u003e chore(release): 29.15.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/commit/a1916d16350344c1693384af34900055ec465e1c\"\u003e\u003ccode\u003ea1916d1\u003c/code\u003e\u003c/a\u003e fix(valid-mock-module-path): don't report virtual mocks (\u003ca href=\"https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1946\"\u003e#1946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/commit/4a5278787449592d473ff4507170f6ff50b1b47f\"\u003e\u003ccode\u003e4a52787\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1958\"\u003e#1958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/commit/285c6f6a665ffb77facb0e4db77a3e2c4c986070\"\u003e\u003ccode\u003e285c6f6\u003c/code\u003e\u003c/a\u003e ci: don't run smoketest on \u003ccode\u003etannerlinsley/react-table\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1959\"\u003e#1959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/commit/1da0928392313ffa89339ed454aa31d1712f6875\"\u003e\u003ccode\u003e1da0928\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1956\"\u003e#1956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/commit/8532d0e53abce0e80f092940e4575ed46ae6660a\"\u003e\u003ccode\u003e8532d0e\u003c/code\u003e\u003c/a\u003e docs(valid-expect): use valid alert syntax (\u003ca href=\"https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1954\"\u003e#1954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/commit/03405ae827212348ab880929231d899300f659c2\"\u003e\u003ccode\u003e03405ae\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency \u003ccode\u003e@​schemastore/package\u003c/code\u003e to v1 (\u003ca href=\"https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1942\"\u003e#1942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/commit/de0e154bd2d5966c3f2f15b4b3c8f0cd93b171ed\"\u003e\u003ccode\u003ede0e154\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v6 (\u003ca href=\"https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/commit/d50f50c81af62caa4c73888939e20f4b874fdbe9\"\u003e\u003ccode\u003ed50f50c\u003c/code\u003e\u003c/a\u003e chore: add node v25 to CI (\u003ca href=\"https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1950\"\u003e#1950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jest-community/eslint-plugin-jest/compare/v29.15.1...v29.15.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jest` from 30.3.0 to 30.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jestjs/jest/releases\"\u003ejest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev30.4.2\u003c/h2\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[jest-runtime]\u003c/code\u003e Fix named imports from CJS modules whose \u003ccode\u003emodule.exports\u003c/code\u003e is a function with own-property exports (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16150\"\u003e#16150\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jestjs/jest/compare/v30.4.1...v30.4.2\"\u003ehttps://github.com/jestjs/jest/compare/v30.4.1...v30.4.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev30.4.1\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[jest-config, jest-core, jest-runner, jest-schemas, jest-types]\u003c/code\u003e Allow custom runner configuration options via tuple format \u003ccode\u003e['runner-path', {options}]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16141\"\u003e#16141\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[jest-runtime]\u003c/code\u003e Align CJS-from-ESM default export with Node: \u003ccode\u003emodule.exports\u003c/code\u003e is always the ESM default, \u003ccode\u003e__esModule\u003c/code\u003e unwrapping is no longer applied (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16143\"\u003e#16143\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jestjs/jest/compare/v30.4.0...v30.4.1\"\u003ehttps://github.com/jestjs/jest/compare/v30.4.0...v30.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev30.4.0\u003c/h2\u003e\n\u003cp\u003eBig release! 😀\u003c/p\u003e\n\u003cp\u003eMain feature is a rewrite of our custom runtime in preparation for stabilisation of native support of ESM. As part of that work \u003ccode\u003erequire(esm)\u003c/code\u003e module is now supported on Node 24.9+ (still requires \u003ccode\u003e--experimental-vm-modules\u003c/code\u003e like before).\u003c/p\u003e\n\u003cp\u003eIn addition we now support fake timers for the recently released \u003ccode\u003eTemporal\u003c/code\u003e API in Node v26.\u003c/p\u003e\n\u003cp\u003eReact 19 is also supported properly in \u003ccode\u003epretty-format\u003c/code\u003e, meaning snapshots of React components now work like they should.\u003c/p\u003e\n\u003cp\u003eDue to all the changes, there might be regressions that snuck in. Please report them!\u003c/p\u003e\n\u003cp\u003eFull list of changes below\u003c/p\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[babel-jest]\u003c/code\u003e Support collecting coverage from \u003ccode\u003e.mts\u003c/code\u003e, \u003ccode\u003e.cts\u003c/code\u003e (and other) files (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/15994\"\u003e#15994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-circus, jest-cli, jest-config, jest-core, jest-jasmine2, jest-types]\u003c/code\u003e Add \u003ccode\u003e--collect-tests\u003c/code\u003e flag to discover and list tests without executing them (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16006\"\u003e#16006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-config, jest-runner, jest-worker]\u003c/code\u003e Add \u003ccode\u003eworkerGracefulExitTimeout\u003c/code\u003e config option to control how long workers are given to exit before being force-killed (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/15984\"\u003e#15984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-config]\u003c/code\u003e Add support for \u003ccode\u003ejest.config.mts\u003c/code\u003e as a valid configuration file (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16005\"\u003e#16005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-config, jest-core, jest-reporters, jest-runner]\u003c/code\u003e \u003ccode\u003everbose\u003c/code\u003e and \u003ccode\u003esilent\u003c/code\u003e can now be set per-project; the project-level value overrides the global value for that project's tests (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16133\"\u003e#16133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[@jest/fake-timers]\u003c/code\u003e Accept \u003ccode\u003eTemporal.Duration\u003c/code\u003e in \u003ccode\u003ejest.advanceTimersByTime()\u003c/code\u003e and \u003ccode\u003ejest.advanceTimersByTimeAsync()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16128\"\u003e#16128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[@jest/fake-timers]\u003c/code\u003e Accept \u003ccode\u003eTemporal.Instant\u003c/code\u003e and \u003ccode\u003eTemporal.ZonedDateTime\u003c/code\u003e in \u003ccode\u003ejest.setSystemTime()\u003c/code\u003e and \u003ccode\u003euseFakeTimers({now})\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16128\"\u003e#16128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[@jest/fake-timers]\u003c/code\u003e Support faking \u003ccode\u003eTemporal.Now.*\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16131\"\u003e#16131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-mock]\u003c/code\u003e Add \u003ccode\u003eclearMocksOnScope(scope)\u003c/code\u003e on \u003ccode\u003eModuleMocker\u003c/code\u003e for clearing every mock function exposed on a scope object (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16088\"\u003e#16088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-resolve]\u003c/code\u003e Add \u003ccode\u003ecanResolveSync()\u003c/code\u003e on \u003ccode\u003eResolver\u003c/code\u003e so callers can detect when a user-configured resolver only exports an \u003ccode\u003easync\u003c/code\u003e hook (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16064\"\u003e#16064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-runtime]\u003c/code\u003e Use synchronous \u003ccode\u003eevaluate()\u003c/code\u003e for ES modules without top-level \u003ccode\u003eawait\u003c/code\u003e on Node versions that support it (v24.9+), and prefer the synchronous transform path when a sync transformer is configured (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16062\"\u003e#16062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-runtime]\u003c/code\u003e Support \u003ccode\u003erequire()\u003c/code\u003e of ES modules on Node v24.9+ (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16074\"\u003e#16074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-runtime]\u003c/code\u003e Validate TC39 import attributes (\u003ccode\u003ewith { type: 'json' }\u003c/code\u003e) on ESM imports (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16127\"\u003e#16127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[@jest/transform]\u003c/code\u003e Add \u003ccode\u003ecanTransformSync(filename)\u003c/code\u003e on \u003ccode\u003eScriptTransformer\u003c/code\u003e so callers can pick the sync vs async transform path (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16062\"\u003e#16062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-util]\u003c/code\u003e Add \u003ccode\u003eisError\u003c/code\u003e helper (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16076\"\u003e#16076\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jestjs/jest/blob/main/CHANGELOG.md\"\u003ejest's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e30.4.2\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[jest-runtime]\u003c/code\u003e Fix named imports from CJS modules whose \u003ccode\u003emodule.exports\u003c/code\u003e is a function with own-property exports (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16150\"\u003e#16150\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e30.4.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[jest-config, jest-core, jest-runner, jest-schemas, jest-types]\u003c/code\u003e Allow custom runner configuration options via tuple format \u003ccode\u003e['runner-path', {options}]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16141\"\u003e#16141\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[jest-runtime]\u003c/code\u003e Align CJS-from-ESM default export with Node: \u003ccode\u003emodule.exports\u003c/code\u003e is always the ESM default, \u003ccode\u003e__esModule\u003c/code\u003e unwrapping is no longer applied (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16143\"\u003e#16143\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e30.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[babel-jest]\u003c/code\u003e Support collecting coverage from \u003ccode\u003e.mts\u003c/code\u003e, \u003ccode\u003e.cts\u003c/code\u003e (and other) files (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/15994\"\u003e#15994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-circus, jest-cli, jest-config, jest-core, jest-jasmine2, jest-types]\u003c/code\u003e Add \u003ccode\u003e--collect-tests\u003c/code\u003e flag to discover and list tests without executing them (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16006\"\u003e#16006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-config, jest-runner, jest-worker]\u003c/code\u003e Add \u003ccode\u003eworkerGracefulExitTimeout\u003c/code\u003e config option to control how long workers are given to exit before being force-killed (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/15984\"\u003e#15984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-config]\u003c/code\u003e Add support for \u003ccode\u003ejest.config.mts\u003c/code\u003e as a valid configuration file (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16005\"\u003e#16005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-config, jest-core, jest-reporters, jest-runner]\u003c/code\u003e \u003ccode\u003everbose\u003c/code\u003e and \u003ccode\u003esilent\u003c/code\u003e can now be set per-project; the project-level value overrides the global value for that project's tests (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16133\"\u003e#16133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[@jest/fake-timers]\u003c/code\u003e Accept \u003ccode\u003eTemporal.Duration\u003c/code\u003e in \u003ccode\u003ejest.advanceTimersByTime()\u003c/code\u003e and \u003ccode\u003ejest.advanceTimersByTimeAsync()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16128\"\u003e#16128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[@jest/fake-timers]\u003c/code\u003e Accept \u003ccode\u003eTemporal.Instant\u003c/code\u003e and \u003ccode\u003eTemporal.ZonedDateTime\u003c/code\u003e in \u003ccode\u003ejest.setSystemTime()\u003c/code\u003e and \u003ccode\u003euseFakeTimers({now})\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16128\"\u003e#16128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[@jest/fake-timers]\u003c/code\u003e Support faking \u003ccode\u003eTemporal.Now.*\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16131\"\u003e#16131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-mock]\u003c/code\u003e Add \u003ccode\u003eclearMocksOnScope(scope)\u003c/code\u003e on \u003ccode\u003eModuleMocker\u003c/code\u003e for clearing every mock function exposed on a scope object (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16088\"\u003e#16088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-resolve]\u003c/code\u003e Add \u003ccode\u003ecanResolveSync()\u003c/code\u003e on \u003ccode\u003eResolver\u003c/code\u003e so callers can detect when a user-configured resolver only exports an \u003ccode\u003easync\u003c/code\u003e hook (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16064\"\u003e#16064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-runtime]\u003c/code\u003e Use synchronous \u003ccode\u003eevaluate()\u003c/code\u003e for ES modules without top-level \u003ccode\u003eawait\u003c/code\u003e on Node versions that support it (v24.9+), and prefer the synchronous transform path when a sync transformer is configured (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16062\"\u003e#16062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-runtime]\u003c/code\u003e Support \u003ccode\u003erequire()\u003c/code\u003e of ES modules on Node v24.9+ (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16074\"\u003e#16074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-runtime]\u003c/code\u003e Validate TC39 import attributes (\u003ccode\u003ewith { type: 'json' }\u003c/code\u003e) on ESM imports (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16127\"\u003e#16127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[@jest/transform]\u003c/code\u003e Add \u003ccode\u003ecanTransformSync(filename)\u003c/code\u003e on \u003ccode\u003eScriptTransformer\u003c/code\u003e so callers can pick the sync vs async transform path (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16062\"\u003e#16062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-util]\u003c/code\u003e Add \u003ccode\u003eisError\u003c/code\u003e helper (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16076\"\u003e#16076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[pretty-format]\u003c/code\u003e Support React 19 (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16123\"\u003e#16123\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[expect-utils]\u003c/code\u003e Fix \u003ccode\u003etoStrictEqual\u003c/code\u003e failing on \u003ccode\u003estructuredClone\u003c/code\u003e results due to cross-realm constructor mismatch (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/15959\"\u003e#15959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[@jest/expect-utils]\u003c/code\u003e Prevent \u003ccode\u003etoMatchObject\u003c/code\u003e/subset matching from throwing when encountering exotic iterables (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/15952\"\u003e#15952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[fake-timers]\u003c/code\u003e Convert \u003ccode\u003eDate\u003c/code\u003e to milliseconds before passing to \u003ccode\u003e@sinonjs/fake-timers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16029\"\u003e#16029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest]\u003c/code\u003e Export \u003ccode\u003eGlobalConfig\u003c/code\u003e and \u003ccode\u003eProjectConfig\u003c/code\u003e TypeScript types (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16132\"\u003e#16132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-circus]\u003c/code\u003e Prevent crash when \u003ccode\u003easyncError\u003c/code\u003e is undefined for non-Error throws (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16003\"\u003e#16003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-circus, jest-jasmine2]\u003c/code\u003e Include \u003ccode\u003eError.cause\u003c/code\u003e in JSON \u003ccode\u003efailureMessages\u003c/code\u003e output (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/15967\"\u003e#15967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-config]\u003c/code\u003e Fix preset path resolution on Windows when the preset uses subpath \u003ccode\u003eexports\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/15961\"\u003e#15961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-config]\u003c/code\u003e Allow \u003ccode\u003ecollectCoverage\u003c/code\u003e and \u003ccode\u003ecoverageProvider\u003c/code\u003e in project config without a validation warning (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16132\"\u003e#16132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-config]\u003c/code\u003e Project config validator now emits \u0026quot;is not supported in an individual project configuration\u0026quot; instead of \u0026quot;probably a typing mistake\u0026quot; for known global-only options (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16132\"\u003e#16132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-environment-node]\u003c/code\u003e Fix \u003ccode\u003e--localstorage-file\u003c/code\u003e warning on Node 25+ (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16086\"\u003e#16086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[jest-reporters]\u003c/code\u003e Apply global coverage threshold to unmatched pattern files in addition to glob/path thresholds (\u003ca href=\"https://redirect.github.com/jestjs/jest/pull/16137\"\u003e#16137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jestjs/jest/commit/746f2a0f57c56e3bba555280f0587d40f3db95c0\"\u003e\u003ccode\u003e746f2a0\u003c/code\u003e\u003c/a\u003e v30.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jestjs/jest/commit/b3b4a09ed3005369dacc7466d1d2122797283785\"\u003e\u003ccode\u003eb3b4a09\u003c/code\u003e\u003c/a\u003e v30.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jestjs/jest/commit/5cbb21e0b3037edb42e503ec1a1ce80efad40c20\"\u003e\u003ccode\u003e5cbb21e\u003c/code\u003e\u003c/a\u003e v30.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jestjs/jest/commit/db7141a93cc85fab81cf9c25368e1f2b2c312286\"\u003e\u003ccode\u003edb7141a\u003c/code\u003e\u003c/a\u003e fix: allow \u003ccode\u003ecollectCoverage\u003c/code\u003e and \u003ccode\u003ecoverageProvider\u003c/code\u003e in project config (\u003ca href=\"https://github.com/jestjs/jest/tree/HEAD/packages/jest/issues/16132\"\u003e#16132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jestjs/jest/commits/v30.4.2/packages/jest\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ts-jest` from 29.4.6 to 29.4.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kulshekhar/ts-jest/releases\"\u003ets-jest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev29.4.9\u003c/h2\u003e\n\u003cp\u003ePlease refer to \u003ca href=\"https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003ev29.4.8\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ev29.4.7\u003c/h2\u003e\n\u003cp\u003ePlease refer to \u003ca href=\"https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e for details.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md\"\u003ets-jest's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/compare/v29.4.8...v29.4.9\"\u003e29.4.9\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003euse correct registry for npm OIDC trusted publishing (\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/f8a9cc9892\"\u003ef8a9cc9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/compare/v29.4.7...v29.4.8\"\u003e29.4.8\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ewrong published assets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/compare/v29.4.6...v29.4.7\"\u003e29.4.7\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport TypeScript v6 (\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/eda517d226389317d99572887d3c1aa93c81be87\"\u003eeda517d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/bac2e77231418c35cb9b9946d7d871c0ee2322a1\"\u003e\u003ccode\u003ebac2e77\u003c/code\u003e\u003c/a\u003e chore(release): bump version to 29.4.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/f8a9cc98924bd1846aac96d6c544e6626f031f81\"\u003e\u003ccode\u003ef8a9cc9\u003c/code\u003e\u003c/a\u003e fix: use correct registry for npm OIDC trusted publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/e2eec26aa127e284719b4754937d17bd57b13518\"\u003e\u003ccode\u003ee2eec26\u003c/code\u003e\u003c/a\u003e fix: npm permissions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/263f2ac73e4a0c4163f8766c3ba9d0a13ca78812\"\u003e\u003ccode\u003e263f2ac\u003c/code\u003e\u003c/a\u003e chore: remove npm auth token\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/5df0e45f409994b34cae7d22db60946a8158d975\"\u003e\u003ccode\u003e5df0e45\u003c/code\u003e\u003c/a\u003e OIDC\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/f82c1444d4af0d9f27883510acc8178c18ee8f8a\"\u003e\u003ccode\u003ef82c144\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kulshekhar/ts-jest/issues/5250\"\u003e#5250\u003c/a\u003e from kulshekhar/copilot/bump-patch-version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/e6ec5aed410a803c2f972b3287cf233ce4c998f9\"\u003e\u003ccode\u003ee6ec5ae\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/62c3199a355d3ba483f0e976c868ddc6f20d53fe\"\u003e\u003ccode\u003e62c3199\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/052e751f124d059e1363b827f1709ed7607daded\"\u003e\u003ccode\u003e052e751\u003c/code\u003e\u003c/a\u003e Bump patch version to 29.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kulshekhar/ts-jest/commit/f79e77b64f4a807605e277b1ea05f10abe9c94f0\"\u003e\u003ccode\u003ef79e77b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kulshekhar/ts-jest/issues/5249\"\u003e#5249\u003c/a\u003e from ext/feature/ts6-peer\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kulshekhar/ts-jest/compare/v29.4.6...v29.4.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for ts-jest since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-devkit/architect` from 0.2102.5 to 0.2102.11\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular-cli/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-devkit/core` from 21.2.5 to 21.2.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular-cli/releases\"\u003e@​angular-devkit/core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.11\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003e\u003cimg src=\"https://img.shields.io/badge/bbd63b7a5-fix-green\" alt=\"fix - bbd63b7a5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erobustly parse npm manifest from array\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003e\u003cimg src=\"https://img.shields.io/badge/eafe1a719-fix-green\" alt=\"fix - eafe1a719\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e\u003cimg src=\"https://img.shields.io/badge/7a116a80d-fix-green\" alt=\"fix - 7a116a80d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove stateful flag from URL_PARAMETER_REGEXP\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.10\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bb861191328fc2d25bd5ee99b0c8edc5e49d3a7d\"\u003e\u003cimg src=\"https://img.shields.io/badge/bb8611913-fix-green\" alt=\"fix - bb8611913\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erestrict MCP workspace access to allowed client roots during resolution\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.9\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​schematics/angular\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/e7abeb5c74024daf125070c9b4f7f8d2426bab66\"\u003e\u003cimg src=\"https://img.shields.io/badge/e7abeb5c7-fix-green\" alt=\"fix - e7abeb5c7\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd missing imports for focus and skip APIs in refactor-jasmine-vitest\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/233deef01288c6aa39a048d6bd66a1f09595dc15\"\u003e\u003cimg src=\"https://img.shields.io/badge/233deef01-fix-green\" alt=\"fix - 233deef01\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix broken img ref in ai-tutor\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7cea9885c64a747b391b74e6434cdf005c843766\"\u003e\u003cimg src=\"https://img.shields.io/badge/7cea9885c-fix-green\" alt=\"fix - 7cea9885c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eintroduce initial package manager workspace awareness\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/5b1a5b7434323eb383df1f53c389fe9dc948a785\"\u003e\u003cimg src=\"https://img.shields.io/badge/5b1a5b743-fix-green\" alt=\"fix - 5b1a5b743\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove standalone true ref in ai tutor\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/94023f62c5b51a669ff3187cc062057f82c79c52\"\u003e\u003cimg src=\"https://img.shields.io/badge/94023f62c-fix-green\" alt=\"fix - 94023f62c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eintroduce trustProxyHeaders option to safely validate and sanitize proxy headers\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/5ffe5c309a92e7fd42f1059171924c5942f35c36\"\u003e\u003cimg src=\"https://img.shields.io/badge/5ffe5c309-fix-green\" alt=\"fix - 5ffe5c309\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd support for configuring trusted proxy headers via environment variable\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/930ada9b73c5172d57830ce42a5a336ae9483a54\"\u003e\u003cimg src=\"https://img.shields.io/badge/930ada9b7-fix-green\" alt=\"fix - 930ada9b7\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edecode route segments when building and matching route tree\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/0dc8a440ca9e4242edb69ba5a8147fef1dddc4f0\"\u003e\u003cimg src=\"https://img.shields.io/badge/0dc8a440c-fix-green\" alt=\"fix - 0dc8a440c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003euse router to normalize URLs for comparison\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.8\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/e91280c05afe7b35b4f01e0eb2800f1ee21fd2ea\"\u003e\u003cimg src=\"https://img.shields.io/badge/e91280c05-fix-green\" alt=\"fix - e91280c05\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edynamically resolve project Angular CLI executable inside MCP tools\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/01af6741bfe489c3c8fd86feab8b5f14cdb92562\"\u003e\u003cimg src=\"https://img.shields.io/badge/01af6741b-fix-green\" alt=\"fix - 01af6741b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eignore EBADF file system errors during MCP project scan\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/f7a3e6ed871ff711723dcfdbaa8c3ae497f89a5b\"\u003e\u003cimg src=\"https://img.shields.io/badge/f7a3e6ed8-fix-green\" alt=\"fix - f7a3e6ed8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003euse headless option in MCP test tool\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular-devkit/build-angular\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/00336c037dd77d2b441f797580eb8a12c044006b\"\u003e\u003cimg src=\"https://img.shields.io/badge/00336c037-fix-green\" alt=\"fix - 00336c037\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure route has leading slash in prerender builder\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/e87d302d6df3f4d9fa9338e3d377e09a2e161fc1\"\u003e\u003cimg src=\"https://img.shields.io/badge/e87d302d6-fix-green\" alt=\"fix - e87d302d6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix app-shell route format and\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/build\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular-cli/blob/main/CHANGELOG.md\"\u003e@​angular-devkit/core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.11 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003ebbd63b7a5\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erobustly parse npm manifest from array\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003eeafe1a719\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e7a116a80d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove stateful flag from URL_PARAMETER_REGEXP\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.26 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7cc1871ee50d123853ddf6bd89857b354d647462\"\u003e7cc1871ee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.26 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/842fee0291b787b63fdabcaaac5680b05d395075\"\u003e842fee029\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e21.2.10 (2026-05-06)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bb861191328fc2d25bd5ee99b0c8edc5e49d3a7d\"\u003ebb8611913\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erestrict MCP workspace access to allowed client roots during resolution\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/00e366320108b39e60e67d28d45e5bcc6a044546\"\u003e\u003ccode\u003e00e3663\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.11 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003e\u003ccode\u003eeafe1a7\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/ssr\u003c/code\u003e): allow all hosts in common engine rendering options to prev...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e\u003ccode\u003e7a116a8\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/ssr\u003c/code\u003e): remove stateful flag from URL_PARAMETER_REGEXP\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/a7705fb96a27965b20365b04c79f0e2f386dfd95\"\u003e\u003ccode\u003ea7705fb\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/453ed5b6bf8a18b37cfa099955f37b234ded6003\"\u003e\u003ccode\u003e453ed5b\u003c/code\u003e\u003c/a\u003e build: update github/codeql-action action to v4.35.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/f0f9b2dad6d47d958bf98b52452bd8c944355951\"\u003e\u003ccode\u003ef0f9b2d\u003c/code\u003e\u003c/a\u003e refactor(\u003ccode\u003e@​angular/cli\u003c/code\u003e): add validation and logging to npm manifest parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003e\u003ccode\u003ebbd63b7\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/cli\u003c/code\u003e): robustly parse npm manifest from array\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/64cbd623af655487945ecc2d26afdaea20989330\"\u003e\u003ccode\u003e64cbd62\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.10 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/6f26f4fb9aa039a1afec76e172f58a962615e236\"\u003e\u003ccode\u003e6f26f4f\u003c/code\u003e\u003c/a\u003e build: lock file maintenance\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/111dcc3118d46c60143b1a10bf919a0ef76ec54a\"\u003e\u003ccode\u003e111dcc3\u003c/code\u003e\u003c/a\u003e refactor(\u003ccode\u003e@​angular/cli\u003c/code\u003e): re-add resolveModule for find examples tool\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular-cli/compare/v21.2.5...v21.2.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-devkit/schematics` from 21.2.5 to 21.2.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular-cli/releases\"\u003e@​angular-devkit/schematics's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.11\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003e\u003cimg src=\"https://img.shields.io/badge/bbd63b7a5-fix-green\" alt=\"fix - bbd63b7a5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erobustly parse npm manifest from array\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003e\u003cimg src=\"https://img.shields.io/badge/eafe1a719-fix-green\" alt=\"fix - eafe1a719\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e\u003cimg src=\"https://img.shields.io/badge/7a116a80d-fix-green\" alt=\"fix - 7a116a80d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove stateful flag from URL_PARAMETER_REGEXP\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.10\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bb861191328fc2d25bd5ee99b0c8edc5e49d3a7d\"\u003e\u003cimg src=\"https://img.shields.io/badge/bb8611913-fix-green\" alt=\"fix - bb8611913\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erestrict MCP workspace access to allowed client roots during resolution\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.9\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​schematics/angular\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/e7abeb5c74024daf125070c9b4f7f8d2426bab66\"\u003e\u003cimg src=\"https://img.shields.io/badge/e7abeb5c7-fix-green\" alt=\"fix - e7abeb5c7\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd missing imports for focus and skip APIs in refactor-jasmine-vitest\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/233deef01288c6aa39a048d6bd66a1f09595dc15\"\u003e\u003cimg src=\"https://img.shields.io/badge/233deef01-fix-green\" alt=\"fix - 233deef01\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix broken img ref in ai-tutor\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7cea9885c64a747b391b74e6434cdf005c843766\"\u003e\u003cimg src=\"https://img.shields.io/badge/7cea9885c-fix-green\" alt=\"fix - 7cea9885c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eintroduce initial package manager workspace awareness\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/5b1a5b7434323eb383df1f53c389fe9dc948a785\"\u003e\u003cimg src=\"https://img.shields.io/badge/5b1a5b743-fix-green\" alt=\"fix - 5b1a5b743\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove standalone true ref in ai tutor\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/94023f62c5b51a669ff3187cc062057f82c79c52\"\u003e\u003cimg src=\"https://img.shields.io/badge/94023f62c-fix-green\" alt=\"fix - 94023f62c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eintroduce trustProxyHeaders option to safely validate and sanitize proxy headers\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/5ffe5c309a92e7fd42f1059171924c5942f35c36\"\u003e\u003cimg src=\"https://img.shields.io/badge/5ffe5c309-fix-green\" alt=\"fix - 5ffe5c309\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd support for configuring trusted proxy headers via environment variable\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/930ada9b73c5172d57830ce42a5a336ae9483a54\"\u003e\u003cimg src=\"https://img.shields.io/badge/930ada9b7-fix-green\" alt=\"fix - 930ada9b7\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edecode route segments when building and matching route tree\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/0dc8a440ca9e4242edb69ba5a8147fef1dddc4f0\"\u003e\u003cimg src=\"https://img.shields.io/badge/0dc8a440c-fix-green\" alt=\"fix - 0dc8a440c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003euse router to normalize URLs for comparison\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.8\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/e91280c05afe7b35b4f01e0eb2800f1ee21fd2ea\"\u003e\u003cimg src=\"https://img.shields.io/badge/e91280c05-fix-green\" alt=\"fix - e91280c05\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edynamically resolve project Angular CLI executable inside MCP tools\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/01af6741bfe489c3c8fd86feab8b5f14cdb92562\"\u003e\u003cimg src=\"https://img.shields.io/badge/01af6741b-fix-green\" alt=\"fix - 01af6741b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eignore EBADF file system errors during MCP project scan\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/f7a3e6ed871ff711723dcfdbaa8c3ae497f89a5b\"\u003e\u003cimg src=\"https://img.shields.io/badge/f7a3e6ed8-fix-green\" alt=\"fix - f7a3e6ed8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003euse headless option in MCP test tool\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular-devkit/build-angular\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/00336c037dd77d2b441f797580eb8a12c044006b\"\u003e\u003cimg src=\"https://img.shields.io/badge/00336c037-fix-green\" alt=\"fix - 00336c037\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure route has leading slash in prerender builder\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/e87d302d6df3f4d9fa9338e3d377e09a2e161fc1\"\u003e\u003cimg src=\"https://img.shields.io/badge/e87d302d6-fix-green\" alt=\"fix - e87d302d6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix app-shell route format and\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/build\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular-cli/blob/main/CHANGELOG.md\"\u003e@​angular-devkit/schematics's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.11 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003ebbd63b7a5\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erobustly parse npm manifest from array\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003eeafe1a719\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e7a116a80d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove stateful flag from URL_PARAMETER_REGEXP\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.26 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7cc1871ee50d123853ddf6bd89857b354d647462\"\u003e7cc1871ee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.26 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/842fee0291b787b63fdabcaaac5680b05d395075\"\u003e842fee029\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e21.2.10 (2026-05-06)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bb861191328fc2d25bd5ee99b0c8edc5e49d3a7d\"\u003ebb8611913\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erestrict MCP workspace access to allowed client roots during resolution\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/00e366320108b39e60e67d28d45e5bcc6a044546\"\u003e\u003ccode\u003e00e3663\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.11 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003e\u003ccode\u003eeafe1a7\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/ssr\u003c/code\u003e): allow all hosts in common engine rendering options to prev...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e\u003ccode\u003e7a116a8\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/ssr\u003c/code\u003e): remove stateful flag from URL_PARAMETER_REGEXP\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/a7705fb96a27965b20365b04c79f0e2f386dfd95\"\u003e\u003ccode\u003ea7705fb\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/453ed5b6bf8a18b37cfa099955f37b234ded6003\"\u003e\u003ccode\u003e453ed5b\u003c/code\u003e\u003c/a\u003e build: update github/codeql-action action to v4.35.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/f0f9b2dad6d47d958bf98b52452bd8c944355951\"\u003e\u003ccode\u003ef0f9b2d\u003c/code\u003e\u003c/a\u003e refactor(\u003ccode\u003e@​angular/cli\u003c/code\u003e): add validation and logging to npm manifest parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003e\u003ccode\u003ebbd63b7\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/cli\u003c/code\u003e): robustly parse npm manifest from array\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/64cbd623af655487945ecc2d26afdaea20989330\"\u003e\u003ccode\u003e64cbd62\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.10 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/6f26f4fb9aa039a1afec76e172f58a962615e236\"\u003e\u003ccode\u003e6f26f4f\u003c/code\u003e\u003c/a\u003e build: lock file maintenance\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/111dcc3118d46c60143b1a10bf919a0ef76ec54a\"\u003e\u003ccode\u003e111dcc3\u003c/code\u003e\u003c/a\u003e refactor(\u003ccode\u003e@​angular/cli\u003c/code\u003e): re-add resolveModule for find examples tool\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular-cli/compare/v21.2.5...v21.2.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-eslint/builder` from 21.3.1 to 21.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e@​angular-eslint/builder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.4.0\u003c/h2\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [cyclomatic-complexity] add \u003ccode\u003evariant\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.57.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.6 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.1.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.8 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.58.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2984\"\u003e#2984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.9 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.59.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.11 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3019\"\u003e#3019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.3.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e append fixes in prefer-on-push-change-detection, use-injectable-provided-in (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2969\"\u003e#2969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-template-literal] do not check inline templates (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [no-non-null-assertion] report nested arrays (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [eqeqeq]  could not destructure null (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eschematics:\u003c/strong\u003e sync application schema with upstream \u003ccode\u003e@​schematics/angular\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003cli\u003egithubuser578 \u003ca href=\"https://github.com/githubuser578\"\u003e\u003ccode\u003e@​githubuser578\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e@​angular-eslint/builder's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/0a774c724574c3c35acf9ba432f60269e7418938\"\u003e\u003ccode\u003e0a774c7\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/cea1779a056ce7e16b80b017630b625e375e6ba6\"\u003e\u003ccode\u003ecea1779\u003c/code\u003e\u003c/a\u003e feat(builder): add apply-suppressions option (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/28434e76fde2d26e3c009749dd4cc20a9604fa15\"\u003e\u003ccode\u003e28434e7\u003c/code\u003e\u003c/a\u003e chore: update swc monorepo (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2987\"\u003e#2987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.4.0/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-eslint/eslint-plugin` from 21.3.1 to 21.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e@​angular-eslint/eslint-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.4.0\u003c/h2\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [cyclomatic-complexity] add \u003ccode\u003evariant\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.57.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.6 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.1.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.8 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.58.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2984\"\u003e#2984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.9 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.59.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.11 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3019\"\u003e#3019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.3.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e append fixes in prefer-on-push-change-detection, use-injectable-provided-in (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2969\"\u003e#2969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-template-literal] do not check inline templates (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [no-non-null-assertion] report nested arrays (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [eqeqeq]  could not destructure null (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eschematics:\u003c/strong\u003e sync application schema with upstream \u003ccode\u003e@​schematics/angular\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003cli\u003egithubuser578 \u003ca href=\"https://github.com/githubuser578\"\u003e\u003ccode\u003e@​githubuser578\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md\"\u003e@​angular-eslint/eslint-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e append fixes in prefer-on-push-change-detection, use-injectable-provided-in (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2969\"\u003e#2969\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/0a774c724574c3c35acf9ba432f60269e7418938\"\u003e\u003ccode\u003e0a774c7\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/ad2b76e4059c9d1e1ddbcf7f40c120f918d8ee59\"\u003e\u003ccode\u003ead2b76e\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): append fixes in prefer-on-push-change-detection, use-inje...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.4.0/packages/eslint-plugin\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-eslint/eslint-plugin-template` from 21.3.1 to 21.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e@​angular-eslint/eslint-plugin-template's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.4.0\u003c/h2\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [cyclomatic-complexity] add \u003ccode\u003evariant\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.57.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.6 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.1.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.8 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.58.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2984\"\u003e#2984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.9 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.59.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.11 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3019\"\u003e#3019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.3.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e append fixes in prefer-on-push-change-detection, use-injectable-provided-in (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2969\"\u003e#2969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-template-literal] do not check inline templates (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [no-non-null-assertion] report nested arrays (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [eqeqeq]  could not destructure null (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eschematics:\u003c/strong\u003e sync application schema with upstream \u003ccode\u003e@​schematics/angular\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003cli\u003egithubuser578 \u003ca href=\"https://github.com/githubuser578\"\u003e\u003ccode\u003e@​githubuser578\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/CHANGELOG.md\"\u003e@​angular-eslint/eslint-plugin-template's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [cyclomatic-complexity] add \u003ccode\u003evariant\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-template-literal] do not check inline templates (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [eqeqeq] could not destructure null (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [no-non-null-assertion] report nested arrays (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egithubuser578 \u003ca href=\"https://github.com/githubuser578\"\u003e\u003ccode\u003e@​githubuser578\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/0a774c724574c3c35acf9ba432f60269e7418938\"\u003e\u003ccode\u003e0a774c7\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/bfd04b2426611e2acab48e776d99a6546d00cf42\"\u003e\u003ccode\u003ebfd04b2\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [prefer-template-literal] do not check inline templates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/d8a063c15cf7db8c1c4a2f19e689805a9c80e0be\"\u003e\u003ccode\u003ed8a063c\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin-template): [eqeqeq]  could not destructure null (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template/issues/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/24373da714b8392cbb4d1c7af0dde78735e42604\"\u003e\u003ccode\u003e24373da\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin-template): [no-non-null-assertion] report nested arrays (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/bf94ba7cf1fca8465053d05d72322cc1440e0d38\"\u003e\u003ccode\u003ebf94ba7\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin-template): [cyclomatic-complexity] add \u003ccode\u003evariant\u003c/code\u003e option (#...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.4.0/packages/eslint-plugin-template\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-eslint/schematics` from 21.3.1 to 21.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e@​angular-eslint/schematics's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.4.0\u003c/h2\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [cyclomatic-complexity] add \u003ccode\u003evariant\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.57.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.6 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.1.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.8 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.58.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2984\"\u003e#2984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.9 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.59.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.11 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3019\"\u003e#3019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.3.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e append fixes in prefer-on-push-change-detection, use-injectable-provided-in (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2969\"\u003e#2969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-template-literal] do not check inline templates (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [no-non-null-assertion] report nested arrays (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [eqeqeq]  could not destructure null (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eschematics:\u003c/strong\u003e sync application schema with upstream \u003ccode\u003e@​schematics/angular\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003cli\u003egithubuser578 \u003ca href=\"https://github.com/githubuser578\"\u003e\u003ccode\u003e@​githubuser578\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/schematics/CHANGELOG.md\"\u003e@​angular-eslint/schematics's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eschematics:\u003c/strong\u003e sync application schema ...\n\n_Description has been truncated_","html_url":"https://github.com/b310-digital/teammapper/pull/1297","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/b310-digital%2Fteammapper/issues/1297","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1297/packages"}},{"old_version":"21.3.1","new_version":"21.4.0","update_type":"minor","path":null,"pr_created_at":"2026-05-17T18:04:34.000Z","version_change":"21.3.1 → 21.4.0","issue":{"uuid":"4464460890","node_id":"PR_kwDORN0lL87caz4_","number":277,"state":"closed","title":"chore(deps)(deps-dev): bump @angular-eslint/builder from 21.3.1 to 21.4.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-18T01:19:40.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-17T18:04:34.000Z","updated_at":"2026-05-18T01:19:42.000Z","time_to_close":26106,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps-dev)","packages":[{"name":"@angular-eslint/builder","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":null,"ecosystem":"npm"},"body":"Bumps [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) from 21.3.1 to 21.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e@​angular-eslint/builder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.4.0\u003c/h2\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [cyclomatic-complexity] add \u003ccode\u003evariant\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.57.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.6 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.1.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.8 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.58.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2984\"\u003e#2984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.9 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.59.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.11 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3019\"\u003e#3019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.3.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e append fixes in prefer-on-push-change-detection, use-injectable-provided-in (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2969\"\u003e#2969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-template-literal] do not check inline templates (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [no-non-null-assertion] report nested arrays (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [eqeqeq]  could not destructure null (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eschematics:\u003c/strong\u003e sync application schema with upstream \u003ccode\u003e@​schematics/angular\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003cli\u003egithubuser578 \u003ca href=\"https://github.com/githubuser578\"\u003e\u003ccode\u003e@​githubuser578\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e@​angular-eslint/builder's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/0a774c724574c3c35acf9ba432f60269e7418938\"\u003e\u003ccode\u003e0a774c7\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/cea1779a056ce7e16b80b017630b625e375e6ba6\"\u003e\u003ccode\u003ecea1779\u003c/code\u003e\u003c/a\u003e feat(builder): add apply-suppressions option (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/28434e76fde2d26e3c009749dd4cc20a9604fa15\"\u003e\u003ccode\u003e28434e7\u003c/code\u003e\u003c/a\u003e chore: update swc monorepo (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2987\"\u003e#2987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.4.0/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular-eslint/builder\u0026package-manager=npm_and_yarn\u0026previous-version=21.3.1\u0026new-version=21.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Willseed/report-via-mobile/pull/277","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Willseed%2Freport-via-mobile/issues/277","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/277/packages"}},{"old_version":"21.2.0","new_version":"21.4.0","update_type":"minor","path":null,"pr_created_at":"2026-05-16T18:10:47.000Z","version_change":"21.2.0 → 21.4.0","issue":{"uuid":"4460852760","node_id":"PR_kwDOC4Vf1M7cQNG7","number":740,"state":"open","title":"Bump @angular-eslint/builder from 21.2.0 to 21.4.0","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-16T18:10:47.000Z","updated_at":"2026-05-16T18:10:48.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"@angular-eslint/builder","old_version":"21.2.0","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":null,"ecosystem":"npm"},"body":"Bumps [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) from 21.2.0 to 21.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e@​angular-eslint/builder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.4.0\u003c/h2\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [cyclomatic-complexity] add \u003ccode\u003evariant\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.57.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.6 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.1.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.8 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.58.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2984\"\u003e#2984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.9 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.59.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.11 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3019\"\u003e#3019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.3.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e append fixes in prefer-on-push-change-detection, use-injectable-provided-in (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2969\"\u003e#2969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-template-literal] do not check inline templates (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [no-non-null-assertion] report nested arrays (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [eqeqeq]  could not destructure null (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eschematics:\u003c/strong\u003e sync application schema with upstream \u003ccode\u003e@​schematics/angular\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003cli\u003egithubuser578 \u003ca href=\"https://github.com/githubuser578\"\u003e\u003ccode\u003e@​githubuser578\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev21.3.1\u003c/h2\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.0.3 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2949\"\u003e#2949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2954\"\u003e#2954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] properly handle statements with unary operators (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2926\"\u003e#2926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eprefer-self-closing-tags:\u003c/strong\u003e add selectedcontent nonAriaElements (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e@​angular-eslint/builder's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/0a774c724574c3c35acf9ba432f60269e7418938\"\u003e\u003ccode\u003e0a774c7\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/cea1779a056ce7e16b80b017630b625e375e6ba6\"\u003e\u003ccode\u003ecea1779\u003c/code\u003e\u003c/a\u003e feat(builder): add apply-suppressions option (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/28434e76fde2d26e3c009749dd4cc20a9604fa15\"\u003e\u003ccode\u003e28434e7\u003c/code\u003e\u003c/a\u003e chore: update swc monorepo (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2987\"\u003e#2987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/8f2afdce28d4cbdac792465b33aff35915af23b5\"\u003e\u003ccode\u003e8f2afdc\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/77099ee61cda76136038dce9f21d3af6071a7d06\"\u003e\u003ccode\u003e77099ee\u003c/code\u003e\u003c/a\u003e chore: ensure dist artifacts are available for e2e publishing in DTE (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/af8900f087b09556bfaddd815ce483bf7b0262ea\"\u003e\u003ccode\u003eaf8900f\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix: narrow build target cache outputs to avoid clobbering compile ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/7e173918eb48b2db41ce4d5a934567dab26fe54b\"\u003e\u003ccode\u003e7e17391\u003c/code\u003e\u003c/a\u003e fix: narrow build target cache outputs to avoid clobbering compile artifacts ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/a959e4d2804bbeb3cbc7caaa9c2fb2be9da3348e\"\u003e\u003ccode\u003ea959e4d\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/5c214854f897cb698563f53db6b9bddfb23e4d8e\"\u003e\u003ccode\u003e5c21485\u003c/code\u003e\u003c/a\u003e chore(builder): change builder tests to be cross-platform (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/3ef7fb157e866d76ae76d41b706b92efbd54d72d\"\u003e\u003ccode\u003e3ef7fb1\u003c/code\u003e\u003c/a\u003e feat: add support for ESLint v10 (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.4.0/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular-eslint/builder\u0026package-manager=npm_and_yarn\u0026previous-version=21.2.0\u0026new-version=21.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/michaelsouellette/michaelsouellette.github.io/pull/740","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelsouellette%2Fmichaelsouellette.github.io/issues/740","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/740/packages"}},{"old_version":"21.3.1","new_version":"21.4.0","update_type":"minor","path":null,"pr_created_at":"2026-05-16T02:20:10.000Z","version_change":"21.3.1 → 21.4.0","issue":{"uuid":"4458195457","node_id":"PR_kwDOPl75Hc7cIVp5","number":40,"state":"closed","title":"chore(deps): bump the npm-non-major group with 22 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-23T02:18:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-16T02:20:10.000Z","updated_at":"2026-05-23T02:18:53.000Z","time_to_close":604722,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"npm-non-major","update_count":22,"packages":[{"name":"eslint-plugin-storybook","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@angular-eslint/builder","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular/aria","old_version":"21.2.10","new_version":"21.2.11","repository_url":"https://github.com/angular/components"},{"name":"@angular/build","old_version":"21.2.3","new_version":"21.2.11","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/cdk","old_version":"21.2.10","new_version":"21.2.11","repository_url":"https://github.com/angular/components"},{"name":"@angular/cli","old_version":"21.2.10","new_version":"21.2.11","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/common","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler-cli","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/core","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/forms","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/router","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@storybook/addon-a11y","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/angular","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@types/node","old_version":"25.6.2","new_version":"25.8.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"angular-eslint","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"eslint","old_version":"10.3.0","new_version":"10.4.0","repository_url":"https://github.com/eslint/eslint"},{"name":"storybook","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"typescript-eslint","old_version":"8.59.2","new_version":"8.59.3","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"vitest","old_version":"4.1.5","new_version":"4.1.6","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"ws","old_version":"8.20.0","new_version":"8.20.1","repository_url":"https://github.com/websockets/ws"}],"path":null,"ecosystem":"npm"},"body":"Bumps the npm-non-major group with 22 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [eslint-plugin-storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/eslint-plugin) | `10.3.6` | `10.4.0` |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `21.3.1` | `21.4.0` |\n| [@angular/aria](https://github.com/angular/components) | `21.2.10` | `21.2.11` |\n| [@angular/build](https://github.com/angular/angular-cli) | `21.2.3` | `21.2.11` |\n| [@angular/cdk](https://github.com/angular/components) | `21.2.10` | `21.2.11` |\n| [@angular/cli](https://github.com/angular/angular-cli) | `21.2.10` | `21.2.11` |\n| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `21.2.12` | `21.2.13` |\n| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `21.2.12` | `21.2.13` |\n| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `21.2.12` | `21.2.13` |\n| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `21.2.12` | `21.2.13` |\n| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `21.2.12` | `21.2.13` |\n| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `21.2.12` | `21.2.13` |\n| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `21.2.12` | `21.2.13` |\n| [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `10.3.6` | `10.4.0` |\n| [@storybook/angular](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/angular) | `10.3.6` | `10.4.0` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.6.2` | `25.8.0` |\n| [angular-eslint](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/angular-eslint) | `21.3.1` | `21.4.0` |\n| [eslint](https://github.com/eslint/eslint) | `10.3.0` | `10.4.0` |\n| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/core) | `10.3.6` | `10.4.0` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.59.2` | `8.59.3` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.5` | `4.1.6` |\n| [ws](https://github.com/websockets/ws) | `8.20.0` | `8.20.1` |\n\nUpdates `eslint-plugin-storybook` from 10.3.6 to 10.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/storybookjs/storybook/releases\"\u003eeslint-plugin-storybook's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.4.0\u003c/h2\u003e\n\u003ch2\u003e10.4.0\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cem\u003eAI-assisted setup, change-aware review, and stronger framework support\u003c/em\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eStorybook 10.4 contains hundreds of fixes and improvements including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e🤖 Agentic Setup: New CLI workflow for AI-assisted Storybook setup and onboarding\u003c/li\u003e\n\u003cli\u003e🔍 Change review: Sidebar filtering to highlight new, modified, and related stories based on git changes\u003c/li\u003e\n\u003cli\u003e🧭 Sidebar review tools: Status filtering, URL-persisted filters, and clearer review signals in the sidebar\u003c/li\u003e\n\u003cli\u003e⚛️ TanStack React: New `@storybook/tanstack-react` framework with routing and server function support\u003c/li\u003e\n\u003cli\u003e🧩 React MCP: Faster, more accurate component docgen powered by the TypeScript Language Server\u003c/li\u003e\n\u003cli\u003e📱 React Native: Zero config RN project initialization\u003c/li\u003e\n\u003cli\u003e🤝 Sharing: Easily publish and share your local Storybook with teammates, powered by Chromatic\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003eA11y: Add aria-live announcements via \u003ccode\u003e@​react-aria/live-announcer\u003c/code\u003e - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/33970\"\u003e#33970\u003c/a\u003e, thanks \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eA11y: Improve boolean control contrast in forced colors mode - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34204\"\u003e#34204\u003c/a\u003e, thanks \u003ca href=\"https://github.com/anchmelev\"\u003e\u003ccode\u003e@​anchmelev\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eActions: Fix state mutation and keep newest actions when limit reached - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34286\"\u003e#34286\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAddon-Docs: Add Reset story button to re-render stories in docs - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34086\"\u003e#34086\u003c/a\u003e, thanks \u003ca href=\"https://github.com/6810779s\"\u003e\u003ccode\u003e@​6810779s\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAddon-Docs: Avoid rerendering static Source blocks - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34206\"\u003e#34206\u003c/a\u003e, thanks \u003ca href=\"https://github.com/anchmelev\"\u003e\u003ccode\u003e@​anchmelev\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAddon-Vitest: Use Vitest's provide-API for injecting values - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34518\"\u003e#34518\u003c/a\u003e, thanks \u003ca href=\"https://github.com/JReinhold\"\u003e\u003ccode\u003e@​JReinhold\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAgentic Setup: Add --extensive for an extra prompt - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34730\"\u003e#34730\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAgentic Setup: Allow failed stories to persist - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34717\"\u003e#34717\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAgentic Setup: Keep sample content if users want onboarding - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34704\"\u003e#34704\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAgentic Setup: Rework ai-init-opt-in logic - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34739\"\u003e#34739\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAngular: Use Story ID for renderer IDs (including standalone stories) - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/33982\"\u003e#33982\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ValentinFunk\"\u003e\u003ccode\u003e@​ValentinFunk\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAutomigration: Move RN on-device addons to `deviceAddons` - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34659\"\u003e#34659\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ndelangen\"\u003e\u003ccode\u003e@​ndelangen\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eBuilder-Vite: Add onModuleGraphChange method - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34323\"\u003e#34323\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ghengeveld\"\u003e\u003ccode\u003e@​ghengeveld\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Add automigrate check for 'storybook' package name conflict - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34290\"\u003e#34290\u003c/a\u003e, thanks \u003ca href=\"https://github.com/whdjh\"\u003e\u003ccode\u003e@​whdjh\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Add react-vite to tanstack-react automigration - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34718\"\u003e#34718\u003c/a\u003e, thanks \u003ca href=\"https://github.com/huang-julien\"\u003e\u003ccode\u003e@​huang-julien\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Change mock event detection - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34586\"\u003e#34586\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yannbf\"\u003e\u003ccode\u003e@​yannbf\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Explicitly tell whether smoke tests passed or failed - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34419\"\u003e#34419\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Fix Next.js Vite automigration corrupting configs already using `@storybook/nextjs-vite` - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34249\"\u003e#34249\u003c/a\u003e, thanks \u003ca href=\"https://github.com/nathanjessen\"\u003e\u003ccode\u003e@​nathanjessen\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Fix agentic check - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34678\"\u003e#34678\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yannbf\"\u003e\u003ccode\u003e@​yannbf\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Handle minimumReleaseAge conflicts across package managers - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34769\"\u003e#34769\u003c/a\u003e, thanks \u003ca href=\"https://github.com/JReinhold\"\u003e\u003ccode\u003e@​JReinhold\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Improve package incompatibility detection and warning - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34559\"\u003e#34559\u003c/a\u003e, thanks \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Improve self-healing scoring observability - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34699\"\u003e#34699\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yannbf\"\u003e\u003ccode\u003e@​yannbf\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Introduce Agentic Setup workflow - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34297\"\u003e#34297\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yannbf\"\u003e\u003ccode\u003e@​yannbf\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Remove extensive prompt option  - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34740\"\u003e#34740\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yannbf\"\u003e\u003ccode\u003e@​yannbf\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Streamline Node.js version detection code - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34440\"\u003e#34440\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eChange-Detection: Set GIT_OPTIONAL_LOCKS=0 to avoid blocking commits - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34726\"\u003e#34726\u003c/a\u003e, thanks \u003ca href=\"https://github.com/valentinpalkovic\"\u003e\u003ccode\u003e@​valentinpalkovic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCli: Set ai prompt to yes if yes flag for react-vite to tanstack migration - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34743\"\u003e#34743\u003c/a\u003e, thanks \u003ca href=\"https://github.com/huang-julien\"\u003e\u003ccode\u003e@​huang-julien\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCode: Fix inline code blocks inside links removing link affordance - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/33903\"\u003e#33903\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yatishgoel\"\u003e\u003ccode\u003e@​yatishgoel\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eControls: Add maxPresetColors option to ColorControl - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/33998\"\u003e#33998\u003c/a\u003e, thanks \u003ca href=\"https://github.com/mixelburg\"\u003e\u003ccode\u003e@​mixelburg\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCore: Add `ChangeDetectionService` and wire up builder-vite - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34369\"\u003e#34369\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ghengeveld\"\u003e\u003ccode\u003e@​ghengeveld\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCore: Add changeDetection feature flag - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34314\"\u003e#34314\u003c/a\u003e, thanks \u003ca href=\"https://github.com/valentinpalkovic\"\u003e\u003ccode\u003e@​valentinpalkovic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCore: Barrel-aware named import resolution for change detection - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34675\"\u003e#34675\u003c/a\u003e, thanks \u003ca href=\"https://github.com/valentinpalkovic\"\u003e\u003ccode\u003e@​valentinpalkovic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md\"\u003eeslint-plugin-storybook's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e10.4.0\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cem\u003eAI-assisted setup, change-aware review, and stronger framework support\u003c/em\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eStorybook 10.4 contains hundreds of fixes and improvements including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e🤖 Agentic Setup: New CLI workflow for AI-assisted Storybook setup and onboarding\u003c/li\u003e\n\u003cli\u003e🔍 Change review: Sidebar filtering to highlight new, modified, and related stories based on git changes\u003c/li\u003e\n\u003cli\u003e🧭 Sidebar review tools: Status filtering, URL-persisted filters, and clearer review signals in the sidebar\u003c/li\u003e\n\u003cli\u003e⚛️ TanStack React: New \u003ccode\u003e@storybook/tanstack-react\u003c/code\u003e framework with routing and server function support\u003c/li\u003e\n\u003cli\u003e🧩 React MCP: Faster, more accurate component docgen powered by the TypeScript Language Server\u003c/li\u003e\n\u003cli\u003e📱 React Native: Zero config RN project initialization\u003c/li\u003e\n\u003cli\u003e🤝 Sharing: Easily publish and share your local Storybook with teammates, powered by Chromatic\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003eA11y: Add aria-live announcements via \u003ccode\u003e@​react-aria/live-announcer\u003c/code\u003e - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/33970\"\u003e#33970\u003c/a\u003e, thanks \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eA11y: Improve boolean control contrast in forced colors mode - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34204\"\u003e#34204\u003c/a\u003e, thanks \u003ca href=\"https://github.com/anchmelev\"\u003e\u003ccode\u003e@​anchmelev\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eActions: Fix state mutation and keep newest actions when limit reached - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34286\"\u003e#34286\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAddon-Docs: Add Reset story button to re-render stories in docs - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34086\"\u003e#34086\u003c/a\u003e, thanks \u003ca href=\"https://github.com/6810779s\"\u003e\u003ccode\u003e@​6810779s\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAddon-Docs: Avoid rerendering static Source blocks - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34206\"\u003e#34206\u003c/a\u003e, thanks \u003ca href=\"https://github.com/anchmelev\"\u003e\u003ccode\u003e@​anchmelev\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAddon-Vitest: Use Vitest's provide-API for injecting values - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34518\"\u003e#34518\u003c/a\u003e, thanks \u003ca href=\"https://github.com/JReinhold\"\u003e\u003ccode\u003e@​JReinhold\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAgentic Setup: Add --extensive for an extra prompt - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34730\"\u003e#34730\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAgentic Setup: Allow failed stories to persist - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34717\"\u003e#34717\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAgentic Setup: Keep sample content if users want onboarding - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34704\"\u003e#34704\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAgentic Setup: Rework ai-init-opt-in logic - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34739\"\u003e#34739\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAngular: Use Story ID for renderer IDs (including standalone stories) - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/33982\"\u003e#33982\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ValentinFunk\"\u003e\u003ccode\u003e@​ValentinFunk\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAutomigration: Move RN on-device addons to \u003ccode\u003edeviceAddons\u003c/code\u003e - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34659\"\u003e#34659\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ndelangen\"\u003e\u003ccode\u003e@​ndelangen\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eBuilder-Vite: Add onModuleGraphChange method - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34323\"\u003e#34323\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ghengeveld\"\u003e\u003ccode\u003e@​ghengeveld\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Add automigrate check for 'storybook' package name conflict - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34290\"\u003e#34290\u003c/a\u003e, thanks \u003ca href=\"https://github.com/whdjh\"\u003e\u003ccode\u003e@​whdjh\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Add react-vite to tanstack-react automigration - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34718\"\u003e#34718\u003c/a\u003e, thanks \u003ca href=\"https://github.com/huang-julien\"\u003e\u003ccode\u003e@​huang-julien\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Change mock event detection - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34586\"\u003e#34586\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yannbf\"\u003e\u003ccode\u003e@​yannbf\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Explicitly tell whether smoke tests passed or failed - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34419\"\u003e#34419\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Fix Next.js Vite automigration corrupting configs already using \u003ccode\u003e@storybook/nextjs-vite\u003c/code\u003e - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34249\"\u003e#34249\u003c/a\u003e, thanks \u003ca href=\"https://github.com/nathanjessen\"\u003e\u003ccode\u003e@​nathanjessen\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Fix agentic check - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34678\"\u003e#34678\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yannbf\"\u003e\u003ccode\u003e@​yannbf\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Handle minimumReleaseAge conflicts across package managers - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34769\"\u003e#34769\u003c/a\u003e, thanks \u003ca href=\"https://github.com/JReinhold\"\u003e\u003ccode\u003e@​JReinhold\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Improve package incompatibility detection and warning - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34559\"\u003e#34559\u003c/a\u003e, thanks \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Improve self-healing scoring observability - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34699\"\u003e#34699\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yannbf\"\u003e\u003ccode\u003e@​yannbf\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Introduce Agentic Setup workflow - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34297\"\u003e#34297\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yannbf\"\u003e\u003ccode\u003e@​yannbf\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Remove extensive prompt option  - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34740\"\u003e#34740\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yannbf\"\u003e\u003ccode\u003e@​yannbf\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCLI: Streamline Node.js version detection code - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34440\"\u003e#34440\u003c/a\u003e, thanks \u003ca href=\"https://github.com/Sidnioulz\"\u003e\u003ccode\u003e@​Sidnioulz\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eChange-Detection: Set GIT_OPTIONAL_LOCKS=0 to avoid blocking commits - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34726\"\u003e#34726\u003c/a\u003e, thanks \u003ca href=\"https://github.com/valentinpalkovic\"\u003e\u003ccode\u003e@​valentinpalkovic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCli: Set ai prompt to yes if yes flag for react-vite to tanstack migration - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34743\"\u003e#34743\u003c/a\u003e, thanks \u003ca href=\"https://github.com/huang-julien\"\u003e\u003ccode\u003e@​huang-julien\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCode: Fix inline code blocks inside links removing link affordance - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/33903\"\u003e#33903\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yatishgoel\"\u003e\u003ccode\u003e@​yatishgoel\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eControls: Add maxPresetColors option to ColorControl - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/33998\"\u003e#33998\u003c/a\u003e, thanks \u003ca href=\"https://github.com/mixelburg\"\u003e\u003ccode\u003e@​mixelburg\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCore: Add \u003ccode\u003eChangeDetectionService\u003c/code\u003e and wire up builder-vite - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34369\"\u003e#34369\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ghengeveld\"\u003e\u003ccode\u003e@​ghengeveld\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCore: Add changeDetection feature flag - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34314\"\u003e#34314\u003c/a\u003e, thanks \u003ca href=\"https://github.com/valentinpalkovic\"\u003e\u003ccode\u003e@​valentinpalkovic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCore: Barrel-aware named import resolution for change detection - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34675\"\u003e#34675\u003c/a\u003e, thanks \u003ca href=\"https://github.com/valentinpalkovic\"\u003e\u003ccode\u003e@​valentinpalkovic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCore: Ensure process termination on SIGINT when telemetry is disabled - \u003ca href=\"https://redirect.github.com/storybookjs/storybook/pull/34585\"\u003e#34585\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ghengeveld\"\u003e\u003ccode\u003e@​ghengeveld\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/storybookjs/storybook/commit/f8c16d115cfcf0f79125b358266c37e5343bb70d\"\u003e\u003ccode\u003ef8c16d1\u003c/code\u003e\u003c/a\u003e Bump version from \u0026quot;10.4.0-beta.0\u0026quot; to \u0026quot;10.4.0\u0026quot; [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/storybookjs/storybook/commit/e02da0b0d4cf9673999184b8f11c85b026954b69\"\u003e\u003ccode\u003ee02da0b\u003c/code\u003e\u003c/a\u003e Bump version from \u0026quot;10.4.0-alpha.19\u0026quot; to \u0026quot;10.4.0-beta.0\u0026quot; [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/storybookjs/storybook/commit/429fb3e42609382e9d578cce3c8aa9817182c3c1\"\u003e\u003ccode\u003e429fb3e\u003c/code\u003e\u003c/a\u003e Bump version from \u0026quot;10.4.0-alpha.18\u0026quot; to \u0026quot;10.4.0-alpha.19\u0026quot; [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/storybookjs/storybook/commit/488dd0840b7e489b33c2c65975a195bcc991bec7\"\u003e\u003ccode\u003e488dd08\u003c/code\u003e\u003c/a\u003e Bump version from \u0026quot;10.4.0-alpha.17\u0026quot; to \u0026quot;10.4.0-alpha.18\u0026quot; [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/storybookjs/storybook/commit/f191df779aabd461fa3f5e65f57f2171681db255\"\u003e\u003ccode\u003ef191df7\u003c/code\u003e\u003c/a\u003e Bump version from \u0026quot;10.4.0-alpha.16\u0026quot; to \u0026quot;10.4.0-alpha.17\u0026quot; [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/storybookjs/storybook/commit/a80ca8fde2b65dfd5fcfc53f629dd3f39f733cc5\"\u003e\u003ccode\u003ea80ca8f\u003c/code\u003e\u003c/a\u003e Bump version from \u0026quot;10.4.0-alpha.15\u0026quot; to \u0026quot;10.4.0-alpha.16\u0026quot; [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/storybookjs/storybook/commit/c212c9e59bbc6ce27ad996bdc53a2b77436b83a3\"\u003e\u003ccode\u003ec212c9e\u003c/code\u003e\u003c/a\u003e refactor: fully move to oxfmt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/storybookjs/storybook/commit/a5e4fb5eb888e45c18e9b98f9910879f66259b61\"\u003e\u003ccode\u003ea5e4fb5\u003c/code\u003e\u003c/a\u003e Merge branch 'next' into chore/docs_oxfmt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/storybookjs/storybook/commit/fa7a92601b96887144f2b38c1e686e26e11ae41e\"\u003e\u003ccode\u003efa7a926\u003c/code\u003e\u003c/a\u003e fix: make docs generation oxfmt friendly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/storybookjs/storybook/commit/f1363a4c1eaabffb2d5d63b63e77e1beb9f8d68e\"\u003e\u003ccode\u003ef1363a4\u003c/code\u003e\u003c/a\u003e Bump version from \u0026quot;10.4.0-alpha.14\u0026quot; to \u0026quot;10.4.0-alpha.15\u0026quot; [skip ci]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/storybookjs/storybook/commits/v10.4.0/code/lib/eslint-plugin\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-eslint/builder` from 21.3.1 to 21.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e@​angular-eslint/builder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.4.0\u003c/h2\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [cyclomatic-complexity] add \u003ccode\u003evariant\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.57.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.6 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.1.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.8 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.58.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2984\"\u003e#2984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.9 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.59.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.11 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3019\"\u003e#3019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.3.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e append fixes in prefer-on-push-change-detection, use-injectable-provided-in (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2969\"\u003e#2969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-template-literal] do not check inline templates (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [no-non-null-assertion] report nested arrays (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [eqeqeq]  could not destructure null (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eschematics:\u003c/strong\u003e sync application schema with upstream \u003ccode\u003e@​schematics/angular\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003cli\u003egithubuser578 \u003ca href=\"https://github.com/githubuser578\"\u003e\u003ccode\u003e@​githubuser578\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e@​angular-eslint/builder's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/0a774c724574c3c35acf9ba432f60269e7418938\"\u003e\u003ccode\u003e0a774c7\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/cea1779a056ce7e16b80b017630b625e375e6ba6\"\u003e\u003ccode\u003ecea1779\u003c/code\u003e\u003c/a\u003e feat(builder): add apply-suppressions option (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/28434e76fde2d26e3c009749dd4cc20a9604fa15\"\u003e\u003ccode\u003e28434e7\u003c/code\u003e\u003c/a\u003e chore: update swc monorepo (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2987\"\u003e#2987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.4.0/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/aria` from 21.2.10 to 21.2.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/releases\"\u003e@​angular/aria's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.11\u003c/h2\u003e\n\u003cp\u003eNo user facing changes in this release\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/blob/main/CHANGELOG.md\"\u003e@​angular/aria's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.11 \u0026quot;crystal ball\u0026quot; (2026-05-13)\u003c/h1\u003e\n\u003cp\u003eNo user facing changes in this release\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.8 \u0026quot;plastic-wallaby\u0026quot; (2026-05-06)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003earia\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe legacy combobox and autocomplete implementations have been removed. Use the new standalone combobox instead.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efeat(aria/combobox): promote simple-combobox to stable un-prefixed combobox\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eRelocates public, private, and example directories to clean \u003ccode\u003ecombobox\u003c/code\u003e entry points.\u003c/li\u003e\n\u003cli\u003eRenames internal layout symbols, selectors, and uppercase tokens (\u003ccode\u003eSIMPLE_COMBOBOX_POPUP\u003c/code\u003e -\u0026gt; \u003ccode\u003eCOMBOBOX_POPUP\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eEstablishes full documentation extraction parity with the \u003ccode\u003ejson_api\u003c/code\u003e Bazel rule target.\u003c/li\u003e\n\u003cli\u003eStandardizes the accompanying toolbar component showcase into the clean \u003ccode\u003earia-toolbar\u003c/code\u003e path.\u003c/li\u003e\n\u003cli\u003eRe-routes dev-app navigation links and migrates public API golden records.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eSimpleCombobox\u003c/code\u003e has been promoted to \u003ccode\u003eCombobox\u003c/code\u003e. All \u003ccode\u003esimple-combobox\u003c/code\u003e prefixed symbols, selectors, and tokens have been renamed to use the \u003ccode\u003ecombobox\u003c/code\u003e prefix.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(aria/combobox): relocate and restructure autocomplete and toolbar examples\nRelocate the autocomplete examples to \u003ccode\u003esrc/components-examples/aria/autocomplete\u003c/code\u003e and toolbar examples to \u003ccode\u003esrc/components-examples/aria/toolbar\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eRestore naming continuity with the historical codebase by stripping redundant prefixes from example filenames and component selectors.\u003c/li\u003e\n\u003cli\u003eSync dev-app preview routing layout paths and strict Bazel target dependency links.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eCDK_DESCRIBEDBY_HOST_ATTRIBUTE\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCDK_DESCRIBEDBY_ID_PREFIX\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003einjector\u003c/code\u003e parameter of the \u003ccode\u003eConfigurableFocusTrap\u003c/code\u003e and \u003ccode\u003eFocusTrap\u003c/code\u003e constructors is now required.\u003c/li\u003e\n\u003cli\u003eThe boolean parameter of \u003ccode\u003eConfigurableFocusTrapFactory.create\u003c/code\u003e has been replaced with a config object.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMESSAGES_CONTAINER_ID\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eevent\u003c/code\u003e parameter of \u003ccode\u003eDropListRef.drop\u003c/code\u003e is now required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eContextMenuTracker\u003c/code\u003e has been renamed to \u003ccode\u003eMenuTracker\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eMatListOption.checkboxPosition\u003c/code\u003e has been removed. use \u003ccode\u003etogglePosition\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMatListOptionCheckboxPosition\u003c/code\u003e has been renamed to \u003ccode\u003eMatListOptionTogglePosition\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eArrowViewState\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eArrowViewStateTransition\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003egoogle-maps\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/b8201edeef62258c3d1e1ebeaf8ee14766918c22\"\u003eb8201edee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edeprecate heatmap layer (\u003ca href=\"https://redirect.github.com/angular/components/pull/33208\"\u003e#33208\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/add8f16c01ad683b9e2ab9e1bf5ad3a984dd9921\"\u003eadd8f16c0\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003elist:\u003c/strong\u003e breaking changes for v22\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/9d73c98b57d46454d51344bbd59055bc06dabc6b\"\u003e9d73c98b5\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003emenu:\u003c/strong\u003e missing panelClass getter (\u003ca href=\"https://redirect.github.com/angular/components/pull/33191\"\u003e#33191\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/75718e4fbebce2a7f8aa30550a12d58a5a6f9b93\"\u003e75718e4fb\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esort:\u003c/strong\u003e breaking changes for v22\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/1238d1573e706cbf0a2cabcc97e59d28a9499ecb\"\u003e\u003ccode\u003e1238d15\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.11 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/components/compare/v21.2.10...v21.2.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/build` from 21.2.3 to 21.2.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular-cli/releases\"\u003e@​angular/build's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.11\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003e\u003cimg src=\"https://img.shields.io/badge/bbd63b7a5-fix-green\" alt=\"fix - bbd63b7a5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erobustly parse npm manifest from array\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003e\u003cimg src=\"https://img.shields.io/badge/eafe1a719-fix-green\" alt=\"fix - eafe1a719\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e\u003cimg src=\"https://img.shields.io/badge/7a116a80d-fix-green\" alt=\"fix - 7a116a80d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove stateful flag from URL_PARAMETER_REGEXP\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.10\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bb861191328fc2d25bd5ee99b0c8edc5e49d3a7d\"\u003e\u003cimg src=\"https://img.shields.io/badge/bb8611913-fix-green\" alt=\"fix - bb8611913\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erestrict MCP workspace access to allowed client roots during resolution\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.9\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​schematics/angular\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/e7abeb5c74024daf125070c9b4f7f8d2426bab66\"\u003e\u003cimg src=\"https://img.shields.io/badge/e7abeb5c7-fix-green\" alt=\"fix - e7abeb5c7\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd missing imports for focus and skip APIs in refactor-jasmine-vitest\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/233deef01288c6aa39a048d6bd66a1f09595dc15\"\u003e\u003cimg src=\"https://img.shields.io/badge/233deef01-fix-green\" alt=\"fix - 233deef01\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix broken img ref in ai-tutor\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7cea9885c64a747b391b74e6434cdf005c843766\"\u003e\u003cimg src=\"https://img.shields.io/badge/7cea9885c-fix-green\" alt=\"fix - 7cea9885c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eintroduce initial package manager workspace awareness\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/5b1a5b7434323eb383df1f53c389fe9dc948a785\"\u003e\u003cimg src=\"https://img.shields.io/badge/5b1a5b743-fix-green\" alt=\"fix - 5b1a5b743\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove standalone true ref in ai tutor\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/94023f62c5b51a669ff3187cc062057f82c79c52\"\u003e\u003cimg src=\"https://img.shields.io/badge/94023f62c-fix-green\" alt=\"fix - 94023f62c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eintroduce trustProxyHeaders option to safely validate and sanitize proxy headers\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/5ffe5c309a92e7fd42f1059171924c5942f35c36\"\u003e\u003cimg src=\"https://img.shields.io/badge/5ffe5c309-fix-green\" alt=\"fix - 5ffe5c309\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd support for configuring trusted proxy headers via environment variable\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/930ada9b73c5172d57830ce42a5a336ae9483a54\"\u003e\u003cimg src=\"https://img.shields.io/badge/930ada9b7-fix-green\" alt=\"fix - 930ada9b7\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edecode route segments when building and matching route tree\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/0dc8a440ca9e4242edb69ba5a8147fef1dddc4f0\"\u003e\u003cimg src=\"https://img.shields.io/badge/0dc8a440c-fix-green\" alt=\"fix - 0dc8a440c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003euse router to normalize URLs for comparison\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.8\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/e91280c05afe7b35b4f01e0eb2800f1ee21fd2ea\"\u003e\u003cimg src=\"https://img.shields.io/badge/e91280c05-fix-green\" alt=\"fix - e91280c05\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edynamically resolve project Angular CLI executable inside MCP tools\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/01af6741bfe489c3c8fd86feab8b5f14cdb92562\"\u003e\u003cimg src=\"https://img.shields.io/badge/01af6741b-fix-green\" alt=\"fix - 01af6741b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eignore EBADF file system errors during MCP project scan\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/f7a3e6ed871ff711723dcfdbaa8c3ae497f89a5b\"\u003e\u003cimg src=\"https://img.shields.io/badge/f7a3e6ed8-fix-green\" alt=\"fix - f7a3e6ed8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003euse headless option in MCP test tool\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular-devkit/build-angular\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/00336c037dd77d2b441f797580eb8a12c044006b\"\u003e\u003cimg src=\"https://img.shields.io/badge/00336c037-fix-green\" alt=\"fix - 00336c037\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure route has leading slash in prerender builder\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/e87d302d6df3f4d9fa9338e3d377e09a2e161fc1\"\u003e\u003cimg src=\"https://img.shields.io/badge/e87d302d6-fix-green\" alt=\"fix - e87d302d6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix app-shell route format and\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/build\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular-cli/blob/main/CHANGELOG.md\"\u003e@​angular/build's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.11 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003ebbd63b7a5\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erobustly parse npm manifest from array\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003eeafe1a719\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e7a116a80d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove stateful flag from URL_PARAMETER_REGEXP\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.26 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7cc1871ee50d123853ddf6bd89857b354d647462\"\u003e7cc1871ee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.26 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/842fee0291b787b63fdabcaaac5680b05d395075\"\u003e842fee029\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e21.2.10 (2026-05-06)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bb861191328fc2d25bd5ee99b0c8edc5e49d3a7d\"\u003ebb8611913\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erestrict MCP workspace access to allowed client roots during resolution\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/00e366320108b39e60e67d28d45e5bcc6a044546\"\u003e\u003ccode\u003e00e3663\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.11 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003e\u003ccode\u003eeafe1a7\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/ssr\u003c/code\u003e): allow all hosts in common engine rendering options to prev...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e\u003ccode\u003e7a116a8\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/ssr\u003c/code\u003e): remove stateful flag from URL_PARAMETER_REGEXP\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/a7705fb96a27965b20365b04c79f0e2f386dfd95\"\u003e\u003ccode\u003ea7705fb\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/453ed5b6bf8a18b37cfa099955f37b234ded6003\"\u003e\u003ccode\u003e453ed5b\u003c/code\u003e\u003c/a\u003e build: update github/codeql-action action to v4.35.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/f0f9b2dad6d47d958bf98b52452bd8c944355951\"\u003e\u003ccode\u003ef0f9b2d\u003c/code\u003e\u003c/a\u003e refactor(\u003ccode\u003e@​angular/cli\u003c/code\u003e): add validation and logging to npm manifest parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003e\u003ccode\u003ebbd63b7\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/cli\u003c/code\u003e): robustly parse npm manifest from array\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/64cbd623af655487945ecc2d26afdaea20989330\"\u003e\u003ccode\u003e64cbd62\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.10 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/6f26f4fb9aa039a1afec76e172f58a962615e236\"\u003e\u003ccode\u003e6f26f4f\u003c/code\u003e\u003c/a\u003e build: lock file maintenance\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/111dcc3118d46c60143b1a10bf919a0ef76ec54a\"\u003e\u003ccode\u003e111dcc3\u003c/code\u003e\u003c/a\u003e refactor(\u003ccode\u003e@​angular/cli\u003c/code\u003e): re-add resolveModule for find examples tool\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular-cli/compare/v21.2.3...v21.2.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/cdk` from 21.2.10 to 21.2.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/releases\"\u003e@​angular/cdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.11\u003c/h2\u003e\n\u003cp\u003eNo user facing changes in this release\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/blob/main/CHANGELOG.md\"\u003e@​angular/cdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.11 \u0026quot;crystal ball\u0026quot; (2026-05-13)\u003c/h1\u003e\n\u003cp\u003eNo user facing changes in this release\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.8 \u0026quot;plastic-wallaby\u0026quot; (2026-05-06)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003earia\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe legacy combobox and autocomplete implementations have been removed. Use the new standalone combobox instead.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efeat(aria/combobox): promote simple-combobox to stable un-prefixed combobox\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eRelocates public, private, and example directories to clean \u003ccode\u003ecombobox\u003c/code\u003e entry points.\u003c/li\u003e\n\u003cli\u003eRenames internal layout symbols, selectors, and uppercase tokens (\u003ccode\u003eSIMPLE_COMBOBOX_POPUP\u003c/code\u003e -\u0026gt; \u003ccode\u003eCOMBOBOX_POPUP\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eEstablishes full documentation extraction parity with the \u003ccode\u003ejson_api\u003c/code\u003e Bazel rule target.\u003c/li\u003e\n\u003cli\u003eStandardizes the accompanying toolbar component showcase into the clean \u003ccode\u003earia-toolbar\u003c/code\u003e path.\u003c/li\u003e\n\u003cli\u003eRe-routes dev-app navigation links and migrates public API golden records.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eSimpleCombobox\u003c/code\u003e has been promoted to \u003ccode\u003eCombobox\u003c/code\u003e. All \u003ccode\u003esimple-combobox\u003c/code\u003e prefixed symbols, selectors, and tokens have been renamed to use the \u003ccode\u003ecombobox\u003c/code\u003e prefix.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(aria/combobox): relocate and restructure autocomplete and toolbar examples\nRelocate the autocomplete examples to \u003ccode\u003esrc/components-examples/aria/autocomplete\u003c/code\u003e and toolbar examples to \u003ccode\u003esrc/components-examples/aria/toolbar\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eRestore naming continuity with the historical codebase by stripping redundant prefixes from example filenames and component selectors.\u003c/li\u003e\n\u003cli\u003eSync dev-app preview routing layout paths and strict Bazel target dependency links.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eCDK_DESCRIBEDBY_HOST_ATTRIBUTE\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCDK_DESCRIBEDBY_ID_PREFIX\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003einjector\u003c/code\u003e parameter of the \u003ccode\u003eConfigurableFocusTrap\u003c/code\u003e and \u003ccode\u003eFocusTrap\u003c/code\u003e constructors is now required.\u003c/li\u003e\n\u003cli\u003eThe boolean parameter of \u003ccode\u003eConfigurableFocusTrapFactory.create\u003c/code\u003e has been replaced with a config object.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMESSAGES_CONTAINER_ID\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eevent\u003c/code\u003e parameter of \u003ccode\u003eDropListRef.drop\u003c/code\u003e is now required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eContextMenuTracker\u003c/code\u003e has been renamed to \u003ccode\u003eMenuTracker\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eMatListOption.checkboxPosition\u003c/code\u003e has been removed. use \u003ccode\u003etogglePosition\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMatListOptionCheckboxPosition\u003c/code\u003e has been renamed to \u003ccode\u003eMatListOptionTogglePosition\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eArrowViewState\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eArrowViewStateTransition\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003egoogle-maps\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/b8201edeef62258c3d1e1ebeaf8ee14766918c22\"\u003eb8201edee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edeprecate heatmap layer (\u003ca href=\"https://redirect.github.com/angular/components/pull/33208\"\u003e#33208\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/add8f16c01ad683b9e2ab9e1bf5ad3a984dd9921\"\u003eadd8f16c0\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003elist:\u003c/strong\u003e breaking changes for v22\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/9d73c98b57d46454d51344bbd59055bc06dabc6b\"\u003e9d73c98b5\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003emenu:\u003c/strong\u003e missing panelClass getter (\u003ca href=\"https://redirect.github.com/angular/components/pull/33191\"\u003e#33191\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/75718e4fbebce2a7f8aa30550a12d58a5a6f9b93\"\u003e75718e4fb\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esort:\u003c/strong\u003e breaking changes for v22\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/1238d1573e706cbf0a2cabcc97e59d28a9499ecb\"\u003e\u003ccode\u003e1238d15\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.11 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/components/compare/v21.2.10...v21.2.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/cli` from 21.2.10 to 21.2.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular-cli/releases\"\u003e@​angular/cli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.11\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003e\u003cimg src=\"https://img.shields.io/badge/bbd63b7a5-fix-green\" alt=\"fix - bbd63b7a5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erobustly parse npm manifest from array\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003e\u003cimg src=\"https://img.shields.io/badge/eafe1a719-fix-green\" alt=\"fix - eafe1a719\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e\u003cimg src=\"https://img.shields.io/badge/7a116a80d-fix-green\" alt=\"fix - 7a116a80d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove stateful flag from URL_PARAMETER_REGEXP\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular-cli/blob/main/CHANGELOG.md\"\u003e@​angular/cli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.11 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/cli\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003ebbd63b7a5\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erobustly parse npm manifest from array\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003eeafe1a719\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e7a116a80d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove stateful flag from URL_PARAMETER_REGEXP\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.26 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7cc1871ee50d123853ddf6bd89857b354d647462\"\u003e7cc1871ee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.26 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003e\u003ccode\u003e@​angular/ssr\u003c/code\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/842fee0291b787b63fdabcaaac5680b05d395075\"\u003e842fee029\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow all hosts in common engine rendering options to prevent validation errors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/00e366320108b39e60e67d28d45e5bcc6a044546\"\u003e\u003ccode\u003e00e3663\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.11 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/eafe1a719fd3fecd5263e0a8371200b4b1ff4bb9\"\u003e\u003ccode\u003eeafe1a7\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/ssr\u003c/code\u003e): allow all hosts in common engine rendering options to prev...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/7a116a80d7e6db341fd003737285d1a9db10ba6c\"\u003e\u003ccode\u003e7a116a8\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/ssr\u003c/code\u003e): remove stateful flag from URL_PARAMETER_REGEXP\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/a7705fb96a27965b20365b04c79f0e2f386dfd95\"\u003e\u003ccode\u003ea7705fb\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/453ed5b6bf8a18b37cfa099955f37b234ded6003\"\u003e\u003ccode\u003e453ed5b\u003c/code\u003e\u003c/a\u003e build: update github/codeql-action action to v4.35.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/f0f9b2dad6d47d958bf98b52452bd8c944355951\"\u003e\u003ccode\u003ef0f9b2d\u003c/code\u003e\u003c/a\u003e refactor(\u003ccode\u003e@​angular/cli\u003c/code\u003e): add validation and logging to npm manifest parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular-cli/commit/bbd63b7a5a1049bc56b9ddf6edf6563a1f2d9ace\"\u003e\u003ccode\u003ebbd63b7\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​angular/cli\u003c/code\u003e): robustly parse npm manifest from array\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular-cli/compare/v21.2.10...v21.2.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/common` from 21.2.12 to 21.2.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/common's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/common's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.22 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/83a640516f7b1fff4dfb0fd0ed8b19876bdb00c4\"\u003e83a640516f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/24a0103a9898b1547f5d1f57314e2bb6545a2c7a\"\u003e24a0103a98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8569db88758d189544b03ec4474fd5334ff29346\"\u003e8569db8875\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/837a7102172502dd3d92793ec15b2d4e533a573d\"\u003e837a710217\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure origin has a trailing slash when parsing url (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.21 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/f584840e2e50f751397cf3fad5258e18e857427e\"\u003ef584840e2e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.12 (2026-05-08)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8ebae1de330729f945391283e25661aada11b4ed\"\u003e8ebae1de33\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow service with factory on abstract classes\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/6f525245cd97a934b2b5ea888ee9d52c26c58cb5\"\u003e6f525245cd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0f2160c4105a53ef6488d2c799dda9c0959ce7dc\"\u003e0f2160c410\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove compiler import from safe optional chaining migration\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003cp\u003e| Commit | Type | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.13/packages/common\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/compiler-cli` from 21.2.12 to 21.2.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/compiler-cli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/compiler-cli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.22 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/83a640516f7b1fff4dfb0fd0ed8b19876bdb00c4\"\u003e83a640516f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/24a0103a9898b1547f5d1f57314e2bb6545a2c7a\"\u003e24a0103a98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8569db88758d189544b03ec4474fd5334ff29346\"\u003e8569db8875\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/837a7102172502dd3d92793ec15b2d4e533a573d\"\u003e837a710217\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure origin has a trailing slash when parsing url (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.21 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/f584840e2e50f751397cf3fad5258e18e857427e\"\u003ef584840e2e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.12 (2026-05-08)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8ebae1de330729f945391283e25661aada11b4ed\"\u003e8ebae1de33\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow service with factory on abstract classes\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/6f525245cd97a934b2b5ea888ee9d52c26c58cb5\"\u003e6f525245cd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0f2160c4105a53ef6488d2c799dda9c0959ce7dc\"\u003e0f2160c410\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove compiler import from safe optional chaining migration\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003cp\u003e| Commit | Type | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/49a133aeaf979389436515adfcb9c39b12a6ef3b\"\u003e\u003ccode\u003e49a133a\u003c/code\u003e\u003c/a\u003e refactor(compiler-cli): drop \u003ca href=\"https://github.com/ts-ignore\"\u003e\u003ccode\u003e@​ts-ignore\u003c/code\u003e\u003c/a\u003e around jsDocParsingMode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"ht...\n\n_Description has been truncated_","html_url":"https://github.com/Hashory/aniens/pull/40","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hashory%2Faniens/issues/40","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/40/packages"}},{"old_version":"21.3.1","new_version":"21.4.0","update_type":"minor","path":null,"pr_created_at":"2026-05-14T15:07:23.000Z","version_change":"21.3.1 → 21.4.0","issue":{"uuid":"4446998372","node_id":"PR_kwDOJgPHWM7bkaGu","number":870,"state":"open","title":"chore(deps): bump the minor-and-patch group across 1 directory with 18 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-14T15:07:23.000Z","updated_at":"2026-05-14T15:08:19.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"minor-and-patch","update_count":18,"packages":[{"name":"@angular/animations","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/cdk","old_version":"21.2.10","new_version":"21.2.11","repository_url":"https://github.com/angular/components"},{"name":"@angular/common","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/core","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/forms","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/material","old_version":"21.2.10","new_version":"21.2.11","repository_url":"https://github.com/angular/components"},{"name":"@angular/platform-browser","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser-dynamic","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular/router","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@angular-eslint/builder","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin-template","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/template-parser","old_version":"21.3.1","new_version":"21.4.0","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular/build","old_version":"21.2.10","new_version":"21.2.11","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/cli","old_version":"21.2.10","new_version":"21.2.11","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/compiler-cli","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"stylelint","old_version":"17.11.0","new_version":"17.11.1","repository_url":"https://github.com/stylelint/stylelint"}],"path":null,"ecosystem":"npm"},"body":"Bumps the minor-and-patch group with 18 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `21.2.12` | `21.2.13` |\n| [@angular/cdk](https://github.com/angular/components) | `21.2.10` | `21.2.11` |\n| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `21.2.12` | `21.2.13` |\n| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `21.2.12` | `21.2.13` |\n| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `21.2.12` | `21.2.13` |\n| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `21.2.12` | `21.2.13` |\n| [@angular/material](https://github.com/angular/components) | `21.2.10` | `21.2.11` |\n| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `21.2.12` | `21.2.13` |\n| [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `21.2.12` | `21.2.13` |\n| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `21.2.12` | `21.2.13` |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `21.3.1` | `21.4.0` |\n| [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) | `21.3.1` | `21.4.0` |\n| [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template) | `21.3.1` | `21.4.0` |\n| [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `21.3.1` | `21.4.0` |\n| [@angular/build](https://github.com/angular/angular-cli) | `21.2.10` | `21.2.11` |\n| [@angular/cli](https://github.com/angular/angular-cli) | `21.2.10` | `21.2.11` |\n| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `21.2.12` | `21.2.13` |\n| [stylelint](https://github.com/stylelint/stylelint) | `17.11.0` | `17.11.1` |\n\n\nUpdates `@angular/animations` from 21.2.12 to 21.2.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/animations's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/animations's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.22 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/83a640516f7b1fff4dfb0fd0ed8b19876bdb00c4\"\u003e83a640516f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/24a0103a9898b1547f5d1f57314e2bb6545a2c7a\"\u003e24a0103a98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8569db88758d189544b03ec4474fd5334ff29346\"\u003e8569db8875\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/837a7102172502dd3d92793ec15b2d4e533a573d\"\u003e837a710217\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure origin has a trailing slash when parsing url (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.21 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/f584840e2e50f751397cf3fad5258e18e857427e\"\u003ef584840e2e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.12 (2026-05-08)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8ebae1de330729f945391283e25661aada11b4ed\"\u003e8ebae1de33\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow service with factory on abstract classes\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/6f525245cd97a934b2b5ea888ee9d52c26c58cb5\"\u003e6f525245cd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0f2160c4105a53ef6488d2c799dda9c0959ce7dc\"\u003e0f2160c410\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove compiler import from safe optional chaining migration\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003cp\u003e| Commit | Type | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.13/packages/animations\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/cdk` from 21.2.10 to 21.2.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/releases\"\u003e@​angular/cdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.11\u003c/h2\u003e\n\u003cp\u003eNo user facing changes in this release\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/blob/main/CHANGELOG.md\"\u003e@​angular/cdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.11 \u0026quot;crystal ball\u0026quot; (2026-05-13)\u003c/h1\u003e\n\u003cp\u003eNo user facing changes in this release\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.8 \u0026quot;plastic-wallaby\u0026quot; (2026-05-06)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003earia\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe legacy combobox and autocomplete implementations have been removed. Use the new standalone combobox instead.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efeat(aria/combobox): promote simple-combobox to stable un-prefixed combobox\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eRelocates public, private, and example directories to clean \u003ccode\u003ecombobox\u003c/code\u003e entry points.\u003c/li\u003e\n\u003cli\u003eRenames internal layout symbols, selectors, and uppercase tokens (\u003ccode\u003eSIMPLE_COMBOBOX_POPUP\u003c/code\u003e -\u0026gt; \u003ccode\u003eCOMBOBOX_POPUP\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eEstablishes full documentation extraction parity with the \u003ccode\u003ejson_api\u003c/code\u003e Bazel rule target.\u003c/li\u003e\n\u003cli\u003eStandardizes the accompanying toolbar component showcase into the clean \u003ccode\u003earia-toolbar\u003c/code\u003e path.\u003c/li\u003e\n\u003cli\u003eRe-routes dev-app navigation links and migrates public API golden records.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eSimpleCombobox\u003c/code\u003e has been promoted to \u003ccode\u003eCombobox\u003c/code\u003e. All \u003ccode\u003esimple-combobox\u003c/code\u003e prefixed symbols, selectors, and tokens have been renamed to use the \u003ccode\u003ecombobox\u003c/code\u003e prefix.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(aria/combobox): relocate and restructure autocomplete and toolbar examples\nRelocate the autocomplete examples to \u003ccode\u003esrc/components-examples/aria/autocomplete\u003c/code\u003e and toolbar examples to \u003ccode\u003esrc/components-examples/aria/toolbar\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eRestore naming continuity with the historical codebase by stripping redundant prefixes from example filenames and component selectors.\u003c/li\u003e\n\u003cli\u003eSync dev-app preview routing layout paths and strict Bazel target dependency links.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eCDK_DESCRIBEDBY_HOST_ATTRIBUTE\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCDK_DESCRIBEDBY_ID_PREFIX\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003einjector\u003c/code\u003e parameter of the \u003ccode\u003eConfigurableFocusTrap\u003c/code\u003e and \u003ccode\u003eFocusTrap\u003c/code\u003e constructors is now required.\u003c/li\u003e\n\u003cli\u003eThe boolean parameter of \u003ccode\u003eConfigurableFocusTrapFactory.create\u003c/code\u003e has been replaced with a config object.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMESSAGES_CONTAINER_ID\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eevent\u003c/code\u003e parameter of \u003ccode\u003eDropListRef.drop\u003c/code\u003e is now required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eContextMenuTracker\u003c/code\u003e has been renamed to \u003ccode\u003eMenuTracker\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eMatListOption.checkboxPosition\u003c/code\u003e has been removed. use \u003ccode\u003etogglePosition\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMatListOptionCheckboxPosition\u003c/code\u003e has been renamed to \u003ccode\u003eMatListOptionTogglePosition\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eArrowViewState\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eArrowViewStateTransition\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003egoogle-maps\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/b8201edeef62258c3d1e1ebeaf8ee14766918c22\"\u003eb8201edee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edeprecate heatmap layer (\u003ca href=\"https://redirect.github.com/angular/components/pull/33208\"\u003e#33208\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/add8f16c01ad683b9e2ab9e1bf5ad3a984dd9921\"\u003eadd8f16c0\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003elist:\u003c/strong\u003e breaking changes for v22\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/9d73c98b57d46454d51344bbd59055bc06dabc6b\"\u003e9d73c98b5\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003emenu:\u003c/strong\u003e missing panelClass getter (\u003ca href=\"https://redirect.github.com/angular/components/pull/33191\"\u003e#33191\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/75718e4fbebce2a7f8aa30550a12d58a5a6f9b93\"\u003e75718e4fb\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esort:\u003c/strong\u003e breaking changes for v22\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/1238d1573e706cbf0a2cabcc97e59d28a9499ecb\"\u003e\u003ccode\u003e1238d15\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.11 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/components/compare/v21.2.10...v21.2.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/common` from 21.2.12 to 21.2.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/common's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/common's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.22 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/83a640516f7b1fff4dfb0fd0ed8b19876bdb00c4\"\u003e83a640516f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/24a0103a9898b1547f5d1f57314e2bb6545a2c7a\"\u003e24a0103a98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8569db88758d189544b03ec4474fd5334ff29346\"\u003e8569db8875\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/837a7102172502dd3d92793ec15b2d4e533a573d\"\u003e837a710217\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure origin has a trailing slash when parsing url (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.21 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/f584840e2e50f751397cf3fad5258e18e857427e\"\u003ef584840e2e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.12 (2026-05-08)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8ebae1de330729f945391283e25661aada11b4ed\"\u003e8ebae1de33\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow service with factory on abstract classes\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/6f525245cd97a934b2b5ea888ee9d52c26c58cb5\"\u003e6f525245cd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0f2160c4105a53ef6488d2c799dda9c0959ce7dc\"\u003e0f2160c410\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove compiler import from safe optional chaining migration\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003cp\u003e| Commit | Type | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.13/packages/common\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/compiler` from 21.2.12 to 21.2.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/compiler's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/compiler's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.22 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/83a640516f7b1fff4dfb0fd0ed8b19876bdb00c4\"\u003e83a640516f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/24a0103a9898b1547f5d1f57314e2bb6545a2c7a\"\u003e24a0103a98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8569db88758d189544b03ec4474fd5334ff29346\"\u003e8569db8875\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/837a7102172502dd3d92793ec15b2d4e533a573d\"\u003e837a710217\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure origin has a trailing slash when parsing url (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.21 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/f584840e2e50f751397cf3fad5258e18e857427e\"\u003ef584840e2e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.12 (2026-05-08)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8ebae1de330729f945391283e25661aada11b4ed\"\u003e8ebae1de33\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow service with factory on abstract classes\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/6f525245cd97a934b2b5ea888ee9d52c26c58cb5\"\u003e6f525245cd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0f2160c4105a53ef6488d2c799dda9c0959ce7dc\"\u003e0f2160c410\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove compiler import from safe optional chaining migration\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003cp\u003e| Commit | Type | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/baf92da96ed73a0f4748edf05d3c0702cab219da\"\u003e\u003ccode\u003ebaf92da\u003c/code\u003e\u003c/a\u003e test: remove invalid css that was causing issues with the postcss parser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003ccode\u003e1c6553e\u003c/code\u003e\u003c/a\u003e fix(core): disallow event attribute bindings in host bindings unconditionally\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.13/packages/compiler\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/core` from 21.2.12 to 21.2.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.22 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/83a640516f7b1fff4dfb0fd0ed8b19876bdb00c4\"\u003e83a640516f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/24a0103a9898b1547f5d1f57314e2bb6545a2c7a\"\u003e24a0103a98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8569db88758d189544b03ec4474fd5334ff29346\"\u003e8569db8875\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/837a7102172502dd3d92793ec15b2d4e533a573d\"\u003e837a710217\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure origin has a trailing slash when parsing url (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.21 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/f584840e2e50f751397cf3fad5258e18e857427e\"\u003ef584840e2e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.12 (2026-05-08)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8ebae1de330729f945391283e25661aada11b4ed\"\u003e8ebae1de33\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow service with factory on abstract classes\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/6f525245cd97a934b2b5ea888ee9d52c26c58cb5\"\u003e6f525245cd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0f2160c4105a53ef6488d2c799dda9c0959ce7dc\"\u003e0f2160c410\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove compiler import from safe optional chaining migration\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003cp\u003e| Commit | Type | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003ccode\u003e1c6553e\u003c/code\u003e\u003c/a\u003e fix(core): disallow event attribute bindings in host bindings unconditionally\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.13/packages/core\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/forms` from 21.2.12 to 21.2.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/forms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/forms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.22 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/83a640516f7b1fff4dfb0fd0ed8b19876bdb00c4\"\u003e83a640516f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/24a0103a9898b1547f5d1f57314e2bb6545a2c7a\"\u003e24a0103a98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8569db88758d189544b03ec4474fd5334ff29346\"\u003e8569db8875\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/837a7102172502dd3d92793ec15b2d4e533a573d\"\u003e837a710217\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure origin has a trailing slash when parsing url (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.21 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/f584840e2e50f751397cf3fad5258e18e857427e\"\u003ef584840e2e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.12 (2026-05-08)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8ebae1de330729f945391283e25661aada11b4ed\"\u003e8ebae1de33\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow service with factory on abstract classes\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/6f525245cd97a934b2b5ea888ee9d52c26c58cb5\"\u003e6f525245cd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0f2160c4105a53ef6488d2c799dda9c0959ce7dc\"\u003e0f2160c410\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove compiler import from safe optional chaining migration\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003cp\u003e| Commit | Type | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.13/packages/forms\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/material` from 21.2.10 to 21.2.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/releases\"\u003e@​angular/material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.11\u003c/h2\u003e\n\u003cp\u003eNo user facing changes in this release\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/blob/main/CHANGELOG.md\"\u003e@​angular/material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.11 \u0026quot;crystal ball\u0026quot; (2026-05-13)\u003c/h1\u003e\n\u003cp\u003eNo user facing changes in this release\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.8 \u0026quot;plastic-wallaby\u0026quot; (2026-05-06)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003earia\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe legacy combobox and autocomplete implementations have been removed. Use the new standalone combobox instead.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efeat(aria/combobox): promote simple-combobox to stable un-prefixed combobox\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eRelocates public, private, and example directories to clean \u003ccode\u003ecombobox\u003c/code\u003e entry points.\u003c/li\u003e\n\u003cli\u003eRenames internal layout symbols, selectors, and uppercase tokens (\u003ccode\u003eSIMPLE_COMBOBOX_POPUP\u003c/code\u003e -\u0026gt; \u003ccode\u003eCOMBOBOX_POPUP\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eEstablishes full documentation extraction parity with the \u003ccode\u003ejson_api\u003c/code\u003e Bazel rule target.\u003c/li\u003e\n\u003cli\u003eStandardizes the accompanying toolbar component showcase into the clean \u003ccode\u003earia-toolbar\u003c/code\u003e path.\u003c/li\u003e\n\u003cli\u003eRe-routes dev-app navigation links and migrates public API golden records.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eSimpleCombobox\u003c/code\u003e has been promoted to \u003ccode\u003eCombobox\u003c/code\u003e. All \u003ccode\u003esimple-combobox\u003c/code\u003e prefixed symbols, selectors, and tokens have been renamed to use the \u003ccode\u003ecombobox\u003c/code\u003e prefix.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(aria/combobox): relocate and restructure autocomplete and toolbar examples\nRelocate the autocomplete examples to \u003ccode\u003esrc/components-examples/aria/autocomplete\u003c/code\u003e and toolbar examples to \u003ccode\u003esrc/components-examples/aria/toolbar\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eRestore naming continuity with the historical codebase by stripping redundant prefixes from example filenames and component selectors.\u003c/li\u003e\n\u003cli\u003eSync dev-app preview routing layout paths and strict Bazel target dependency links.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eCDK_DESCRIBEDBY_HOST_ATTRIBUTE\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCDK_DESCRIBEDBY_ID_PREFIX\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003einjector\u003c/code\u003e parameter of the \u003ccode\u003eConfigurableFocusTrap\u003c/code\u003e and \u003ccode\u003eFocusTrap\u003c/code\u003e constructors is now required.\u003c/li\u003e\n\u003cli\u003eThe boolean parameter of \u003ccode\u003eConfigurableFocusTrapFactory.create\u003c/code\u003e has been replaced with a config object.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMESSAGES_CONTAINER_ID\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eevent\u003c/code\u003e parameter of \u003ccode\u003eDropListRef.drop\u003c/code\u003e is now required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eContextMenuTracker\u003c/code\u003e has been renamed to \u003ccode\u003eMenuTracker\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eMatListOption.checkboxPosition\u003c/code\u003e has been removed. use \u003ccode\u003etogglePosition\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMatListOptionCheckboxPosition\u003c/code\u003e has been renamed to \u003ccode\u003eMatListOptionTogglePosition\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eArrowViewState\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eArrowViewStateTransition\u003c/code\u003e has been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003egoogle-maps\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/b8201edeef62258c3d1e1ebeaf8ee14766918c22\"\u003eb8201edee\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edeprecate heatmap layer (\u003ca href=\"https://redirect.github.com/angular/components/pull/33208\"\u003e#33208\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/add8f16c01ad683b9e2ab9e1bf5ad3a984dd9921\"\u003eadd8f16c0\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003elist:\u003c/strong\u003e breaking changes for v22\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/9d73c98b57d46454d51344bbd59055bc06dabc6b\"\u003e9d73c98b5\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003emenu:\u003c/strong\u003e missing panelClass getter (\u003ca href=\"https://redirect.github.com/angular/components/pull/33191\"\u003e#33191\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/75718e4fbebce2a7f8aa30550a12d58a5a6f9b93\"\u003e75718e4fb\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esort:\u003c/strong\u003e breaking changes for v22\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/1238d1573e706cbf0a2cabcc97e59d28a9499ecb\"\u003e\u003ccode\u003e1238d15\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.11 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/components/compare/v21.2.10...v21.2.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/platform-browser` from 21.2.12 to 21.2.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/platform-browser's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/platform-browser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.22 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/83a640516f7b1fff4dfb0fd0ed8b19876bdb00c4\"\u003e83a640516f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/24a0103a9898b1547f5d1f57314e2bb6545a2c7a\"\u003e24a0103a98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8569db88758d189544b03ec4474fd5334ff29346\"\u003e8569db8875\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/837a7102172502dd3d92793ec15b2d4e533a573d\"\u003e837a710217\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure origin has a trailing slash when parsing url (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.21 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/f584840e2e50f751397cf3fad5258e18e857427e\"\u003ef584840e2e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.12 (2026-05-08)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8ebae1de330729f945391283e25661aada11b4ed\"\u003e8ebae1de33\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow service with factory on abstract classes\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/6f525245cd97a934b2b5ea888ee9d52c26c58cb5\"\u003e6f525245cd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0f2160c4105a53ef6488d2c799dda9c0959ce7dc\"\u003e0f2160c410\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove compiler import from safe optional chaining migration\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003cp\u003e| Commit | Type | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.13/packages/platform-browser\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/platform-browser-dynamic` from 21.2.12 to 21.2.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/platform-browser-dynamic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/platform-browser-dynamic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.22 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/83a640516f7b1fff4dfb0fd0ed8b19876bdb00c4\"\u003e83a640516f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/24a0103a9898b1547f5d1f57314e2bb6545a2c7a\"\u003e24a0103a98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8569db88758d189544b03ec4474fd5334ff29346\"\u003e8569db8875\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/837a7102172502dd3d92793ec15b2d4e533a573d\"\u003e837a710217\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure origin has a trailing slash when parsing url (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.21 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/f584840e2e50f751397cf3fad5258e18e857427e\"\u003ef584840e2e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.12 (2026-05-08)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8ebae1de330729f945391283e25661aada11b4ed\"\u003e8ebae1de33\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow service with factory on abstract classes\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/6f525245cd97a934b2b5ea888ee9d52c26c58cb5\"\u003e6f525245cd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0f2160c4105a53ef6488d2c799dda9c0959ce7dc\"\u003e0f2160c410\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove compiler import from safe optional chaining migration\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003cp\u003e| Commit | Type | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.13/packages/platform-browser-dynamic\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/router` from 21.2.12 to 21.2.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e@​angular/router's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.13\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e\u003cimg src=\"https://img.shields.io/badge/1c6553e97d-fix-green\" alt=\"fix - 1c6553e97d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e\u003cimg src=\"https://img.shields.io/badge/629905d537-fix-green\" alt=\"fix - 629905d537\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e\u003cimg src=\"https://img.shields.io/badge/0b7192f441-fix-green\" alt=\"fix - 0b7192f441\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e@​angular/router's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.13 (2026-05-13)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1c6553e97d9655d8c48fbf625987fae86f9cd947\"\u003e1c6553e97d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/629905d537f59dc3c264c49f6347e3599dea0215\"\u003e629905d537\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b7192f4410d055191ac9b15bff57d1d0b9a644f\"\u003e0b7192f441\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eforward BEFORE_APP_SERIALIZED errors to ErrorHandler\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e19.2.22 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/83a640516f7b1fff4dfb0fd0ed8b19876bdb00c4\"\u003e83a640516f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/24a0103a9898b1547f5d1f57314e2bb6545a2c7a\"\u003e24a0103a98\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate security-sensitive attributes in i18n bindings (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8569db88758d189544b03ec4474fd5334ff29346\"\u003e8569db8875\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/837a7102172502dd3d92793ec15b2d4e533a573d\"\u003e837a710217\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure origin has a trailing slash when parsing url (\u003ca href=\"https://redirect.github.com/angular/angular/pull/68469\"\u003e#68469\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e20.3.21 (2026-05-12)\u003c/h1\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/f584840e2e50f751397cf3fad5258e18e857427e\"\u003ef584840e2e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eadd \u003ccode\u003eallowedHosts\u003c/code\u003e option to \u003ccode\u003erenderModule\u003c/code\u003e and \u003ccode\u003erenderApplication\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.12 (2026-05-08)\u003c/h1\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8ebae1de330729f945391283e25661aada11b4ed\"\u003e8ebae1de33\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eallow service with factory on abstract classes\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/6f525245cd97a934b2b5ea888ee9d52c26c58cb5\"\u003e6f525245cd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003edisallow event attribute bindings in host bindings unconditionally\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0f2160c4105a53ef6488d2c799dda9c0959ce7dc\"\u003e0f2160c410\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove compiler import from safe optional chaining migration\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eplatform-server\u003c/h3\u003e\n\u003cp\u003e| Commit | Type | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.13/packages/router\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-eslint/builder` from 21.3.1 to 21.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e@​angular-eslint/builder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.4.0\u003c/h2\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [cyclomatic-complexity] add \u003ccode\u003evariant\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.57.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.6 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.1.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.8 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.58.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2984\"\u003e#2984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.9 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate typescript-eslint packages to v8.59.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.11 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3019\"\u003e#3019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.3.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e append fixes in prefer-on-push-change-detection, use-injectable-provided-in (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2969\"\u003e#2969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-template-literal] do not check inline templates (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [no-non-null-assertion] report nested arrays (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [eqeqeq]  could not destructure null (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eschematics:\u003c/strong\u003e sync application schema with upstream \u003ccode\u003e@​schematics/angular\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003cli\u003egithubuser578 \u003ca href=\"https://github.com/githubuser578\"\u003e\u003ccode\u003e@​githubuser578\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e@​angular-eslint/builder's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFinn Bayer\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/0a774c724574c3c35acf9ba432f60269e7418938\"\u003e\u003ccode\u003e0a774c7\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/cea1779a056ce7e16b80b017630b625e375e6ba6\"\u003e\u003ccode\u003ecea1779\u003c/code\u003e\u003c/a\u003e feat(builder): add apply-suppressions option (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/28434e76fde2d26e3c009749dd4cc20a9604fa15\"\u003e\u003ccode\u003e28434e7\u003c/code\u003e\u003c/a\u003e chore: update swc monorepo (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2987\"\u003e#2987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.4.0/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-eslint/eslint-plugin` from 21.3.1 to 21.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e@​angular-eslint/eslint-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.4.0\u003c/h2\u003e\n\u003ch2\u003e21.4.0 (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuilder:\u003c/strong\u003e add apply-suppressions option (\u003ca href=\"https://redirect...\n\n_Description has been truncated_","html_url":"https://github.com/sto-info-app/sto-info-frontend/pull/870","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sto-info-app%2Fsto-info-frontend/issues/870","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/870/packages"}},{"old_version":"18.4.3","new_version":"21.3.1","update_type":"major","path":null,"pr_created_at":"2026-04-16T18:31:04.000Z","version_change":"18.4.3 → 21.3.1","issue":{"uuid":"4277758935","node_id":"PR_kwDOD_-hQc7TEWFC","number":3433,"state":"closed","title":"chore(deps-dev): bump @angular-eslint/builder from 18.4.3 to 21.3.1","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-17T02:56:49.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-16T18:31:04.000Z","updated_at":"2026-04-17T02:57:00.000Z","time_to_close":30345,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"@angular-eslint/builder","old_version":"18.4.3","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":null,"ecosystem":"npm"},"body":"Bumps [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) from 18.4.3 to 21.3.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.3.1\u003c/h2\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.0.3 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2949\"\u003e#2949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2954\"\u003e#2954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] properly handle statements with unary operators (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2926\"\u003e#2926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eprefer-self-closing-tags:\u003c/strong\u003e add selectedcontent nonAriaElements (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebjarketrux\u003c/li\u003e\n\u003cli\u003eDaniil Demenev \u003ca href=\"https://github.com/BEGEMOT9I\"\u003e\u003ccode\u003e@​BEGEMOT9I\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev21.3.0\u003c/h2\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e add computed-must-return rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2882\"\u003e#2882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] detect Signal member access (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2848\"\u003e#2848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e add \u003ccode\u003eno-non-null-assertion\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2885\"\u003e#2885\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.1.4 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] add check \u003ccode\u003eInputSignalWithTransform\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2879\"\u003e#2879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] detect \u003ccode\u003eSignal\u003c/code\u003e type correctly (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [prefer-template-literal] preserve nested non string binary \u003ccode\u003e+\u003c/code\u003e operation (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2902\"\u003e#2902\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev21.2.0\u003c/h2\u003e\n\u003ch2\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for builder to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch2\u003e21.1.0 (2025-12-08)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ereference \u003ccode\u003e@​angular/cli\u003c/code\u003e peer in addition to direct dependencies (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2820\"\u003e#2820\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.0.1 (2025-11-23)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for builder to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch1\u003e21.0.0 (2025-11-22)\u003c/h1\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ \u003cstrong\u003ebuilder:\u003c/strong\u003e align formatter invocation with eslint CLI by always passing all files, even if quiet (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/bceaa80e\"\u003ebceaa80e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e⚠️ Breaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ \u003cstrong\u003ebuilder:\u003c/strong\u003e align formatter invocation with eslint CLI by always passing all files, even if quiet (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/bceaa80e\"\u003ebceaa80e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/8f2afdce28d4cbdac792465b33aff35915af23b5\"\u003e\u003ccode\u003e8f2afdc\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/77099ee61cda76136038dce9f21d3af6071a7d06\"\u003e\u003ccode\u003e77099ee\u003c/code\u003e\u003c/a\u003e chore: ensure dist artifacts are available for e2e publishing in DTE (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/af8900f087b09556bfaddd815ce483bf7b0262ea\"\u003e\u003ccode\u003eaf8900f\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix: narrow build target cache outputs to avoid clobbering compile ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/7e173918eb48b2db41ce4d5a934567dab26fe54b\"\u003e\u003ccode\u003e7e17391\u003c/code\u003e\u003c/a\u003e fix: narrow build target cache outputs to avoid clobbering compile artifacts ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/a959e4d2804bbeb3cbc7caaa9c2fb2be9da3348e\"\u003e\u003ccode\u003ea959e4d\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/5c214854f897cb698563f53db6b9bddfb23e4d8e\"\u003e\u003ccode\u003e5c21485\u003c/code\u003e\u003c/a\u003e chore(builder): change builder tests to be cross-platform (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/3ef7fb157e866d76ae76d41b706b92efbd54d72d\"\u003e\u003ccode\u003e3ef7fb1\u003c/code\u003e\u003c/a\u003e feat: add support for ESLint v10 (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/6fa321dc27993f55e6d5bc6e421010bb7b5ef1d3\"\u003e\u003ccode\u003e6fa321d\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/4fa7889c54600ba56d29928b8026ff30a16d600b\"\u003e\u003ccode\u003e4fa7889\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/e7bb47b27bfaef61af694ebc29bc5636378b232c\"\u003e\u003ccode\u003ee7bb47b\u003c/code\u003e\u003c/a\u003e fix: reference \u003ccode\u003e@​angular/cli\u003c/code\u003e peer in addition to direct dependencies (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2820\"\u003e#2820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.3.1/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by [GitHub Actions](\u003ca href=\"https://www.npmjs.com/~GitHub\"\u003ehttps://www.npmjs.com/~GitHub\u003c/a\u003e Actions), a new releaser for \u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/numbersprotocol/capture-cam/pull/3433","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/numbersprotocol%2Fcapture-cam/issues/3433","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3433/packages"}},{"old_version":"19.8.1","new_version":"21.3.1","update_type":"major","path":"/Applications/Pgan.PoracleWebNet.App/ClientApp","pr_created_at":"2026-04-12T21:27:20.000Z","version_change":"19.8.1 → 21.3.1","issue":{"uuid":"4249998044","node_id":"PR_kwDORozMjs7R0iL0","number":197,"state":"closed","title":"deps: bump @angular-eslint/builder from 19.8.1 to 21.3.1 in /Applications/Pgan.PoracleWebNet.App/ClientApp","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-12T21:51:36.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-12T21:27:20.000Z","updated_at":"2026-04-12T21:51:46.000Z","time_to_close":1456,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps","packages":[{"name":"@angular-eslint/builder","old_version":"19.8.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":"/Applications/Pgan.PoracleWebNet.App/ClientApp","ecosystem":"npm"},"body":"Bumps [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) from 19.8.1 to 21.3.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.3.1\u003c/h2\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.0.3 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2949\"\u003e#2949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2954\"\u003e#2954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] properly handle statements with unary operators (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2926\"\u003e#2926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eprefer-self-closing-tags:\u003c/strong\u003e add selectedcontent nonAriaElements (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebjarketrux\u003c/li\u003e\n\u003cli\u003eDaniil Demenev \u003ca href=\"https://github.com/BEGEMOT9I\"\u003e\u003ccode\u003e@​BEGEMOT9I\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev21.3.0\u003c/h2\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e add computed-must-return rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2882\"\u003e#2882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] detect Signal member access (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2848\"\u003e#2848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e add \u003ccode\u003eno-non-null-assertion\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2885\"\u003e#2885\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.1.4 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] add check \u003ccode\u003eInputSignalWithTransform\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2879\"\u003e#2879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] detect \u003ccode\u003eSignal\u003c/code\u003e type correctly (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [prefer-template-literal] preserve nested non string binary \u003ccode\u003e+\u003c/code\u003e operation (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2902\"\u003e#2902\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev21.2.0\u003c/h2\u003e\n\u003ch2\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for builder to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch2\u003e21.1.0 (2025-12-08)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ereference \u003ccode\u003e@​angular/cli\u003c/code\u003e peer in addition to direct dependencies (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2820\"\u003e#2820\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.0.1 (2025-11-23)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for builder to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch1\u003e21.0.0 (2025-11-22)\u003c/h1\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ \u003cstrong\u003ebuilder:\u003c/strong\u003e align formatter invocation with eslint CLI by always passing all files, even if quiet (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/bceaa80e\"\u003ebceaa80e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e⚠️ Breaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ \u003cstrong\u003ebuilder:\u003c/strong\u003e align formatter invocation with eslint CLI by always passing all files, even if quiet (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/bceaa80e\"\u003ebceaa80e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/8f2afdce28d4cbdac792465b33aff35915af23b5\"\u003e\u003ccode\u003e8f2afdc\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/77099ee61cda76136038dce9f21d3af6071a7d06\"\u003e\u003ccode\u003e77099ee\u003c/code\u003e\u003c/a\u003e chore: ensure dist artifacts are available for e2e publishing in DTE (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/af8900f087b09556bfaddd815ce483bf7b0262ea\"\u003e\u003ccode\u003eaf8900f\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix: narrow build target cache outputs to avoid clobbering compile ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/7e173918eb48b2db41ce4d5a934567dab26fe54b\"\u003e\u003ccode\u003e7e17391\u003c/code\u003e\u003c/a\u003e fix: narrow build target cache outputs to avoid clobbering compile artifacts ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/a959e4d2804bbeb3cbc7caaa9c2fb2be9da3348e\"\u003e\u003ccode\u003ea959e4d\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/5c214854f897cb698563f53db6b9bddfb23e4d8e\"\u003e\u003ccode\u003e5c21485\u003c/code\u003e\u003c/a\u003e chore(builder): change builder tests to be cross-platform (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/3ef7fb157e866d76ae76d41b706b92efbd54d72d\"\u003e\u003ccode\u003e3ef7fb1\u003c/code\u003e\u003c/a\u003e feat: add support for ESLint v10 (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/6fa321dc27993f55e6d5bc6e421010bb7b5ef1d3\"\u003e\u003ccode\u003e6fa321d\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/4fa7889c54600ba56d29928b8026ff30a16d600b\"\u003e\u003ccode\u003e4fa7889\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/e7bb47b27bfaef61af694ebc29bc5636378b232c\"\u003e\u003ccode\u003ee7bb47b\u003c/code\u003e\u003c/a\u003e fix: reference \u003ccode\u003e@​angular/cli\u003c/code\u003e peer in addition to direct dependencies (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2820\"\u003e#2820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.3.1/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by [GitHub Actions](\u003ca href=\"https://www.npmjs.com/~GitHub\"\u003ehttps://www.npmjs.com/~GitHub\u003c/a\u003e Actions), a new releaser for \u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e","html_url":"https://github.com/PGAN-Dev/PoracleWeb.NET/pull/197","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/PGAN-Dev%2FPoracleWeb.NET/issues/197","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/197/packages"}},{"old_version":"21.2.0","new_version":"21.3.1","update_type":"minor","path":null,"pr_created_at":"2026-04-11T17:53:11.000Z","version_change":"21.2.0 → 21.3.1","issue":{"uuid":"4245397119","node_id":"PR_kwDOC4Vf1M7RsBCN","number":678,"state":"open","title":"Bump @angular-eslint/builder from 21.2.0 to 21.3.1","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-11T17:53:11.000Z","updated_at":"2026-04-11T17:53:12.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"@angular-eslint/builder","old_version":"21.2.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":null,"ecosystem":"npm"},"body":"Bumps [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) from 21.2.0 to 21.3.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.3.1\u003c/h2\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.0.3 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2949\"\u003e#2949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2954\"\u003e#2954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] properly handle statements with unary operators (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2926\"\u003e#2926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eprefer-self-closing-tags:\u003c/strong\u003e add selectedcontent nonAriaElements (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebjarketrux\u003c/li\u003e\n\u003cli\u003eDaniil Demenev \u003ca href=\"https://github.com/BEGEMOT9I\"\u003e\u003ccode\u003e@​BEGEMOT9I\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev21.3.0\u003c/h2\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e add computed-must-return rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2882\"\u003e#2882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] detect Signal member access (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2848\"\u003e#2848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e add \u003ccode\u003eno-non-null-assertion\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2885\"\u003e#2885\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.1.4 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] add check \u003ccode\u003eInputSignalWithTransform\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2879\"\u003e#2879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] detect \u003ccode\u003eSignal\u003c/code\u003e type correctly (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [prefer-template-literal] preserve nested non string binary \u003ccode\u003e+\u003c/code\u003e operation (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2902\"\u003e#2902\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/8f2afdce28d4cbdac792465b33aff35915af23b5\"\u003e\u003ccode\u003e8f2afdc\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/77099ee61cda76136038dce9f21d3af6071a7d06\"\u003e\u003ccode\u003e77099ee\u003c/code\u003e\u003c/a\u003e chore: ensure dist artifacts are available for e2e publishing in DTE (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/af8900f087b09556bfaddd815ce483bf7b0262ea\"\u003e\u003ccode\u003eaf8900f\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix: narrow build target cache outputs to avoid clobbering compile ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/7e173918eb48b2db41ce4d5a934567dab26fe54b\"\u003e\u003ccode\u003e7e17391\u003c/code\u003e\u003c/a\u003e fix: narrow build target cache outputs to avoid clobbering compile artifacts ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/a959e4d2804bbeb3cbc7caaa9c2fb2be9da3348e\"\u003e\u003ccode\u003ea959e4d\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/5c214854f897cb698563f53db6b9bddfb23e4d8e\"\u003e\u003ccode\u003e5c21485\u003c/code\u003e\u003c/a\u003e chore(builder): change builder tests to be cross-platform (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/3ef7fb157e866d76ae76d41b706b92efbd54d72d\"\u003e\u003ccode\u003e3ef7fb1\u003c/code\u003e\u003c/a\u003e feat: add support for ESLint v10 (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.3.1/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular-eslint/builder\u0026package-manager=npm_and_yarn\u0026previous-version=21.2.0\u0026new-version=21.3.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/michaelsouellette/michaelsouellette.github.io/pull/678","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelsouellette%2Fmichaelsouellette.github.io/issues/678","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/678/packages"}},{"old_version":"20.1.1","new_version":"21.3.1","update_type":"major","path":null,"pr_created_at":"2026-04-11T13:26:12.000Z","version_change":"20.1.1 → 21.3.1","issue":{"uuid":"4244668409","node_id":"PR_kwDOBiCNks7RqnMk","number":1411,"state":"open","title":"Bump the angular group with 19 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-11T13:26:12.000Z","updated_at":"2026-04-11T13:27:16.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"angular","update_count":19,"packages":[{"name":"@angular/animations","old_version":"21.2.6","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/cdk","old_version":"21.2.4","new_version":"21.2.6","repository_url":"https://github.com/angular/components"},{"name":"@angular/common","old_version":"21.2.6","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler","old_version":"21.2.6","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/core","old_version":"21.2.6","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/forms","old_version":"21.2.6","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/material","old_version":"21.2.4","new_version":"21.2.6","repository_url":"https://github.com/angular/components"},{"name":"@angular/platform-browser","old_version":"21.2.6","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser-dynamic","old_version":"21.2.6","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/router","old_version":"21.2.6","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular-eslint/builder","old_version":"20.1.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin","old_version":"20.1.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin-template","old_version":"20.1.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/schematics","old_version":"20.1.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/template-parser","old_version":"20.1.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular/cli","old_version":"21.2.5","new_version":"21.2.7","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/compiler-cli","old_version":"21.2.6","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/language-service","old_version":"21.2.6","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"typescript","old_version":"5.9.3","new_version":"6.0.2","repository_url":"https://github.com/microsoft/TypeScript"}],"path":null,"ecosystem":"npm"},"body":"Bumps the angular group with 19 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `21.2.6` | `21.2.8` |\n| [@angular/cdk](https://github.com/angular/components) | `21.2.4` | `21.2.6` |\n| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `21.2.6` | `21.2.8` |\n| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `21.2.6` | `21.2.8` |\n| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `21.2.6` | `21.2.8` |\n| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `21.2.6` | `21.2.8` |\n| [@angular/material](https://github.com/angular/components) | `21.2.4` | `21.2.6` |\n| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `21.2.6` | `21.2.8` |\n| [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `21.2.6` | `21.2.8` |\n| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `21.2.6` | `21.2.8` |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `20.1.1` | `21.3.1` |\n| [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) | `20.1.1` | `21.3.1` |\n| [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template) | `20.1.1` | `21.3.1` |\n| [@angular-eslint/schematics](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics) | `20.1.1` | `21.3.1` |\n| [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `20.1.1` | `21.3.1` |\n| [@angular/cli](https://github.com/angular/angular-cli) | `21.2.5` | `21.2.7` |\n| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `21.2.6` | `21.2.8` |\n| [@angular/language-service](https://github.com/angular/angular/tree/HEAD/packages/language-service) | `21.2.6` | `21.2.8` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `6.0.2` |\n\nUpdates `@angular/animations` from 21.2.6 to 21.2.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/animations\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.8\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e40d378f3e3e7e57a45c8fbd9565ee06a3a6a13f\"\u003e\u003cimg src=\"https://img.shields.io/badge/e40d378f3e-fix-green\" alt=\"fix - e40d378f3e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ehandle nested brackets in host object bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c6781071f52d6378a002fba6611bb283fbb2fde\"\u003e\u003cimg src=\"https://img.shields.io/badge/2c6781071f-fix-green\" alt=\"fix - 2c6781071f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eerror for type parameter declarations\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/82192deda9c07113835e6c85af3f2c8c8218cda0\"\u003e\u003cimg src=\"https://img.shields.io/badge/82192deda9-fix-green\" alt=\"fix - 82192deda9\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ehandle missing serialized container hydration data\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/057cc6d09d234f401a810cfdd3ad14127652b88b\"\u003e\u003cimg src=\"https://img.shields.io/badge/057cc6d09d-fix-green\" alt=\"fix - 057cc6d09d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove obsolete iOS cursor pointer hack in event delegation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elanguage-service\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7797671257350665e8b3ceb2bc6a0201829dd338\"\u003e\u003cimg src=\"https://img.shields.io/badge/7797671257-fix-green\" alt=\"fix - 7797671257\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eget quick info at local var location to align with TS semantics and support type narrowing\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/animations\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.8 (2026-04-08)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e40d378f3e3e7e57a45c8fbd9565ee06a3a6a13f\"\u003ee40d378f3e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ehandle nested brackets in host object bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c6781071f52d6378a002fba6611bb283fbb2fde\"\u003e2c6781071f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eerror for type parameter declarations\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/82192deda9c07113835e6c85af3f2c8c8218cda0\"\u003e82192deda9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ehandle missing serialized container hydration data\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/057cc6d09d234f401a810cfdd3ad14127652b88b\"\u003e057cc6d09d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove obsolete iOS cursor pointer hack in event delegation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elanguage-service\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7797671257350665e8b3ceb2bc6a0201829dd338\"\u003e7797671257\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eget quick info at local var location to align with TS semantics and support type narrowing\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.6 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/08d36599d724d6b3dbe2c9891c32f783bef4e157\"\u003e08d36599d7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fcd0bb0db83576ef0bc13c5c32f158d95efbedd5\"\u003efcd0bb0db8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e84e35cdd60696d8670421189e4aa02c1db583a6\"\u003ee84e35cdd6\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fa66173523bb275d33de4bd43ce23947812922e\"\u003e8fa6617352\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/028e1d3ce0ed3a33d3b7730a51b549a5cf013b29\"\u003e028e1d3ce0\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/78710938225d2c29c6e3666e431c2952bb5560db\"\u003e7871093822\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/682aaf943fea3d99f9f834b0bad4d165b4b28071\"\u003e682aaf943f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eadd strictTemplates to tsconfig during ng update\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/daa9b2a9d67557ae9246559f74396f43b240581c\"\u003edaa9b2a9d6\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.8/packages/animations\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/cdk` from 21.2.4 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/releases\"\u003e\u003ccode\u003e@​angular/cdk\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/5b4bbe9c4f8c902d6923b139e7a925822c899bc1\"\u003e\u003cimg src=\"https://img.shields.io/badge/5b4bbe9c4f-fix-green\" alt=\"fix - 5b4bbe9c4f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eselect:\u003c/strong\u003e wrong transform origin when opening upwards inside another overlay (\u003ca href=\"https://redirect.github.com/angular/components/issues/33032\"\u003e#33032\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/895908a12dd81d889f95961da59e80823faf8889\"\u003e\u003cimg src=\"https://img.shields.io/badge/895908a12-fix-green\" alt=\"fix - 895908a12\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esidenav:\u003c/strong\u003e not resetting margin if transition does not start (\u003ca href=\"https://redirect.github.com/angular/components/issues/33001\"\u003e#33001\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/475a8aabb30044c4cdca1bdb0b1de832db6e5936\"\u003e\u003cimg src=\"https://img.shields.io/badge/475a8aabb-fix-green\" alt=\"fix - 475a8aabb\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eslider:\u003c/strong\u003e not picking up static direction (\u003ca href=\"https://redirect.github.com/angular/components/issues/33006\"\u003e#33006\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/8a5ed09e59e312f82b969b19ae4d077e4574bd12\"\u003e\u003cimg src=\"https://img.shields.io/badge/8a5ed09e5-fix-green\" alt=\"fix - 8a5ed09e5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003etooltip:\u003c/strong\u003e allow hover detection logic to be customized (\u003ca href=\"https://redirect.github.com/angular/components/issues/33018\"\u003e#33018\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/42e10553cfcf205fea44522ae631fe23f90b03ea\"\u003e\u003cimg src=\"https://img.shields.io/badge/42e10553c-fix-green\" alt=\"fix - 42e10553c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003estepper:\u003c/strong\u003e linear updates not reflected in the DOM (\u003ca href=\"https://redirect.github.com/angular/components/issues/33007\"\u003e#33007\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/cdk\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 \u0026quot;steel bottle\u0026quot; (2026-04-08)\u003c/h1\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/5b4bbe9c4f8c902d6923b139e7a925822c899bc1\"\u003e5b4bbe9c4f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eselect:\u003c/strong\u003e wrong transform origin when opening upwards inside another overlay (\u003ca href=\"https://redirect.github.com/angular/components/pull/33032\"\u003e#33032\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.3 \u0026quot;rubber-wombat\u0026quot; (2026-04-01)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003emultiple\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRenames the values input/model to value in Combobox, Listbox, Tree, Menu, Toolbar, and Select. Users must update their templates to use the value property instead of values.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(multiple): update api goldens\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/ac3911071810ac7c54ba3382125bf53094bce80b\"\u003eac3911071\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esidenav:\u003c/strong\u003e not resetting margin if transition does not start (\u003ca href=\"https://redirect.github.com/angular/components/pull/33001\"\u003e#33001\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/a7d5561803e2f365843cb763a4763ed51cb0ae03\"\u003ea7d556180\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eslider:\u003c/strong\u003e not picking up static direction (\u003ca href=\"https://redirect.github.com/angular/components/pull/33006\"\u003e#33006\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/236762fbc5d63bb6000a52c7d20612c0b14c3d8b\"\u003e236762fbc\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003etooltip:\u003c/strong\u003e allow hover detection logic to be customized (\u003ca href=\"https://redirect.github.com/angular/components/pull/33018\"\u003e#33018\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/a7fe128c353aec9065e942b63167e9019dc53350\"\u003ea7fe128c3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003estepper:\u003c/strong\u003e linear updates not reflected in the DOM (\u003ca href=\"https://redirect.github.com/angular/components/pull/33007\"\u003e#33007\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emultiple\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/94a50a25f95c0e28d661b957a0a17501cc9998f9\"\u003e94a50a25f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003erename values to value for signal forms compatibility (\u003ca href=\"https://redirect.github.com/angular/components/pull/33012\"\u003e#33012\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e21.2.5 \u0026quot;steel-wombat\u0026quot; (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/42e10553cfcf205fea44522ae631fe23f90b03ea\"\u003e42e10553c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003estepper:\u003c/strong\u003e linear updates not reflected in the DOM (\u003ca href=\"https://redirect.github.com/angular/components/pull/33007\"\u003e#33007\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/895908a12dd81d889f95961da59e80823faf8889\"\u003e895908a12\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esidenav:\u003c/strong\u003e not resetting margin if transition does not start (\u003ca href=\"https://redirect.github.com/angular/components/pull/33001\"\u003e#33001\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/475a8aabb30044c4cdca1bdb0b1de832db6e5936\"\u003e475a8aabb\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eslider:\u003c/strong\u003e not picking up static direction (\u003ca href=\"https://redirect.github.com/angular/components/pull/33006\"\u003e#33006\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/8a5ed09e59e312f82b969b19ae4d077e4574bd12\"\u003e8a5ed09e5\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003etooltip:\u003c/strong\u003e allow hover detection logic to be customized (\u003ca href=\"https://redirect.github.com/angular/components/pull/33018\"\u003e#33018\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/a236a4067ce1d3cf8b7e1362760db5907a26c86e\"\u003e\u003ccode\u003ea236a40\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.6 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/6b955a73fe44f0a58993c80836c03cf149ae11a2\"\u003e\u003ccode\u003e6b955a7\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies (\u003ca href=\"https://redirect.github.com/angular/components/issues/33043\"\u003e#33043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/2909c3ac0712119c8286dbc4118a3e4cd1e85a2f\"\u003e\u003ccode\u003e2909c3a\u003c/code\u003e\u003c/a\u003e build: lock file maintenance (\u003ca href=\"https://redirect.github.com/angular/components/issues/33038\"\u003e#33038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/5b4bbe9c4f8c902d6923b139e7a925822c899bc1\"\u003e\u003ccode\u003e5b4bbe9\u003c/code\u003e\u003c/a\u003e fix(material/select): wrong transform origin when opening upwards inside anot...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/2c877d284177bff3973e93f3948c2a926fca08de\"\u003e\u003ccode\u003e2c877d2\u003c/code\u003e\u003c/a\u003e Set generic on some \u003ccode\u003eInjectionToken\u003c/code\u003e.  (\u003ca href=\"https://redirect.github.com/angular/components/issues/32753\"\u003e#32753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/97be64ac8f54540af3ee8d7f08ca80d2c98b0e88\"\u003e\u003ccode\u003e97be64a\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies (\u003ca href=\"https://redirect.github.com/angular/components/issues/33030\"\u003e#33030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/424b282a690c725b76ae6c4f36eb32b6cdcdf5f7\"\u003e\u003ccode\u003e424b282\u003c/code\u003e\u003c/a\u003e build: update dependency aspect_rules_ts to v3.8.8 (\u003ca href=\"https://redirect.github.com/angular/components/issues/33025\"\u003e#33025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/e433a661551394cb740314e0bc2f002d0549c2a2\"\u003e\u003ccode\u003ee433a66\u003c/code\u003e\u003c/a\u003e docs(material/dialog): clarify that default options replace rather than merge...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/c9d40aa735751363a729723751aaf87dfb5d4819\"\u003e\u003ccode\u003ec9d40aa\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/899456f6e4b23d6c34643c223a42f0bbd67b9de8\"\u003e\u003ccode\u003e899456f\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies (\u003ca href=\"https://redirect.github.com/angular/components/issues/33017\"\u003e#33017\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/components/compare/v21.2.4...v21.2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/common` from 21.2.6 to 21.2.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.8\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e40d378f3e3e7e57a45c8fbd9565ee06a3a6a13f\"\u003e\u003cimg src=\"https://img.shields.io/badge/e40d378f3e-fix-green\" alt=\"fix - e40d378f3e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ehandle nested brackets in host object bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c6781071f52d6378a002fba6611bb283fbb2fde\"\u003e\u003cimg src=\"https://img.shields.io/badge/2c6781071f-fix-green\" alt=\"fix - 2c6781071f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eerror for type parameter declarations\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/82192deda9c07113835e6c85af3f2c8c8218cda0\"\u003e\u003cimg src=\"https://img.shields.io/badge/82192deda9-fix-green\" alt=\"fix - 82192deda9\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ehandle missing serialized container hydration data\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/057cc6d09d234f401a810cfdd3ad14127652b88b\"\u003e\u003cimg src=\"https://img.shields.io/badge/057cc6d09d-fix-green\" alt=\"fix - 057cc6d09d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove obsolete iOS cursor pointer hack in event delegation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elanguage-service\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7797671257350665e8b3ceb2bc6a0201829dd338\"\u003e\u003cimg src=\"https://img.shields.io/badge/7797671257-fix-green\" alt=\"fix - 7797671257\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eget quick info at local var location to align with TS semantics and support type narrowing\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.8 (2026-04-08)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e40d378f3e3e7e57a45c8fbd9565ee06a3a6a13f\"\u003ee40d378f3e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ehandle nested brackets in host object bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c6781071f52d6378a002fba6611bb283fbb2fde\"\u003e2c6781071f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eerror for type parameter declarations\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/82192deda9c07113835e6c85af3f2c8c8218cda0\"\u003e82192deda9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ehandle missing serialized container hydration data\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/057cc6d09d234f401a810cfdd3ad14127652b88b\"\u003e057cc6d09d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove obsolete iOS cursor pointer hack in event delegation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elanguage-service\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7797671257350665e8b3ceb2bc6a0201829dd338\"\u003e7797671257\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eget quick info at local var location to align with TS semantics and support type narrowing\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.6 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/08d36599d724d6b3dbe2c9891c32f783bef4e157\"\u003e08d36599d7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fcd0bb0db83576ef0bc13c5c32f158d95efbedd5\"\u003efcd0bb0db8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e84e35cdd60696d8670421189e4aa02c1db583a6\"\u003ee84e35cdd6\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fa66173523bb275d33de4bd43ce23947812922e\"\u003e8fa6617352\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/028e1d3ce0ed3a33d3b7730a51b549a5cf013b29\"\u003e028e1d3ce0\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/78710938225d2c29c6e3666e431c2952bb5560db\"\u003e7871093822\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/682aaf943fea3d99f9f834b0bad4d165b4b28071\"\u003e682aaf943f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eadd strictTemplates to tsconfig during ng update\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/daa9b2a9d67557ae9246559f74396f43b240581c\"\u003edaa9b2a9d6\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/8102331f82c808ca2256ba51a1d83803a61beabb\"\u003e\u003ccode\u003e8102331\u003c/code\u003e\u003c/a\u003e test(http): disable XSRF and mock location in HttpClient tests to avoid Domin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/13f050d2204285173273ebbfe9b34bc1b3c63c80\"\u003e\u003ccode\u003e13f050d\u003c/code\u003e\u003c/a\u003e test: construct local \u003ccode\u003eDate\u003c/code\u003e objects to fix timezone flakiness\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d0cf2995a2b63eb13fe574770ee8a756277852a4\"\u003e\u003ccode\u003ed0cf299\u003c/code\u003e\u003c/a\u003e test: remove unsupported timezone from \u003ccode\u003eformatDate\u003c/code\u003e tests\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.8/packages/common\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/compiler` from 21.2.6 to 21.2.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.8\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e40d378f3e3e7e57a45c8fbd9565ee06a3a6a13f\"\u003e\u003cimg src=\"https://img.shields.io/badge/e40d378f3e-fix-green\" alt=\"fix - e40d378f3e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ehandle nested brackets in host object bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c6781071f52d6378a002fba6611bb283fbb2fde\"\u003e\u003cimg src=\"https://img.shields.io/badge/2c6781071f-fix-green\" alt=\"fix - 2c6781071f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eerror for type parameter declarations\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/82192deda9c07113835e6c85af3f2c8c8218cda0\"\u003e\u003cimg src=\"https://img.shields.io/badge/82192deda9-fix-green\" alt=\"fix - 82192deda9\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ehandle missing serialized container hydration data\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/057cc6d09d234f401a810cfdd3ad14127652b88b\"\u003e\u003cimg src=\"https://img.shields.io/badge/057cc6d09d-fix-green\" alt=\"fix - 057cc6d09d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove obsolete iOS cursor pointer hack in event delegation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elanguage-service\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7797671257350665e8b3ceb2bc6a0201829dd338\"\u003e\u003cimg src=\"https://img.shields.io/badge/7797671257-fix-green\" alt=\"fix - 7797671257\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eget quick info at local var location to align with TS semantics and support type narrowing\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.8 (2026-04-08)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e40d378f3e3e7e57a45c8fbd9565ee06a3a6a13f\"\u003ee40d378f3e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ehandle nested brackets in host object bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c6781071f52d6378a002fba6611bb283fbb2fde\"\u003e2c6781071f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eerror for type parameter declarations\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/82192deda9c07113835e6c85af3f2c8c8218cda0\"\u003e82192deda9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ehandle missing serialized container hydration data\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/057cc6d09d234f401a810cfdd3ad14127652b88b\"\u003e057cc6d09d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove obsolete iOS cursor pointer hack in event delegation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elanguage-service\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7797671257350665e8b3ceb2bc6a0201829dd338\"\u003e7797671257\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eget quick info at local var location to align with TS semantics and support type narrowing\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.6 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/08d36599d724d6b3dbe2c9891c32f783bef4e157\"\u003e08d36599d7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fcd0bb0db83576ef0bc13c5c32f158d95efbedd5\"\u003efcd0bb0db8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e84e35cdd60696d8670421189e4aa02c1db583a6\"\u003ee84e35cdd6\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fa66173523bb275d33de4bd43ce23947812922e\"\u003e8fa6617352\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/028e1d3ce0ed3a33d3b7730a51b549a5cf013b29\"\u003e028e1d3ce0\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/78710938225d2c29c6e3666e431c2952bb5560db\"\u003e7871093822\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/682aaf943fea3d99f9f834b0bad4d165b4b28071\"\u003e682aaf943f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eadd strictTemplates to tsconfig during ng update\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/daa9b2a9d67557ae9246559f74396f43b240581c\"\u003edaa9b2a9d6\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/a4f312060cdf745e4fb0b15eda24ee2b4df0440c\"\u003e\u003ccode\u003ea4f3120\u003c/code\u003e\u003c/a\u003e refactor(compiler): require a reference in DirectiveMeta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/de533fe49181ee7409fd0b0ae4c0391a1e220ee6\"\u003e\u003ccode\u003ede533fe\u003c/code\u003e\u003c/a\u003e refactor(compiler-cli): move ClassPropertyMapping into compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/ea1e34c4ddf404cde8d5c4ba0ba762bb0b9edbf8\"\u003e\u003ccode\u003eea1e34c\u003c/code\u003e\u003c/a\u003e refactor(compiler): move matchSource into base metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/e40d378f3e3e7e57a45c8fbd9565ee06a3a6a13f\"\u003e\u003ccode\u003ee40d378\u003c/code\u003e\u003c/a\u003e fix(compiler): handle nested brackets in host object bindings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003ccode\u003ed04ddd7\u003c/code\u003e\u003c/a\u003e fix(core): prevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003ccode\u003efea25d1\u003c/code\u003e\u003c/a\u003e fix(compiler): register SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67\"\u003e#67\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.8/packages/compiler\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/core` from 21.2.6 to 21.2.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.8\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e40d378f3e3e7e57a45c8fbd9565ee06a3a6a13f\"\u003e\u003cimg src=\"https://img.shields.io/badge/e40d378f3e-fix-green\" alt=\"fix - e40d378f3e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ehandle nested brackets in host object bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c6781071f52d6378a002fba6611bb283fbb2fde\"\u003e\u003cimg src=\"https://img.shields.io/badge/2c6781071f-fix-green\" alt=\"fix - 2c6781071f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eerror for type parameter declarations\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/82192deda9c07113835e6c85af3f2c8c8218cda0\"\u003e\u003cimg src=\"https://img.shields.io/badge/82192deda9-fix-green\" alt=\"fix - 82192deda9\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ehandle missing serialized container hydration data\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/057cc6d09d234f401a810cfdd3ad14127652b88b\"\u003e\u003cimg src=\"https://img.shields.io/badge/057cc6d09d-fix-green\" alt=\"fix - 057cc6d09d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove obsolete iOS cursor pointer hack in event delegation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elanguage-service\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7797671257350665e8b3ceb2bc6a0201829dd338\"\u003e\u003cimg src=\"https://img.shields.io/badge/7797671257-fix-green\" alt=\"fix - 7797671257\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eget quick info at local var location to align with TS semantics and support type narrowing\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.8 (2026-04-08)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e40d378f3e3e7e57a45c8fbd9565ee06a3a6a13f\"\u003ee40d378f3e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ehandle nested brackets in host object bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c6781071f52d6378a002fba6611bb283fbb2fde\"\u003e2c6781071f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eerror for type parameter declarations\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/82192deda9c07113835e6c85af3f2c8c8218cda0\"\u003e82192deda9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ehandle missing serialized container hydration data\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/057cc6d09d234f401a810cfdd3ad14127652b88b\"\u003e057cc6d09d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove obsolete iOS cursor pointer hack in event delegation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elanguage-service\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7797671257350665e8b3ceb2bc6a0201829dd338\"\u003e7797671257\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eget quick info at local var location to align with TS semantics and support type narrowing\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.6 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/08d36599d724d6b3dbe2c9891c32f783bef4e157\"\u003e08d36599d7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fcd0bb0db83576ef0bc13c5c32f158d95efbedd5\"\u003efcd0bb0db8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e84e35cdd60696d8670421189e4aa02c1db583a6\"\u003ee84e35cdd6\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fa66173523bb275d33de4bd43ce23947812922e\"\u003e8fa6617352\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/028e1d3ce0ed3a33d3b7730a51b549a5cf013b29\"\u003e028e1d3ce0\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/78710938225d2c29c6e3666e431c2952bb5560db\"\u003e7871093822\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/682aaf943fea3d99f9f834b0bad4d165b4b28071\"\u003e682aaf943f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eadd strictTemplates to tsconfig during ng update\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/daa9b2a9d67557ae9246559f74396f43b240581c\"\u003edaa9b2a9d6\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d4c8a9a887a28fa4f3dfce663095ec13ef3bebd0\"\u003e\u003ccode\u003ed4c8a9a\u003c/code\u003e\u003c/a\u003e refactor(compiler-cli): decouple SymbolBuilder from BoundTarget and minimize ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/057cc6d09d234f401a810cfdd3ad14127652b88b\"\u003e\u003ccode\u003e057cc6d\u003c/code\u003e\u003c/a\u003e fix(core): remove obsolete iOS cursor pointer hack in event delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/c9f8f3afb68ac921e02354473ebae5fae229400a\"\u003e\u003ccode\u003ec9f8f3a\u003c/code\u003e\u003c/a\u003e test(core): add missing import of ChangeDetectionStrategy in query_spec\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/910dcb6d6aaf0fd5f592cda00a1f45c5ed3e71c1\"\u003e\u003ccode\u003e910dcb6\u003c/code\u003e\u003c/a\u003e refactor(compiler-cli): decouple TemplateSymbolBuilder from ts.TypeChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/82192deda9c07113835e6c85af3f2c8c8218cda0\"\u003e\u003ccode\u003e82192de\u003c/code\u003e\u003c/a\u003e fix(core): handle missing serialized container hydration data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/2ae0912eea38d63201e94a5ecdee781c8491d78b\"\u003e\u003ccode\u003e2ae0912\u003c/code\u003e\u003c/a\u003e refactor(core): address review comments on NG0750 error message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/e583f4c80811202ffbd321b98cc957fd586df1bd\"\u003e\u003ccode\u003ee583f4c\u003c/code\u003e\u003c/a\u003e refactor(core): Add more detail to NG0750 error message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/0b08e29f2634a86d3903a679fc37a21bd21a0bcc\"\u003e\u003ccode\u003e0b08e29\u003c/code\u003e\u003c/a\u003e test(core): refactors test to use \u003ccode\u003etimeout\u003c/code\u003e utility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/4ad6d582d2a9f887c8530ff10ae513a4181ad24c\"\u003e\u003ccode\u003e4ad6d58\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies to v21.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003ccode\u003ed04ddd7\u003c/code\u003e\u003c/a\u003e fix(core): prevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.8/packages/core\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/forms` from 21.2.6 to 21.2.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.8\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e40d378f3e3e7e57a45c8fbd9565ee06a3a6a13f\"\u003e\u003cimg src=\"https://img.shields.io/badge/e40d378f3e-fix-green\" alt=\"fix - e40d378f3e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ehandle nested brackets in host object bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c6781071f52d6378a002fba6611bb283fbb2fde\"\u003e\u003cimg src=\"https://img.shields.io/badge/2c6781071f-fix-green\" alt=\"fix - 2c6781071f\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eerror for type parameter declarations\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/82192deda9c07113835e6c85af3f2c8c8218cda0\"\u003e\u003cimg src=\"https://img.shields.io/badge/82192deda9-fix-green\" alt=\"fix - 82192deda9\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ehandle missing serialized container hydration data\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/057cc6d09d234f401a810cfdd3ad14127652b88b\"\u003e\u003cimg src=\"https://img.shields.io/badge/057cc6d09d-fix-green\" alt=\"fix - 057cc6d09d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eremove obsolete iOS cursor pointer hack in event delegation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elanguage-service\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7797671257350665e8b3ceb2bc6a0201829dd338\"\u003e\u003cimg src=\"https://img.shields.io/badge/7797671257-fix-green\" alt=\"fix - 7797671257\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eget quick info at local var location to align with TS semantics and support type narrowing\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/forms/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/forms/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/forms/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.8 (2026-04-08)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e40d378f3e3e7e57a45c8fbd9565ee06a3a6a13f\"\u003ee40d378f3e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ehandle nested brackets in host object bindings\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c6781071f52d6378a002fba6611bb283fbb2fde\"\u003e2c6781071f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eerror for type parameter declarations\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/82192deda9c07113835e6c85af3f2c8c8218cda0\"\u003e82192deda9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003ehandle missing serialized container hydration data\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/057cc6d09d234f401a810cfdd3ad14127652b88b\"\u003e057cc6d09d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eremove obsolete iOS cursor pointer hack in event delegation\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elanguage-service\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7797671257350665e8b3ceb2bc6a0201829dd338\"\u003e7797671257\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eget quick info at local var location to align with TS semantics and support type narrowing\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.6 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/08d36599d724d6b3dbe2c9891c32f783bef4e157\"\u003e08d36599d7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fcd0bb0db83576ef0bc13c5c32f158d95efbedd5\"\u003efcd0bb0db8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e84e35cdd60696d8670421189e4aa02c1db583a6\"\u003ee84e35cdd6\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fa66173523bb275d33de4bd43ce23947812922e\"\u003e8fa6617352\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/028e1d3ce0ed3a33d3b7730a51b549a5cf013b29\"\u003e028e1d3ce0\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/78710938225d2c29c6e3666e431c2952bb5560db\"\u003e7871093822\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/682aaf943fea3d99f9f834b0bad4d165b4b28071\"\u003e682aaf943f\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eadd strictTemplates to tsconfig during ng update\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/daa9b2a9d67557ae9246559f74396f43b240581c\"\u003edaa9b2a9d6\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b0dc2fbfcb909c558c7dcff89c2fe47c89878991\"\u003e\u003ccode\u003eb0dc2fb\u003c/code\u003e\u003c/a\u003e docs(forms): clarify disabled FormArray value behavior\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/895c576d494111f819e8a790d3a0695b6b9f8b4b\"\u003e\u003ccode\u003e895c576\u003c/code\u003e\u003c/a\u003e refactor(forms): use strict equality for pending status getter\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.8/packages/forms\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/material` from 21.2.4 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/compon...\n\n_Description has been truncated_","html_url":"https://github.com/SubJunk/TimelineTools/pull/1411","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SubJunk%2FTimelineTools/issues/1411","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1411/packages"}},{"old_version":"21.2.0","new_version":"21.3.1","update_type":"minor","path":null,"pr_created_at":"2026-04-07T08:42:58.000Z","version_change":"21.2.0 → 21.3.1","issue":{"uuid":"4216514043","node_id":"PR_kwDOOhC4n87Qbn8V","number":611,"state":"open","title":"deps(deps): bump the all-minor-patch group with 55 updates","user":"dependabot[bot]","labels":["dependencies","javascript","pnpm"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-07T08:42:58.000Z","updated_at":"2026-04-07T08:43:43.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"all-minor-patch","update_count":55,"packages":[{"name":"@adobe/jsonschema2md","old_version":"8.0.10","new_version":"8.0.11","repository_url":"https://github.com/adobe/jsonschema2md"},{"name":"@apidevtools/json-schema-ref-parser","old_version":"15.3.1","new_version":"15.3.5","repository_url":"https://github.com/APIDevTools/json-schema-ref-parser"},{"name":"@semantic-release/npm","old_version":"13.1.4","new_version":"13.1.5","repository_url":"https://github.com/semantic-release/npm"},{"name":"@types/node","old_version":"25.5.0","new_version":"25.5.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@aws-sdk/client-kms","old_version":"3.1015.0","new_version":"3.1025.0","repository_url":"https://github.com/aws/aws-sdk-js-v3"},{"name":"@aws-sdk/client-s3","old_version":"3.1015.0","new_version":"3.1025.0","repository_url":"https://github.com/aws/aws-sdk-js-v3"},{"name":"@aws-sdk/client-secrets-manager","old_version":"3.1015.0","new_version":"3.1025.0","repository_url":"https://github.com/aws/aws-sdk-js-v3"},{"name":"@aws-sdk/s3-request-presigner","old_version":"3.1015.0","new_version":"3.1025.0","repository_url":"https://github.com/aws/aws-sdk-js-v3"},{"name":"@azure/identity","old_version":"4.13.0","new_version":"4.13.1","repository_url":"https://github.com/Azure/azure-sdk-for-js"},{"name":"@keycloak/keycloak-admin-client","old_version":"26.5.6","new_version":"26.5.7","repository_url":"https://github.com/keycloak/keycloak"},{"name":"@nestjs/common","old_version":"11.1.17","new_version":"11.1.18","repository_url":"https://github.com/nestjs/nest"},{"name":"@nestjs/core","old_version":"11.1.17","new_version":"11.1.18","repository_url":"https://github.com/nestjs/nest"},{"name":"@nestjs/platform-express","old_version":"11.1.17","new_version":"11.1.18","repository_url":"https://github.com/nestjs/nest"},{"name":"@nestjs/typeorm","old_version":"11.0.0","new_version":"11.0.1","repository_url":"https://github.com/nestjs/typeorm"},{"name":"@willsoto/nestjs-prometheus","old_version":"6.0.2","new_version":"6.1.0","repository_url":"https://github.com/willsoto/nestjs-prometheus"},{"name":"axios","old_version":"1.13.6","new_version":"1.14.0","repository_url":"https://github.com/axios/axios"},{"name":"joi","old_version":"18.0.2","new_version":"18.1.2","repository_url":"https://github.com/hapijs/joi"},{"name":"jose","old_version":"6.1.3","new_version":"6.2.2","repository_url":"https://github.com/panva/jose"},{"name":"jwks-rsa","old_version":"4.0.0","new_version":"4.0.1","repository_url":"https://github.com/auth0/node-jwks-rsa"},{"name":"nestjs-pino","old_version":"4.6.0","new_version":"4.6.1","repository_url":"https://github.com/iamolegga/nestjs-pino"},{"name":"nestjs-zod","old_version":"5.1.1","new_version":"5.3.0","repository_url":"https://github.com/BenLorantfy/nestjs-zod"},{"name":"@biomejs/biome","old_version":"2.4.4","new_version":"2.4.10","repository_url":"https://github.com/biomejs/biome"},{"name":"@hey-api/openapi-ts","old_version":"0.93.1","new_version":"0.95.0","repository_url":"https://github.com/hey-api/openapi-ts"},{"name":"@nestjs/cli","old_version":"11.0.16","new_version":"11.0.17","repository_url":"https://github.com/nestjs/nest-cli"},{"name":"@nestjs/schematics","old_version":"11.0.9","new_version":"11.0.10","repository_url":"https://github.com/nestjs/schematics"},{"name":"@nestjs/testing","old_version":"11.1.17","new_version":"11.1.18","repository_url":"https://github.com/nestjs/nest"},{"name":"@swc/cli","old_version":"0.8.0","new_version":"0.8.1","repository_url":"https://github.com/swc-project/pkgs"},{"name":"@swc/core","old_version":"1.15.18","new_version":"1.15.24","repository_url":"https://github.com/swc-project/swc"},{"name":"@testcontainers/postgresql","old_version":"11.12.0","new_version":"11.13.0","repository_url":"https://github.com/testcontainers/testcontainers-node"},{"name":"@vitest/coverage-v8","old_version":"4.1.0","new_version":"4.1.2","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"dotenv","old_version":"17.3.1","new_version":"17.4.1","repository_url":"https://github.com/motdotla/dotenv"},{"name":"nock","old_version":"14.0.11","new_version":"14.0.12","repository_url":"https://github.com/nock/nock"},{"name":"testcontainers","old_version":"11.12.0","new_version":"11.13.0","repository_url":"https://github.com/testcontainers/testcontainers-node"},{"name":"ts-loader","old_version":"9.5.4","new_version":"9.5.7","repository_url":"https://github.com/TypeStrong/ts-loader"},{"name":"vitest","old_version":"4.1.0","new_version":"4.1.2","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"@angular/animations","old_version":"21.2.5","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/cdk","old_version":"21.2.3","new_version":"21.2.5","repository_url":"https://github.com/angular/components"},{"name":"@angular/common","old_version":"21.2.5","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler","old_version":"21.2.5","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/core","old_version":"21.2.5","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/forms","old_version":"21.2.5","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/material","old_version":"21.2.3","new_version":"21.2.5","repository_url":"https://github.com/angular/components"},{"name":"@angular/platform-browser","old_version":"21.2.5","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser-dynamic","old_version":"21.2.5","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/router","old_version":"21.2.5","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"ngx-flexible-layout","old_version":"21.0.0","new_version":"21.0.1","repository_url":"https://github.com/jtc10005/ngx-flex-layout"},{"name":"@angular-eslint/builder","old_version":"21.2.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular/build","old_version":"21.2.3","new_version":"21.2.6","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/cli","old_version":"21.2.3","new_version":"21.2.6","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/compiler-cli","old_version":"21.2.5","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@playwright/test","old_version":"1.58.2","new_version":"1.59.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"angular-eslint","old_version":"21.2.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"playwright-ng-schematics","old_version":"21.0.5","new_version":"21.0.9","repository_url":"https://github.com/jfgreffier/playwright-ng-schematics"},{"name":"typescript-eslint","old_version":"8.57.2","new_version":"8.58.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"wrangler","old_version":"4.69.0","new_version":"4.80.0","repository_url":"https://github.com/cloudflare/workers-sdk"}],"path":null,"ecosystem":"npm"},"body":"Bumps the all-minor-patch group with 55 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@adobe/jsonschema2md](https://github.com/adobe/jsonschema2md) | `8.0.10` | `8.0.11` |\n| [@apidevtools/json-schema-ref-parser](https://github.com/APIDevTools/json-schema-ref-parser) | `15.3.1` | `15.3.5` |\n| [@semantic-release/npm](https://github.com/semantic-release/npm) | `13.1.4` | `13.1.5` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.5.0` | `25.5.2` |\n| [@aws-sdk/client-kms](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-kms) | `3.1015.0` | `3.1025.0` |\n| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.1015.0` | `3.1025.0` |\n| [@aws-sdk/client-secrets-manager](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-secrets-manager) | `3.1015.0` | `3.1025.0` |\n| [@aws-sdk/s3-request-presigner](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/packages/s3-request-presigner) | `3.1015.0` | `3.1025.0` |\n| [@azure/identity](https://github.com/Azure/azure-sdk-for-js) | `4.13.0` | `4.13.1` |\n| [@keycloak/keycloak-admin-client](https://github.com/keycloak/keycloak/tree/HEAD/js/libs/keycloak-admin-client) | `26.5.6` | `26.5.7` |\n| [@nestjs/common](https://github.com/nestjs/nest/tree/HEAD/packages/common) | `11.1.17` | `11.1.18` |\n| [@nestjs/core](https://github.com/nestjs/nest/tree/HEAD/packages/core) | `11.1.17` | `11.1.18` |\n| [@nestjs/platform-express](https://github.com/nestjs/nest/tree/HEAD/packages/platform-express) | `11.1.17` | `11.1.18` |\n| [@nestjs/typeorm](https://github.com/nestjs/typeorm) | `11.0.0` | `11.0.1` |\n| [@willsoto/nestjs-prometheus](https://github.com/willsoto/nestjs-prometheus) | `6.0.2` | `6.1.0` |\n| [axios](https://github.com/axios/axios) | `1.13.6` | `1.14.0` |\n| [joi](https://github.com/hapijs/joi) | `18.0.2` | `18.1.2` |\n| [jose](https://github.com/panva/jose) | `6.1.3` | `6.2.2` |\n| [jwks-rsa](https://github.com/auth0/node-jwks-rsa) | `4.0.0` | `4.0.1` |\n| [nestjs-pino](https://github.com/iamolegga/nestjs-pino) | `4.6.0` | `4.6.1` |\n| [nestjs-zod](https://github.com/BenLorantfy/nestjs-zod/tree/HEAD/packages/nestjs-zod) | `5.1.1` | `5.3.0` |\n| [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) | `2.4.4` | `2.4.10` |\n| [@hey-api/openapi-ts](https://github.com/hey-api/openapi-ts) | `0.93.1` | `0.95.0` |\n| [@nestjs/cli](https://github.com/nestjs/nest-cli) | `11.0.16` | `11.0.17` |\n| [@nestjs/schematics](https://github.com/nestjs/schematics) | `11.0.9` | `11.0.10` |\n| [@nestjs/testing](https://github.com/nestjs/nest/tree/HEAD/packages/testing) | `11.1.17` | `11.1.18` |\n| [@swc/cli](https://github.com/swc-project/pkgs) | `0.8.0` | `0.8.1` |\n| [@swc/core](https://github.com/swc-project/swc/tree/HEAD/packages/core) | `1.15.18` | `1.15.24` |\n| [@testcontainers/postgresql](https://github.com/testcontainers/testcontainers-node) | `11.12.0` | `11.13.0` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.1.0` | `4.1.2` |\n| [dotenv](https://github.com/motdotla/dotenv) | `17.3.1` | `17.4.1` |\n| [nock](https://github.com/nock/nock) | `14.0.11` | `14.0.12` |\n| [testcontainers](https://github.com/testcontainers/testcontainers-node) | `11.12.0` | `11.13.0` |\n| [ts-loader](https://github.com/TypeStrong/ts-loader) | `9.5.4` | `9.5.7` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.0` | `4.1.2` |\n| [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `21.2.5` | `21.2.7` |\n| [@angular/cdk](https://github.com/angular/components) | `21.2.3` | `21.2.5` |\n| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `21.2.5` | `21.2.7` |\n| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `21.2.5` | `21.2.7` |\n| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `21.2.5` | `21.2.7` |\n| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `21.2.5` | `21.2.7` |\n| [@angular/material](https://github.com/angular/components) | `21.2.3` | `21.2.5` |\n| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `21.2.5` | `21.2.7` |\n| [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `21.2.5` | `21.2.7` |\n| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `21.2.5` | `21.2.7` |\n| [ngx-flexible-layout](https://github.com/jtc10005/ngx-flex-layout) | `21.0.0` | `21.0.1` |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `21.2.0` | `21.3.1` |\n| [@angular/build](https://github.com/angular/angular-cli) | `21.2.3` | `21.2.6` |\n| [@angular/cli](https://github.com/angular/angular-cli) | `21.2.3` | `21.2.6` |\n| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `21.2.5` | `21.2.7` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.58.2` | `1.59.1` |\n| [angular-eslint](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/angular-eslint) | `21.2.0` | `21.3.1` |\n| [playwright-ng-schematics](https://github.com/jfgreffier/playwright-ng-schematics) | `21.0.5` | `21.0.9` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.57.2` | `8.58.0` |\n| [wrangler](https://github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler) | `4.69.0` | `4.80.0` |\n\nUpdates `@adobe/jsonschema2md` from 8.0.10 to 8.0.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/adobe/jsonschema2md/releases\"\u003e\u003ccode\u003e@​adobe/jsonschema2md\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.11\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/compare/v8.0.10...v8.0.11\"\u003e8.0.11\u003c/a\u003e (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e update external fixes (\u003ca href=\"https://redirect.github.com/adobe/jsonschema2md/issues/716\"\u003e#716\u003c/a\u003e) (\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/bb4188b0630f2618d94a5c6a2a97246224b0de0a\"\u003ebb4188b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/adobe/jsonschema2md/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​adobe/jsonschema2md\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/compare/v8.0.10...v8.0.11\"\u003e8.0.11\u003c/a\u003e (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e update external fixes (\u003ca href=\"https://redirect.github.com/adobe/jsonschema2md/issues/716\"\u003e#716\u003c/a\u003e) (\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/bb4188b0630f2618d94a5c6a2a97246224b0de0a\"\u003ebb4188b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/58a2324895bb0346c8e4a057aa06de73875e36ca\"\u003e\u003ccode\u003e58a2324\u003c/code\u003e\u003c/a\u003e chore(release): 8.0.11 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/bb4188b0630f2618d94a5c6a2a97246224b0de0a\"\u003e\u003ccode\u003ebb4188b\u003c/code\u003e\u003c/a\u003e fix(deps): update external fixes (\u003ca href=\"https://redirect.github.com/adobe/jsonschema2md/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/2a000e435e0bd768752923e4b370c34d121eafdb\"\u003e\u003ccode\u003e2a000e4\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency \u003ccode\u003e@​adobe/eslint-config-helix\u003c/code\u003e to v3.0.22 (\u003ca href=\"https://redirect.github.com/adobe/jsonschema2md/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/7dac3c41344241df260a0689331e021a607acea1\"\u003e\u003ccode\u003e7dac3c4\u003c/code\u003e\u003c/a\u003e chore(deps): update external fixes (\u003ca href=\"https://redirect.github.com/adobe/jsonschema2md/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/57bb9a9ceb2ddf3b6c91e3d21e13acacc4210bc3\"\u003e\u003ccode\u003e57bb9a9\u003c/code\u003e\u003c/a\u003e chore(deps): update external fixes (\u003ca href=\"https://redirect.github.com/adobe/jsonschema2md/issues/710\"\u003e#710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/a158caeaae96658ae7910e5fe9adf543896c3695\"\u003e\u003ccode\u003ea158cae\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency \u003ccode\u003e@​adobe/eslint-config-helix\u003c/code\u003e to v3.0.21 (\u003ca href=\"https://redirect.github.com/adobe/jsonschema2md/issues/709\"\u003e#709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/dc3584ba0cf363cae34d165bfd0f78e310e04598\"\u003e\u003ccode\u003edc3584b\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency \u003ccode\u003e@​adobe/eslint-config-helix\u003c/code\u003e to v3.0.19 (\u003ca href=\"https://redirect.github.com/adobe/jsonschema2md/issues/707\"\u003e#707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/651fd01d8d3861352380103e27d44231f8d8aecd\"\u003e\u003ccode\u003e651fd01\u003c/code\u003e\u003c/a\u003e chore(deps): update external fixes (\u003ca href=\"https://redirect.github.com/adobe/jsonschema2md/issues/706\"\u003e#706\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/f88fefac03f569e3b5eb13858b160e4b40b5478d\"\u003e\u003ccode\u003ef88fefa\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency \u003ccode\u003e@​adobe/eslint-config-helix\u003c/code\u003e to v3.0.18 (\u003ca href=\"https://redirect.github.com/adobe/jsonschema2md/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adobe/jsonschema2md/commit/d13a4a8e5ffeb5bb10d0f87acbdd67cd25163d5f\"\u003e\u003ccode\u003ed13a4a8\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency \u003ccode\u003e@​types/node\u003c/code\u003e to v24.10.9 (\u003ca href=\"https://redirect.github.com/adobe/jsonschema2md/issues/704\"\u003e#704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/adobe/jsonschema2md/compare/v8.0.10...v8.0.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@apidevtools/json-schema-ref-parser` from 15.3.1 to 15.3.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/releases\"\u003e\u003ccode\u003e@​apidevtools/json-schema-ref-parser\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.3.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/compare/v15.3.4...v15.3.5\"\u003e15.3.5\u003c/a\u003e (2026-03-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eedge:\u003c/strong\u003e fix some edge cases and add more tests (\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/df7967ecb4f93cb789c0e41f0ac84dd8eeafb264\"\u003edf7967e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.3.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/compare/v15.3.3...v15.3.4\"\u003e15.3.4\u003c/a\u003e (2026-03-27)\u003c/h2\u003e\n\u003ch3\u003eReverts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRevert \u0026quot;fix: support 2020-12 anchors and ref siblings\u0026quot; (\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/f26d8c7b0f341a2a26dbc3ba83a4e5ce411f0807\"\u003ef26d8c7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.3.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/compare/v15.3.2...v15.3.3\"\u003e15.3.3\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport 2020-12 anchors and ref siblings (\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/f3f7e35ee69af911432940963087d1f01203692b\"\u003ef3f7e35\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/APIDevTools/json-schema-ref-parser/issues/145\"\u003e#145\u003c/a\u003e \u003ca href=\"https://redirect.github.com/APIDevTools/json-schema-ref-parser/issues/419\"\u003e#419\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.3.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/compare/v15.3.1...v15.3.2\"\u003e15.3.2\u003c/a\u003e (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eref:\u003c/strong\u003e pass original ref (\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/889e69ef56a81e4e71e6c82e43866dd5e3aacad9\"\u003e889e69e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/fddef8a4ab653ac07bd4ccc02290e6191da4b620\"\u003e\u003ccode\u003efddef8a\u003c/code\u003e\u003c/a\u003e versions and tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/ecea9d50fb32b1fa8f556fa2a7734c77ab23ef49\"\u003e\u003ccode\u003eecea9d5\u003c/code\u003e\u003c/a\u003e test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/c81b48fe9d1107e67de7fbf622e0cb6fe5871c9a\"\u003e\u003ccode\u003ec81b48f\u003c/code\u003e\u003c/a\u003e normalize path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/df7967ecb4f93cb789c0e41f0ac84dd8eeafb264\"\u003e\u003ccode\u003edf7967e\u003c/code\u003e\u003c/a\u003e fix(edge): fix some edge cases and add more tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/f249657d23d47a71356c42ead24d30bc49aa7cfd\"\u003e\u003ccode\u003ef249657\u003c/code\u003e\u003c/a\u003e only test on lts and current\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/ba43eb833aaeb189862834bbf14ea700b8398811\"\u003e\u003ccode\u003eba43eb8\u003c/code\u003e\u003c/a\u003e chore(deps): deps bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/f26d8c7b0f341a2a26dbc3ba83a4e5ce411f0807\"\u003e\u003ccode\u003ef26d8c7\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix: support 2020-12 anchors and ref siblings\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/f3f7e35ee69af911432940963087d1f01203692b\"\u003e\u003ccode\u003ef3f7e35\u003c/code\u003e\u003c/a\u003e fix: support 2020-12 anchors and ref siblings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/c355f09e73cda4e98c03e3f07270790e58ee5d0b\"\u003e\u003ccode\u003ec355f09\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/commit/889e69ef56a81e4e71e6c82e43866dd5e3aacad9\"\u003e\u003ccode\u003e889e69e\u003c/code\u003e\u003c/a\u003e fix(ref): pass original ref\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/APIDevTools/json-schema-ref-parser/compare/v15.3.1...v15.3.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@semantic-release/npm` from 13.1.4 to 13.1.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/semantic-release/npm/releases\"\u003e\u003ccode\u003e@​semantic-release/npm\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev13.1.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/semantic-release/npm/compare/v13.1.4...v13.1.5\"\u003e13.1.5\u003c/a\u003e (2026-03-01)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e update dependency normalize-url to v9 (\u003ca href=\"https://redirect.github.com/semantic-release/npm/issues/1095\"\u003e#1095\u003c/a\u003e) (\u003ca href=\"https://github.com/semantic-release/npm/commit/daec492f715f00a6ce61ed1e942d93c735c8fba8\"\u003edaec492\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/semantic-release/npm/commit/daec492f715f00a6ce61ed1e942d93c735c8fba8\"\u003e\u003ccode\u003edaec492\u003c/code\u003e\u003c/a\u003e fix(deps): update dependency normalize-url to v9 (\u003ca href=\"https://redirect.github.com/semantic-release/npm/issues/1095\"\u003e#1095\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/semantic-release/npm/commit/af8362f874f817b11d960e3350561fff45286db1\"\u003e\u003ccode\u003eaf8362f\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency strip-ansi to v7.2.0 (\u003ca href=\"https://redirect.github.com/semantic-release/npm/issues/1098\"\u003e#1098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/semantic-release/npm/commit/7354e1152590de8a8020ac208351a8005add18a3\"\u003e\u003ccode\u003e7354e11\u003c/code\u003e\u003c/a\u003e chore(deps): update node.js to v24 (\u003ca href=\"https://redirect.github.com/semantic-release/npm/issues/1027\"\u003e#1027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/semantic-release/npm/commit/2c4d2c94c819ec1fced1ea5cbdff4019ae0f7fc5\"\u003e\u003ccode\u003e2c4d2c9\u003c/code\u003e\u003c/a\u003e chore(deps): update npm to v11.11.0 (\u003ca href=\"https://redirect.github.com/semantic-release/npm/issues/1097\"\u003e#1097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/semantic-release/npm/commit/95ba68947e3d7d2b22a3989727cd700692f2035c\"\u003e\u003ccode\u003e95ba689\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency c8 to v11 (\u003ca href=\"https://redirect.github.com/semantic-release/npm/issues/1096\"\u003e#1096\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/semantic-release/npm/commit/5d32912ab7e1593a329a0aa1a101544b04df1346\"\u003e\u003ccode\u003e5d32912\u003c/code\u003e\u003c/a\u003e chore(deps): update npm to v11.10.1 (\u003ca href=\"https://redirect.github.com/semantic-release/npm/issues/1094\"\u003e#1094\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/semantic-release/npm/commit/54f908c81a8b8d836653d0eb840e1fb55f259e0c\"\u003e\u003ccode\u003e54f908c\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/semantic-release/npm/issues/1093\"\u003e#1093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/semantic-release/npm/commit/91e1f14a87086fbb5d783d8684f87e07f7f2a16b\"\u003e\u003ccode\u003e91e1f14\u003c/code\u003e\u003c/a\u003e chore(deps): update npm to v11.10.0 (\u003ca href=\"https://redirect.github.com/semantic-release/npm/issues/1092\"\u003e#1092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/semantic-release/npm/commit/0d7d37ef14c6442a5da0ca146f25a81ceabab293\"\u003e\u003ccode\u003e0d7d37e\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/semantic-release/npm/issues/1089\"\u003e#1089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/semantic-release/npm/commit/c5411cc2d0158e2bca5b8fb01c3ba31bcfbea490\"\u003e\u003ccode\u003ec5411cc\u003c/code\u003e\u003c/a\u003e chore(deps): update npm to v11.9.0 (\u003ca href=\"https://redirect.github.com/semantic-release/npm/issues/1088\"\u003e#1088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/semantic-release/npm/compare/v13.1.4...v13.1.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@types/node` from 25.5.0 to 25.5.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@aws-sdk/client-kms` from 3.1015.0 to 3.1025.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/releases\"\u003e\u003ccode\u003e@​aws-sdk/client-kms\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.1025.0\u003c/h2\u003e\n\u003ch4\u003e3.1025.0(2026-04-06)\u003c/h4\u003e\n\u003ch5\u003eDocumentation Changes\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-geo-maps:\u003c/strong\u003e  This release updates API reference documentation for Amazon Location Service Maps APIs to reflect regional restrictions for Grab Maps users (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/8e08de511e39c5edf01510c5dad47ef5e3050f80\"\u003e8e08de51\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003eNew Features\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclients:\u003c/strong\u003e  update client endpoints as of 2026-04-06 (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/a2eb33dab191fcd690a3b7010b62b3097d44dbda\"\u003ea2eb33da\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-mediatailor:\u003c/strong\u003e  This change adds support for Tagging the resource types Programs and Prefetch Schedules (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/cfa9a0a9a29534151741cdcc1a24ead2b36bf665\"\u003ecfa9a0a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-qconnect:\u003c/strong\u003e  Added optional originRequestId parameter to SendMessageRequest and ListSpans response in Amazon Q in Connect to support request tracing across service boundaries. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/5b3e0a76e4c5cec1d955b98fa6d8f8c70577f574\"\u003e5b3e0a76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-dlm:\u003c/strong\u003e  This release adds support for Fast Snapshot Restore AvailabilityZone Ids in Amazon Data Lifecycle Manager EBS snapshot lifecycle policies. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/18d4b471019f383d44daa7e42cd8feb23dcb5a14\"\u003e18d4b471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-guardduty:\u003c/strong\u003e  Migrated to Smithy. No functional changes (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/0054ddde0e7b5cc663ac42ad7be76811cb2c57e1\"\u003e0054ddde\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-transfer:\u003c/strong\u003e  AWS Transfer Family Connectors now support IPv6 connectivity, enabling outbound connections to remote SFTP or AS2 servers using IPv4-only or dual-stack (IPv4 and IPv6) configurations based on network requirements. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/51cf6a624b30aaa76d96aa7447b110ec6ed1240c\"\u003e51cf6a62\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-lightsail:\u003c/strong\u003e  This release adds support for the Asia Pacific (Malaysia) (ap-southeast-5) Region. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/6ceeb5d63759e180ca54aac1d36aaac4b90addc4\"\u003e6ceeb5d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-accessanalyzer:\u003c/strong\u003e  Brookie helps customers preview the impact of SCPs before deployment using historical access activity. It evaluates attached policies and proposed policy updates using collected access activity through CloudTrail authorization events and reports where currently allowed access will be denied. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/940df70360ac51652192675a9f377cac4ba3db4d\"\u003e940df703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-deadline:\u003c/strong\u003e  Added 8 batch APIs (BatchGetJob, BatchGetStep, BatchGetTask, BatchGetSession, BatchGetSessionAction, BatchGetWorker, BatchUpdateJob, BatchUpdateTask) for bulk operations. Monitors can now use an Identity Center instance in a different region via the identityCenterRegion parameter. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/64147e0837aeeade6809d40f34c443403a30f58b\"\u003e64147e08\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eFor list of updated packages, view \u003cstrong\u003eupdated-packages.md\u003c/strong\u003e in \u003cstrong\u003eassets-3.1025.0.zip\u003c/strong\u003e\u003c/p\u003e\n\u003ch2\u003ev3.1024.0\u003c/h2\u003e\n\u003ch4\u003e3.1024.0(2026-04-03)\u003c/h4\u003e\n\u003ch5\u003eDocumentation Changes\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-organizations:\u003c/strong\u003e  Updates close Account quota for member accounts in an Organization. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/4bc933f480ae1789df6e0acd34243376abc970b7\"\u003e4bc933f4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock-agentcore-control:\u003c/strong\u003e  Documentation Update for Adds support for three-legged (Authorization Code grant type) OAuth along with predefined MCP tool schema configuration for Amazon Bedrock AgentCore gateway MCP server targets. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/96ae995ba8c3ea1d41eef297ca44eaf05d4f093d\"\u003e96ae995b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003eNew Features\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock-agent:\u003c/strong\u003e  Added strict parameter to ToolSpecification to allow users to enforce strict JSON schema adherence for tool input schemas. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/2d57cd61c7c6e65c716726b117de387a3c985143\"\u003e2d57cd61\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-medialive:\u003c/strong\u003e  AWS Elemental MediaLive released a new features that allows customers to use HLG 2020 as a color space for AV1 video codec. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/b9ff368c11c6747f7d104bda4955407cfea000c1\"\u003eb9ff368c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-imagebuilder:\u003c/strong\u003e  Updated pagination token validation for ListContainerRecipes API to support maximum size of 65K characters (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/0d392c9013b89fa469e08ac59415ab1b6d79daef\"\u003e0d392c90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-cloudwatch-logs:\u003c/strong\u003e  Added queryDuration, bytesScanned, and userIdentity fields to the QueryInfo response object returned by DescribeQueries. Customers can now view detailed query cost information including who ran the query, how long it took, and the volume of data scanned. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/c4b9df8e63abc716559d7a9c6f96a4562f43f6c1\"\u003ec4b9df8e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-payment-cryptography:\u003c/strong\u003e  Adds optional support to retrieve previously generated import and export tokens to simplify import and export functions (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/7627474328ec5741df10bff91b7db564a672d30d\"\u003e76274743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock:\u003c/strong\u003e  Amazon Bedrock Guardrails enforcement configuration APIs now support selective guarding controls for system prompts as well as user and assistant messages, along with SDK support for Amazon Bedrock resource policy APIs. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/4aa232cc268e3cb4f3b24d947fe3b39742a8a0f3\"\u003e4aa232cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-lightsail:\u003c/strong\u003e  Add support for tagging of Alarm resource type (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/ad9e0d7195bffce0987ba447089a9c068c30c0f3\"\u003ead9e0d71\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eFor list of updated packages, view \u003cstrong\u003eupdated-packages.md\u003c/strong\u003e in \u003cstrong\u003eassets-3.1024.0.zip\u003c/strong\u003e\u003c/p\u003e\n\u003ch2\u003ev3.1023.0\u003c/h2\u003e\n\u003ch4\u003e3.1023.0(2026-04-02)\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-kms/CHANGELOG.md\"\u003e\u003ccode\u003e@​aws-sdk/client-kms\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1024.0...v3.1025.0\"\u003e3.1025.0\u003c/a\u003e (2026-04-06)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-kms\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1023.0...v3.1024.0\"\u003e3.1024.0\u003c/a\u003e (2026-04-03)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-kms\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1022.0...v3.1023.0\"\u003e3.1023.0\u003c/a\u003e (2026-04-02)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-kms\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1021.0...v3.1022.0\"\u003e3.1022.0\u003c/a\u003e (2026-04-01)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-kms\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1020.0...v3.1021.0\"\u003e3.1021.0\u003c/a\u003e (2026-03-31)\u003c/h1\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecodegen:\u003c/strong\u003e sync for adaptive retry throttling detection fix (\u003ca href=\"https://redirect.github.com/aws/aws-sdk-js-v3/issues/7905\"\u003e#7905\u003c/a\u003e) (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/03f108d08c37fcde9de0a62c29887458e980d84e\"\u003e03f108d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1019.0...v3.1020.0\"\u003e3.1020.0\u003c/a\u003e (2026-03-30)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-kms\u003c/code\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/8cfa946642fbfebcb3e71f1aff1094d1bb7683bd\"\u003e\u003ccode\u003e8cfa946\u003c/code\u003e\u003c/a\u003e Publish v3.1025.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/99bf9fc2c6f7e26a1a027b12b5fe03f061bf55e1\"\u003e\u003ccode\u003e99bf9fc\u003c/code\u003e\u003c/a\u003e Publish v3.1024.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/34e7b07a5c7829b78a436ae096096269bb53d9ee\"\u003e\u003ccode\u003e34e7b07\u003c/code\u003e\u003c/a\u003e Publish v3.1023.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/e7e636a6fd5dceb06b91f5e616390ef73ed40b53\"\u003e\u003ccode\u003ee7e636a\u003c/code\u003e\u003c/a\u003e Publish v3.1022.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/86db17036c92a1b5de6c5b3484bf945a87788e0a\"\u003e\u003ccode\u003e86db170\u003c/code\u003e\u003c/a\u003e Publish v3.1021.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/03f108d08c37fcde9de0a62c29887458e980d84e\"\u003e\u003ccode\u003e03f108d\u003c/code\u003e\u003c/a\u003e fix(codegen): sync for adaptive retry throttling detection fix (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-kms/issues/7905\"\u003e#7905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/15cfc71196c1aa0437c2646ce5042173ed281142\"\u003e\u003ccode\u003e15cfc71\u003c/code\u003e\u003c/a\u003e Publish v3.1020.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/c702a7595037829166db776cffdfea785588d78a\"\u003e\u003ccode\u003ec702a75\u003c/code\u003e\u003c/a\u003e chore(codegen): update smithy package versions (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-kms/issues/7903\"\u003e#7903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/7f8c031600f8c396ab8cc25da8b32ee8414312d9\"\u003e\u003ccode\u003e7f8c031\u003c/code\u003e\u003c/a\u003e chore(codegen): differentiate type imports (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-kms/issues/7897\"\u003e#7897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/a84cde64ab1985fbc1058f3188f82dd1b34428ce\"\u003e\u003ccode\u003ea84cde6\u003c/code\u003e\u003c/a\u003e Publish v3.1019.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commits/v3.1025.0/clients/client-kms\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@aws-sdk/client-s3` from 3.1015.0 to 3.1025.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/releases\"\u003e\u003ccode\u003e@​aws-sdk/client-s3\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.1025.0\u003c/h2\u003e\n\u003ch4\u003e3.1025.0(2026-04-06)\u003c/h4\u003e\n\u003ch5\u003eDocumentation Changes\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-geo-maps:\u003c/strong\u003e  This release updates API reference documentation for Amazon Location Service Maps APIs to reflect regional restrictions for Grab Maps users (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/8e08de511e39c5edf01510c5dad47ef5e3050f80\"\u003e8e08de51\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003eNew Features\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclients:\u003c/strong\u003e  update client endpoints as of 2026-04-06 (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/a2eb33dab191fcd690a3b7010b62b3097d44dbda\"\u003ea2eb33da\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-mediatailor:\u003c/strong\u003e  This change adds support for Tagging the resource types Programs and Prefetch Schedules (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/cfa9a0a9a29534151741cdcc1a24ead2b36bf665\"\u003ecfa9a0a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-qconnect:\u003c/strong\u003e  Added optional originRequestId parameter to SendMessageRequest and ListSpans response in Amazon Q in Connect to support request tracing across service boundaries. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/5b3e0a76e4c5cec1d955b98fa6d8f8c70577f574\"\u003e5b3e0a76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-dlm:\u003c/strong\u003e  This release adds support for Fast Snapshot Restore AvailabilityZone Ids in Amazon Data Lifecycle Manager EBS snapshot lifecycle policies. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/18d4b471019f383d44daa7e42cd8feb23dcb5a14\"\u003e18d4b471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-guardduty:\u003c/strong\u003e  Migrated to Smithy. No functional changes (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/0054ddde0e7b5cc663ac42ad7be76811cb2c57e1\"\u003e0054ddde\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-transfer:\u003c/strong\u003e  AWS Transfer Family Connectors now support IPv6 connectivity, enabling outbound connections to remote SFTP or AS2 servers using IPv4-only or dual-stack (IPv4 and IPv6) configurations based on network requirements. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/51cf6a624b30aaa76d96aa7447b110ec6ed1240c\"\u003e51cf6a62\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-lightsail:\u003c/strong\u003e  This release adds support for the Asia Pacific (Malaysia) (ap-southeast-5) Region. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/6ceeb5d63759e180ca54aac1d36aaac4b90addc4\"\u003e6ceeb5d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-accessanalyzer:\u003c/strong\u003e  Brookie helps customers preview the impact of SCPs before deployment using historical access activity. It evaluates attached policies and proposed policy updates using collected access activity through CloudTrail authorization events and reports where currently allowed access will be denied. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/940df70360ac51652192675a9f377cac4ba3db4d\"\u003e940df703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-deadline:\u003c/strong\u003e  Added 8 batch APIs (BatchGetJob, BatchGetStep, BatchGetTask, BatchGetSession, BatchGetSessionAction, BatchGetWorker, BatchUpdateJob, BatchUpdateTask) for bulk operations. Monitors can now use an Identity Center instance in a different region via the identityCenterRegion parameter. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/64147e0837aeeade6809d40f34c443403a30f58b\"\u003e64147e08\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eFor list of updated packages, view \u003cstrong\u003eupdated-packages.md\u003c/strong\u003e in \u003cstrong\u003eassets-3.1025.0.zip\u003c/strong\u003e\u003c/p\u003e\n\u003ch2\u003ev3.1024.0\u003c/h2\u003e\n\u003ch4\u003e3.1024.0(2026-04-03)\u003c/h4\u003e\n\u003ch5\u003eDocumentation Changes\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-organizations:\u003c/strong\u003e  Updates close Account quota for member accounts in an Organization. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/4bc933f480ae1789df6e0acd34243376abc970b7\"\u003e4bc933f4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock-agentcore-control:\u003c/strong\u003e  Documentation Update for Adds support for three-legged (Authorization Code grant type) OAuth along with predefined MCP tool schema configuration for Amazon Bedrock AgentCore gateway MCP server targets. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/96ae995ba8c3ea1d41eef297ca44eaf05d4f093d\"\u003e96ae995b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003eNew Features\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock-agent:\u003c/strong\u003e  Added strict parameter to ToolSpecification to allow users to enforce strict JSON schema adherence for tool input schemas. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/2d57cd61c7c6e65c716726b117de387a3c985143\"\u003e2d57cd61\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-medialive:\u003c/strong\u003e  AWS Elemental MediaLive released a new features that allows customers to use HLG 2020 as a color space for AV1 video codec. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/b9ff368c11c6747f7d104bda4955407cfea000c1\"\u003eb9ff368c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-imagebuilder:\u003c/strong\u003e  Updated pagination token validation for ListContainerRecipes API to support maximum size of 65K characters (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/0d392c9013b89fa469e08ac59415ab1b6d79daef\"\u003e0d392c90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-cloudwatch-logs:\u003c/strong\u003e  Added queryDuration, bytesScanned, and userIdentity fields to the QueryInfo response object returned by DescribeQueries. Customers can now view detailed query cost information including who ran the query, how long it took, and the volume of data scanned. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/c4b9df8e63abc716559d7a9c6f96a4562f43f6c1\"\u003ec4b9df8e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-payment-cryptography:\u003c/strong\u003e  Adds optional support to retrieve previously generated import and export tokens to simplify import and export functions (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/7627474328ec5741df10bff91b7db564a672d30d\"\u003e76274743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock:\u003c/strong\u003e  Amazon Bedrock Guardrails enforcement configuration APIs now support selective guarding controls for system prompts as well as user and assistant messages, along with SDK support for Amazon Bedrock resource policy APIs. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/4aa232cc268e3cb4f3b24d947fe3b39742a8a0f3\"\u003e4aa232cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-lightsail:\u003c/strong\u003e  Add support for tagging of Alarm resource type (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/ad9e0d7195bffce0987ba447089a9c068c30c0f3\"\u003ead9e0d71\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eFor list of updated packages, view \u003cstrong\u003eupdated-packages.md\u003c/strong\u003e in \u003cstrong\u003eassets-3.1024.0.zip\u003c/strong\u003e\u003c/p\u003e\n\u003ch2\u003ev3.1023.0\u003c/h2\u003e\n\u003ch4\u003e3.1023.0(2026-04-02)\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md\"\u003e\u003ccode\u003e@​aws-sdk/client-s3\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1024.0...v3.1025.0\"\u003e3.1025.0\u003c/a\u003e (2026-04-06)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-s3\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1023.0...v3.1024.0\"\u003e3.1024.0\u003c/a\u003e (2026-04-03)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-s3\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1022.0...v3.1023.0\"\u003e3.1023.0\u003c/a\u003e (2026-04-02)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-s3\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1021.0...v3.1022.0\"\u003e3.1022.0\u003c/a\u003e (2026-04-01)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-s3\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1020.0...v3.1021.0\"\u003e3.1021.0\u003c/a\u003e (2026-03-31)\u003c/h1\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecodegen:\u003c/strong\u003e sync for adaptive retry throttling detection fix (\u003ca href=\"https://redirect.github.com/aws/aws-sdk-js-v3/issues/7905\"\u003e#7905\u003c/a\u003e) (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/03f108d08c37fcde9de0a62c29887458e980d84e\"\u003e03f108d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-s3:\u003c/strong\u003e Add Bucket Metrics configuration support to directory buckets (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/67ff7cc5dd608937694b7d1e10aceef09e611011\"\u003e67ff7cc\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1019.0...v3.1020.0\"\u003e3.1020.0\u003c/a\u003e (2026-03-30)\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/8cfa946642fbfebcb3e71f1aff1094d1bb7683bd\"\u003e\u003ccode\u003e8cfa946\u003c/code\u003e\u003c/a\u003e Publish v3.1025.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/99bf9fc2c6f7e26a1a027b12b5fe03f061bf55e1\"\u003e\u003ccode\u003e99bf9fc\u003c/code\u003e\u003c/a\u003e Publish v3.1024.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/34e7b07a5c7829b78a436ae096096269bb53d9ee\"\u003e\u003ccode\u003e34e7b07\u003c/code\u003e\u003c/a\u003e Publish v3.1023.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/e7e636a6fd5dceb06b91f5e616390ef73ed40b53\"\u003e\u003ccode\u003ee7e636a\u003c/code\u003e\u003c/a\u003e Publish v3.1022.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/86db17036c92a1b5de6c5b3484bf945a87788e0a\"\u003e\u003ccode\u003e86db170\u003c/code\u003e\u003c/a\u003e Publish v3.1021.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/67ff7cc5dd608937694b7d1e10aceef09e611011\"\u003e\u003ccode\u003e67ff7cc\u003c/code\u003e\u003c/a\u003e feat(client-s3): Add Bucket Metrics configuration support to directory buckets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/03f108d08c37fcde9de0a62c29887458e980d84e\"\u003e\u003ccode\u003e03f108d\u003c/code\u003e\u003c/a\u003e fix(codegen): sync for adaptive retry throttling detection fix (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3/issues/7905\"\u003e#7905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/15cfc71196c1aa0437c2646ce5042173ed281142\"\u003e\u003ccode\u003e15cfc71\u003c/code\u003e\u003c/a\u003e Publish v3.1020.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/c702a7595037829166db776cffdfea785588d78a\"\u003e\u003ccode\u003ec702a75\u003c/code\u003e\u003c/a\u003e chore(codegen): update smithy package versions (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3/issues/7903\"\u003e#7903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/7f8c031600f8c396ab8cc25da8b32ee8414312d9\"\u003e\u003ccode\u003e7f8c031\u003c/code\u003e\u003c/a\u003e chore(codegen): differentiate type imports (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3/issues/7897\"\u003e#7897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commits/v3.1025.0/clients/client-s3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@aws-sdk/client-secrets-manager` from 3.1015.0 to 3.1025.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/releases\"\u003e\u003ccode\u003e@​aws-sdk/client-secrets-manager\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.1025.0\u003c/h2\u003e\n\u003ch4\u003e3.1025.0(2026-04-06)\u003c/h4\u003e\n\u003ch5\u003eDocumentation Changes\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-geo-maps:\u003c/strong\u003e  This release updates API reference documentation for Amazon Location Service Maps APIs to reflect regional restrictions for Grab Maps users (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/8e08de511e39c5edf01510c5dad47ef5e3050f80\"\u003e8e08de51\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003eNew Features\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclients:\u003c/strong\u003e  update client endpoints as of 2026-04-06 (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/a2eb33dab191fcd690a3b7010b62b3097d44dbda\"\u003ea2eb33da\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-mediatailor:\u003c/strong\u003e  This change adds support for Tagging the resource types Programs and Prefetch Schedules (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/cfa9a0a9a29534151741cdcc1a24ead2b36bf665\"\u003ecfa9a0a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-qconnect:\u003c/strong\u003e  Added optional originRequestId parameter to SendMessageRequest and ListSpans response in Amazon Q in Connect to support request tracing across service boundaries. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/5b3e0a76e4c5cec1d955b98fa6d8f8c70577f574\"\u003e5b3e0a76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-dlm:\u003c/strong\u003e  This release adds support for Fast Snapshot Restore AvailabilityZone Ids in Amazon Data Lifecycle Manager EBS snapshot lifecycle policies. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/18d4b471019f383d44daa7e42cd8feb23dcb5a14\"\u003e18d4b471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-guardduty:\u003c/strong\u003e  Migrated to Smithy. No functional changes (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/0054ddde0e7b5cc663ac42ad7be76811cb2c57e1\"\u003e0054ddde\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-transfer:\u003c/strong\u003e  AWS Transfer Family Connectors now support IPv6 connectivity, enabling outbound connections to remote SFTP or AS2 servers using IPv4-only or dual-stack (IPv4 and IPv6) configurations based on network requirements. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/51cf6a624b30aaa76d96aa7447b110ec6ed1240c\"\u003e51cf6a62\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-lightsail:\u003c/strong\u003e  This release adds support for the Asia Pacific (Malaysia) (ap-southeast-5) Region. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/6ceeb5d63759e180ca54aac1d36aaac4b90addc4\"\u003e6ceeb5d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-accessanalyzer:\u003c/strong\u003e  Brookie helps customers preview the impact of SCPs before deployment using historical access activity. It evaluates attached policies and proposed policy updates using collected access activity through CloudTrail authorization events and reports where currently allowed access will be denied. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/940df70360ac51652192675a9f377cac4ba3db4d\"\u003e940df703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-deadline:\u003c/strong\u003e  Added 8 batch APIs (BatchGetJob, BatchGetStep, BatchGetTask, BatchGetSession, BatchGetSessionAction, BatchGetWorker, BatchUpdateJob, BatchUpdateTask) for bulk operations. Monitors can now use an Identity Center instance in a different region via the identityCenterRegion parameter. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/64147e0837aeeade6809d40f34c443403a30f58b\"\u003e64147e08\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eFor list of updated packages, view \u003cstrong\u003eupdated-packages.md\u003c/strong\u003e in \u003cstrong\u003eassets-3.1025.0.zip\u003c/strong\u003e\u003c/p\u003e\n\u003ch2\u003ev3.1024.0\u003c/h2\u003e\n\u003ch4\u003e3.1024.0(2026-04-03)\u003c/h4\u003e\n\u003ch5\u003eDocumentation Changes\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-organizations:\u003c/strong\u003e  Updates close Account quota for member accounts in an Organization. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/4bc933f480ae1789df6e0acd34243376abc970b7\"\u003e4bc933f4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock-agentcore-control:\u003c/strong\u003e  Documentation Update for Adds support for three-legged (Authorization Code grant type) OAuth along with predefined MCP tool schema configuration for Amazon Bedrock AgentCore gateway MCP server targets. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/96ae995ba8c3ea1d41eef297ca44eaf05d4f093d\"\u003e96ae995b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003eNew Features\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock-agent:\u003c/strong\u003e  Added strict parameter to ToolSpecification to allow users to enforce strict JSON schema adherence for tool input schemas. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/2d57cd61c7c6e65c716726b117de387a3c985143\"\u003e2d57cd61\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-medialive:\u003c/strong\u003e  AWS Elemental MediaLive released a new features that allows customers to use HLG 2020 as a color space for AV1 video codec. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/b9ff368c11c6747f7d104bda4955407cfea000c1\"\u003eb9ff368c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-imagebuilder:\u003c/strong\u003e  Updated pagination token validation for ListContainerRecipes API to support maximum size of 65K characters (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/0d392c9013b89fa469e08ac59415ab1b6d79daef\"\u003e0d392c90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-cloudwatch-logs:\u003c/strong\u003e  Added queryDuration, bytesScanned, and userIdentity fields to the QueryInfo response object returned by DescribeQueries. Customers can now view detailed query cost information including who ran the query, how long it took, and the volume of data scanned. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/c4b9df8e63abc716559d7a9c6f96a4562f43f6c1\"\u003ec4b9df8e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-payment-cryptography:\u003c/strong\u003e  Adds optional support to retrieve previously generated import and export tokens to simplify import and export functions (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/7627474328ec5741df10bff91b7db564a672d30d\"\u003e76274743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock:\u003c/strong\u003e  Amazon Bedrock Guardrails enforcement configuration APIs now support selective guarding controls for system prompts as well as user and assistant messages, along with SDK support for Amazon Bedrock resource policy APIs. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/4aa232cc268e3cb4f3b24d947fe3b39742a8a0f3\"\u003e4aa232cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-lightsail:\u003c/strong\u003e  Add support for tagging of Alarm resource type (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/ad9e0d7195bffce0987ba447089a9c068c30c0f3\"\u003ead9e0d71\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eFor list of updated packages, view \u003cstrong\u003eupdated-packages.md\u003c/strong\u003e in \u003cstrong\u003eassets-3.1024.0.zip\u003c/strong\u003e\u003c/p\u003e\n\u003ch2\u003ev3.1023.0\u003c/h2\u003e\n\u003ch4\u003e3.1023.0(2026-04-02)\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-secrets-manager/CHANGELOG.md\"\u003e\u003ccode\u003e@​aws-sdk/client-secrets-manager\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1024.0...v3.1025.0\"\u003e3.1025.0\u003c/a\u003e (2026-04-06)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-secrets-manager\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1023.0...v3.1024.0\"\u003e3.1024.0\u003c/a\u003e (2026-04-03)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-secrets-manager\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1022.0...v3.1023.0\"\u003e3.1023.0\u003c/a\u003e (2026-04-02)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-secrets-manager\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1021.0...v3.1022.0\"\u003e3.1022.0\u003c/a\u003e (2026-04-01)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-secrets-manager\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1020.0...v3.1021.0\"\u003e3.1021.0\u003c/a\u003e (2026-03-31)\u003c/h1\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecodegen:\u003c/strong\u003e sync for adaptive retry throttling detection fix (\u003ca href=\"https://redirect.github.com/aws/aws-sdk-js-v3/issues/7905\"\u003e#7905\u003c/a\u003e) (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/03f108d08c37fcde9de0a62c29887458e980d84e\"\u003e03f108d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1019.0...v3.1020.0\"\u003e3.1020.0\u003c/a\u003e (2026-03-30)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-secrets-manager\u003c/code\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/8cfa946642fbfebcb3e71f1aff1094d1bb7683bd\"\u003e\u003ccode\u003e8cfa946\u003c/code\u003e\u003c/a\u003e Publish v3.1025.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/99bf9fc2c6f7e26a1a027b12b5fe03f061bf55e1\"\u003e\u003ccode\u003e99bf9fc\u003c/code\u003e\u003c/a\u003e Publish v3.1024.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/34e7b07a5c7829b78a436ae096096269bb53d9ee\"\u003e\u003ccode\u003e34e7b07\u003c/code\u003e\u003c/a\u003e Publish v3.1023.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/e7e636a6fd5dceb06b91f5e616390ef73ed40b53\"\u003e\u003ccode\u003ee7e636a\u003c/code\u003e\u003c/a\u003e Publish v3.1022.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/86db17036c92a1b5de6c5b3484bf945a87788e0a\"\u003e\u003ccode\u003e86db170\u003c/code\u003e\u003c/a\u003e Publish v3.1021.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/03f108d08c37fcde9de0a62c29887458e980d84e\"\u003e\u003ccode\u003e03f108d\u003c/code\u003e\u003c/a\u003e fix(codegen): sync for adaptive retry throttling detection fix (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-secrets-manager/issues/7905\"\u003e#7905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/15cfc71196c1aa0437c2646ce5042173ed281142\"\u003e\u003ccode\u003e15cfc71\u003c/code\u003e\u003c/a\u003e Publish v3.1020.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/c702a7595037829166db776cffdfea785588d78a\"\u003e\u003ccode\u003ec702a75\u003c/code\u003e\u003c/a\u003e chore(codegen): update smithy package versions (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-secrets-manager/issues/7903\"\u003e#7903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/7f8c031600f8c396ab8cc25da8b32ee8414312d9\"\u003e\u003ccode\u003e7f8c031\u003c/code\u003e\u003c/a\u003e chore(codegen): differentiate type imports (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-secrets-manager/issues/7897\"\u003e#7897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/a84cde64ab1985fbc1058f3188f82dd1b34428ce\"\u003e\u003ccode\u003ea84cde6\u003c/code\u003e\u003c/a\u003e Publish v3.1019.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commits/v3.1025.0/clients/client-secrets-manager\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@aws-sdk/s3-request-presigner` from 3.1015.0 to 3.1025.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/releases\"\u003e\u003ccode\u003e@​aws-sdk/s3-request-presigner\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.1025.0\u003c/h2\u003e\n\u003ch4\u003e3.1025.0(2026-04-06)\u003c/h4\u003e\n\u003ch5\u003eDocumentation Changes\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-geo-maps:\u003c/strong\u003e  This release updates API reference documentation for Amazon Location Service Maps APIs to reflect regional restrictions for Grab Maps users (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/8e08de511e39c5edf01510c5dad47ef5e3050f80\"\u003e8e08de51\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003eNew Features\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclients:\u003c/strong\u003e  update client endpoints as of 2026-04-06 (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/a2eb33dab191fcd690a3b7010b62b3097d44dbda\"\u003ea2eb33da\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-mediatailor:\u003c/strong\u003e  This change adds support for Tagging the resource types Programs and Prefetch Schedules (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/cfa9a0a9a29534151741cdcc1a24ead2b36bf665\"\u003ecfa9a0a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-qconnect:\u003c/strong\u003e  Added optional originRequestId parameter to SendMessageRequest and ListSpans response in Amazon Q in Connect to support request tracing across service boundaries. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/5b3e0a76e4c5cec1d955b98fa6d8f8c70577f574\"\u003e5b3e0a76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-dlm:\u003c/strong\u003e  This release adds support for Fast Snapshot Restore AvailabilityZone Ids in Amazon Data Lifecycle Manager EBS snapshot lifecycle policies. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/18d4b471019f383d44daa7e42cd8feb23dcb5a14\"\u003e18d4b471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-guardduty:\u003c/strong\u003e  Migrated to Smithy. No functional changes (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/0054ddde0e7b5cc663ac42ad7be76811cb2c57e1\"\u003e0054ddde\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-transfer:\u003c/strong\u003e  AWS Transfer Family Connectors now support IPv6 connectivity, enabling outbound connections to remote SFTP or AS2 servers using IPv4-only or dual-stack (IPv4 and IPv6) configurations based on network requirements. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/51cf6a624b30aaa76d96aa7447b110ec6ed1240c\"\u003e51cf6a62\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-lightsail:\u003c/strong\u003e  This release adds support for the Asia Pacific (Malaysia) (ap-southeast-5) Region. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/6ceeb5d63759e180ca54aac1d36aaac4b90addc4\"\u003e6ceeb5d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-accessanalyzer:\u003c/strong\u003e  Brookie helps customers preview the impact of SCPs before deployment using historical access activity. It evaluates attached policies and proposed policy updates using collected access activity through CloudTrail authorization events and reports where currently allowed access will be denied. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/940df70360ac51652192675a9f377cac4ba3db4d\"\u003e940df703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-deadline:\u003c/strong\u003e  Added 8 batch APIs (BatchGetJob, BatchGetStep, BatchGetTask, BatchGetSession, BatchGetSessionAction, BatchGetWorker, BatchUpdateJob, BatchUpdateTask) for bulk operations. Monitors can now use an Identity Center instance in a different region via the identityCenterRegion parameter. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/64147e0837aeeade6809d40f34c443403a30f58b\"\u003e64147e08\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eFor list of updated packages, view \u003cstrong\u003eupdated-packages.md\u003c/strong\u003e in \u003cstrong\u003eassets-3.1025.0.zip\u003c/strong\u003e\u003c/p\u003e\n\u003ch2\u003ev3.1024.0\u003c/h2\u003e\n\u003ch4\u003e3.1024.0(2026-04-03)\u003c/h4\u003e\n\u003ch5\u003eDocumentation Changes\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-organizations:\u003c/strong\u003e  Updates close Account quota for member accounts in an Organization. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/4bc933f480ae1789df6e0acd34243376abc970b7\"\u003e4bc933f4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock-agentcore-control:\u003c/strong\u003e  Documentation Update for Adds support for three-legged (Authorization Code grant type) OAuth along with predefined MCP tool schema configuration for Amazon Bedrock AgentCore gateway MCP server targets. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/96ae995ba8c3ea1d41eef297ca44eaf05d4f093d\"\u003e96ae995b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003eNew Features\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock-agent:\u003c/strong\u003e  Added strict parameter to ToolSpecification to allow users to enforce strict JSON schema adherence for tool input schemas. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/2d57cd61c7c6e65c716726b117de387a3c985143\"\u003e2d57cd61\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-medialive:\u003c/strong\u003e  AWS Elemental MediaLive released a new features that allows customers to use HLG 2020 as a color space for AV1 video codec. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/b9ff368c11c6747f7d104bda4955407cfea000c1\"\u003eb9ff368c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-imagebuilder:\u003c/strong\u003e  Updated pagination token validation for ListContainerRecipes API to support maximum size of 65K characters (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/0d392c9013b89fa469e08ac59415ab1b6d79daef\"\u003e0d392c90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-cloudwatch-logs:\u003c/strong\u003e  Added queryDuration, bytesScanned, and userIdentity fields to the QueryInfo response object returned by DescribeQueries. Customers can now view detailed query cost information including who ran the query, how long it took, and the volume of data scanned. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/c4b9df8e63abc716559d7a9c6f96a4562f43f6c1\"\u003ec4b9df8e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-payment-cryptography:\u003c/strong\u003e  Adds optional support to retrieve previously generated import and export tokens to simplify import and export functions (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/7627474328ec5741df10bff91b7db564a672d30d\"\u003e76274743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock:\u003c/strong\u003e  Amazon Bedrock Guardrails enforcement configuration APIs now support selective guarding controls for system prompts as well as user and assistant messages, along with SDK support for Amazon Bedrock resource policy APIs. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/4aa232cc268e3cb4f3b24d947fe3b39742a8a0f3\"\u003e4aa232cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-lightsail:\u003c/strong\u003e  Add support for tagging of Alarm resource type (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/ad9e0d7195bffce0987ba447089a9c068c30c0f3\"\u003ead9e0d71\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eFor list of updated packages, view \u003cstrong\u003eupdated-packages.md\u003c/strong\u003e in \u003cstrong\u003eassets-3.1024.0.zip\u003c/strong\u003e\u003c/p\u003e\n\u003ch2\u003ev3.1023.0\u003c/h2\u003e\n\u003ch4\u003e3.1023.0(2026-04-02)\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/blob/main/packages/s3-request-presigner/CHANGELOG.md\"\u003e\u003ccode\u003e@​aws-sdk/s3-request-presigner\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1024.0...v3.1025.0\"\u003e3.1025.0\u003c/a\u003e (2026-04-06)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/s3-request-presigner\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1023.0...v3.1024.0\"\u003e3.1024.0\u003c/a\u003e (2026-04-03)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/s3-request-presigner\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1022.0...v3.1023.0\"\u003e3.1023.0\u003c/a\u003e (2026-04-02)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/s3-request-presigner\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1021.0...v3.1022.0\"\u003e3.1022.0\u003c/a\u003e (2026-04-01)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/s3-request-presigner\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1020.0...v3.1021.0\"\u003e3.1021.0\u003c/a\u003e (2026-03-31)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/s3-request-presigner\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1019.0...v3.1020.0\"\u003e3.1020.0\u003c/a\u003e (2026-03-30)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/s3-request-presigner\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1018.0...v3.1019.0\"\u003e3.1019.0\u003c/a\u003e (2026-03-27)\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/8cfa946642fbfebcb3e71f1aff1094d1bb7683bd\"\u003e\u003ccode\u003e8cfa946\u003c/code\u003e\u003c/a\u003e Publish v3.1025.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/99bf9fc2c6f7e26a1a027b12b5fe03f061bf55e1\"\u003e\u003ccode\u003e99bf9fc\u003c/code\u003e\u003c/a\u003e Publish v3.1024.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/34e7b07a5c7829b78a436ae096096269bb53d9ee\"\u003e\u003ccode\u003e34e7b07\u003c/code\u003e\u003c/a\u003e Publish v3.1023.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/e7e636a6fd5dceb06b91f5e616390ef73ed40b53\"\u003e\u003ccode\u003ee7e636a\u003c/code\u003e\u003c/a\u003e Publish v3.1022.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/86db17036c92a1b5de6c5b3484bf945a87788e0a\"\u003e\u003ccode\u003e86db170\u003c/code\u003e\u003c/a\u003e Publish v3.1021.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/15cfc71196c1aa0437c2646ce5042173ed281142\"\u003e\u003ccode\u003e15cfc71\u003c/code\u003e\u003c/a\u003e Publish v3.1020.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/c702a7595037829166db776cffdfea785588d78a\"\u003e\u003ccode\u003ec702a75\u003c/code\u003e\u003c/a\u003e chore(codegen): update smithy package versions (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/tree/HEAD/packages/s3-request-presigner/issues/7903\"\u003e#7903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/a84cde64ab1985fbc1058f3188f82dd1b34428ce\"\u003e\u003ccode\u003ea84cde6\u003c/code\u003e\u003c/a\u003e Publish v3.1019.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/a3a34e38278f3d1fa1e8ee078d6d85d7cbe3dd56\"\u003e\u003ccode\u003ea3a34e3\u003c/code\u003e\u003c/a\u003e Publish v3.1018.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/32dfe7f4f724e639381e985dbdbfd1fc948f2ffa\"\u003e\u003ccode\u003e32dfe7f\u003c/code\u003e\u003c/a\u003e Publish v3.1017.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commits/v3.1025.0/packages/s3-request-presigner\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@azure/identity` from 4.13.0 to 4.13.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-js/commit/0604e47fff8917b9f4674d75a88dafe2a72cc3de\"\u003e\u003ccode\u003e0604e47\u003c/code\u003e\u003c/a\u003e Sync eng/common directory with azure-sdk-tools for PR 13235 (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-js/issues/36861\"\u003e#36861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-js/commit/85a1361f61b24e53fe90000768fbe9cea72cdf39\"\u003e\u003ccode\u003e85a1361\u003c/code\u003e\u003c/a\u003e Silence 1ESPT non-blocking error (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-js/issues/36342\"\u003e#36342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-js/commit/a6ce3c792f0349aff13136314fc3084fc83923c3\"\u003e\u003ccode\u003ea6ce3c7\u003c/code\u003e\u003c/a\u003e [Identity] Bump MSAL dependency to v5 (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-js/issues/37685\"\u003e#37685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-js/commit/6d2d18010a6e517bc9a8ec030e0522957ae46331\"\u003e\u003ccode\u003e6d2d180\u003c/code\u003e\u003c/a\u003e restore assets.json from \u003ccode\u003e@​azure/storage-blob\u003c/code\u003e_12.31.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Azure/azure-sdk-for-js/compare/@azure/identity_4.13.0...@azure/identity_4.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@keycloak/keycloak-admin-client` from 26.5.6 to 26.5.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/keycloak/keycloak/releases\"\u003e\u003ccode\u003e@​keycloak/keycloak-admin-client\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.5.7\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/keycloak/keycloak/commit/97c2dad98597b17efae79006be47a51c6f5a72e9\"\u003e\u003ccode\u003e97c2dad\u003c/code\u003e\u003c/a\u003e Set version to 26.5.7\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/keycloak/keycloak/commits/26.5.7/js/libs/keycloak-admin-client\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@nestjs/common` from 11.1.17 to 11.1.18\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nestjs/nest/releases\"\u003e\u003ccode\u003e@​nestjs/common\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev11.1.18 (2026-04-03)\u003c/h2\u003e\n\u003ch4\u003eBug fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emicroservices\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/16675\"\u003e#16675\u003c/a\u003e fix(microservices): preserve packet headers in nats serializer (\u003ca href=\"https://github.com/wwenrr\"\u003e\u003ccode\u003e@​wwenrr\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecore\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/16683\"\u003e#16683\u003c/a\u003e fix(core): prevent injector hang when design:paramtypes is missing (\u003ca href=\"https://github.com/Youmoo\"\u003e\u003ccode\u003e@​Youmoo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/16637\"\u003e#16637\u003c/a\u003e fix(core): dependency injection edge case with moduleref.create (\u003ca href=\"https://github.com/JakobStaudinger\"\u003e\u003ccode\u003e@​JakobStaudinger\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/16686\"\u003enestjs/nest#16686\u003c/a\u003e fix(core): sanitize sse message\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eDependencies\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecore\u003c/code\u003e, \u003ccode\u003eplatform-express\u003c/code\u003e, \u003ccode\u003eplatform-fastify\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/16679\"\u003e#16679\u003c/a\u003e fix(deps): update dependency path-to-regexp to v8.4.2 (\u003ca href=\"https://github.com/apps/renovate\"\u003e\u003ccode\u003e@​renovate[bot]\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eplatform-fastify\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/16623\"\u003e#16623\u003c/a\u003e fix(deps): update dependency fastify to v5.8.4 (\u003ca href=\"https://github.com/apps/renovate\"\u003e\u003ccode\u003e@​renovate[bot]\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eplatform-ws\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/16618\"\u003e#16618\u003c/a\u003e chore(deps): bump ws from 8.19.0 to 8.20.0 (\u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecommon\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/16619\"\u003e#16619\u003c/a\u003e chore(deps): bump file-type from 21.3.3 to 21.3.4 (\u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eCommitters: 6\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAnkit San (\u003ca href=\"https://github.com/ankitbelal\"\u003e\u003ccode\u003e@​ankitbelal\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJakob Staudinger (\u003ca href=\"https://github.com/JakobStaudinger\"\u003e\u003ccode\u003e@​JakobStaudinger\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eKamil Mysliwiec (\u003ca href=\"https://github.com/kamilmysliwiec\"\u003e\u003ccode\u003e@​kamilmysliwiec\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eKrishna Chaitanya (\u003ca href=\"https://github.com/Krishnachaitanyakc\"\u003e\u003ccode\u003e@​Krishnachaitanyakc\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMK (\u003ca href=\"https://github.com/wwenrr\"\u003e\u003ccode\u003e@​wwenrr\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eyoumoo (\u003ca href=\"https://github.com/Youmoo\"\u003e\u003ccode\u003e@​Youmoo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/3c1cc5f91e95fcec27c3694cd42a08a50e85cc5f\"\u003e\u003ccode\u003e3c1cc5f\u003c/code\u003e\u003c/a\u003e chore(release): publish v11.1.18 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/a39e345b0af1dc1aeff87c1843df6712b18ee6ee\"\u003e\u003ccode\u003ea39e345\u003c/code\u003e\u003c/a\u003e refactor(common): change console logger helpers to protected\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/34f0f28d5f30e0ac0d39618d9f84ce0b7429a7f2\"\u003e\u003ccode\u003e34f0f28\u003c/code\u003e\u003c/a\u003e chore(deps): bump file-type from 21.3.3 to 21.3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/0e96b0a93c1ad83d761eb3a836b42f7edfcf8c4c\"\u003e\u003ccode\u003e0e96b0a\u003c/code\u003e\u003c/a\u003e chore(deps): bump file-type from 21.3.2 to 21.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/5a05f52c4368157219ea15c30ba881d9ddd64bd9\"\u003e\u003ccode\u003e5a05f52\u003c/code\u003e\u003c/a\u003e chore: update readme\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/nestjs/nest/commits/v11.1.18/packages/common\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@nestjs/core` from 11.1.17 to 11.1.18\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nestjs/nest/releases\"\u003e\u003ccode\u003e@​nestjs/core\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev11.1.18 (2026-04-03)\u003c/h2\u003e\n\u003ch4\u003eBug fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emicroservices\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/16675\"\u003e#16675\u003c/a\u003e fix(microservices): preserve packet headers in na...\n\n_Description has been truncated_","html_url":"https://github.com/openwallet-foundation-labs/eudiplo/pull/611","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/openwallet-foundation-labs%2Feudiplo/issues/611","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/611/packages"}},{"old_version":"18.2.0","new_version":"21.3.1","update_type":"major","path":"/edc-policy-playground","pr_created_at":"2026-04-06T22:05:13.000Z","version_change":"18.2.0 → 21.3.1","issue":{"uuid":"4214308353","node_id":"PR_kwDOKDWd9s7QVEE3","number":710,"state":"open","title":"chore(deps-dev): bump @angular-eslint/builder from 18.2.0 to 21.3.1 in /edc-policy-playground","user":"dependabot[bot]","labels":["dependencies","npm","stale"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-06T22:05:13.000Z","updated_at":"2026-04-21T04:01:02.442Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"@angular-eslint/builder","old_version":"18.2.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":"/edc-policy-playground","ecosystem":"npm"},"body":"Bumps [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) from 18.2.0 to 21.3.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.3.1\u003c/h2\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.0.3 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2949\"\u003e#2949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2954\"\u003e#2954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] properly handle statements with unary operators (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2926\"\u003e#2926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eprefer-self-closing-tags:\u003c/strong\u003e add selectedcontent nonAriaElements (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebjarketrux\u003c/li\u003e\n\u003cli\u003eDaniil Demenev \u003ca href=\"https://github.com/BEGEMOT9I\"\u003e\u003ccode\u003e@​BEGEMOT9I\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev21.3.0\u003c/h2\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e add computed-must-return rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2882\"\u003e#2882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] detect Signal member access (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2848\"\u003e#2848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e add \u003ccode\u003eno-non-null-assertion\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2885\"\u003e#2885\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.1.4 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] add check \u003ccode\u003eInputSignalWithTransform\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2879\"\u003e#2879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] detect \u003ccode\u003eSignal\u003c/code\u003e type correctly (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [prefer-template-literal] preserve nested non string binary \u003ccode\u003e+\u003c/code\u003e operation (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2902\"\u003e#2902\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev21.2.0\u003c/h2\u003e\n\u003ch2\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for builder to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch2\u003e21.1.0 (2025-12-08)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ereference \u003ccode\u003e@​angular/cli\u003c/code\u003e peer in addition to direct dependencies (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2820\"\u003e#2820\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.0.1 (2025-11-23)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for builder to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch1\u003e21.0.0 (2025-11-22)\u003c/h1\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ \u003cstrong\u003ebuilder:\u003c/strong\u003e align formatter invocation with eslint CLI by always passing all files, even if quiet (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/bceaa80e\"\u003ebceaa80e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e⚠️ Breaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ \u003cstrong\u003ebuilder:\u003c/strong\u003e align formatter invocation with eslint CLI by always passing all files, even if quiet (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/bceaa80e\"\u003ebceaa80e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/8f2afdce28d4cbdac792465b33aff35915af23b5\"\u003e\u003ccode\u003e8f2afdc\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/77099ee61cda76136038dce9f21d3af6071a7d06\"\u003e\u003ccode\u003e77099ee\u003c/code\u003e\u003c/a\u003e chore: ensure dist artifacts are available for e2e publishing in DTE (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/af8900f087b09556bfaddd815ce483bf7b0262ea\"\u003e\u003ccode\u003eaf8900f\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix: narrow build target cache outputs to avoid clobbering compile ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/7e173918eb48b2db41ce4d5a934567dab26fe54b\"\u003e\u003ccode\u003e7e17391\u003c/code\u003e\u003c/a\u003e fix: narrow build target cache outputs to avoid clobbering compile artifacts ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/a959e4d2804bbeb3cbc7caaa9c2fb2be9da3348e\"\u003e\u003ccode\u003ea959e4d\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/5c214854f897cb698563f53db6b9bddfb23e4d8e\"\u003e\u003ccode\u003e5c21485\u003c/code\u003e\u003c/a\u003e chore(builder): change builder tests to be cross-platform (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/3ef7fb157e866d76ae76d41b706b92efbd54d72d\"\u003e\u003ccode\u003e3ef7fb1\u003c/code\u003e\u003c/a\u003e feat: add support for ESLint v10 (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/6fa321dc27993f55e6d5bc6e421010bb7b5ef1d3\"\u003e\u003ccode\u003e6fa321d\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/4fa7889c54600ba56d29928b8026ff30a16d600b\"\u003e\u003ccode\u003e4fa7889\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/e7bb47b27bfaef61af694ebc29bc5636378b232c\"\u003e\u003ccode\u003ee7bb47b\u003c/code\u003e\u003c/a\u003e fix: reference \u003ccode\u003e@​angular/cli\u003c/code\u003e peer in addition to direct dependencies (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2820\"\u003e#2820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.3.1/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by [GitHub Actions](\u003ca href=\"https://www.npmjs.com/~GitHub\"\u003ehttps://www.npmjs.com/~GitHub\u003c/a\u003e Actions), a new releaser for \u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular-eslint/builder\u0026package-manager=npm_and_yarn\u0026previous-version=18.2.0\u0026new-version=21.3.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/eclipse-tractusx/tutorial-resources/pull/710","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-tractusx%2Ftutorial-resources/issues/710","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/710/packages"}},{"old_version":"21.2.0","new_version":"21.3.1","update_type":"minor","path":null,"pr_created_at":"2026-04-06T04:16:56.000Z","version_change":"21.2.0 → 21.3.1","issue":{"uuid":"4209486661","node_id":"PR_kwDOQ2d8W87QHN2Q","number":57,"state":"open","title":"chore(deps)(deps-dev): bump the dev-dependencies group across 1 directory with 25 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-06T04:16:56.000Z","updated_at":"2026-04-06T04:17:10.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps-dev): bump","group_name":"dev-dependencies","update_count":25,"packages":[{"name":"@angular-eslint/builder","old_version":"21.2.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@commitlint/cli","old_version":"20.4.1","new_version":"20.5.0","repository_url":"https://github.com/conventional-changelog/commitlint"},{"name":"@commitlint/config-conventional","old_version":"20.4.1","new_version":"20.5.0","repository_url":"https://github.com/conventional-changelog/commitlint"},{"name":"@types/dompurify","old_version":"3.0.5","new_version":"3.2.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@types/node","old_version":"25.5.0","new_version":"25.5.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"globals","old_version":"17.3.0","new_version":"17.4.0","repository_url":"https://github.com/sindresorhus/globals"},{"name":"lint-staged","old_version":"16.2.7","new_version":"16.4.0","repository_url":"https://github.com/lint-staged/lint-staged"},{"name":"typescript-eslint","old_version":"8.55.0","new_version":"8.58.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"@vitest/coverage-v8","old_version":"4.0.18","new_version":"4.1.2","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"rimraf","old_version":"6.1.2","new_version":"6.1.3","repository_url":"https://github.com/isaacs/rimraf"},{"name":"vitest","old_version":"4.0.18","new_version":"4.1.2","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"ng-packagr","old_version":"21.1.0","new_version":"21.2.2","repository_url":"https://github.com/ng-packagr/ng-packagr"},{"name":"@types/lodash","old_version":"4.17.23","new_version":"4.17.24","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@capacitor/cli","old_version":"8.1.0","new_version":"8.3.0","repository_url":"https://github.com/ionic-team/capacitor"},{"name":"jasmine-core","old_version":"6.0.1","new_version":"6.1.0","repository_url":"https://github.com/jasmine/jasmine"},{"name":"postcss","old_version":"8.5.6","new_version":"8.5.8","repository_url":"https://github.com/postcss/postcss"},{"name":"@playwright/test","old_version":"1.58.2","new_version":"1.59.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"msw","old_version":"2.12.10","new_version":"2.12.14","repository_url":"https://github.com/mswjs/msw"},{"name":"@types/multer","old_version":"2.0.0","new_version":"2.1.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@types/sharp","old_version":"0.31.1","new_version":"0.32.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"nodemon","old_version":"3.1.11","new_version":"3.1.14","repository_url":"https://github.com/remy/nodemon"},{"name":"shx","old_version":"0.3.4","new_version":"0.4.0","repository_url":"https://github.com/shelljs/shx"}],"path":null,"ecosystem":"npm"},"body":"Bumps the dev-dependencies group with 22 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `21.2.0` | `21.3.1` |\n| [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) | `20.4.1` | `20.5.0` |\n| [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) | `20.4.1` | `20.5.0` |\n| [@types/dompurify](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/dompurify) | `3.0.5` | `3.2.0` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.5.0` | `25.5.2` |\n| [globals](https://github.com/sindresorhus/globals) | `17.3.0` | `17.4.0` |\n| [lint-staged](https://github.com/lint-staged/lint-staged) | `16.2.7` | `16.4.0` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.55.0` | `8.58.0` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.0.18` | `4.1.2` |\n| [rimraf](https://github.com/isaacs/rimraf) | `6.1.2` | `6.1.3` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.0.18` | `4.1.2` |\n| [ng-packagr](https://github.com/ng-packagr/ng-packagr) | `21.1.0` | `21.2.2` |\n| [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) | `4.17.23` | `4.17.24` |\n| [@capacitor/cli](https://github.com/ionic-team/capacitor) | `8.1.0` | `8.3.0` |\n| [jasmine-core](https://github.com/jasmine/jasmine) | `6.0.1` | `6.1.0` |\n| [postcss](https://github.com/postcss/postcss) | `8.5.6` | `8.5.8` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.58.2` | `1.59.1` |\n| [msw](https://github.com/mswjs/msw) | `2.12.10` | `2.12.14` |\n| [@types/multer](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/multer) | `2.0.0` | `2.1.0` |\n| [@types/sharp](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/sharp) | `0.31.1` | `0.32.0` |\n| [nodemon](https://github.com/remy/nodemon) | `3.1.11` | `3.1.14` |\n| [shx](https://github.com/shelljs/shx) | `0.3.4` | `0.4.0` |\n\n\nUpdates `@angular-eslint/builder` from 21.2.0 to 21.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.3.1\u003c/h2\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.0.3 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2949\"\u003e#2949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2954\"\u003e#2954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] properly handle statements with unary operators (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2926\"\u003e#2926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eprefer-self-closing-tags:\u003c/strong\u003e add selectedcontent nonAriaElements (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebjarketrux\u003c/li\u003e\n\u003cli\u003eDaniil Demenev \u003ca href=\"https://github.com/BEGEMOT9I\"\u003e\u003ccode\u003e@​BEGEMOT9I\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev21.3.0\u003c/h2\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e add computed-must-return rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2882\"\u003e#2882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] detect Signal member access (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2848\"\u003e#2848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e add \u003ccode\u003eno-non-null-assertion\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2885\"\u003e#2885\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.1.4 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] add check \u003ccode\u003eInputSignalWithTransform\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2879\"\u003e#2879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] detect \u003ccode\u003eSignal\u003c/code\u003e type correctly (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e [prefer-template-literal] preserve nested non string binary \u003ccode\u003e+\u003c/code\u003e operation (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2902\"\u003e#2902\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDave \u003ca href=\"https://github.com/reduckted\"\u003e\u003ccode\u003e@​reduckted\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvgeny Stepanovych \u003ca href=\"https://github.com/undsoft\"\u003e\u003ccode\u003e@​undsoft\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for ESLint v10 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/8f2afdce28d4cbdac792465b33aff35915af23b5\"\u003e\u003ccode\u003e8f2afdc\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/77099ee61cda76136038dce9f21d3af6071a7d06\"\u003e\u003ccode\u003e77099ee\u003c/code\u003e\u003c/a\u003e chore: ensure dist artifacts are available for e2e publishing in DTE (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/af8900f087b09556bfaddd815ce483bf7b0262ea\"\u003e\u003ccode\u003eaf8900f\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix: narrow build target cache outputs to avoid clobbering compile ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/7e173918eb48b2db41ce4d5a934567dab26fe54b\"\u003e\u003ccode\u003e7e17391\u003c/code\u003e\u003c/a\u003e fix: narrow build target cache outputs to avoid clobbering compile artifacts ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/a959e4d2804bbeb3cbc7caaa9c2fb2be9da3348e\"\u003e\u003ccode\u003ea959e4d\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/5c214854f897cb698563f53db6b9bddfb23e4d8e\"\u003e\u003ccode\u003e5c21485\u003c/code\u003e\u003c/a\u003e chore(builder): change builder tests to be cross-platform (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/3ef7fb157e866d76ae76d41b706b92efbd54d72d\"\u003e\u003ccode\u003e3ef7fb1\u003c/code\u003e\u003c/a\u003e feat: add support for ESLint v10 (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.3.1/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@commitlint/cli` from 20.4.1 to 20.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/conventional-changelog/commitlint/releases\"\u003e\u003ccode\u003e@​commitlint/cli\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev20.5.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.4...v20.5.0\"\u003e20.5.0\u003c/a\u003e (2026-03-15)\u003c/h1\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(resolve-extends): always resolve extended parser presets for proper merging by \u003ca href=\"https://github.com/omar-y-abdi\"\u003e\u003ccode\u003e@​omar-y-abdi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4647\"\u003econventional-changelog/commitlint#4647\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(load): resolve async config exports in CJS projects by \u003ca href=\"https://github.com/omar-y-abdi\"\u003e\u003ccode\u003e@​omar-y-abdi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4659\"\u003econventional-changelog/commitlint#4659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): validate that --cwd directory exists before execution by \u003ca href=\"https://github.com/omar-y-abdi\"\u003e\u003ccode\u003e@​omar-y-abdi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4658\"\u003econventional-changelog/commitlint#4658\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(cz-commitlint): add exclamation mark support for breaking changes by \u003ca href=\"https://github.com/mrt181\"\u003e\u003ccode\u003e@​mrt181\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4655\"\u003econventional-changelog/commitlint#4655\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrt181\"\u003e\u003ccode\u003e@​mrt181\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4655\"\u003econventional-changelog/commitlint#4655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omar-y-abdi\"\u003e\u003ccode\u003e@​omar-y-abdi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4647\"\u003econventional-changelog/commitlint#4647\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.4...v20.5.0\"\u003ehttps://github.com/conventional-changelog/commitlint/compare/v20.4.4...v20.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev20.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.3...v20.4.4\"\u003e20.4.4\u003c/a\u003e (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): allow context parameter in QualifiedRuleConfig functions by \u003ca href=\"https://github.com/Br1an67\"\u003e\u003ccode\u003e@​Br1an67\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4636\"\u003econventional-changelog/commitlint#4636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(read): update git-raw-commits to v5 API by \u003ca href=\"https://github.com/Tamas-hi\"\u003e\u003ccode\u003e@​Tamas-hi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4638\"\u003econventional-changelog/commitlint#4638\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(is-ignored): strip CI skip markers from release commits by \u003ca href=\"https://github.com/Br1an67\"\u003e\u003ccode\u003e@​Br1an67\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4637\"\u003econventional-changelog/commitlint#4637\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Br1an67\"\u003e\u003ccode\u003e@​Br1an67\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4636\"\u003econventional-changelog/commitlint#4636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tamas-hi\"\u003e\u003ccode\u003e@​Tamas-hi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4638\"\u003econventional-changelog/commitlint#4638\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.3...v20.4.4\"\u003ehttps://github.com/conventional-changelog/commitlint/compare/v20.4.3...v20.4.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev20.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.2...v20.4.3\"\u003e20.4.3\u003c/a\u003e (2026-03-03)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: npx usage \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/613\"\u003e#613\u003c/a\u003e by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4630\"\u003econventional-changelog/commitlint#4630\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(types): incorrect types for rule options by \u003ca href=\"https://github.com/Zamiell\"\u003e\u003ccode\u003e@​Zamiell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4633\"\u003econventional-changelog/commitlint#4633\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md\"\u003e\u003ccode\u003e@​commitlint/cli\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.4...v20.5.0\"\u003e20.5.0\u003c/a\u003e (2026-03-15)\u003c/h1\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecli:\u003c/strong\u003e validate that --cwd directory exists before execution (\u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/issues/4658\"\u003e#4658\u003c/a\u003e) (\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/cf80f75745593f4f018cac301a91f23316c974fd\"\u003ecf80f75\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/issues/4595\"\u003e#4595\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.3...v20.4.4\"\u003e20.4.4\u003c/a\u003e (2026-03-12)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​commitlint/cli\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.2...v20.4.3\"\u003e20.4.3\u003c/a\u003e (2026-03-03)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efooter parser does not escape special chars for regex \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/issues/4560\"\u003e#4560\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/issues/4634\"\u003e#4634\u003c/a\u003e) (\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/8ff7c7fcbc2db2b45910ecb5c01e9f1763060770\"\u003e8ff7c7f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.1...v20.4.2\"\u003e20.4.2\u003c/a\u003e (2026-02-19)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​commitlint/cli\u003c/code\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/a7918e9cf70f822505cb4422c03150a86f802627\"\u003e\u003ccode\u003ea7918e9\u003c/code\u003e\u003c/a\u003e v20.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/cf80f75745593f4f018cac301a91f23316c974fd\"\u003e\u003ccode\u003ecf80f75\u003c/code\u003e\u003c/a\u003e fix(cli): validate that --cwd directory exists before execution (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4658\"\u003e#4658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/02d7245e9b204ed07a68298e4d73c8d82a4b7f81\"\u003e\u003ccode\u003e02d7245\u003c/code\u003e\u003c/a\u003e v20.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/a7469817974796a6e89f55911bb66b7bffa44099\"\u003e\u003ccode\u003ea746981\u003c/code\u003e\u003c/a\u003e v20.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/18bd371428771ecc98a7b2f00194bfcbfb4ba809\"\u003e\u003ccode\u003e18bd371\u003c/code\u003e\u003c/a\u003e chore: deps (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4635\"\u003e#4635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/8ff7c7fcbc2db2b45910ecb5c01e9f1763060770\"\u003e\u003ccode\u003e8ff7c7f\u003c/code\u003e\u003c/a\u003e fix: footer parser does not escape special chars for regex \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4560\"\u003e#4560\u003c/a\u003e (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4634\"\u003e#4634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/81cfc9e5e9d452b68b5809e57196ca0c03fd7b85\"\u003e\u003ccode\u003e81cfc9e\u003c/code\u003e\u003c/a\u003e v20.4.2\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/conventional-changelog/commitlint/commits/v20.5.0/@commitlint/cli\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@commitlint/config-conventional` from 20.4.1 to 20.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/conventional-changelog/commitlint/releases\"\u003e\u003ccode\u003e@​commitlint/config-conventional\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev20.5.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.4...v20.5.0\"\u003e20.5.0\u003c/a\u003e (2026-03-15)\u003c/h1\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(resolve-extends): always resolve extended parser presets for proper merging by \u003ca href=\"https://github.com/omar-y-abdi\"\u003e\u003ccode\u003e@​omar-y-abdi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4647\"\u003econventional-changelog/commitlint#4647\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(load): resolve async config exports in CJS projects by \u003ca href=\"https://github.com/omar-y-abdi\"\u003e\u003ccode\u003e@​omar-y-abdi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4659\"\u003econventional-changelog/commitlint#4659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): validate that --cwd directory exists before execution by \u003ca href=\"https://github.com/omar-y-abdi\"\u003e\u003ccode\u003e@​omar-y-abdi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4658\"\u003econventional-changelog/commitlint#4658\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(cz-commitlint): add exclamation mark support for breaking changes by \u003ca href=\"https://github.com/mrt181\"\u003e\u003ccode\u003e@​mrt181\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4655\"\u003econventional-changelog/commitlint#4655\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrt181\"\u003e\u003ccode\u003e@​mrt181\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4655\"\u003econventional-changelog/commitlint#4655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omar-y-abdi\"\u003e\u003ccode\u003e@​omar-y-abdi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4647\"\u003econventional-changelog/commitlint#4647\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.4...v20.5.0\"\u003ehttps://github.com/conventional-changelog/commitlint/compare/v20.4.4...v20.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev20.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.3...v20.4.4\"\u003e20.4.4\u003c/a\u003e (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): allow context parameter in QualifiedRuleConfig functions by \u003ca href=\"https://github.com/Br1an67\"\u003e\u003ccode\u003e@​Br1an67\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4636\"\u003econventional-changelog/commitlint#4636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(read): update git-raw-commits to v5 API by \u003ca href=\"https://github.com/Tamas-hi\"\u003e\u003ccode\u003e@​Tamas-hi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4638\"\u003econventional-changelog/commitlint#4638\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(is-ignored): strip CI skip markers from release commits by \u003ca href=\"https://github.com/Br1an67\"\u003e\u003ccode\u003e@​Br1an67\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4637\"\u003econventional-changelog/commitlint#4637\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Br1an67\"\u003e\u003ccode\u003e@​Br1an67\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4636\"\u003econventional-changelog/commitlint#4636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tamas-hi\"\u003e\u003ccode\u003e@​Tamas-hi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4638\"\u003econventional-changelog/commitlint#4638\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.3...v20.4.4\"\u003ehttps://github.com/conventional-changelog/commitlint/compare/v20.4.3...v20.4.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev20.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.2...v20.4.3\"\u003e20.4.3\u003c/a\u003e (2026-03-03)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: npx usage \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/613\"\u003e#613\u003c/a\u003e by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4630\"\u003econventional-changelog/commitlint#4630\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(types): incorrect types for rule options by \u003ca href=\"https://github.com/Zamiell\"\u003e\u003ccode\u003e@​Zamiell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4633\"\u003econventional-changelog/commitlint#4633\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-conventional/CHANGELOG.md\"\u003e\u003ccode\u003e@​commitlint/config-conventional\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.4...v20.5.0\"\u003e20.5.0\u003c/a\u003e (2026-03-15)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​commitlint/config-conventional\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.3...v20.4.4\"\u003e20.4.4\u003c/a\u003e (2026-03-12)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​commitlint/config-conventional\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.2...v20.4.3\"\u003e20.4.3\u003c/a\u003e (2026-03-03)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efooter parser does not escape special chars for regex \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/issues/4560\"\u003e#4560\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/issues/4634\"\u003e#4634\u003c/a\u003e) (\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/8ff7c7fcbc2db2b45910ecb5c01e9f1763060770\"\u003e8ff7c7f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.4.1...v20.4.2\"\u003e20.4.2\u003c/a\u003e (2026-02-19)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​commitlint/config-conventional\u003c/code\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/a7918e9cf70f822505cb4422c03150a86f802627\"\u003e\u003ccode\u003ea7918e9\u003c/code\u003e\u003c/a\u003e v20.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/02d7245e9b204ed07a68298e4d73c8d82a4b7f81\"\u003e\u003ccode\u003e02d7245\u003c/code\u003e\u003c/a\u003e v20.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/a7469817974796a6e89f55911bb66b7bffa44099\"\u003e\u003ccode\u003ea746981\u003c/code\u003e\u003c/a\u003e v20.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/8ff7c7fcbc2db2b45910ecb5c01e9f1763060770\"\u003e\u003ccode\u003e8ff7c7f\u003c/code\u003e\u003c/a\u003e fix: footer parser does not escape special chars for regex \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4560\"\u003e#4560\u003c/a\u003e (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4634\"\u003e#4634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/81cfc9e5e9d452b68b5809e57196ca0c03fd7b85\"\u003e\u003ccode\u003e81cfc9e\u003c/code\u003e\u003c/a\u003e v20.4.2\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/conventional-changelog/commitlint/commits/v20.5.0/@commitlint/config-conventional\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@types/dompurify` from 3.0.5 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/dompurify\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@types/node` from 25.5.0 to 25.5.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `globals` from 17.3.0 to 17.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sindresorhus/globals/releases\"\u003eglobals's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev17.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate globals (2026-03-01) (\u003ca href=\"https://redirect.github.com/sindresorhus/globals/issues/338\"\u003e#338\u003c/a\u003e)  d43a051\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/sindresorhus/globals/compare/v17.3.0...v17.4.0\"\u003ehttps://github.com/sindresorhus/globals/compare/v17.3.0...v17.4.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sindresorhus/globals/commit/a9cfd7493fb701474d4dc946283c7b9d63d64134\"\u003e\u003ccode\u003ea9cfd74\u003c/code\u003e\u003c/a\u003e 17.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sindresorhus/globals/commit/d43a051c48fbb8c549bb98a7cf294ba84680a7a1\"\u003e\u003ccode\u003ed43a051\u003c/code\u003e\u003c/a\u003e Update globals (2026-03-01) (\u003ca href=\"https://redirect.github.com/sindresorhus/globals/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sindresorhus/globals/compare/v17.3.0...v17.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lint-staged` from 16.2.7 to 16.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lint-staged/lint-staged/releases\"\u003elint-staged's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev16.4.0\u003c/h2\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1739\"\u003e#1739\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/687fc9069a312ac83ca48f035a1bbf453db91814\"\u003e\u003ccode\u003e687fc90\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/hyperz111\"\u003e\u003ccode\u003e@​hyperz111\u003c/code\u003e\u003c/a\u003e! - Replace \u003ccode\u003emicromatch\u003c/code\u003e with \u003ccode\u003epicomatch\u003c/code\u003e to reduce dependencies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev16.3.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1742\"\u003e#1742\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/9d6e827b0c55da5b091c989111f6c55dd76539d9\"\u003e\u003ccode\u003e9d6e827\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Update dependencies, including \u003ca href=\"https://github.com/tinylibs/tinyexec/releases/tag/1.0.4\"\u003e\u003ccode\u003etinyexec@1.0.4\u003c/code\u003e\u003c/a\u003e to make sure local \u003ccode\u003enode_modules/.bin\u003c/code\u003e are preferred to global locations (released in \u003ca href=\"https://github.com/tinylibs/tinyexec/releases/tag/1.0.3\"\u003e\u003ccode\u003etinyexec@1.0.3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev16.3.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1740\"\u003e#1740\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/0109e8d1507409d950dab0d65ce27bd40b1137c7\"\u003e\u003ccode\u003e0109e8d\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Make sure Git's warning about CRLF line-endings doesn't interfere with creating initial backup stash.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev16.3.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1735\"\u003e#1735\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/2adaf6c3a76152abddbf23b749dfa5d62982f3cf\"\u003e\u003ccode\u003e2adaf6c\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Hide the extra \u003ccode\u003ecmd\u003c/code\u003e window on Windows by spawning tasks without the \u003ccode\u003edetached\u003c/code\u003e option.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev16.3.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1729\"\u003e#1729\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/cd5d762c288bcfe36274c32f018cea97dfe11280\"\u003e\u003ccode\u003ecd5d762\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Remove \u003ccode\u003enano-spawn\u003c/code\u003e as a dependency from \u003ccode\u003epackage.json\u003c/code\u003e as it was replaced with \u003ccode\u003etinyexec\u003c/code\u003e and is no longer used.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev16.3.0\u003c/h2\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1698\"\u003e#1698\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/feda37aa590789e847f32a4aabc346af1d79c547\"\u003e\u003ccode\u003efeda37a\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Run external processes with \u003ca href=\"https://github.com/tinylibs/tinyexec\"\u003e\u003ccode\u003etinyexec\u003c/code\u003e\u003c/a\u003e instead of \u003ca href=\"https://github.com/sindresorhus/nano-spawn\"\u003e\u003ccode\u003enano-spawn\u003c/code\u003e\u003c/a\u003e. \u003ccode\u003enano-spawn\u003c/code\u003e replaced \u003ca href=\"https://github.com/sindresorhus/execa\"\u003e\u003ccode\u003eexeca\u003c/code\u003e\u003c/a\u003e in \u003cem\u003elint-staged\u003c/em\u003e version 16 to limit the amount of npm dependencies required, but caused some unknown issues related to spawning tasks. Let's hope \u003ccode\u003etinyexec\u003c/code\u003e improves the situation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1699\"\u003e#1699\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/1346d16387e188911ef64e8bad6b8a6252cb6d71\"\u003e\u003ccode\u003e1346d16\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Remove \u003ccode\u003epidtree\u003c/code\u003e as a dependency. When a task fails, its sub-processes are killed more efficiently via the process group on Unix systems, and the \u003ccode\u003etaskkill\u003c/code\u003e command on Windows.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1726\"\u003e#1726\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/87467aaa76e1edc2547f3f3d462a4495afa5337d\"\u003e\u003ccode\u003e87467aa\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Incorrect brace expansions like \u003ccode\u003e*.{js}\u003c/code\u003e (\u003cem\u003enothing to expand\u003c/em\u003e) are detected exhaustively, instead of just a single pass.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md\"\u003elint-staged's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e16.4.0\u003c/h2\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1739\"\u003e#1739\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/687fc9069a312ac83ca48f035a1bbf453db91814\"\u003e\u003ccode\u003e687fc90\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/hyperz111\"\u003e\u003ccode\u003e@​hyperz111\u003c/code\u003e\u003c/a\u003e! - Replace \u003ccode\u003emicromatch\u003c/code\u003e with \u003ccode\u003epicomatch\u003c/code\u003e to reduce dependencies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e16.3.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1742\"\u003e#1742\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/9d6e827b0c55da5b091c989111f6c55dd76539d9\"\u003e\u003ccode\u003e9d6e827\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Update dependencies, including \u003ca href=\"https://github.com/tinylibs/tinyexec/releases/tag/1.0.4\"\u003e\u003ccode\u003etinyexec@1.0.4\u003c/code\u003e\u003c/a\u003e to make sure local \u003ccode\u003enode_modules/.bin\u003c/code\u003e are preferred to global locations (released in \u003ca href=\"https://github.com/tinylibs/tinyexec/releases/tag/1.0.3\"\u003e\u003ccode\u003etinyexec@1.0.3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e16.3.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1740\"\u003e#1740\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/0109e8d1507409d950dab0d65ce27bd40b1137c7\"\u003e\u003ccode\u003e0109e8d\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Make sure Git's warning about CRLF line-endings doesn't interfere with creating initial backup stash.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e16.3.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1735\"\u003e#1735\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/2adaf6c3a76152abddbf23b749dfa5d62982f3cf\"\u003e\u003ccode\u003e2adaf6c\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Hide the extra \u003ccode\u003ecmd\u003c/code\u003e window on Windows by spawning tasks without the \u003ccode\u003edetached\u003c/code\u003e option.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e16.3.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1729\"\u003e#1729\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/cd5d762c288bcfe36274c32f018cea97dfe11280\"\u003e\u003ccode\u003ecd5d762\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Remove \u003ccode\u003enano-spawn\u003c/code\u003e as a dependency from \u003ccode\u003epackage.json\u003c/code\u003e as it was replaced with \u003ccode\u003etinyexec\u003c/code\u003e and is no longer used.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e16.3.0\u003c/h2\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1698\"\u003e#1698\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/feda37aa590789e847f32a4aabc346af1d79c547\"\u003e\u003ccode\u003efeda37a\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Run external processes with \u003ca href=\"https://github.com/tinylibs/tinyexec\"\u003e\u003ccode\u003etinyexec\u003c/code\u003e\u003c/a\u003e instead of \u003ca href=\"https://github.com/sindresorhus/nano-spawn\"\u003e\u003ccode\u003enano-spawn\u003c/code\u003e\u003c/a\u003e. \u003ccode\u003enano-spawn\u003c/code\u003e replaced \u003ca href=\"https://github.com/sindresorhus/execa\"\u003e\u003ccode\u003eexeca\u003c/code\u003e\u003c/a\u003e in \u003cem\u003elint-staged\u003c/em\u003e version 16 to limit the amount of npm dependencies required, but caused some unknown issues related to spawning tasks. Let's hope \u003ccode\u003etinyexec\u003c/code\u003e improves the situation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1699\"\u003e#1699\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/1346d16387e188911ef64e8bad6b8a6252cb6d71\"\u003e\u003ccode\u003e1346d16\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Remove \u003ccode\u003epidtree\u003c/code\u003e as a dependency. When a task fails, its sub-processes are killed more efficiently via the process group on Unix systems, and the \u003ccode\u003etaskkill\u003c/code\u003e command on Windows.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/lint-staged/lint-staged/pull/1726\"\u003e#1726\u003c/a\u003e \u003ca href=\"https://github.com/lint-staged/lint-staged/commit/87467aaa76e1edc2547f3f3d462a4495afa5337d\"\u003e\u003ccode\u003e87467aa\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/iiroj\"\u003e\u003ccode\u003e@​iiroj\u003c/code\u003e\u003c/a\u003e! - Incorrect brace expansions like \u003ccode\u003e*.{js}\u003c/code\u003e (\u003cem\u003enothing to expand\u003c/em\u003e) are detected exhaustively, instead of just a single pass.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lint-staged/lint-staged/commit/445f9dd042b88528c798b2e25c21c9adbc69a732\"\u003e\u003ccode\u003e445f9dd\u003c/code\u003e\u003c/a\u003e chore(changeset): release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lint-staged/lint-staged/commit/d91be60800d59565cb601c4802ed35253bce5b2a\"\u003e\u003ccode\u003ed91be60\u003c/code\u003e\u003c/a\u003e docs: update readme to use picomatch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lint-staged/lint-staged/commit/b392a9ffecd9cfeb167bd2273c6496b8b3c41b47\"\u003e\u003ccode\u003eb392a9f\u003c/code\u003e\u003c/a\u003e refactor: extract \u003ccode\u003ematchFiles\u003c/code\u003e and add unit tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lint-staged/lint-staged/commit/687fc9069a312ac83ca48f035a1bbf453db91814\"\u003e\u003ccode\u003e687fc90\u003c/code\u003e\u003c/a\u003e refactor: replace micromatch with picomatch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lint-staged/lint-staged/commit/26dadf9a0472d283112d6cfaaa1fb1f040fd6760\"\u003e\u003ccode\u003e26dadf9\u003c/code\u003e\u003c/a\u003e chore(changeset): release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lint-staged/lint-staged/commit/9d6e827b0c55da5b091c989111f6c55dd76539d9\"\u003e\u003ccode\u003e9d6e827\u003c/code\u003e\u003c/a\u003e build(deps): update dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lint-staged/lint-staged/commit/8aea986068501841a5741868e0895fef2a7618c3\"\u003e\u003ccode\u003e8aea986\u003c/code\u003e\u003c/a\u003e chore(changeset): release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lint-staged/lint-staged/commit/0109e8d1507409d950dab0d65ce27bd40b1137c7\"\u003e\u003ccode\u003e0109e8d\u003c/code\u003e\u003c/a\u003e fix: strip Git CRLF warning from output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lint-staged/lint-staged/commit/dfd6a7a4afa1147c9b6ad7d441b1f6278da499c5\"\u003e\u003ccode\u003edfd6a7a\u003c/code\u003e\u003c/a\u003e chore(changeset): release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lint-staged/lint-staged/commit/2adaf6c3a76152abddbf23b749dfa5d62982f3cf\"\u003e\u003ccode\u003e2adaf6c\u003c/code\u003e\u003c/a\u003e fix(Windows): do not spawn  tasks as detached since it opens a cmd window on ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lint-staged/lint-staged/compare/v16.2.7...v16.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typescript-eslint` from 8.55.0 to 8.58.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases\"\u003etypescript-eslint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.58.0\u003c/h2\u003e\n\u003ch2\u003e8.58.0 (2026-03-30)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport TypeScript 6 (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12124\"\u003e#12124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e crash in \u003ccode\u003eno-unnecessary-type-arguments\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12163\"\u003e#12163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-extraneous-class] handle index signatures (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12142\"\u003e#12142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-regexp-exec] avoid fixing unknown RegExp flags (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12161\"\u003e#12161\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eej shafran \u003ca href=\"https://github.com/ej-shafran\"\u003e\u003ccode\u003e@​ej-shafran\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGG ZIBLAKING\u003c/li\u003e\n\u003cli\u003emilkboy2564 \u003ca href=\"https://github.com/SeolJaeHyeok\"\u003e\u003ccode\u003e@​SeolJaeHyeok\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eteee32 \u003ca href=\"https://github.com/teee32\"\u003e\u003ccode\u003e@​teee32\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.58.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003ev8.57.2\u003c/h2\u003e\n\u003ch2\u003e8.57.2 (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-optional-chain] remove dangling closing parenthesis (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11865\"\u003e#11865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [array-type] ignore Array and ReadonlyArray without type arguments (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11971\"\u003e#11971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-restricted-types] flag banned generics in extends or implements (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12120\"\u003e#12120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unsafe-return] false positive on unwrapping generic (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12125\"\u003e#12125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unsafe-return] false positive on unwrapping generic (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12125\"\u003e#12125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-useless-default-assignment] skip reporting false positives for unresolved type parameters (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12127\"\u003e#12127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-readonly-parameter-types] preserve type alias infomation (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11954\"\u003e#11954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript-estree:\u003c/strong\u003e skip createIsolatedProgram fallback for projectService (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12066\"\u003e#12066\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/issues/12065\"\u003e#12065\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKirk Waiblinger \u003ca href=\"https://github.com/kirkwaiblinger\"\u003e\u003ccode\u003e@​kirkwaiblinger\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKonv Suu\u003c/li\u003e\n\u003cli\u003emdm317\u003c/li\u003e\n\u003cli\u003eNewton Yuan \u003ca href=\"https://github.com/NewtonYuan\"\u003e\u003ccode\u003e@​NewtonYuan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRyoheiYamamoto\u003c/li\u003e\n\u003cli\u003eSungHyun627 \u003ca href=\"https://github.com/SungHyun627\"\u003e\u003ccode\u003e@​SungHyun627\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTamashoo \u003ca href=\"https://github.com/Tamashoo\"\u003e\u003ccode\u003e@​Tamashoo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.2\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md\"\u003etypescript-eslint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.58.0 (2026-03-30)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport TypeScript 6 (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12124\"\u003e#12124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.58.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.57.2 (2026-03-23)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for typescript-eslint to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.2\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.57.1 (2026-03-16)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for typescript-eslint to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.1\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.57.0 (2026-03-09)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for typescript-eslint to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.56.1 (2026-02-23)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for typescript-eslint to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.56.1\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.56.0 (2026-02-16)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/493341709fe7d1d6433332b7bd2724e3332c7cdf\"\u003e\u003ccode\u003e4933417\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.58.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/8cde2d06fb9bc591a4c93452509ddbd600c76a35\"\u003e\u003ccode\u003e8cde2d0\u003c/code\u003e\u003c/a\u003e feat: support TypeScript 6 (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint/issues/12124\"\u003e#12124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/be4d54d26e695cc93605ffcca67dd75848e95c6f\"\u003e\u003ccode\u003ebe4d54d\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.57.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/c7c38aa252d7bf6708a225aebedc57686ac33dcd\"\u003e\u003ccode\u003ec7c38aa\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.57.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/2c6aeeec238dfea860b9f3c146a55f8f49f15cf5\"\u003e\u003ccode\u003e2c6aeee\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.57.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/f696dadfc37078efe4119ad2ab0609cde3e42766\"\u003e\u003ccode\u003ef696dad\u003c/code\u003e\u003c/a\u003e chore: use pnpm catalog (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint/issues/12047\"\u003e#12047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/a09921e2de2e8790e6a803016b825815ca9409d8\"\u003e\u003ccode\u003ea09921e\u003c/code\u003e\u003c/a\u003e chore: update vitest to 4.x (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint/issues/12071\"\u003e#12071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/96a04a97454cf6b6ae8366711c09333bf6e2327a\"\u003e\u003ccode\u003e96a04a9\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.56.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/8b8b68f200a48ee9d6f7be8670e964629375196c\"\u003e\u003ccode\u003e8b8b68f\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/68a074fb61a10c3627f09678859fb4d42a3b88f5\"\u003e\u003ccode\u003e68a074f\u003c/code\u003e\u003c/a\u003e feat: support ESLint v10 (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint/issues/12057\"\u003e#12057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commits/v8.58.0/packages/typescript-eslint\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@typescript-eslint/eslint-plugin` from 8.55.0 to 8.58.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases\"\u003e\u003ccode\u003e@​typescript-eslint/eslint-plugin\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.58.0\u003c/h2\u003e\n\u003ch2\u003e8.58.0 (2026-03-30)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport TypeScript 6 (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12124\"\u003e#12124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e crash in \u003ccode\u003eno-unnecessary-type-arguments\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12163\"\u003e#12163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-extraneous-class] handle index signatures (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12142\"\u003e#12142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-regexp-exec] avoid fixing unknown RegExp flags (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12161\"\u003e#12161\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eej shafran \u003ca href=\"https://github.com/ej-shafran\"\u003e\u003ccode\u003e@​ej-shafran\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGG ZIBLAKING\u003c/li\u003e\n\u003cli\u003emilkboy2564 \u003ca href=\"https://github.com/SeolJaeHyeok\"\u003e\u003ccode\u003e@​SeolJaeHyeok\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eteee32 \u003ca href=\"https://github.com/teee32\"\u003e\u003ccode\u003e@​teee32\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.58.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003ev8.57.2\u003c/h2\u003e\n\u003ch2\u003e8.57.2 (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-optional-chain] remove dangling closing parenthesis (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11865\"\u003e#11865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [array-type] ignore Array and ReadonlyArray without type arguments (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11971\"\u003e#11971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-restricted-types] flag banned generics in extends or implements (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12120\"\u003e#12120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unsafe-return] false positive on unwrapping generic (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12125\"\u003e#12125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unsafe-return] false positive on unwrapping generic (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12125\"\u003e#12125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-useless-default-assignment] skip reporting false positives for unresolved type parameters (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12127\"\u003e#12127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-readonly-parameter-types] preserve type alias infomation (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11954\"\u003e#11954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript-estree:\u003c/strong\u003e skip createIsolatedProgram fallback for projectService (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12066\"\u003e#12066\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/issues/12065\"\u003e#12065\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKirk Waiblinger \u003ca href=\"https://github.com/kirkwaiblinger\"\u003e\u003ccode\u003e@​kirkwaiblinger\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKonv Suu\u003c/li\u003e\n\u003cli\u003emdm317\u003c/li\u003e\n\u003cli\u003eNewton Yuan \u003ca href=\"https://github.com/NewtonYuan\"\u003e\u003ccode\u003e@​NewtonYuan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRyoheiYamamoto\u003c/li\u003e\n\u003cli\u003eSungHyun627 \u003ca href=\"https://github.com/SungHyun627\"\u003e\u003ccode\u003e@​SungHyun627\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTamashoo \u003ca href=\"https://github.com/Tamashoo\"\u003e\u003ccode\u003e@​Tamashoo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.2\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md\"\u003e\u003ccode\u003e@​typescript-eslint/eslint-plugin\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.58.0 (2026-03-30)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport TypeScript 6 (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12124\"\u003e#12124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-regexp-exec] avoid fixing unknown RegExp flags (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12161\"\u003e#12161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-extraneous-class] handle index signatures (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12142\"\u003e#12142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e crash in \u003ccode\u003eno-unnecessary-type-arguments\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12163\"\u003e#12163\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eej shafran \u003ca href=\"https://github.com/ej-shafran\"\u003e\u003ccode\u003e@​ej-shafran\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGG ZIBLAKING\u003c/li\u003e\n\u003cli\u003emilkboy2564 \u003ca href=\"https://github.com/SeolJaeHyeok\"\u003e\u003ccode\u003e@​SeolJaeHyeok\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eteee32 \u003ca href=\"https://github.com/teee32\"\u003e\u003ccode\u003e@​teee32\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.58.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.57.2 (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-readonly-parameter-types] preserve type alias infomation (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11954\"\u003e#11954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-useless-default-assignment] skip reporting false positives for unresolved type parameters (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12127\"\u003e#12127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unsafe-return] false positive on unwrapping generic (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12125\"\u003e#12125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-restricted-types] flag banned generics in extends or implements (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12120\"\u003e#12120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [array-type] ignore Array and ReadonlyArray without type arguments (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11971\"\u003e#11971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-optional-chain] remove dangling closing parenthesis (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11865\"\u003e#11865\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKirk Waiblinger \u003ca href=\"https://github.com/kirkwaiblinger\"\u003e\u003ccode\u003e@​kirkwaiblinger\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKonv Suu\u003c/li\u003e\n\u003cli\u003emdm317\u003c/li\u003e\n\u003cli\u003eNewton Yuan \u003ca href=\"https://github.com/NewtonYuan\"\u003e\u003ccode\u003e@​NewtonYuan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSungHyun627 \u003ca href=\"https://github.com/SungHyun627\"\u003e\u003ccode\u003e@​SungHyun627\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTamashoo \u003ca href=\"https://github.com/Tamashoo\"\u003e\u003ccode\u003e@​Tamashoo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.2\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.57.1 (2026-03-16)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/493341709fe7d1d6433332b7bd2724e3332c7cdf\"\u003e\u003ccode\u003e4933417\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.58.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/5a9bd366139c8e306dd78ae906d4389972de42b6\"\u003e\u003ccode\u003e5a9bd36\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [prefer-regexp-exec] avoid fixing unknown RegExp flags (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/edb90ebf7c75a71065bed719f3e72d18b830c6a0\"\u003e\u003ccode\u003eedb90eb\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-extraneous-class] handle index signatures (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12142\"\u003e#12142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/8cde2d06fb9bc591a4c93452509ddbd600c76a35\"\u003e\u003ccode\u003e8cde2d0\u003c/code\u003e\u003c/a\u003e feat: support TypeScript 6 (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12124\"\u003e#12124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/1bf86c9f5c799916d12079c037c79e10b29cdc9c\"\u003e\u003ccode\u003e1bf86c9\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): crash in \u003ccode\u003eno-unnecessary-type-arguments\u003c/code\u003e (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12163\"\u003e#12163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/e9cc25a794dbf82a241807f394489a2aad39ffae\"\u003e\u003ccode\u003ee9cc25a\u003c/code\u003e\u003c/a\u003e docs(eslint-plugin): fix typo (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12155\"\u003e#12155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/be4d54d26e695cc93605ffcca67dd75848e95c6f\"\u003e\u003ccode\u003ebe4d54d\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.57.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/f68c8e4baca096281b458ccb6ff16ca6c5a1d199\"\u003e\u003ccode\u003ef68c8e4\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [prefer-readonly-parameter-types] preserve type alias inf...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/73acd2e6833c4757d2743a8dbb979154d31a1e98\"\u003e\u003ccode\u003e73acd2e\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-useless-default-assignment] skip reporting false posi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/3d21482030e4fd220f466cea7036e07695277364\"\u003e\u003ccode\u003e3d21482\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-unsafe-return] false positive on unwrapping generic (...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commits/v8.58.0/packages/eslint-plugin\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@typescript-eslint/parser` from 8.55.0 to 8.58.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases\"\u003e\u003ccode\u003e@​typescript-eslint/parser\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.58.0\u003c/h2\u003e\n\u003ch2\u003e8.58.0 (2026-03-30)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport TypeScript 6 (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12124\"\u003e#12124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e crash in \u003ccode\u003eno-unnecessary-type-arguments\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12163\"\u003e#12163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-extraneous-class] handle index signatures (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12142\"\u003e#12142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-regexp-exec] avoid fixing unknown RegExp flags (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12161\"\u003e#12161\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eej shafran \u003ca href=\"https://github.com/ej-shafran\"\u003e\u003ccode\u003e@​ej-shafran\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGG ZIBLAKING\u003c/li\u003e\n\u003cli\u003emilkboy2564 \u003ca href=\"https://github.com/SeolJaeHyeok\"\u003e\u003ccode\u003e@​SeolJaeHyeok\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eteee32 \u003ca href=\"https://github.com/teee32\"\u003e\u003ccode\u003e@​teee32\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.58.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003ev8.57.2\u003c/h2\u003e\n\u003ch2\u003e8.57.2 (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-optional-chain] remove dangling closing parenthesis (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11865\"\u003e#11865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [array-type] ignore Array and ReadonlyArray without type arguments (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11971\"\u003e#11971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-restricted-types] flag banned generics in extends or implements (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12120\"\u003e#12120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unsafe-return] false positive on unwrapping generic (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12125\"\u003e#12125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unsafe-return] false positive on unwrapping generic (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12125\"\u003e#12125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-useless-default-assignment] skip reporting false positives for unresolved type parameters (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12127\"\u003e#12127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-readonly-parameter-types] preserve type alias infomation (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11954\"\u003e#11954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript-estree:\u003c/strong\u003e skip createIsolatedProgram fallback for projectService (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12066\"\u003e#12066\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/issues/12065\"\u003e#12065\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKirk Waiblinger \u003ca href=\"https://github.com/kirkwaiblinger\"\u003e\u003ccode\u003e@​kirkwaiblinger\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKonv Suu\u003c/li\u003e\n\u003cli\u003emdm317\u003c/li\u003e\n\u003cli\u003eNewton Yuan \u003ca href=\"https://github.com/NewtonYuan\"\u003e\u003ccode\u003e@​NewtonYuan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRyoheiYamamoto\u003c/li\u003e\n\u003cli\u003eSungHyun627 \u003ca href=\"https://github.com/SungHyun627\"\u003e\u003ccode\u003e@​SungHyun627\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTamashoo \u003ca href=\"https://github.com/Tamashoo\"\u003e\u003ccode\u003e@​Tamashoo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.2\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md\"\u003e\u003ccode\u003e@​typescript-eslint/parser\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.58.0 (2026-03-30)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport TypeScript 6 (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12124\"\u003e#12124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.58.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.57.2 (2026-03-23)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for parser to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.2\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.57.1 (2026-03-16)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for parser to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.1\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.57.0 (2026-03-09)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for parser to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.56.1 (2026-02-23)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for parser to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.56.1\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003erel...\n\n_Description has been truncated_","html_url":"https://github.com/NXT1-Sports/nxt1-repo/pull/57","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/NXT1-Sports%2Fnxt1-repo/issues/57","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/57/packages"}},{"old_version":"16.1.2","new_version":"21.3.1","update_type":"major","path":"/src/portal","pr_created_at":"2026-04-05T21:06:26.000Z","version_change":"16.1.2 → 21.3.1","issue":{"uuid":"4208575827","node_id":"PR_kwDORAWCRc7QFAtQ","number":109,"state":"open","title":"chore(deps): Bump the angular group in /src/portal with 17 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-05T21:06:26.000Z","updated_at":"2026-04-07T22:02:26.839Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"angular","update_count":17,"packages":[{"name":"@angular/animations","old_version":"16.2.12","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/common","old_version":"16.2.12","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler","old_version":"16.2.12","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/core","old_version":"16.2.12","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/forms","old_version":"16.2.12","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/localize","old_version":"16.2.12","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser","old_version":"16.2.12","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser-dynamic","old_version":"16.2.12","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/router","old_version":"16.2.12","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular-devkit/build-angular","old_version":"16.2.16","new_version":"21.2.6","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular-eslint/builder","old_version":"16.1.2","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin","old_version":"16.1.2","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin-template","old_version":"16.1.2","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/schematics","old_version":"16.1.2","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/template-parser","old_version":"16.1.2","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular/cli","old_version":"16.2.16","new_version":"21.2.6","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/compiler-cli","old_version":"16.2.12","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"}],"path":"/src/portal","ecosystem":"npm"},"body":"Bumps the angular group in /src/portal with 17 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `16.2.12` | `21.2.7` |\n| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `16.2.12` | `21.2.7` |\n| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `16.2.12` | `21.2.7` |\n| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `16.2.12` | `21.2.7` |\n| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `16.2.12` | `21.2.7` |\n| [@angular/localize](https://github.com/angular/angular) | `16.2.12` | `21.2.7` |\n| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `16.2.12` | `21.2.7` |\n| [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `16.2.12` | `21.2.7` |\n| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `16.2.12` | `21.2.7` |\n| [@angular-devkit/build-angular](https://github.com/angular/angular-cli) | `16.2.16` | `21.2.6` |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `16.1.2` | `21.3.1` |\n| [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) | `16.1.2` | `21.3.1` |\n| [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template) | `16.1.2` | `21.3.1` |\n| [@angular-eslint/schematics](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics) | `16.1.2` | `21.3.1` |\n| [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `16.1.2` | `21.3.1` |\n| [@angular/cli](https://github.com/angular/angular-cli) | `16.2.16` | `21.2.6` |\n| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `16.2.12` | `21.2.7` |\n\nUpdates `@angular/animations` from 16.2.12 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/animations\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/animations\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.7 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003efea25d1a60\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003ebba5ed8e64\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003ed04ddd73df\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e8fd896e99a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003eb682c62873\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e3c41e74fdd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e0960592d3d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.5 (2026-03-25)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eElements with multiple matching selectors will now throw at compile time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComponent with undefined \u003ccode\u003echangeDetection\u003c/code\u003e property are now \u003ccode\u003eOnPush\u003c/code\u003e by default. Specify \u003ccode\u003echangeDetection: ChangeDetectionStrategy.Eager\u003c/code\u003e to keep the previous behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eplatform-browser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHammer.js integration has been removed. Use your own implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1312da1832e2b59ce18edae8fae13d3f562d9b0\"\u003ec1312da183\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a\"\u003ee850643b1b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eSupport comments in html element.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943\"\u003e96be4f429b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eabstract emitter producing incorrect code for dynamic imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/5a712d42d161c93f6315d6462543c26c4e4a4490\"\u003e5a712d42d1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24\"\u003eca67828ee2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eintroduce NG8023 compile-time diagnostic for duplicate selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/7907e982ee90778e596d3e849f0a31c6c26db235\"\u003e\u003ccode\u003e7907e98\u003c/code\u003e\u003c/a\u003e test: remove duplicate tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/81cabc14777a3b4966c29d60e1505aca8c29b71c\"\u003e\u003ccode\u003e81cabc1\u003c/code\u003e\u003c/a\u003e feat(core): add support for TypeScript 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/abb179466d8cfb512a8b80b1b8a1831ebd910145\"\u003e\u003ccode\u003eabb1794\u003c/code\u003e\u003c/a\u003e refactor(core): mark VERSION exports as pure for better tree-shaking\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/26fed34e0e340166b70702d6177ad639bbfa94aa\"\u003e\u003ccode\u003e26fed34\u003c/code\u003e\u003c/a\u003e build: format md files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b9e2ccdda8b428de8259934879e4431bae16a8ce\"\u003e\u003ccode\u003eb9e2ccd\u003c/code\u003e\u003c/a\u003e refactor(common): remove unused import (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/64699\"\u003e#64699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/70332b04532311276dd025ba00e8fcb6c1350880\"\u003e\u003ccode\u003e70332b0\u003c/code\u003e\u003c/a\u003e fix(core): pass element removal property through in all locations (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/64565\"\u003e#64565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/2b257b36590677d436d45e98cefe7ca886c7bd57\"\u003e\u003ccode\u003e2b257b3\u003c/code\u003e\u003c/a\u003e fix(animations): account for \u003ccode\u003eElement.animate\u003c/code\u003e exceptions (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/64506\"\u003e#64506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/dde5badb7133826187314e07fcdc578297aabbc9\"\u003e\u003ccode\u003edde5bad\u003c/code\u003e\u003c/a\u003e fix(core): prevent animations renderer from impacting \u003ccode\u003eanimate.leave\u003c/code\u003e (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/63921\"\u003e#63921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/c3576506b3c13389e18fa4c0c29bdf536f604142\"\u003e\u003ccode\u003ec357650\u003c/code\u003e\u003c/a\u003e refactor(core): Update tests for zoneless by default (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/63668\"\u003e#63668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/021ead5399ab1136da160c7348ec8555ef5ee8fd\"\u003e\u003ccode\u003e021ead5\u003c/code\u003e\u003c/a\u003e refactor(animations): remove dependency on \u003ccode\u003e@angular/common\u003c/code\u003e (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/63248\"\u003e#63248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.7/packages/animations\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/common` from 16.2.12 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.7 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003efea25d1a60\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003ebba5ed8e64\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003ed04ddd73df\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e8fd896e99a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003eb682c62873\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e3c41e74fdd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e0960592d3d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.5 (2026-03-25)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eElements with multiple matching selectors will now throw at compile time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComponent with undefined \u003ccode\u003echangeDetection\u003c/code\u003e property are now \u003ccode\u003eOnPush\u003c/code\u003e by default. Specify \u003ccode\u003echangeDetection: ChangeDetectionStrategy.Eager\u003c/code\u003e to keep the previous behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eplatform-browser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHammer.js integration has been removed. Use your own implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1312da1832e2b59ce18edae8fae13d3f562d9b0\"\u003ec1312da183\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a\"\u003ee850643b1b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eSupport comments in html element.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943\"\u003e96be4f429b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eabstract emitter producing incorrect code for dynamic imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/5a712d42d161c93f6315d6462543c26c4e4a4490\"\u003e5a712d42d1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24\"\u003eca67828ee2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eintroduce NG8023 compile-time diagnostic for duplicate selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/13f050d2204285173273ebbfe9b34bc1b3c63c80\"\u003e\u003ccode\u003e13f050d\u003c/code\u003e\u003c/a\u003e test: construct local \u003ccode\u003eDate\u003c/code\u003e objects to fix timezone flakiness\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d0cf2995a2b63eb13fe574770ee8a756277852a4\"\u003e\u003ccode\u003ed0cf299\u003c/code\u003e\u003c/a\u003e test: remove unsupported timezone from \u003ccode\u003eformatDate\u003c/code\u003e tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003ccode\u003eb4ab6ba\u003c/code\u003e\u003c/a\u003e fix(common): avoid redundant image fetch on destroy with auto sizes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/adda6c5c106815c727c1b820634614a045b42e9a\"\u003e\u003ccode\u003eadda6c5\u003c/code\u003e\u003c/a\u003e build: update \u003ccode\u003easpect_rules_js\u003c/code\u003e to \u003ccode\u003e3.0.2\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/93c6dc6395d681dacd1dbbc46b95773038b6c32f\"\u003e\u003ccode\u003e93c6dc6\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;refactor(http): Improves base64 encoding/decoding with feature detect...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/76431ed3e3bd8bf90ac2fb481152a33587187037\"\u003e\u003ccode\u003e76431ed\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix(http): correctly cache blob responses in transfer cache (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67002\"\u003e#67002\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/277ade97ac2a3a7f2a5b513acaa93e7663cdc55f\"\u003e\u003ccode\u003e277ade9\u003c/code\u003e\u003c/a\u003e fix(http): correctly cache blob responses in transfer cache (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67002\"\u003e#67002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/aeb9b819d2cda782de85338dc9a5457c11e51bfe\"\u003e\u003ccode\u003eaeb9b81\u003c/code\u003e\u003c/a\u003e refactor(http): Improves base64 encoding/decoding with feature detection (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67\"\u003e#67\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/ecf0bb466875d17e0823f2d793491c6f354d6c34\"\u003e\u003ccode\u003eecf0bb4\u003c/code\u003e\u003c/a\u003e test(http): refactors HTTP client tests to use TestBed and providers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/e2e9a9a531c9e9a69701e549f28354cc5d5edd77\"\u003e\u003ccode\u003ee2e9a9a\u003c/code\u003e\u003c/a\u003e fix(core): adds transfer cache to httpResource to fix hydration\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.7/packages/common\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/compiler` from 16.2.12 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.7 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003efea25d1a60\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003ebba5ed8e64\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003ed04ddd73df\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e8fd896e99a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003eb682c62873\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e3c41e74fdd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e0960592d3d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.5 (2026-03-25)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eElements with multiple matching selectors will now throw at compile time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComponent with undefined \u003ccode\u003echangeDetection\u003c/code\u003e property are now \u003ccode\u003eOnPush\u003c/code\u003e by default. Specify \u003ccode\u003echangeDetection: ChangeDetectionStrategy.Eager\u003c/code\u003e to keep the previous behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eplatform-browser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHammer.js integration has been removed. Use your own implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1312da1832e2b59ce18edae8fae13d3f562d9b0\"\u003ec1312da183\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a\"\u003ee850643b1b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eSupport comments in html element.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943\"\u003e96be4f429b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eabstract emitter producing incorrect code for dynamic imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/5a712d42d161c93f6315d6462543c26c4e4a4490\"\u003e5a712d42d1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24\"\u003eca67828ee2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eintroduce NG8023 compile-time diagnostic for duplicate selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003ccode\u003ed04ddd7\u003c/code\u003e\u003c/a\u003e fix(core): prevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003ccode\u003efea25d1\u003c/code\u003e\u003c/a\u003e fix(compiler): register SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67\"\u003e#67\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003ccode\u003e880a57d\u003c/code\u003e\u003c/a\u003e fix(compiler): prevent shimCssText from adding extra blank lines per CSS comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003ccode\u003e23ea431\u003c/code\u003e\u003c/a\u003e fix(compiler): parse named HTML entities containing digits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003ccode\u003e334ae10\u003c/code\u003e\u003c/a\u003e fix(compiler): ensure generated code compiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003ccode\u003eed2d324\u003c/code\u003e\u003c/a\u003e fix(compiler): disallow translations of iframe src\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/1df1697c6e3a6b1d302f7692b495146943faa12f\"\u003e\u003ccode\u003e1df1697\u003c/code\u003e\u003c/a\u003e fix(compiler): prevent mutation of children array in RecursiveVisitor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/95b3f37d4a7d9a38f616d56df746dfcda3c2139b\"\u003e\u003ccode\u003e95b3f37\u003c/code\u003e\u003c/a\u003e feat(compiler): Exhaustive checks for switch blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/9c5658adb1146b24ebf31fef534c4bbae1ced548\"\u003e\u003ccode\u003e9c5658a\u003c/code\u003e\u003c/a\u003e refactor(compiler): clean up pipeline compatibility distinction\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/6e0d783e5b5a256c0aa2fb1d3e008677c0603382\"\u003e\u003ccode\u003e6e0d783\u003c/code\u003e\u003c/a\u003e refactor(compiler): Add info about unclosed element.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.7/packages/compiler\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/core` from 16.2.12 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.7 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003efea25d1a60\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003ebba5ed8e64\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003ed04ddd73df\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e8fd896e99a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003eb682c62873\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e3c41e74fdd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e0960592d3d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.5 (2026-03-25)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eElements with multiple matching selectors will now throw at compile time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComponent with undefined \u003ccode\u003echangeDetection\u003c/code\u003e property are now \u003ccode\u003eOnPush\u003c/code\u003e by default. Specify \u003ccode\u003echangeDetection: ChangeDetectionStrategy.Eager\u003c/code\u003e to keep the previous behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eplatform-browser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHammer.js integration has been removed. Use your own implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1312da1832e2b59ce18edae8fae13d3f562d9b0\"\u003ec1312da183\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a\"\u003ee850643b1b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eSupport comments in html element.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943\"\u003e96be4f429b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eabstract emitter producing incorrect code for dynamic imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/5a712d42d161c93f6315d6462543c26c4e4a4490\"\u003e5a712d42d1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24\"\u003eca67828ee2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eintroduce NG8023 compile-time diagnostic for duplicate selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/4ad6d582d2a9f887c8530ff10ae513a4181ad24c\"\u003e\u003ccode\u003e4ad6d58\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies to v21.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003ccode\u003ed04ddd7\u003c/code\u003e\u003c/a\u003e fix(core): prevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003ccode\u003eb682c62\u003c/code\u003e\u003c/a\u003e fix(core): treat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003ccode\u003efea25d1\u003c/code\u003e\u003c/a\u003e fix(compiler): register SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67\"\u003e#67\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003ccode\u003e8fd896e\u003c/code\u003e\u003c/a\u003e fix(core): resolve component import by exact specifier in route lazy-loading ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/4b2008d0f2455cab7503b3a0349feecbff3b3b5a\"\u003e\u003ccode\u003e4b2008d\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1579163b7464edc69f7fa0548f53d978b007021\"\u003e\u003ccode\u003ec157916\u003c/code\u003e\u003c/a\u003e build: consolidate domino bundling in platform-server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/9be5e2c2113db3fe5d799663b6539d34d1e18f47\"\u003e\u003ccode\u003e9be5e2c\u003c/code\u003e\u003c/a\u003e docs: fix typo in Input decorator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/a21be36e15a6d9cf21722f9f6a31dad9380037e9\"\u003e\u003ccode\u003ea21be36\u003c/code\u003e\u003c/a\u003e refactor: prepare for required \u003ccode\u003echangeDetection\u003c/code\u003e prop on G3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/831746eff1e7442bfc96bfa739f54091b26a7997\"\u003e\u003ccode\u003e831746e\u003c/code\u003e\u003c/a\u003e docs: Add callout about the Component interface.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.7/packages/core\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/forms` from 16.2.12 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/forms/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/forms/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/forms/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.7 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003efea25d1a60\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003ebba5ed8e64\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003ed04ddd73df\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e8fd896e99a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003eb682c62873\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e3c41e74fdd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e0960592d3d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.5 (2026-03-25)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eElements with multiple matching selectors will now throw at compile time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComponent with undefined \u003ccode\u003echangeDetection\u003c/code\u003e property are now \u003ccode\u003eOnPush\u003c/code\u003e by default. Specify \u003ccode\u003echangeDetection: ChangeDetectionStrategy.Eager\u003c/code\u003e to keep the previous behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eplatform-browser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHammer.js integration has been removed. Use your own implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1312da1832e2b59ce18edae8fae13d3f562d9b0\"\u003ec1312da183\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a\"\u003ee850643b1b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eSupport comments in html element.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943\"\u003e96be4f429b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eabstract emitter producing incorrect code for dynamic imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/5a712d42d161c93f6315d6462543c26c4e4a4490\"\u003e5a712d42d1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24\"\u003eca67828ee2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eintroduce NG8023 compile-time diagnostic for duplicate selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/895c576d494111f819e8a790d3a0695b6b9f8b4b\"\u003e\u003ccode\u003e895c576\u003c/code\u003e\u003c/a\u003e refactor(forms): use strict equality for pending status getter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b658accf1f99a240de19090350bd6d3a9620735a\"\u003e\u003ccode\u003eb658acc\u003c/code\u003e\u003c/a\u003e docs: fix js doc of signal forms ignoreValidators option.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/7907e982ee90778e596d3e849f0a31c6c26db235\"\u003e\u003ccode\u003e7907e98\u003c/code\u003e\u003c/a\u003e test: remove duplicate tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/4a9b715b3abd3e51184937f764376883d6bb98a1\"\u003e\u003ccode\u003e4a9b715\u003c/code\u003e\u003c/a\u003e test(forms): cover transformedValue without FormField context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/670d1660c40504e3f55e094c3ebbcccad14163f3\"\u003e\u003ccode\u003e670d166\u003c/code\u003e\u003c/a\u003e feat(forms): add 'blur' option to debounce rule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/23cb9a4291dc7ee0db3a78416b5ca2b51cfad1ac\"\u003e\u003ccode\u003e23cb9a4\u003c/code\u003e\u003c/a\u003e refactor(forms): address feedback\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/0a863ba03f5eb83f383f647b7015bc3640072a1d\"\u003e\u003ccode\u003e0a863ba\u003c/code\u003e\u003c/a\u003e refactor(forms): hide adapter in public options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/fe7b26e403febfe2662828945d41bc4567cbcc8b\"\u003e\u003ccode\u003efe7b26e\u003c/code\u003e\u003c/a\u003e docs(forms): transformedValue parse error wiring\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/bdfb60f3e33065e047183dc1890c36e527e2b304\"\u003e\u003ccode\u003ebdfb60f\u003c/code\u003e\u003c/a\u003e fix(forms): use consistent error format returned from parse\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/631f60d1f9be72cb68330308a6ff18cc195babb8\"\u003e\u003ccode\u003e631f60d\u003c/code\u003e\u003c/a\u003e fix(forms): preserve parse errors when parse returns value\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.7/packages/forms\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/localize` from 16.2.12 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/localize\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/...\n\n_Description has been truncated_","html_url":"https://github.com/container-registry/harbor-next/pull/109","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/container-registry%2Fharbor-next/issues/109","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/109/packages"}},{"old_version":"20.1.1","new_version":"21.3.1","update_type":"major","path":null,"pr_created_at":"2026-04-04T13:26:34.000Z","version_change":"20.1.1 → 21.3.1","issue":{"uuid":"4204937837","node_id":"PR_kwDOBiCNks7P9TT8","number":1404,"state":"open","title":"Bump the angular group across 1 directory with 20 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-04T13:26:34.000Z","updated_at":"2026-04-04T13:28:20.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"angular","update_count":20,"packages":[{"name":"@angular/animations","old_version":"21.2.6","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/cdk","old_version":"21.2.4","new_version":"21.2.5","repository_url":"https://github.com/angular/components"},{"name":"@angular/common","old_version":"21.2.6","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler","old_version":"21.2.6","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/core","old_version":"21.2.6","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/forms","old_version":"21.2.6","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/material","old_version":"21.2.4","new_version":"21.2.5","repository_url":"https://github.com/angular/components"},{"name":"@angular/platform-browser","old_version":"21.2.6","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser-dynamic","old_version":"21.2.6","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/router","old_version":"21.2.6","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular-devkit/build-angular","old_version":"21.2.5","new_version":"21.2.6","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular-eslint/builder","old_version":"20.1.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin","old_version":"20.1.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin-template","old_version":"20.1.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/schematics","old_version":"20.1.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/template-parser","old_version":"20.1.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular/cli","old_version":"21.2.5","new_version":"21.2.6","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/compiler-cli","old_version":"21.2.6","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"@angular/language-service","old_version":"21.2.6","new_version":"21.2.7","repository_url":"https://github.com/angular/angular"},{"name":"typescript","old_version":"5.9.3","new_version":"6.0.2","repository_url":"https://github.com/microsoft/TypeScript"}],"path":null,"ecosystem":"npm"},"body":"Bumps the angular group with 20 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `21.2.6` | `21.2.7` |\n| [@angular/cdk](https://github.com/angular/components) | `21.2.4` | `21.2.5` |\n| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `21.2.6` | `21.2.7` |\n| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `21.2.6` | `21.2.7` |\n| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `21.2.6` | `21.2.7` |\n| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `21.2.6` | `21.2.7` |\n| [@angular/material](https://github.com/angular/components) | `21.2.4` | `21.2.5` |\n| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `21.2.6` | `21.2.7` |\n| [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `21.2.6` | `21.2.7` |\n| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `21.2.6` | `21.2.7` |\n| [@angular-devkit/build-angular](https://github.com/angular/angular-cli) | `21.2.5` | `21.2.6` |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `20.1.1` | `21.3.1` |\n| [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) | `20.1.1` | `21.3.1` |\n| [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template) | `20.1.1` | `21.3.1` |\n| [@angular-eslint/schematics](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics) | `20.1.1` | `21.3.1` |\n| [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `20.1.1` | `21.3.1` |\n| [@angular/cli](https://github.com/angular/angular-cli) | `21.2.5` | `21.2.6` |\n| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `21.2.6` | `21.2.7` |\n| [@angular/language-service](https://github.com/angular/angular/tree/HEAD/packages/language-service) | `21.2.6` | `21.2.7` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `6.0.2` |\n\n\nUpdates `@angular/animations` from 21.2.6 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/animations\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/animations/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/animations\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.7 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003efea25d1a60\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003ebba5ed8e64\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003ed04ddd73df\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e8fd896e99a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003eb682c62873\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e3c41e74fdd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e0960592d3d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.5 (2026-03-25)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eElements with multiple matching selectors will now throw at compile time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComponent with undefined \u003ccode\u003echangeDetection\u003c/code\u003e property are now \u003ccode\u003eOnPush\u003c/code\u003e by default. Specify \u003ccode\u003echangeDetection: ChangeDetectionStrategy.Eager\u003c/code\u003e to keep the previous behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eplatform-browser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHammer.js integration has been removed. Use your own implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1312da1832e2b59ce18edae8fae13d3f562d9b0\"\u003ec1312da183\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a\"\u003ee850643b1b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eSupport comments in html element.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943\"\u003e96be4f429b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eabstract emitter producing incorrect code for dynamic imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/5a712d42d161c93f6315d6462543c26c4e4a4490\"\u003e5a712d42d1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24\"\u003eca67828ee2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eintroduce NG8023 compile-time diagnostic for duplicate selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.7/packages/animations\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/cdk` from 21.2.4 to 21.2.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/releases\"\u003e\u003ccode\u003e@​angular/cdk\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/895908a12dd81d889f95961da59e80823faf8889\"\u003e\u003cimg src=\"https://img.shields.io/badge/895908a12-fix-green\" alt=\"fix - 895908a12\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esidenav:\u003c/strong\u003e not resetting margin if transition does not start (\u003ca href=\"https://redirect.github.com/angular/components/issues/33001\"\u003e#33001\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/475a8aabb30044c4cdca1bdb0b1de832db6e5936\"\u003e\u003cimg src=\"https://img.shields.io/badge/475a8aabb-fix-green\" alt=\"fix - 475a8aabb\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eslider:\u003c/strong\u003e not picking up static direction (\u003ca href=\"https://redirect.github.com/angular/components/issues/33006\"\u003e#33006\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/8a5ed09e59e312f82b969b19ae4d077e4574bd12\"\u003e\u003cimg src=\"https://img.shields.io/badge/8a5ed09e5-fix-green\" alt=\"fix - 8a5ed09e5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003etooltip:\u003c/strong\u003e allow hover detection logic to be customized (\u003ca href=\"https://redirect.github.com/angular/components/issues/33018\"\u003e#33018\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/42e10553cfcf205fea44522ae631fe23f90b03ea\"\u003e\u003cimg src=\"https://img.shields.io/badge/42e10553c-fix-green\" alt=\"fix - 42e10553c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003estepper:\u003c/strong\u003e linear updates not reflected in the DOM (\u003ca href=\"https://redirect.github.com/angular/components/issues/33007\"\u003e#33007\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/cdk\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.5 \u0026quot;steel-wombat\u0026quot; (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/42e10553cfcf205fea44522ae631fe23f90b03ea\"\u003e42e10553c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003estepper:\u003c/strong\u003e linear updates not reflected in the DOM (\u003ca href=\"https://redirect.github.com/angular/components/pull/33007\"\u003e#33007\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/895908a12dd81d889f95961da59e80823faf8889\"\u003e895908a12\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esidenav:\u003c/strong\u003e not resetting margin if transition does not start (\u003ca href=\"https://redirect.github.com/angular/components/pull/33001\"\u003e#33001\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/475a8aabb30044c4cdca1bdb0b1de832db6e5936\"\u003e475a8aabb\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eslider:\u003c/strong\u003e not picking up static direction (\u003ca href=\"https://redirect.github.com/angular/components/pull/33006\"\u003e#33006\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/8a5ed09e59e312f82b969b19ae4d077e4574bd12\"\u003e8a5ed09e5\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003etooltip:\u003c/strong\u003e allow hover detection logic to be customized (\u003ca href=\"https://redirect.github.com/angular/components/pull/33018\"\u003e#33018\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/c9d40aa735751363a729723751aaf87dfb5d4819\"\u003e\u003ccode\u003ec9d40aa\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/899456f6e4b23d6c34643c223a42f0bbd67b9de8\"\u003e\u003ccode\u003e899456f\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies (\u003ca href=\"https://redirect.github.com/angular/components/issues/33017\"\u003e#33017\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/b3f60001228f8c92c96256ed5025acef828cb2dc\"\u003e\u003ccode\u003eb3f6000\u003c/code\u003e\u003c/a\u003e build: lock file maintenance (\u003ca href=\"https://redirect.github.com/angular/components/issues/33015\"\u003e#33015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/8a5ed09e59e312f82b969b19ae4d077e4574bd12\"\u003e\u003ccode\u003e8a5ed09\u003c/code\u003e\u003c/a\u003e fix(material/tooltip): allow hover detection logic to be customized (\u003ca href=\"https://redirect.github.com/angular/components/issues/33018\"\u003e#33018\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/7f04529c759f9e43fffb59d8daa8b1cb5a0a1e51\"\u003e\u003ccode\u003e7f04529\u003c/code\u003e\u003c/a\u003e build: update github/codeql-action action to v4.35.1 (\u003ca href=\"https://redirect.github.com/angular/components/issues/32990\"\u003e#32990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/ec90218b8fd2720bcf0baa79e6bf6d1473d5a053\"\u003e\u003ccode\u003eec90218\u003c/code\u003e\u003c/a\u003e build: update bazel dependencies (\u003ca href=\"https://redirect.github.com/angular/components/issues/32989\"\u003e#32989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/895908a12dd81d889f95961da59e80823faf8889\"\u003e\u003ccode\u003e895908a\u003c/code\u003e\u003c/a\u003e fix(material/sidenav): not resetting margin if transition does not start (\u003ca href=\"https://redirect.github.com/angular/components/issues/33\"\u003e#33\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/475a8aabb30044c4cdca1bdb0b1de832db6e5936\"\u003e\u003ccode\u003e475a8aa\u003c/code\u003e\u003c/a\u003e fix(material/slider): not picking up static direction (\u003ca href=\"https://redirect.github.com/angular/components/issues/33006\"\u003e#33006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/42e10553cfcf205fea44522ae631fe23f90b03ea\"\u003e\u003ccode\u003e42e1055\u003c/code\u003e\u003c/a\u003e fix(cdk/stepper): linear updates not reflected in the DOM (\u003ca href=\"https://redirect.github.com/angular/components/issues/33007\"\u003e#33007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/e444cc41a069f66581fcb2f7dcc728fc59ef2892\"\u003e\u003ccode\u003ee444cc4\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies (\u003ca href=\"https://redirect.github.com/angular/components/issues/32998\"\u003e#32998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/components/compare/v21.2.4...v21.2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/common` from 21.2.6 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.7 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003efea25d1a60\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003ebba5ed8e64\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003ed04ddd73df\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e8fd896e99a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003eb682c62873\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e3c41e74fdd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e0960592d3d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.5 (2026-03-25)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eElements with multiple matching selectors will now throw at compile time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComponent with undefined \u003ccode\u003echangeDetection\u003c/code\u003e property are now \u003ccode\u003eOnPush\u003c/code\u003e by default. Specify \u003ccode\u003echangeDetection: ChangeDetectionStrategy.Eager\u003c/code\u003e to keep the previous behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eplatform-browser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHammer.js integration has been removed. Use your own implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1312da1832e2b59ce18edae8fae13d3f562d9b0\"\u003ec1312da183\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a\"\u003ee850643b1b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eSupport comments in html element.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943\"\u003e96be4f429b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eabstract emitter producing incorrect code for dynamic imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/5a712d42d161c93f6315d6462543c26c4e4a4490\"\u003e5a712d42d1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24\"\u003eca67828ee2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eintroduce NG8023 compile-time diagnostic for duplicate selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/13f050d2204285173273ebbfe9b34bc1b3c63c80\"\u003e\u003ccode\u003e13f050d\u003c/code\u003e\u003c/a\u003e test: construct local \u003ccode\u003eDate\u003c/code\u003e objects to fix timezone flakiness\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d0cf2995a2b63eb13fe574770ee8a756277852a4\"\u003e\u003ccode\u003ed0cf299\u003c/code\u003e\u003c/a\u003e test: remove unsupported timezone from \u003ccode\u003eformatDate\u003c/code\u003e tests\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.7/packages/common\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/compiler` from 21.2.6 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.7 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003efea25d1a60\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003ebba5ed8e64\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003ed04ddd73df\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e8fd896e99a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003eb682c62873\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e3c41e74fdd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e0960592d3d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.5 (2026-03-25)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eElements with multiple matching selectors will now throw at compile time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComponent with undefined \u003ccode\u003echangeDetection\u003c/code\u003e property are now \u003ccode\u003eOnPush\u003c/code\u003e by default. Specify \u003ccode\u003echangeDetection: ChangeDetectionStrategy.Eager\u003c/code\u003e to keep the previous behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eplatform-browser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHammer.js integration has been removed. Use your own implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1312da1832e2b59ce18edae8fae13d3f562d9b0\"\u003ec1312da183\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a\"\u003ee850643b1b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eSupport comments in html element.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943\"\u003e96be4f429b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eabstract emitter producing incorrect code for dynamic imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/5a712d42d161c93f6315d6462543c26c4e4a4490\"\u003e5a712d42d1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24\"\u003eca67828ee2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eintroduce NG8023 compile-time diagnostic for duplicate selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003ccode\u003ed04ddd7\u003c/code\u003e\u003c/a\u003e fix(core): prevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003ccode\u003efea25d1\u003c/code\u003e\u003c/a\u003e fix(compiler): register SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/67\"\u003e#67\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.7/packages/compiler\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/core` from 21.2.6 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.7 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003efea25d1a60\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003ebba5ed8e64\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003ed04ddd73df\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e8fd896e99a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003eb682c62873\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e3c41e74fdd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e0960592d3d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.5 (2026-03-25)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eElements with multiple matching selectors will now throw at compile time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComponent with undefined \u003ccode\u003echangeDetection\u003c/code\u003e property are now \u003ccode\u003eOnPush\u003c/code\u003e by default. Specify \u003ccode\u003echangeDetection: ChangeDetectionStrategy.Eager\u003c/code\u003e to keep the previous behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eplatform-browser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHammer.js integration has been removed. Use your own implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1312da1832e2b59ce18edae8fae13d3f562d9b0\"\u003ec1312da183\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a\"\u003ee850643b1b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eSupport comments in html element.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943\"\u003e96be4f429b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eabstract emitter producing incorrect code for dynamic imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/5a712d42d161c93f6315d6462543c26c4e4a4490\"\u003e5a712d42d1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24\"\u003eca67828ee2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eintroduce NG8023 compile-time diagnostic for duplicate selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/4ad6d582d2a9f887c8530ff10ae513a4181ad24c\"\u003e\u003ccode\u003e4ad6d58\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies to v21.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003ccode\u003ed04ddd7\u003c/code\u003e\u003c/a\u003e fix(core): prevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003ccode\u003eb682c62\u003c/code\u003e\u003c/a\u003e fix(core): treat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003ccode\u003efea25d1\u003c/code\u003e\u003c/a\u003e fix(compiler): register SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/core/issues/67\"\u003e#67\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003ccode\u003e8fd896e\u003c/code\u003e\u003c/a\u003e fix(core): resolve component import by exact specifier in route lazy-loading ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/4b2008d0f2455cab7503b3a0349feecbff3b3b5a\"\u003e\u003ccode\u003e4b2008d\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.7/packages/core\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/forms` from 21.2.6 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/forms/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/forms/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/forms/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.7 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003efea25d1a60\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003ebba5ed8e64\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003ed04ddd73df\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e8fd896e99a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003eb682c62873\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e3c41e74fdd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e0960592d3d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.5 (2026-03-25)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eElements with multiple matching selectors will now throw at compile time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComponent with undefined \u003ccode\u003echangeDetection\u003c/code\u003e property are now \u003ccode\u003eOnPush\u003c/code\u003e by default. Specify \u003ccode\u003echangeDetection: ChangeDetectionStrategy.Eager\u003c/code\u003e to keep the previous behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eplatform-browser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHammer.js integration has been removed. Use your own implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1312da1832e2b59ce18edae8fae13d3f562d9b0\"\u003ec1312da183\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a\"\u003ee850643b1b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eSupport comments in html element.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943\"\u003e96be4f429b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eabstract emitter producing incorrect code for dynamic imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/5a712d42d161c93f6315d6462543c26c4e4a4490\"\u003e5a712d42d1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24\"\u003eca67828ee2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eintroduce NG8023 compile-time diagnostic for duplicate selectors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/895c576d494111f819e8a790d3a0695b6b9f8b4b\"\u003e\u003ccode\u003e895c576\u003c/code\u003e\u003c/a\u003e refactor(forms): use strict equality for pending status getter\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.7/packages/forms\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/material` from 21.2.4 to 21.2.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/releases\"\u003e\u003ccode\u003e@​angular/material\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/895908a12dd81d889f95961da59e80823faf8889\"\u003e\u003cimg src=\"https://img.shields.io/badge/895908a12-fix-green\" alt=\"fix - 895908a12\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esidenav:\u003c/strong\u003e not resetting margin if transition does not start (\u003ca href=\"https://redirect.github.com/angular/components/issues/33001\"\u003e#33001\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/475a8aabb30044c4cdca1bdb0b1de832db6e5936\"\u003e\u003cimg src=\"https://img.shields.io/badge/475a8aabb-fix-green\" alt=\"fix - 475a8aabb\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eslider:\u003c/strong\u003e not picking up static direction (\u003ca href=\"https://redirect.github.com/angular/components/issues/33006\"\u003e#33006\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/8a5ed09e59e312f82b969b19ae4d077e4574bd12\"\u003e\u003cimg src=\"https://img.shields.io/badge/8a5ed09e5-fix-green\" alt=\"fix - 8a5ed09e5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003etooltip:\u003c/strong\u003e allow hover detection logic to be customized (\u003ca href=\"https://redirect.github.com/angular/components/issues/33018\"\u003e#33018\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/42e10553cfcf205fea44522ae631fe23f90b03ea\"\u003e\u003cimg src=\"https://img.shields.io/badge/42e10553c-fix-green\" alt=\"fix - 42e10553c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003estepper:\u003c/strong\u003e linear updates not reflected in the DOM (\u003ca href=\"https://redirect.github.com/angular/components/issues/33007\"\u003e#33007\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/material\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.5 \u0026quot;steel-wombat\u0026quot; (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/42e10553cfcf205fea44522ae631fe23f90b03ea\"\u003e42e10553c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003estepper:\u003c/strong\u003e linear updates not reflected in the DOM (\u003ca href=\"https://redirect.github.com/angular/components/pull/33007\"\u003e#33007\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/895908a12dd81d889f95961da59e80823faf8889\"\u003e895908a12\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003esidenav:\u003c/strong\u003e not resetting margin if transition does not start (\u003ca href=\"https://redirect.github.com/angular/components/pull/33001\"\u003e#33001\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/475a8aabb30044c4cdca1bdb0b1de832db6e5936\"\u003e475a8aabb\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eslider:\u003c/strong\u003e not picking up static direction (\u003ca href=\"https://redirect.github.com/angular/components/pull/33006\"\u003e#33006\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/8a5ed09e59e312f82b969b19ae4d077e4574bd12\"\u003e8a5ed09e5\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003etooltip:\u003c/strong\u003e allow hover detection logic to be customized (\u003ca href=\"https://redirect.github.com/angular/components/pull/33018\"\u003e#33018\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/c9d40aa735751363a729723751aaf87dfb5d4819\"\u003e\u003ccode\u003ec9d40aa\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/899456f6e4b23d6c34643c223a42f0bbd67b9de8\"\u003e\u003ccode\u003e899456f\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies (\u003ca href=\"https://redirect.github.com/angular/components/issues/33017\"\u003e#33017\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/b3f60001228f8c92c96256ed5025acef828cb2dc\"\u003e\u003ccode\u003eb3f6000\u003c/code\u003e\u003c/a\u003e build: lock file maintenance (\u003ca href=\"https://redirect.github.com/angular/components/issues/33015\"\u003e#33015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/8a5ed09e59e312f82b969b19ae4d077e4574bd12\"\u003e\u003ccode\u003e8a5ed09\u003c/code\u003e\u003c/a\u003e fix(material/tooltip): allow hover detection logic to be customized (\u003ca href=\"https://redirect.github.com/angular/components/issues/33018\"\u003e#33018\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/7f04529c759f9e43fffb59d8daa8b1cb5a0a1e51\"\u003e\u003ccode\u003e7f04529\u003c/code\u003e\u003c/a\u003e build: update github/codeql-action action to v4.35.1 (\u003ca href=\"https://redirect.github.com/angular/components/issues/32990\"\u003e#32990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/ec90218b8fd2720bcf0baa79e6bf6d1473d5a053\"\u003e\u003ccode\u003eec90218\u003c/code\u003e\u003c/a\u003e build: update bazel dependencies (\u003ca href=\"https://redirect.github.com/angular/components/issues/32989\"\u003e#32989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/895908a12dd81d889f95961da59e80823faf8889\"\u003e\u003ccode\u003e895908a\u003c/code\u003e\u003c/a\u003e fix(material/sidenav): not resetting margin if transition does not start (\u003ca href=\"https://redirect.github.com/angular/components/issues/33\"\u003e#33\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/475a8aabb30044c4cdca1bdb0b1de832db6e5936\"\u003e\u003ccode\u003e475a8aa\u003c/code\u003e\u003c/a\u003e fix(material/slider): not picking up static direction (\u003ca href=\"https://redirect.github.com/angular/components/issues/33006\"\u003e#33006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/42e10553cfcf205fea44522ae631fe23f90b03ea\"\u003e\u003ccode\u003e42e1055\u003c/code\u003e\u003c/a\u003e fix(cdk/stepper): linear updates not reflected in the DOM (\u003ca href=\"https://redirect.github.com/angular/components/issues/33007\"\u003e#33007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/e444cc41a069f66581fcb2f7dcc728fc59ef2892\"\u003e\u003ccode\u003ee444cc4\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies (\u003ca href=\"https://redirect.github.com/angular/components/issues/32998\"\u003e#32998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/components/compare/v21.2.4...v21.2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/platform-browser` from 21.2.6 to 21.2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/platform-browser\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.7\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003e\u003cimg src=\"https://img.shields.io/badge/fea25d1a60-fix-green\" alt=\"fix - fea25d1a60\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/platform-browser/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003e\u003cimg src=\"https://img.shields.io/badge/bba5ed8e64-fix-green\" alt=\"fix - bba5ed8e64\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003e\u003cimg src=\"https://img.shields.io/badge/d04ddd73df-fix-green\" alt=\"fix - d04ddd73df\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/platform-browser/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e\u003cimg src=\"https://img.shields.io/badge/8fd896e99a-fix-green\" alt=\"fix - 8fd896e99a\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003e\u003cimg src=\"https://img.shields.io/badge/b682c62873-fix-green\" alt=\"fix - b682c62873\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/platform-browser/issues/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e\u003cimg src=\"https://img.shields.io/badge/3c41e74fdd-fix-green\" alt=\"fix - 3c41e74fdd\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e\u003cimg src=\"https://img.shields.io/badge/0960592d3d-fix-green\" alt=\"fix - 0960592d3d\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/platform-browser\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.7 (2026-04-01)\u003c/h1\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/fea25d1a60ecaba1599d9cd9b8df27109ed195c5\"\u003efea25d1a60\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eregister SVG animation attributes in URL security context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bba5ed8e643b9c3f680e7e539c3d744ad6905e59\"\u003ebba5ed8e64\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent recursive scope checks for invalid NgModule imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d04ddd73dfc03f420afbdde964c5119f338af135\"\u003ed04ddd73df\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent binding unsafe attributes on SVG animation elements (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/8fd896e99a13855c6569f29efe7e578c301e13ee\"\u003e8fd896e99a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eresolve component import by exact specifier in route lazy-loading schematic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b682c628731b86a4884e50abb2f5fa73ac0ad057\"\u003eb682c62873\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etreat \u003ccode\u003eobject[data]\u003c/code\u003e as resource URL context (\u003ca href=\"https://redirect.github.com/angular/angular/pull/67797\"\u003e#67797\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003elocalize\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3c41e74fdd279f683156b654699a9312a850add0\"\u003e3c41e74fdd\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003evalidate locale in getOutputPathFn to prevent path traversal\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003erouter\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/0960592d3d4fad110d5598144fda9f2488520826\"\u003e0960592d3d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003epass outlet context to split to fix empty path named outlets\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.5 (2026-03-25)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eElements with multiple matching selectors will now throw at compile time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComponent with undefined \u003ccode\u003echangeDetection\u003c/code\u003e property are now \u003ccode\u003eOnPush\u003c/code\u003e by default. Specify \u003ccode\u003echangeDetection: ChangeDetectionStrategy.Eager\u003c/code\u003e to keep the previous behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eplatform-browser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHammer.js integration has been removed. Use your own implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1312da1832e2b59ce18edae8fae13d3f562d9b0\"\u003ec1312da183\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a\"\u003ee850643b1b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eSupport comments in html element.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943\"\u003e96be4f429b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eabstract emitter producing incorrect code for dynamic imports\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/5a712d42d161c93f6315d6462543c26c4e4a4490\"\u003e5a712d42d1\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescriptio...\n\n_Description has been truncated_","html_url":"https://github.com/SubJunk/TimelineTools/pull/1404","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SubJunk%2FTimelineTools/issues/1404","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1404/packages"}},{"old_version":"21.3.0","new_version":"21.3.1","update_type":"patch","path":null,"pr_created_at":"2026-04-02T00:58:04.000Z","version_change":"21.3.0 → 21.3.1","issue":{"uuid":"4190751338","node_id":"PR_kwDOG1Zs187Paq-R","number":12491,"state":"open","title":"Chore(deps): Bump the frontend-angular-dependencies group across 1 directory with 20 updates","user":"dependabot[bot]","labels":["non-trivial","frontend","dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-02T00:58:04.000Z","updated_at":"2026-05-02T06:00:24.140Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Chore(deps): Bump","group_name":"frontend-angular-dependencies","update_count":20,"packages":[{"name":"@angular/cdk","old_version":"21.2.2","new_version":"21.2.4","repository_url":"https://github.com/angular/components"},{"name":"@angular/common","old_version":"21.2.4","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler","old_version":"21.2.4","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/core","old_version":"21.2.4","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/forms","old_version":"21.2.4","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/localize","old_version":"21.2.4","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser","old_version":"21.2.4","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser-dynamic","old_version":"21.2.4","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/router","old_version":"21.2.4","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"ngx-cookie-service","old_version":"21.1.0","new_version":"21.3.1","repository_url":"https://github.com/stevermeister/ngx-cookie-service"},{"name":"@angular-devkit/core","old_version":"21.2.2","new_version":"21.2.3","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular-devkit/schematics","old_version":"21.2.2","new_version":"21.2.3","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular-eslint/builder","old_version":"21.3.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin","old_version":"21.3.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin-template","old_version":"21.3.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/schematics","old_version":"21.3.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/template-parser","old_version":"21.3.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular/build","old_version":"21.2.2","new_version":"21.2.3","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/cli","old_version":"21.2.2","new_version":"21.2.3","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/compiler-cli","old_version":"21.2.4","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"}],"path":null,"ecosystem":"npm"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps the frontend-angular-dependencies group with 20 updates in the /src-ui directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@angular/cdk](https://github.com/angular/components) | `21.2.2` | `21.2.4` |\n| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `21.2.4` | `21.2.6` |\n| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `21.2.4` | `21.2.6` |\n| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `21.2.4` | `21.2.6` |\n| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `21.2.4` | `21.2.6` |\n| [@angular/localize](https://github.com/angular/angular) | `21.2.4` | `21.2.6` |\n| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `21.2.4` | `21.2.6` |\n| [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `21.2.4` | `21.2.6` |\n| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `21.2.4` | `21.2.6` |\n| [ngx-cookie-service](https://github.com/stevermeister/ngx-cookie-service) | `21.1.0` | `21.3.1` |\n| [@angular-devkit/core](https://github.com/angular/angular-cli) | `21.2.2` | `21.2.3` |\n| [@angular-devkit/schematics](https://github.com/angular/angular-cli) | `21.2.2` | `21.2.3` |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `21.3.0` | `21.3.1` |\n| [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) | `21.3.0` | `21.3.1` |\n| [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template) | `21.3.0` | `21.3.1` |\n| [@angular-eslint/schematics](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics) | `21.3.0` | `21.3.1` |\n| [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `21.3.0` | `21.3.1` |\n| [@angular/build](https://github.com/angular/angular-cli) | `21.2.2` | `21.2.3` |\n| [@angular/cli](https://github.com/angular/angular-cli) | `21.2.2` | `21.2.3` |\n| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `21.2.4` | `21.2.6` |\n\n\nUpdates `@angular/cdk` from 21.2.2 to 21.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/releases\"\u003e\u003ccode\u003e@​angular/cdk\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.4\u003c/h2\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/87aa6d977166d09b0f321eed6300663bfe57b8aa\"\u003e\u003cimg src=\"https://img.shields.io/badge/87aa6d977-fix-green\" alt=\"fix - 87aa6d977\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003etooltip:\u003c/strong\u003e wrong type for shape token (\u003ca href=\"https://redirect.github.com/angular/components/issues/32968\"\u003e#32968\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.3\u003c/h2\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/917526511e1d52bb2d9fa665e10f087e62aa2229\"\u003e\u003cimg src=\"https://img.shields.io/badge/917526511-fix-green\" alt=\"fix - 917526511\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003edatepicker:\u003c/strong\u003e add harness for datepicker actions (\u003ca href=\"https://redirect.github.com/angular/components/issues/32925\"\u003e#32925\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/688deda580c9141e2a7e36164dbba860d060e5df\"\u003e\u003cimg src=\"https://img.shields.io/badge/688deda58-fix-green\" alt=\"fix - 688deda58\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003edrag-drop:\u003c/strong\u003e item returned to wrong index in initial container (\u003ca href=\"https://redirect.github.com/angular/components/issues/32944\"\u003e#32944\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/components/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/cdk\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.4 \u0026quot;hassium-halfpipe\u0026quot; (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/87aa6d977166d09b0f321eed6300663bfe57b8aa\"\u003e87aa6d977\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003etooltip:\u003c/strong\u003e wrong type for shape token (\u003ca href=\"https://redirect.github.com/angular/components/pull/32968\"\u003e#32968\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.2 \u0026quot;hassium-helicopter\u0026quot; (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/a46b0a1d4200bf74b036c25ee477d22025f444c8\"\u003ea46b0a1d4\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003ecore:\u003c/strong\u003e add mixins for Material Design typography (\u003ca href=\"https://redirect.github.com/angular/components/pull/32959\"\u003e#32959\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/ff7d697ec5ed280d3e28029571bc86d7c0c2c3a8\"\u003eff7d697ec\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003etooltip:\u003c/strong\u003e wrong type for shape token (\u003ca href=\"https://redirect.github.com/angular/components/pull/32968\"\u003e#32968\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.1 \u0026quot;22-0-0\u0026quot; (2026-03-18)\u003c/h1\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/0767a3cb4fe9f6fd3496cea991592855cf885b3a\"\u003e0767a3cb4\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003edrag-drop:\u003c/strong\u003e item returned to wrong index in initial container (\u003ca href=\"https://redirect.github.com/angular/components/pull/32944\"\u003e#32944\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/46b67d15053ce31b4742b809f1777b32eb2f1863\"\u003e46b67d150\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003edatepicker:\u003c/strong\u003e add harness for datepicker actions (\u003ca href=\"https://redirect.github.com/angular/components/pull/32925\"\u003e#32925\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/6ed6218c474bfe4578b17d2391d8677fe92671cc\"\u003e6ed6218c4\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003etabs:\u003c/strong\u003e incorrect animation variable name (\u003ca href=\"https://redirect.github.com/angular/components/pull/32941\"\u003e#32941\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e21.2.3 \u0026quot;21-2-3\u0026quot; (2026-03-18)\u003c/h1\u003e\n\u003ch3\u003ecdk\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/688deda580c9141e2a7e36164dbba860d060e5df\"\u003e688deda58\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003edrag-drop:\u003c/strong\u003e item returned to wrong index in initial container (\u003ca href=\"https://redirect.github.com/angular/components/pull/32944\"\u003e#32944\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/components/commit/917526511e1d52bb2d9fa665e10f087e62aa2229\"\u003e917526511\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003edatepicker:\u003c/strong\u003e add harness for datepicker actions (\u003ca href=\"https://redirect.github.com/angular/components/pull/32925\"\u003e#32925\u003c/a\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.0 \u0026quot;plastic-bear\u0026quot; (2026-03-11)\u003c/h1\u003e\n\u003ch3\u003ematerial\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/f556281ba1d7ba4327ab6a3253bbb1828886e1cd\"\u003e\u003ccode\u003ef556281\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/df6718b9db92385f9781c40bcbcf45454282ec59\"\u003e\u003ccode\u003edf6718b\u003c/code\u003e\u003c/a\u003e refactor(youtube-player): avoid build errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/7db3d111ff6f21d8f7a5afb06add6e9763b1c77f\"\u003e\u003ccode\u003e7db3d11\u003c/code\u003e\u003c/a\u003e test(multiple): remove usage of deprecated API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/ef1be1ea232bdf379c71a4ce97bf9b09ddd96702\"\u003e\u003ccode\u003eef1be1e\u003c/code\u003e\u003c/a\u003e docs(aria/grid): calendar example with arrow key scrolling (\u003ca href=\"https://redirect.github.com/angular/components/issues/32323\"\u003e#32323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/12163dc0d5ee82122b657fb477b34fb81520dfc3\"\u003e\u003ccode\u003e12163dc\u003c/code\u003e\u003c/a\u003e build: update dependency node to v22.22.2 (\u003ca href=\"https://redirect.github.com/angular/components/issues/32973\"\u003e#32973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/fd215163d615c4113a4fa23e047ba2e02fa74f9c\"\u003e\u003ccode\u003efd21516\u003c/code\u003e\u003c/a\u003e docs(material/datepicker): fix typo in aria-accessible-name comment (\u003ca href=\"https://redirect.github.com/angular/components/issues/32703\"\u003e#32703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/82ab19160613a0b9ae1080d6f3776616bf7fbe13\"\u003e\u003ccode\u003e82ab191\u003c/code\u003e\u003c/a\u003e docs(cdk/overlay): rename template variable from trigger to origin in example...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/c2b85560847d9b69291004663e0917dfd590928c\"\u003e\u003ccode\u003ec2b8556\u003c/code\u003e\u003c/a\u003e docs(material/button): document iconPositionEnd and matButtonIcon attributes ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/5e83cb26a3f57e9995a52d3200f8386571ba0703\"\u003e\u003ccode\u003e5e83cb2\u003c/code\u003e\u003c/a\u003e docs: update remaining NgModule prose references to standalone pattern (\u003ca href=\"https://redirect.github.com/angular/components/issues/32825\"\u003e#32825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/components/commit/f86039779ff11dda144721c1fa8a846aa5f0e2ce\"\u003e\u003ccode\u003ef860397\u003c/code\u003e\u003c/a\u003e docs: use standalone import in getting-started guide (\u003ca href=\"https://redirect.github.com/angular/components/issues/32826\"\u003e#32826\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/components/compare/v21.2.2...v21.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/common` from 21.2.4 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003ccode\u003eb4ab6ba\u003c/code\u003e\u003c/a\u003e fix(common): avoid redundant image fetch on destroy with auto sizes\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/common\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/compiler` from 21.2.4 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003ccode\u003e880a57d\u003c/code\u003e\u003c/a\u003e fix(compiler): prevent shimCssText from adding extra blank lines per CSS comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003ccode\u003e23ea431\u003c/code\u003e\u003c/a\u003e fix(compiler): parse named HTML entities containing digits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003ccode\u003e334ae10\u003c/code\u003e\u003c/a\u003e fix(compiler): ensure generated code compiles\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/compiler\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/core` from 21.2.4 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1579163b7464edc69f7fa0548f53d978b007021\"\u003e\u003ccode\u003ec157916\u003c/code\u003e\u003c/a\u003e build: consolidate domino bundling in platform-server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/9be5e2c2113db3fe5d799663b6539d34d1e18f47\"\u003e\u003ccode\u003e9be5e2c\u003c/code\u003e\u003c/a\u003e docs: fix typo in Input decorator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/a21be36e15a6d9cf21722f9f6a31dad9380037e9\"\u003e\u003ccode\u003ea21be36\u003c/code\u003e\u003c/a\u003e refactor: prepare for required \u003ccode\u003echangeDetection\u003c/code\u003e prop on G3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/831746eff1e7442bfc96bfa739f54091b26a7997\"\u003e\u003ccode\u003e831746e\u003c/code\u003e\u003c/a\u003e docs: Add callout about the Component interface.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003ccode\u003ead0156e\u003c/code\u003e\u003c/a\u003e fix(core): fixes a regression with animate.leave and reordering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003ccode\u003e73d6b01\u003c/code\u003e\u003c/a\u003e fix(migrations): inject migration not work in multi-project workspace with op...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/3838554503dfe0585e4df93547741fbc34a150d1\"\u003e\u003ccode\u003e3838554\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies to v21.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/851ef77318541580d186d7f1c02061cc615450da\"\u003e\u003ccode\u003e851ef77\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;refactor(core): Ensure determineLongestAnimation is run synchronously...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003ccode\u003e076d41c\u003c/code\u003e\u003c/a\u003e fix(migrations): prevent trailing comma syntax errors after removing NgStyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/a8f80c1f995dd7bab6ee1d42f033ebc3d101e9bd\"\u003e\u003ccode\u003ea8f80c1\u003c/code\u003e\u003c/a\u003e refactor(core): declare explicit reactive node prototypes types\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/core\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/forms` from 21.2.4 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b658accf1f99a240de19090350bd6d3a9620735a\"\u003e\u003ccode\u003eb658acc\u003c/code\u003e\u003c/a\u003e docs: fix js doc of signal forms ignoreValidators option.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/forms\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/localize` from 21.2.4 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/localize\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/localize\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d8239c7836638f3e32095ff67b3943f88e5af616\"\u003e\u003ccode\u003ed8239c7\u003c/code\u003e\u003c/a\u003e release: cut the v21.2.6 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1579163b7464edc69f7fa0548f53d978b007021\"\u003e\u003ccode\u003ec157916\u003c/code\u003e\u003c/a\u003e build: consolidate domino bundling in platform-server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/dbb15ebab2956d14238849384af95d6bd7ca3435\"\u003e\u003ccode\u003edbb15eb\u003c/code\u003e\u003c/a\u003e build: update dependency node to v22.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/a6c49e0ea9c5919828e0ff3e1f01d62dee749fb9\"\u003e\u003ccode\u003ea6c49e0\u003c/code\u003e\u003c/a\u003e refactor(language-service): Export template target from API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c12339ab86243b76a2de24d0c5e9cab648f6fcf\"\u003e\u003ccode\u003e2c12339\u003c/code\u003e\u003c/a\u003e docs(forms): replace \u003ccode\u003erxResource\u003c/code\u003e \u003ccode\u003erequest\u003c/code\u003e w/ \u003ccode\u003eparams\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/a3048f231cbcca4be6cfa8c94aed5b20a3c6bd71\"\u003e\u003ccode\u003ea3048f2\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/ae2f2497d39a9920aef4ab2ef343007eaa40c1d4\"\u003e\u003ccode\u003eae2f249\u003c/code\u003e\u003c/a\u003e docs: reword allowedHosts security warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/2c7d3b570459131b91949920f0f8765aab1f47ce\"\u003e\u003ccode\u003e2c7d3b5\u003c/code\u003e\u003c/a\u003e build: re-sync file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/6bd21218177d253d54fa388fc024225af09d60f1\"\u003e\u003ccode\u003e6bd2121\u003c/code\u003e\u003c/a\u003e docs: fix incorrect getHarnesses() method to getAllHarnesses and broken link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/e8c047bd8df877e2178a4ac027eff2bff93bec75\"\u003e\u003ccode\u003ee8c047b\u003c/code\u003e\u003c/a\u003e docs: update defer section to Markdown and fix absolute URL to relative in adev\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/compare/v21.2.4...v21.2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/platform-browser` from 21.2.4 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/platform-browser\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/paperless-ngx/paperless-ngx/pull/12491","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/paperless-ngx%2Fpaperless-ngx/issues/12491","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12491/packages"}},{"old_version":"21.3.0","new_version":"21.3.1","update_type":"patch","path":"/ng-frontend","pr_created_at":"2026-03-31T06:45:38.000Z","version_change":"21.3.0 → 21.3.1","issue":{"uuid":"4176390771","node_id":"PR_kwDOPW-Qps7O2O-t","number":121,"state":"open","title":"build(deps-dev): bump @angular-eslint/builder from 21.3.0 to 21.3.1 in /ng-frontend","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-31T06:45:38.000Z","updated_at":"2026-03-31T06:49:34.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"@angular-eslint/builder","old_version":"21.3.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":"/ng-frontend","ecosystem":"npm"},"body":"Bumps [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) from 21.3.0 to 21.3.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/releases\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.3.1\u003c/h2\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.1 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency eslint to v10.0.3 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2949\"\u003e#2949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.2 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2954\"\u003e#2954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-uncalled-signals] properly handle statements with unary operators (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2926\"\u003e#2926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eprefer-self-closing-tags:\u003c/strong\u003e add selectedcontent nonAriaElements (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebjarketrux\u003c/li\u003e\n\u003cli\u003eDaniil Demenev \u003ca href=\"https://github.com/BEGEMOT9I\"\u003e\u003ccode\u003e@​BEGEMOT9I\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/builder\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts\u0026quot; (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2943\"\u003e#2943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003enarrow build target cache outputs to avoid clobbering compile artifacts (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAI-JamesHenry \u003ca href=\"https://github.com/AI-JamesHenry\"\u003e\u003ccode\u003e@​AI-JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJames Henry \u003ca href=\"https://github.com/JamesHenry\"\u003e\u003ccode\u003e@​JamesHenry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/8f2afdce28d4cbdac792465b33aff35915af23b5\"\u003e\u003ccode\u003e8f2afdc\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/77099ee61cda76136038dce9f21d3af6071a7d06\"\u003e\u003ccode\u003e77099ee\u003c/code\u003e\u003c/a\u003e chore: ensure dist artifacts are available for e2e publishing in DTE (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/af8900f087b09556bfaddd815ce483bf7b0262ea\"\u003e\u003ccode\u003eaf8900f\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix: narrow build target cache outputs to avoid clobbering compile ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/7e173918eb48b2db41ce4d5a934567dab26fe54b\"\u003e\u003ccode\u003e7e17391\u003c/code\u003e\u003c/a\u003e fix: narrow build target cache outputs to avoid clobbering compile artifacts ...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.3.1/packages/builder\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular-eslint/builder\u0026package-manager=npm_and_yarn\u0026previous-version=21.3.0\u0026new-version=21.3.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/my-ellersdorfer-at/my-stuff/pull/121","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/my-ellersdorfer-at%2Fmy-stuff/issues/121","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/121/packages"}},{"old_version":"19.8.1","new_version":"21.3.1","update_type":"major","path":null,"pr_created_at":"2026-03-28T23:28:34.000Z","version_change":"19.8.1 → 21.3.1","issue":{"uuid":"4161953626","node_id":"PR_kwDORtMf787OUrsJ","number":21,"state":"closed","title":"chore(deps): Bump the angular group across 1 directory with 19 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-06T03:36:59.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-28T23:28:34.000Z","updated_at":"2026-04-06T03:37:01.000Z","time_to_close":706105,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"angular","update_count":19,"packages":[{"name":"@angular/common","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/core","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/forms","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser-dynamic","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/router","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@ngrx/effects","old_version":"19.2.1","new_version":"21.1.0","repository_url":"https://github.com/ngrx/platform"},{"name":"@ngrx/entity","old_version":"19.2.1","new_version":"21.1.0","repository_url":"https://github.com/ngrx/platform"},{"name":"@ngrx/router-store","old_version":"19.2.1","new_version":"21.1.0","repository_url":"https://github.com/ngrx/platform"},{"name":"@ngrx/store","old_version":"19.2.1","new_version":"21.1.0","repository_url":"https://github.com/ngrx/platform"},{"name":"@ngrx/store-devtools","old_version":"19.2.1","new_version":"21.1.0","repository_url":"https://github.com/ngrx/platform"},{"name":"@angular-eslint/builder","old_version":"19.8.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin","old_version":"19.8.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin-template","old_version":"19.8.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/schematics","old_version":"19.8.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/template-parser","old_version":"19.8.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular/cli","old_version":"19.2.23","new_version":"21.2.5","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/compiler-cli","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"}],"path":null,"ecosystem":"npm"},"body":"Bumps the angular group with 19 updates in the /frontend/angular directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `19.2.20` | `21.2.6` |\n| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `19.2.20` | `21.2.6` |\n| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `19.2.20` | `21.2.6` |\n| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `19.2.20` | `21.2.6` |\n| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `19.2.20` | `21.2.6` |\n| [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `19.2.20` | `21.2.6` |\n| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `19.2.20` | `21.2.6` |\n| [@ngrx/effects](https://github.com/ngrx/platform) | `19.2.1` | `21.1.0` |\n| [@ngrx/entity](https://github.com/ngrx/platform) | `19.2.1` | `21.1.0` |\n| [@ngrx/router-store](https://github.com/ngrx/platform) | `19.2.1` | `21.1.0` |\n| [@ngrx/store](https://github.com/ngrx/platform) | `19.2.1` | `21.1.0` |\n| [@ngrx/store-devtools](https://github.com/ngrx/platform) | `19.2.1` | `21.1.0` |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `19.8.1` | `21.3.1` |\n| [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) | `19.8.1` | `21.3.1` |\n| [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template) | `19.8.1` | `21.3.1` |\n| [@angular-eslint/schematics](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics) | `19.8.1` | `21.3.1` |\n| [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `19.8.1` | `21.3.1` |\n| [@angular/cli](https://github.com/angular/angular-cli) | `19.2.23` | `21.2.5` |\n| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `19.2.20` | `21.2.6` |\n\n\nUpdates `@angular/common` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.4\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003cimg src=\"https://img.shields.io/badge/ed2d324f9c-fix-green\" alt=\"fix - ed2d324f9c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow translations of iframe src\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003ccode\u003eb4ab6ba\u003c/code\u003e\u003c/a\u003e fix(common): avoid redundant image fetch on destroy with auto sizes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/adda6c5c106815c727c1b820634614a045b42e9a\"\u003e\u003ccode\u003eadda6c5\u003c/code\u003e\u003c/a\u003e build: update \u003ccode\u003easpect_rules_js\u003c/code\u003e to \u003ccode\u003e3.0.2\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/93c6dc6395d681dacd1dbbc46b95773038b6c32f\"\u003e\u003ccode\u003e93c6dc6\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;refactor(http): Improves base64 encoding/decoding with feature detect...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/76431ed3e3bd8bf90ac2fb481152a33587187037\"\u003e\u003ccode\u003e76431ed\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix(http): correctly cache blob responses in transfer cache (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67002\"\u003e#67002\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/277ade97ac2a3a7f2a5b513acaa93e7663cdc55f\"\u003e\u003ccode\u003e277ade9\u003c/code\u003e\u003c/a\u003e fix(http): correctly cache blob responses in transfer cache (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67002\"\u003e#67002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/aeb9b819d2cda782de85338dc9a5457c11e51bfe\"\u003e\u003ccode\u003eaeb9b81\u003c/code\u003e\u003c/a\u003e refactor(http): Improves base64 encoding/decoding with feature detection (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67\"\u003e#67\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/ecf0bb466875d17e0823f2d793491c6f354d6c34\"\u003e\u003ccode\u003eecf0bb4\u003c/code\u003e\u003c/a\u003e test(http): refactors HTTP client tests to use TestBed and providers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/e2e9a9a531c9e9a69701e549f28354cc5d5edd77\"\u003e\u003ccode\u003ee2e9a9a\u003c/code\u003e\u003c/a\u003e fix(core): adds transfer cache to httpResource to fix hydration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/70e4c7fbabb45277cf76ee138c0be275beec7919\"\u003e\u003ccode\u003e70e4c7f\u003c/code\u003e\u003c/a\u003e refactor(common): log a warning when a KeyValuePipe receives a signal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/2eeeabb7606900ad4fe8e3370d73f6add985f35d\"\u003e\u003ccode\u003e2eeeabb\u003c/code\u003e\u003c/a\u003e fix(common): fix LCP image detection with duplicate URLs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/common\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/compiler` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.4\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003cimg src=\"https://img.shields.io/badge/ed2d324f9c-fix-green\" alt=\"fix - ed2d324f9c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow translations of iframe src\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003ccode\u003e880a57d\u003c/code\u003e\u003c/a\u003e fix(compiler): prevent shimCssText from adding extra blank lines per CSS comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003ccode\u003e23ea431\u003c/code\u003e\u003c/a\u003e fix(compiler): parse named HTML entities containing digits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003ccode\u003e334ae10\u003c/code\u003e\u003c/a\u003e fix(compiler): ensure generated code compiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003ccode\u003eed2d324\u003c/code\u003e\u003c/a\u003e fix(compiler): disallow translations of iframe src\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/1df1697c6e3a6b1d302f7692b495146943faa12f\"\u003e\u003ccode\u003e1df1697\u003c/code\u003e\u003c/a\u003e fix(compiler): prevent mutation of children array in RecursiveVisitor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/95b3f37d4a7d9a38f616d56df746dfcda3c2139b\"\u003e\u003ccode\u003e95b3f37\u003c/code\u003e\u003c/a\u003e feat(compiler): Exhaustive checks for switch blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/9c5658adb1146b24ebf31fef534c4bbae1ced548\"\u003e\u003ccode\u003e9c5658a\u003c/code\u003e\u003c/a\u003e refactor(compiler): clean up pipeline compatibility distinction\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/6e0d783e5b5a256c0aa2fb1d3e008677c0603382\"\u003e\u003ccode\u003e6e0d783\u003c/code\u003e\u003c/a\u003e refactor(compiler): Add info about unclosed element.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/06d94ac0caacce20d5afbdb1e940911bdc500d78\"\u003e\u003ccode\u003e06d94ac\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;refactor(compiler): Add info about unclosed element.\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/097208454bb0d5ebaad701a991125d2a33d1f79b\"\u003e\u003ccode\u003e0972084\u003c/code\u003e\u003c/a\u003e refactor(compiler): Add info about unclosed element.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/compiler\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/core` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.4\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003cimg src=\"https://img.shields.io/badge/ed2d324f9c-fix-green\" alt=\"fix - ed2d324f9c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow translations of iframe src\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1579163b7464edc69f7fa0548f53d978b007021\"\u003e\u003ccode\u003ec157916\u003c/code\u003e\u003c/a\u003e build: consolidate domino bundling in platform-server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/9be5e2c2113db3fe5d799663b6539d34d1e18f47\"\u003e\u003ccode\u003e9be5e2c\u003c/code\u003e\u003c/a\u003e docs: fix typo in Input decorator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/a21be36e15a6d9cf21722f9f6a31dad9380037e9\"\u003e\u003ccode\u003ea21be36\u003c/code\u003e\u003c/a\u003e refactor: prepare for required \u003ccode\u003echangeDetection\u003c/code\u003e prop on G3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/831746eff1e7442bfc96bfa739f54091b26a7997\"\u003e\u003ccode\u003e831746e\u003c/code\u003e\u003c/a\u003e docs: Add callout about the Component interface.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003ccode\u003ead0156e\u003c/code\u003e\u003c/a\u003e fix(core): fixes a regression with animate.leave and reordering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003ccode\u003e73d6b01\u003c/code\u003e\u003c/a\u003e fix(migrations): inject migration not work in multi-project workspace with op...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/3838554503dfe0585e4df93547741fbc34a150d1\"\u003e\u003ccode\u003e3838554\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies to v21.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/851ef77318541580d186d7f1c02061cc615450da\"\u003e\u003ccode\u003e851ef77\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;refactor(core): Ensure determineLongestAnimation is run synchronously...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003ccode\u003e076d41c\u003c/code\u003e\u003c/a\u003e fix(migrations): prevent trailing comma syntax errors after removing NgStyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/a8f80c1f995dd7bab6ee1d42f033ebc3d101e9bd\"\u003e\u003ccode\u003ea8f80c1\u003c/code\u003e\u003c/a\u003e refactor(core): declare explicit reactive node prototypes types\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/core\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/forms` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.4\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003cimg src=\"https://img.shields.io/badge/ed2d324f9c-fix-green\" alt=\"fix - ed2d324f9c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow translations of iframe src\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b658accf1f99a240de19090350bd6d3a9620735a\"\u003e\u003ccode\u003eb658acc\u003c/code\u003e\u003c/a\u003e docs: fix js doc of signal forms ignoreValidators option.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/7907e982ee90778e596d3e849f0a31c6c26db235\"\u003e\u003ccode\u003e7907e98\u003c/code\u003e\u003c/a\u003e test: remove duplicate tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/4a9b715b3abd3e51184937f764376883d6bb98a1\"\u003e\u003ccode\u003e4a9b715\u003c/code\u003e\u003c/a\u003e test(forms): cover transformedValue without FormField context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/670d1660c40504e3f55e094c3ebbcccad14163f3\"\u003e\u003ccode\u003e670d166\u003c/code\u003e\u003c/a\u003e feat(forms): add 'blur' option to debounce rule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/23cb9a4291dc7ee0db3a78416b5ca2b51cfad1ac\"\u003e\u003ccode\u003e23cb9a4\u003c/code\u003e\u003c/a\u003e refactor(forms): address feedback\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/0a863ba03f5eb83f383f647b7015bc3640072a1d\"\u003e\u003ccode\u003e0a863ba\u003c/code\u003e\u003c/a\u003e refactor(forms): hide adapter in public options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/fe7b26e403febfe2662828945d41bc4567cbcc8b\"\u003e\u003ccode\u003efe7b26e\u003c/code\u003e\u003c/a\u003e docs(forms): transformedValue parse error wiring\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/bdfb60f3e33065e047183dc1890c36e527e2b304\"\u003e\u003ccode\u003ebdfb60f\u003c/code\u003e\u003c/a\u003e fix(forms): use consistent error format returned from parse\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/631f60d1f9be72cb68330308a6ff18cc195babb8\"\u003e\u003ccode\u003e631f60d\u003c/code\u003e\u003c/a\u003e fix(forms): preserve parse errors when parse returns value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/567f292e8e0f9d2b5ddebadfa1c6d6dd6c456f39\"\u003e\u003ccode\u003e567f292\u003c/code\u003e\u003c/a\u003e fix(forms): support custom controls as host directives\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/forms\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/platform-browser` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/platform-browser\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.4\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003cimg src=\"https://img.shields.io/badge/ed2d324f9c-fix-green\" alt=\"fix - ed2d324f9c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow translations of iframe src\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/platform-browser\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/76431ed3e3bd8bf90ac2fb481152a33587187037\"\u003e\u003ccode\u003e76431ed\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix(http): correctly cache blob responses in transfer cache (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/platform-browser/issues/67002\"\u003e#67002\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/277ade97ac2a3a7f2a5b513acaa93e7663cdc55f\"\u003e\u003ccode\u003e277ade9\u003c/code\u003e\u003c/a\u003e fix(http): correctly cache blob responses in transfer cache (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/platform-browser/issues/67002\"\u003e#67002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/11767cabe48606a1f575d50b8af79b8bbb35a852\"\u003e\u003ccode\u003e11767ca\u003c/code\u003e\u003c/a\u003e build: update Jasmine to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/85122cb12d30141aa3abb997c4b3ee31713ec07b\"\u003e\u003ccode\u003e85122cb\u003c/code\u003e\u003c/a\u003e docs: update \u003ccode\u003ebootstrapApplication\u003c/code\u003e docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/f4469ad583a97c39843309270095c55f0a758692\"\u003e\u003ccode\u003ef4469ad\u003c/code\u003e\u003c/a\u003e refactor(core): update error message links to versioned docs (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/platform-browser/issues/66374\"\u003e#66374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/99ad18a4ee82ecc5524106d1d403ccfa9bae2304\"\u003e\u003ccode\u003e99ad18a\u003c/code\u003e\u003c/a\u003e feat(core): Add stability debugging utility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/6270bba056cfaadb3fe0b2bf3b17036bdc28b90e\"\u003e\u003ccode\u003e6270bba\u003c/code\u003e\u003c/a\u003e ci: reformat files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/2ccdf50fba9536d931988098f6d4f5ebb52588f9\"\u003e\u003ccode\u003e2ccdf50\u003c/code\u003e\u003c/a\u003e refactor(platform-browser): remove unused \u003ccode\u003eplatformIsServer\u003c/code\u003e  flag from renderer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4f584cf42235c94bb8389fa55bc634e23d7b010\"\u003e\u003ccode\u003eb4f584c\u003c/code\u003e\u003c/a\u003e fix(core): return \u003ccode\u003eStaticProvider\u003c/code\u003e for \u003ccode\u003eprovidePlatformInitializer\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/96b79fc393855777c69e817a5bddbc295af4806b\"\u003e\u003ccode\u003e96b79fc\u003c/code\u003e\u003c/a\u003e refactor(core): correct all \u003ccode\u003etypeof ngDevMode\u003c/code\u003e comparison patterns introduced...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/platform-browser\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/platform-browser-dynamic` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/platform-browser-dynamic\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensur...\n\n_Description has been truncated_","html_url":"https://github.com/MynorXico/racephotos/pull/21","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MynorXico%2Fracephotos/issues/21","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/21/packages"}},{"old_version":"19.8.1","new_version":"21.3.1","update_type":"major","path":"/frontend/angular","pr_created_at":"2026-03-28T22:55:43.000Z","version_change":"19.8.1 → 21.3.1","issue":{"uuid":"4161895590","node_id":"PR_kwDORtMf787OUhpp","number":15,"state":"open","title":"chore(deps): Bump the angular group in /frontend/angular with 14 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-28T22:55:43.000Z","updated_at":"2026-03-28T22:55:44.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"angular","update_count":14,"packages":[{"name":"@angular/common","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/core","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/forms","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser-dynamic","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular/router","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"},{"name":"@angular-eslint/builder","old_version":"19.8.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin","old_version":"19.8.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/eslint-plugin-template","old_version":"19.8.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/schematics","old_version":"19.8.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular-eslint/template-parser","old_version":"19.8.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular/cli","old_version":"19.2.23","new_version":"21.2.5","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular/compiler-cli","old_version":"19.2.20","new_version":"21.2.6","repository_url":"https://github.com/angular/angular"}],"path":"/frontend/angular","ecosystem":"npm"},"body":"Bumps the angular group in /frontend/angular with 14 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `19.2.20` | `21.2.6` |\n| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `19.2.20` | `21.2.6` |\n| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `19.2.20` | `21.2.6` |\n| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `19.2.20` | `21.2.6` |\n| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `19.2.20` | `21.2.6` |\n| [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `19.2.20` | `21.2.6` |\n| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `19.2.20` | `21.2.6` |\n| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `19.8.1` | `21.3.1` |\n| [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) | `19.8.1` | `21.3.1` |\n| [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template) | `19.8.1` | `21.3.1` |\n| [@angular-eslint/schematics](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics) | `19.8.1` | `21.3.1` |\n| [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `19.8.1` | `21.3.1` |\n| [@angular/cli](https://github.com/angular/angular-cli) | `19.2.23` | `21.2.5` |\n| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `19.2.20` | `21.2.6` |\n\nUpdates `@angular/common` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.4\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003cimg src=\"https://img.shields.io/badge/ed2d324f9c-fix-green\" alt=\"fix - ed2d324f9c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow translations of iframe src\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/common\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003ccode\u003eb4ab6ba\u003c/code\u003e\u003c/a\u003e fix(common): avoid redundant image fetch on destroy with auto sizes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/adda6c5c106815c727c1b820634614a045b42e9a\"\u003e\u003ccode\u003eadda6c5\u003c/code\u003e\u003c/a\u003e build: update \u003ccode\u003easpect_rules_js\u003c/code\u003e to \u003ccode\u003e3.0.2\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/93c6dc6395d681dacd1dbbc46b95773038b6c32f\"\u003e\u003ccode\u003e93c6dc6\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;refactor(http): Improves base64 encoding/decoding with feature detect...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/76431ed3e3bd8bf90ac2fb481152a33587187037\"\u003e\u003ccode\u003e76431ed\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix(http): correctly cache blob responses in transfer cache (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67002\"\u003e#67002\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/277ade97ac2a3a7f2a5b513acaa93e7663cdc55f\"\u003e\u003ccode\u003e277ade9\u003c/code\u003e\u003c/a\u003e fix(http): correctly cache blob responses in transfer cache (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67002\"\u003e#67002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/aeb9b819d2cda782de85338dc9a5457c11e51bfe\"\u003e\u003ccode\u003eaeb9b81\u003c/code\u003e\u003c/a\u003e refactor(http): Improves base64 encoding/decoding with feature detection (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/common/issues/67\"\u003e#67\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/ecf0bb466875d17e0823f2d793491c6f354d6c34\"\u003e\u003ccode\u003eecf0bb4\u003c/code\u003e\u003c/a\u003e test(http): refactors HTTP client tests to use TestBed and providers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/e2e9a9a531c9e9a69701e549f28354cc5d5edd77\"\u003e\u003ccode\u003ee2e9a9a\u003c/code\u003e\u003c/a\u003e fix(core): adds transfer cache to httpResource to fix hydration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/70e4c7fbabb45277cf76ee138c0be275beec7919\"\u003e\u003ccode\u003e70e4c7f\u003c/code\u003e\u003c/a\u003e refactor(common): log a warning when a KeyValuePipe receives a signal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/2eeeabb7606900ad4fe8e3370d73f6add985f35d\"\u003e\u003ccode\u003e2eeeabb\u003c/code\u003e\u003c/a\u003e fix(common): fix LCP image detection with duplicate URLs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/common\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/compiler` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.4\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003cimg src=\"https://img.shields.io/badge/ed2d324f9c-fix-green\" alt=\"fix - ed2d324f9c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow translations of iframe src\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/compiler\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003ccode\u003e880a57d\u003c/code\u003e\u003c/a\u003e fix(compiler): prevent shimCssText from adding extra blank lines per CSS comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003ccode\u003e23ea431\u003c/code\u003e\u003c/a\u003e fix(compiler): parse named HTML entities containing digits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003ccode\u003e334ae10\u003c/code\u003e\u003c/a\u003e fix(compiler): ensure generated code compiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003ccode\u003eed2d324\u003c/code\u003e\u003c/a\u003e fix(compiler): disallow translations of iframe src\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/1df1697c6e3a6b1d302f7692b495146943faa12f\"\u003e\u003ccode\u003e1df1697\u003c/code\u003e\u003c/a\u003e fix(compiler): prevent mutation of children array in RecursiveVisitor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/95b3f37d4a7d9a38f616d56df746dfcda3c2139b\"\u003e\u003ccode\u003e95b3f37\u003c/code\u003e\u003c/a\u003e feat(compiler): Exhaustive checks for switch blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/9c5658adb1146b24ebf31fef534c4bbae1ced548\"\u003e\u003ccode\u003e9c5658a\u003c/code\u003e\u003c/a\u003e refactor(compiler): clean up pipeline compatibility distinction\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/6e0d783e5b5a256c0aa2fb1d3e008677c0603382\"\u003e\u003ccode\u003e6e0d783\u003c/code\u003e\u003c/a\u003e refactor(compiler): Add info about unclosed element.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/06d94ac0caacce20d5afbdb1e940911bdc500d78\"\u003e\u003ccode\u003e06d94ac\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;refactor(compiler): Add info about unclosed element.\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/097208454bb0d5ebaad701a991125d2a33d1f79b\"\u003e\u003ccode\u003e0972084\u003c/code\u003e\u003c/a\u003e refactor(compiler): Add info about unclosed element.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/compiler\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/core` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.4\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003cimg src=\"https://img.shields.io/badge/ed2d324f9c-fix-green\" alt=\"fix - ed2d324f9c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow translations of iframe src\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/core\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/c1579163b7464edc69f7fa0548f53d978b007021\"\u003e\u003ccode\u003ec157916\u003c/code\u003e\u003c/a\u003e build: consolidate domino bundling in platform-server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/9be5e2c2113db3fe5d799663b6539d34d1e18f47\"\u003e\u003ccode\u003e9be5e2c\u003c/code\u003e\u003c/a\u003e docs: fix typo in Input decorator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/a21be36e15a6d9cf21722f9f6a31dad9380037e9\"\u003e\u003ccode\u003ea21be36\u003c/code\u003e\u003c/a\u003e refactor: prepare for required \u003ccode\u003echangeDetection\u003c/code\u003e prop on G3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/831746eff1e7442bfc96bfa739f54091b26a7997\"\u003e\u003ccode\u003e831746e\u003c/code\u003e\u003c/a\u003e docs: Add callout about the Component interface.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003ccode\u003ead0156e\u003c/code\u003e\u003c/a\u003e fix(core): fixes a regression with animate.leave and reordering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003ccode\u003e73d6b01\u003c/code\u003e\u003c/a\u003e fix(migrations): inject migration not work in multi-project workspace with op...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/3838554503dfe0585e4df93547741fbc34a150d1\"\u003e\u003ccode\u003e3838554\u003c/code\u003e\u003c/a\u003e build: update cross-repo angular dependencies to v21.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/851ef77318541580d186d7f1c02061cc615450da\"\u003e\u003ccode\u003e851ef77\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;refactor(core): Ensure determineLongestAnimation is run synchronously...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003ccode\u003e076d41c\u003c/code\u003e\u003c/a\u003e fix(migrations): prevent trailing comma syntax errors after removing NgStyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/a8f80c1f995dd7bab6ee1d42f033ebc3d101e9bd\"\u003e\u003ccode\u003ea8f80c1\u003c/code\u003e\u003c/a\u003e refactor(core): declare explicit reactive node prototypes types\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/core\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/forms` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.4\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003cimg src=\"https://img.shields.io/badge/ed2d324f9c-fix-green\" alt=\"fix - ed2d324f9c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow translations of iframe src\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/forms\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b658accf1f99a240de19090350bd6d3a9620735a\"\u003e\u003ccode\u003eb658acc\u003c/code\u003e\u003c/a\u003e docs: fix js doc of signal forms ignoreValidators option.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/7907e982ee90778e596d3e849f0a31c6c26db235\"\u003e\u003ccode\u003e7907e98\u003c/code\u003e\u003c/a\u003e test: remove duplicate tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/4a9b715b3abd3e51184937f764376883d6bb98a1\"\u003e\u003ccode\u003e4a9b715\u003c/code\u003e\u003c/a\u003e test(forms): cover transformedValue without FormField context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/670d1660c40504e3f55e094c3ebbcccad14163f3\"\u003e\u003ccode\u003e670d166\u003c/code\u003e\u003c/a\u003e feat(forms): add 'blur' option to debounce rule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/23cb9a4291dc7ee0db3a78416b5ca2b51cfad1ac\"\u003e\u003ccode\u003e23cb9a4\u003c/code\u003e\u003c/a\u003e refactor(forms): address feedback\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/0a863ba03f5eb83f383f647b7015bc3640072a1d\"\u003e\u003ccode\u003e0a863ba\u003c/code\u003e\u003c/a\u003e refactor(forms): hide adapter in public options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/fe7b26e403febfe2662828945d41bc4567cbcc8b\"\u003e\u003ccode\u003efe7b26e\u003c/code\u003e\u003c/a\u003e docs(forms): transformedValue parse error wiring\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/bdfb60f3e33065e047183dc1890c36e527e2b304\"\u003e\u003ccode\u003ebdfb60f\u003c/code\u003e\u003c/a\u003e fix(forms): use consistent error format returned from parse\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/631f60d1f9be72cb68330308a6ff18cc195babb8\"\u003e\u003ccode\u003e631f60d\u003c/code\u003e\u003c/a\u003e fix(forms): preserve parse errors when parse returns value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/567f292e8e0f9d2b5ddebadfa1c6d6dd6c456f39\"\u003e\u003ccode\u003e567f292\u003c/code\u003e\u003c/a\u003e fix(forms): support custom controls as host directives\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/forms\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/platform-browser` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/platform-browser\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/26c43d14baad1a6b3629a77825e702a97a4f8482\"\u003e\u003cimg src=\"https://img.shields.io/badge/26c43d14ba-fix-green\" alt=\"fix - 26c43d14ba\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/67e0ba7e03bb940639f0eafb3af45015e9727eac\"\u003e\u003cimg src=\"https://img.shields.io/badge/67e0ba7e03-fix-green\" alt=\"fix - 67e0ba7e03\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/1890c3008bbb41b7143b7ede09bed1f7704744fb\"\u003e\u003cimg src=\"https://img.shields.io/badge/1890c3008b-fix-green\" alt=\"fix - 1890c3008b\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/bf948be4c2c88c604e428cba35e3b9e532bfe5b0\"\u003e\u003cimg src=\"https://img.shields.io/badge/bf948be4c2-fix-green\" alt=\"fix - bf948be4c2\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/076d41c3f6496eb6c6f84b54e2d2ca85c1b35e64\"\u003e\u003cimg src=\"https://img.shields.io/badge/076d41c3f6-fix-green\" alt=\"fix - 076d41c3f6\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent trailing comma syntax errors after removing NgStyle\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eservice-worker\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/e19150d2b596e87c69bee61f478c3e9c7cbc8f67\"\u003e\u003cimg src=\"https://img.shields.io/badge/e19150d2b5-fix-green\" alt=\"fix - e19150d2b5\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003epreserve redirect policy on reconstructed asset requests\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.4\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65\"\u003e\u003cimg src=\"https://img.shields.io/badge/ed2d324f9c-fix-green\" alt=\"fix - ed2d324f9c\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003edisallow translations of iframe src\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cp\u003e| Commit | Description |\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular/platform-browser\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e21.2.6 (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003eb4ab6ba2e8\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e880a57d4b3\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003ead0156e056\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e73d6b01b47\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch1\u003e22.0.0-next.4 (2026-03-18)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLeave animations are no longer limited to the element being removed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eChangeDetectorRef.checkNoChanges\u003c/code\u003e was removed. In tests use \u003ccode\u003efixture.detectChanges()\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/412788fac9c82ddf94b3f5ad0b141098c8101b0b\"\u003e412788fac9\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/75560ce43d7422a131ae86f2312c478754d035aa\"\u003e75560ce43d\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406\"\u003ed99ab0e040\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003estop generating unused field\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/2bd708fb6bc3ada19c5dd21077a7f609996f6346\"\u003e2bd708fb6b\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eescape template literal in TCB\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/9769560da73efee4793dfdc1459c8b1ac10981de\"\u003e9769560da7\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003egeneric types not filled out correctly in type check block\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5\"\u003e7a0d6b8df2\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003etransform dropping exclamationToken from properties\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/df659b8d0cf64eeed418c60bc16cae5630086401\"\u003edf659b8d0c\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003ere-introduce nested leave animations scoped to component boundaries\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc3131c639542ad6a463bff3da5ca84c6f8ecb6f\"\u003edc3131c639\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003eTestBed.getFixture -\u0026gt; TestBed.getLastFixture and update implementation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/dc0446552af76bfcac4642c975b293d4dcb93d46\"\u003edc0446552a\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003eclean up dehydrated views during HMR component replacement\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/523d69a7685a3437f1f6ef8fedfd26c52d2d3bb1\"\u003e523d69a768\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efix\u003c/td\u003e\n\u003ctd\u003erun linked signal equality check without reactive consumer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/69fb1614eff6e40bb7dcca81f275ac32b9cbd28a\"\u003e69fb1614ef\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003erefactor\u003c/td\u003e\n\u003ctd\u003eremove \u003ccode\u003echeckNoChanges\u003c/code\u003e from the public API.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003eforms\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/3983080236e348ecc17ab4e65a6a5cc0a16aa315\"\u003e3983080236\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efeat\u003c/td\u003e\n\u003ctd\u003esupport ngNoCva as an opt-out for ControlValueAccessors\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/76431ed3e3bd8bf90ac2fb481152a33587187037\"\u003e\u003ccode\u003e76431ed\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix(http): correctly cache blob responses in transfer cache (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/platform-browser/issues/67002\"\u003e#67002\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/277ade97ac2a3a7f2a5b513acaa93e7663cdc55f\"\u003e\u003ccode\u003e277ade9\u003c/code\u003e\u003c/a\u003e fix(http): correctly cache blob responses in transfer cache (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/platform-browser/issues/67002\"\u003e#67002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/11767cabe48606a1f575d50b8af79b8bbb35a852\"\u003e\u003ccode\u003e11767ca\u003c/code\u003e\u003c/a\u003e build: update Jasmine to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/85122cb12d30141aa3abb997c4b3ee31713ec07b\"\u003e\u003ccode\u003e85122cb\u003c/code\u003e\u003c/a\u003e docs: update \u003ccode\u003ebootstrapApplication\u003c/code\u003e docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/f4469ad583a97c39843309270095c55f0a758692\"\u003e\u003ccode\u003ef4469ad\u003c/code\u003e\u003c/a\u003e refactor(core): update error message links to versioned docs (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/platform-browser/issues/66374\"\u003e#66374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/99ad18a4ee82ecc5524106d1d403ccfa9bae2304\"\u003e\u003ccode\u003e99ad18a\u003c/code\u003e\u003c/a\u003e feat(core): Add stability debugging utility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/6270bba056cfaadb3fe0b2bf3b17036bdc28b90e\"\u003e\u003ccode\u003e6270bba\u003c/code\u003e\u003c/a\u003e ci: reformat files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/2ccdf50fba9536d931988098f6d4f5ebb52588f9\"\u003e\u003ccode\u003e2ccdf50\u003c/code\u003e\u003c/a\u003e refactor(platform-browser): remove unused \u003ccode\u003eplatformIsServer\u003c/code\u003e  flag from renderer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4f584cf42235c94bb8389fa55bc634e23d7b010\"\u003e\u003ccode\u003eb4f584c\u003c/code\u003e\u003c/a\u003e fix(core): return \u003ccode\u003eStaticProvider\u003c/code\u003e for \u003ccode\u003eprovidePlatformInitializer\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/96b79fc393855777c69e817a5bddbc295af4806b\"\u003e\u003ccode\u003e96b79fc\u003c/code\u003e\u003c/a\u003e refactor(core): correct all \u003ccode\u003etypeof ngDevMode\u003c/code\u003e comparison patterns introduced...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/v21.2.6/packages/platform-browser\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular/platform-browser-dynamic` from 19.2.20 to 21.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/releases\"\u003e\u003ccode\u003e@​angular/platform-browser-dynamic\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.2.6\u003c/h2\u003e\n\u003ch3\u003ecommon\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/b4ab6ba2e84a18309b0bb5dd68311ff1776b1cb4\"\u003e\u003cimg src=\"https://img.shields.io/badge/b4ab6ba2e8-fix-green\" alt=\"fix - b4ab6ba2e8\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eavoid redundant image fetch on destroy with auto sizes\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/880a57d4b34af5aa27cd5bee11fa218ade6444bb\"\u003e\u003cimg src=\"https://img.shields.io/badge/880a57d4b3-fix-green\" alt=\"fix - 880a57d4b3\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eprevent shimCssText from adding extra blank lines per CSS comment\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecore\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/ad0156e056e60ffebfeb804fda70dce88d9475a8\"\u003e\u003cimg src=\"https://img.shields.io/badge/ad0156e056-fix-green\" alt=\"fix - ad0156e056\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003efixes a regression with animate.leave and reordering\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003emigrations\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/73d6b01b47bb6762d182f1cd891f8ad4d7f688e1\"\u003e\u003cimg src=\"https://img.shields.io/badge/73d6b01b47-fix-green\" alt=\"fix - 73d6b01b47\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003einject migration not work in multi-project workspace with option path\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e21.2.5\u003c/h2\u003e\n\u003ch3\u003ecompiler\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/334ae10168fdad15cd1390180e2994b4eb65349b\"\u003e\u003cimg src=\"https://img.shields.io/badge/334ae10168-fix-green\" alt=\"fix - 334ae10168\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eensure generated code compiles\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/angular/angular/commit/23ea431c4ec45cbb4a7db9839969e7cb23b07f58\"\u003e\u003cimg src=\"https://img.shields.io/badge/23ea431c4e-fix-green\" alt=\"fix - 23ea431c4e\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eparse named HTML entities containing digits\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3\u003ecompiler-cli\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommit\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/the...\n\n_Description has been truncated_","html_url":"https://github.com/MynorXico/racephotos/pull/15","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MynorXico%2Fracephotos/issues/15","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/15/packages"}}]}