{"id":2768,"name":"@angular-eslint/eslint-plugin","ecosystem":"npm","repository_url":"https://github.com/angular-eslint/angular-eslint","issues_count":733,"created_at":"2025-06-06T15:02:12.218Z","updated_at":"2025-06-06T15:02:12.218Z","purl":"pkg:npm/@angular-eslint/eslint-plugin","metadata":{"id":810459,"name":"@angular-eslint/eslint-plugin","ecosystem":"npm","description":"ESLint plugin for Angular applications, following https://angular.dev/style-guide","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":954,"first_release_published_at":"2019-07-29T02:09:37.309Z","latest_release_published_at":"2025-06-06T12:58:03.535Z","latest_release_number":"19.8.0","last_synced_at":"2025-06-06T12:58:59.915Z","created_at":"2022-04-07T13:32:30.031Z","updated_at":"2025-06-06T12:59:01.104Z","registry_url":"https://www.npmjs.com/package/@angular-eslint/eslint-plugin","install_command":"npm install @angular-eslint/eslint-plugin","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":"2024-04-12T10:37:39.000Z","size":10283,"stargazers_count":1560,"open_issues_count":79,"forks_count":204,"subscribers_count":30,"default_branch":"main","last_synced_at":"2024-04-14T07:56:19.878Z","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},"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":"2024-07-31T22:40:40.157Z","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":856,"total_committers":71,"mean_commits":"12.056338028169014","dds":0.5957943925233644,"last_synced_commit":"4fee6b08060838ba004a8d20ee6cb43a781ff2c3"},"previous_names":[],"tags_count":181,"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","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":217731120,"owners_count":16221820,"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":"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":"2024-09-08T16:09:04.514Z","dependent_packages_count":1012,"downloads":9303809,"downloads_period":"last-month","dependent_repos_count":23673,"rankings":{"downloads":0.12732309305711112,"dependent_repos_count":0.19292510216894845,"dependent_packages_count":0.1048972351962699,"stargazers_count":2.201030773724239,"forks_count":2.424397959805361,"docker_downloads_count":0.2208102681805533,"average":0.8785640720220805},"purl":"pkg:npm/%40angular-eslint/eslint-plugin","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/npm/@angular-eslint/eslint-plugin","docker_dependents_count":111,"docker_downloads_count":33694090,"usage_url":"https://repos.ecosyste.ms/usage/npm/@angular-eslint/eslint-plugin","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/npm/@angular-eslint/eslint-plugin/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%2Feslint-plugin/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/@angular-eslint%2Feslint-plugin/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/@angular-eslint%2Feslint-plugin/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/@angular-eslint%2Feslint-plugin/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-14T15:12:54.528Z","updated_at":"2022-11-14T15:12:54.528Z","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":5006541,"maintainers_count":1012935,"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":184,"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":"4519899475","node_id":"PR_kwDOBucjac7fMGhb","number":163,"state":"open","title":"chore(deps): Bump the all-deps group across 1 directory with 31 updates","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-25T22:40:18.000Z","updated_at":"2026-05-30T18:00:24.247Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"all-deps","update_count":31,"packages":[{"name":"@analogjs/content","old_version":"2.5.0","new_version":"2.5.2","repository_url":"https://github.com/analogjs/analog"},{"name":"@analogjs/router","old_version":"2.5.0","new_version":"2.5.2","repository_url":"https://github.com/analogjs/analog"},{"name":"@analogjs/vite-plugin-angular","old_version":"2.5.0","new_version":"2.5.2","repository_url":"https://github.com/analogjs/analog"},{"name":"@analogjs/vitest-angular","old_version":"2.5.0","new_version":"2.5.2","repository_url":"https://github.com/analogjs/analog"},{"name":"marked","old_version":"18.0.3","new_version":"18.0.4","repository_url":"https://github.com/markedjs/marked"},{"name":"mermaid","old_version":"11.14.0","new_version":"11.15.0","repository_url":"https://github.com/mermaid-js/mermaid"},{"name":"@analogjs/platform","old_version":"2.5.0","new_version":"2.5.2","repository_url":"https://github.com/analogjs/analog"},{"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":"@commitlint/cli","old_version":"21.0.0","new_version":"21.0.1","repository_url":"https://github.com/conventional-changelog/commitlint"},{"name":"@commitlint/config-conventional","old_version":"21.0.0","new_version":"21.0.1","repository_url":"https://github.com/conventional-changelog/commitlint"},{"name":"@oxc-project/runtime","old_version":"0.129.0","new_version":"0.132.0","repository_url":"https://github.com/oxc-project/oxc"},{"name":"@playwright/test","old_version":"1.59.1","new_version":"1.60.0","repository_url":"https://github.com/microsoft/playwright"},{"name":"@schematics/angular","old_version":"21.2.10","new_version":"21.2.12","repository_url":"https://github.com/angular/angular-cli"},{"name":"@swc/core","old_version":"1.15.33","new_version":"1.15.40","repository_url":"https://github.com/swc-project/swc"},{"name":"@testing-library/angular","old_version":"19.2.1","new_version":"19.3.0","repository_url":"https://github.com/testing-library/angular-testing-library"},{"name":"@types/node","old_version":"25.6.2","new_version":"25.9.1","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@typescript-eslint/utils","old_version":"8.59.2","new_version":"8.60.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"@vitest/coverage-v8","old_version":"4.1.5","new_version":"4.1.7","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"@vitest/ui","old_version":"4.1.5","new_version":"4.1.7","repository_url":"https://github.com/vitest-dev/vitest"},{"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":"eslint-plugin-playwright","old_version":"2.10.2","new_version":"2.10.4","repository_url":"https://github.com/mskelton/eslint-plugin-playwright"},{"name":"lint-staged","old_version":"17.0.4","new_version":"17.0.5","repository_url":"https://github.com/lint-staged/lint-staged"},{"name":"postcss","old_version":"8.5.14","new_version":"8.5.15","repository_url":"https://github.com/postcss/postcss"},{"name":"typescript-eslint","old_version":"8.59.2","new_version":"8.60.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"vite","old_version":"8.0.11","new_version":"8.0.14","repository_url":"https://github.com/vitejs/vite"},{"name":"vitest","old_version":"4.1.5","new_version":"4.1.7","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"ink","old_version":"7.0.2","new_version":"7.0.4","repository_url":"https://github.com/vadimdemedes/ink"},{"name":"@types/react","old_version":"19.2.14","new_version":"19.2.15","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"}],"path":null,"ecosystem":"npm"},"body":"Bumps the all-deps group with 31 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@analogjs/content](https://github.com/analogjs/analog) | `2.5.0` | `2.5.2` |\n| [@analogjs/router](https://github.com/analogjs/analog) | `2.5.0` | `2.5.2` |\n| [@analogjs/vite-plugin-angular](https://github.com/analogjs/analog) | `2.5.0` | `2.5.2` |\n| [@analogjs/vitest-angular](https://github.com/analogjs/analog) | `2.5.0` | `2.5.2` |\n| [marked](https://github.com/markedjs/marked) | `18.0.3` | `18.0.4` |\n| [mermaid](https://github.com/mermaid-js/mermaid) | `11.14.0` | `11.15.0` |\n| [@analogjs/platform](https://github.com/analogjs/analog) | `2.5.0` | `2.5.2` |\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| [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) | `21.0.0` | `21.0.1` |\n| [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) | `21.0.0` | `21.0.1` |\n| [@oxc-project/runtime](https://github.com/oxc-project/oxc/tree/HEAD/npm/runtime) | `0.129.0` | `0.132.0` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.59.1` | `1.60.0` |\n| [@schematics/angular](https://github.com/angular/angular-cli) | `21.2.10` | `21.2.12` |\n| [@swc/core](https://github.com/swc-project/swc/tree/HEAD/packages/core) | `1.15.33` | `1.15.40` |\n| [@testing-library/angular](https://github.com/testing-library/angular-testing-library) | `19.2.1` | `19.3.0` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.6.2` | `25.9.1` |\n| [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.59.2` | `8.60.0` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.1.5` | `4.1.7` |\n| [@vitest/ui](https://github.com/vitest-dev/vitest/tree/HEAD/packages/ui) | `4.1.5` | `4.1.7` |\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| [eslint-plugin-playwright](https://github.com/mskelton/eslint-plugin-playwright) | `2.10.2` | `2.10.4` |\n| [lint-staged](https://github.com/lint-staged/lint-staged) | `17.0.4` | `17.0.5` |\n| [postcss](https://github.com/postcss/postcss) | `8.5.14` | `8.5.15` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.59.2` | `8.60.0` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.0.11` | `8.0.14` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.5` | `4.1.7` |\n| [ink](https://github.com/vadimdemedes/ink) | `7.0.2` | `7.0.4` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.15` |\n\n\nUpdates `@analogjs/content` from 2.5.0 to 2.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/releases\"\u003e@​analogjs/content's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2\"\u003e2.5.2\u003c/a\u003e (2026-05-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.4...v2.5.2-beta.5\"\u003e2.5.2-beta.5\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.3...v2.5.2-beta.4\"\u003e2.5.2-beta.4\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.2...v2.5.2-beta.3\"\u003e2.5.2-beta.3\u003c/a\u003e (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.1...v2.5.2-beta.2\"\u003e2.5.2-beta.2\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2-beta.1\"\u003e2.5.2-beta.1\u003c/a\u003e (2026-05-15)\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/blob/beta/CHANGELOG.md\"\u003e@​analogjs/content's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2\"\u003e2.5.2\u003c/a\u003e (2026-05-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.4...v2.5.2-beta.5\"\u003e2.5.2-beta.5\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.3...v2.5.2-beta.4\"\u003e2.5.2-beta.4\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.2...v2.5.2-beta.3\"\u003e2.5.2-beta.3\u003c/a\u003e (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.1...v2.5.2-beta.2\"\u003e2.5.2-beta.2\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2-beta.1\"\u003e2.5.2-beta.1\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\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/analogjs/analog/commit/93c2f8388ec7554608acbebf93780235808cea0f\"\u003e\u003ccode\u003e93c2f83\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/d4ca9a812a64bde6609e0030a09c752fd9c8d1e9\"\u003e\u003ccode\u003ed4ca9a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2342\"\u003e#2342\u003c/a\u003e from analogjs/beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/9e6eb3fb061c369af08f4ce6737f9667737bf9e9\"\u003e\u003ccode\u003e9e6eb3f\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.5 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e\u003ccode\u003e532aa3e\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): compose fastCompile JIT strip map and cover esbuild...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/95a40e49c70a584da96ff5123151bf7762a68056\"\u003e\u003ccode\u003e95a40e4\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.4 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e\u003ccode\u003e44e6334\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/5fda5b4254ea3506e450f240c21677ba713ef45a\"\u003e\u003ccode\u003e5fda5b4\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.3 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e\u003ccode\u003e96ec5b3\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): skip source .d.ts files for composite TS projects (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/0ca4322159e27f9d32cb93257c25394f42c4f679\"\u003e\u003ccode\u003e0ca4322\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003e\u003ccode\u003ebc63520\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@analogjs/router` from 2.5.0 to 2.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/releases\"\u003e@​analogjs/router's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2\"\u003e2.5.2\u003c/a\u003e (2026-05-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.4...v2.5.2-beta.5\"\u003e2.5.2-beta.5\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.3...v2.5.2-beta.4\"\u003e2.5.2-beta.4\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.2...v2.5.2-beta.3\"\u003e2.5.2-beta.3\u003c/a\u003e (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.1...v2.5.2-beta.2\"\u003e2.5.2-beta.2\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2-beta.1\"\u003e2.5.2-beta.1\u003c/a\u003e (2026-05-15)\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/blob/beta/CHANGELOG.md\"\u003e@​analogjs/router's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2\"\u003e2.5.2\u003c/a\u003e (2026-05-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.4...v2.5.2-beta.5\"\u003e2.5.2-beta.5\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.3...v2.5.2-beta.4\"\u003e2.5.2-beta.4\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.2...v2.5.2-beta.3\"\u003e2.5.2-beta.3\u003c/a\u003e (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.1...v2.5.2-beta.2\"\u003e2.5.2-beta.2\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2-beta.1\"\u003e2.5.2-beta.1\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\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/analogjs/analog/commit/93c2f8388ec7554608acbebf93780235808cea0f\"\u003e\u003ccode\u003e93c2f83\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/d4ca9a812a64bde6609e0030a09c752fd9c8d1e9\"\u003e\u003ccode\u003ed4ca9a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2342\"\u003e#2342\u003c/a\u003e from analogjs/beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/9e6eb3fb061c369af08f4ce6737f9667737bf9e9\"\u003e\u003ccode\u003e9e6eb3f\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.5 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e\u003ccode\u003e532aa3e\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): compose fastCompile JIT strip map and cover esbuild...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/95a40e49c70a584da96ff5123151bf7762a68056\"\u003e\u003ccode\u003e95a40e4\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.4 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e\u003ccode\u003e44e6334\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/5fda5b4254ea3506e450f240c21677ba713ef45a\"\u003e\u003ccode\u003e5fda5b4\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.3 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e\u003ccode\u003e96ec5b3\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): skip source .d.ts files for composite TS projects (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/0ca4322159e27f9d32cb93257c25394f42c4f679\"\u003e\u003ccode\u003e0ca4322\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003e\u003ccode\u003ebc63520\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@analogjs/vite-plugin-angular` from 2.5.0 to 2.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/releases\"\u003e@​analogjs/vite-plugin-angular's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2\"\u003e2.5.2\u003c/a\u003e (2026-05-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.4...v2.5.2-beta.5\"\u003e2.5.2-beta.5\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.3...v2.5.2-beta.4\"\u003e2.5.2-beta.4\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.2...v2.5.2-beta.3\"\u003e2.5.2-beta.3\u003c/a\u003e (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.1...v2.5.2-beta.2\"\u003e2.5.2-beta.2\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2-beta.1\"\u003e2.5.2-beta.1\u003c/a\u003e (2026-05-15)\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/blob/beta/CHANGELOG.md\"\u003e@​analogjs/vite-plugin-angular's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2\"\u003e2.5.2\u003c/a\u003e (2026-05-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.4...v2.5.2-beta.5\"\u003e2.5.2-beta.5\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.3...v2.5.2-beta.4\"\u003e2.5.2-beta.4\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.2...v2.5.2-beta.3\"\u003e2.5.2-beta.3\u003c/a\u003e (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.1...v2.5.2-beta.2\"\u003e2.5.2-beta.2\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2-beta.1\"\u003e2.5.2-beta.1\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\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/analogjs/analog/commit/93c2f8388ec7554608acbebf93780235808cea0f\"\u003e\u003ccode\u003e93c2f83\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/d4ca9a812a64bde6609e0030a09c752fd9c8d1e9\"\u003e\u003ccode\u003ed4ca9a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2342\"\u003e#2342\u003c/a\u003e from analogjs/beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/9e6eb3fb061c369af08f4ce6737f9667737bf9e9\"\u003e\u003ccode\u003e9e6eb3f\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.5 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e\u003ccode\u003e532aa3e\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): compose fastCompile JIT strip map and cover esbuild...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/95a40e49c70a584da96ff5123151bf7762a68056\"\u003e\u003ccode\u003e95a40e4\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.4 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e\u003ccode\u003e44e6334\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/5fda5b4254ea3506e450f240c21677ba713ef45a\"\u003e\u003ccode\u003e5fda5b4\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.3 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e\u003ccode\u003e96ec5b3\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): skip source .d.ts files for composite TS projects (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/0ca4322159e27f9d32cb93257c25394f42c4f679\"\u003e\u003ccode\u003e0ca4322\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003e\u003ccode\u003ebc63520\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@analogjs/vitest-angular` from 2.5.0 to 2.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/releases\"\u003e@​analogjs/vitest-angular's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2\"\u003e2.5.2\u003c/a\u003e (2026-05-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.4...v2.5.2-beta.5\"\u003e2.5.2-beta.5\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.3...v2.5.2-beta.4\"\u003e2.5.2-beta.4\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.2...v2.5.2-beta.3\"\u003e2.5.2-beta.3\u003c/a\u003e (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.1...v2.5.2-beta.2\"\u003e2.5.2-beta.2\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2-beta.1\"\u003e2.5.2-beta.1\u003c/a\u003e (2026-05-15)\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/blob/beta/CHANGELOG.md\"\u003e@​analogjs/vitest-angular's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2\"\u003e2.5.2\u003c/a\u003e (2026-05-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.4...v2.5.2-beta.5\"\u003e2.5.2-beta.5\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.3...v2.5.2-beta.4\"\u003e2.5.2-beta.4\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.2...v2.5.2-beta.3\"\u003e2.5.2-beta.3\u003c/a\u003e (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.1...v2.5.2-beta.2\"\u003e2.5.2-beta.2\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2-beta.1\"\u003e2.5.2-beta.1\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\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/analogjs/analog/commit/93c2f8388ec7554608acbebf93780235808cea0f\"\u003e\u003ccode\u003e93c2f83\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/d4ca9a812a64bde6609e0030a09c752fd9c8d1e9\"\u003e\u003ccode\u003ed4ca9a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2342\"\u003e#2342\u003c/a\u003e from analogjs/beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/9e6eb3fb061c369af08f4ce6737f9667737bf9e9\"\u003e\u003ccode\u003e9e6eb3f\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.5 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e\u003ccode\u003e532aa3e\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): compose fastCompile JIT strip map and cover esbuild...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/95a40e49c70a584da96ff5123151bf7762a68056\"\u003e\u003ccode\u003e95a40e4\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.4 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e\u003ccode\u003e44e6334\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/5fda5b4254ea3506e450f240c21677ba713ef45a\"\u003e\u003ccode\u003e5fda5b4\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.3 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e\u003ccode\u003e96ec5b3\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): skip source .d.ts files for composite TS projects (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/0ca4322159e27f9d32cb93257c25394f42c4f679\"\u003e\u003ccode\u003e0ca4322\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003e\u003ccode\u003ebc63520\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `marked` from 18.0.3 to 18.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/markedjs/marked/releases\"\u003emarked's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev18.0.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/markedjs/marked/compare/v18.0.3...v18.0.4\"\u003e18.0.4\u003c/a\u003e (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ecache list indentation regexes (\u003ca href=\"https://redirect.github.com/markedjs/marked/issues/3969\"\u003e#3969\u003c/a\u003e) (\u003ca href=\"https://github.com/markedjs/marked/commit/a37983f188d697fe98d350554dc95c49eaac6edd\"\u003ea37983f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix cli not reading stdin (\u003ca href=\"https://redirect.github.com/markedjs/marked/issues/3967\"\u003e#3967\u003c/a\u003e) (\u003ca href=\"https://github.com/markedjs/marked/commit/11adb697eeee2b0fa6da3a38d5146626347592dc\"\u003e11adb69\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/markedjs/marked/commit/0a2cd54cbe91911890e4460ae4fd7b9966e05654\"\u003e\u003ccode\u003e0a2cd54\u003c/code\u003e\u003c/a\u003e chore(release): 18.0.4 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/markedjs/marked/commit/11adb697eeee2b0fa6da3a38d5146626347592dc\"\u003e\u003ccode\u003e11adb69\u003c/code\u003e\u003c/a\u003e fix: fix cli not reading stdin (\u003ca href=\"https://redirect.github.com/markedjs/marked/issues/3967\"\u003e#3967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/markedjs/marked/commit/a37983f188d697fe98d350554dc95c49eaac6edd\"\u003e\u003ccode\u003ea37983f\u003c/code\u003e\u003c/a\u003e fix: cache list indentation regexes (\u003ca href=\"https://redirect.github.com/markedjs/marked/issues/3969\"\u003e#3969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/markedjs/marked/commit/d38b8c27e75a0d64fa2ff233a81a8b976210f1f1\"\u003e\u003ccode\u003ed38b8c2\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump eslint from 10.3.0 to 10.4.0 (\u003ca href=\"https://redirect.github.com/markedjs/marked/issues/3976\"\u003e#3976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/markedjs/marked/commit/7d9b17e8cd13af580fa404d114401043b5510344\"\u003e\u003ccode\u003e7d9b17e\u003c/code\u003e\u003c/a\u003e chore(docs): fix typo in package links (\u003ca href=\"https://redirect.github.com/markedjs/marked/issues/3975\"\u003e#3975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/markedjs/marked/commit/a7affc3b8ba7fc99481b6582ab5baa860228ec86\"\u003e\u003ccode\u003ea7affc3\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump \u003ccode\u003e@​semantic-release/release-notes-generator\u003c/code\u003e from 14.1.0 t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/markedjs/marked/commit/47d6ba1898437d913affd87180e157e47bf5c101\"\u003e\u003ccode\u003e47d6ba1\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump \u003ccode\u003e@​semantic-release/github\u003c/code\u003e from 12.0.6 to 12.0.8 (\u003ca href=\"https://redirect.github.com/markedjs/marked/issues/3972\"\u003e#3972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/markedjs/marked/commit/69257e455e599e9c9ddedcaf913569279b12c20c\"\u003e\u003ccode\u003e69257e4\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump eslint from 10.2.1 to 10.3.0 (\u003ca href=\"https://redirect.github.com/markedjs/marked/issues/3966\"\u003e#3966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/markedjs/marked/commit/1731d387f76ac98601a83504b217c2d7f5643898\"\u003e\u003ccode\u003e1731d38\u003c/code\u003e\u003c/a\u003e refactor(test): move task list output coverage to specs (\u003ca href=\"https://redirect.github.com/markedjs/marked/issues/3963\"\u003e#3963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/markedjs/marked/compare/v18.0.3...v18.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mermaid` from 11.14.0 to 11.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mermaid-js/mermaid/releases\"\u003emermaid's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emermaid@11.15.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/mermaid-js/mermaid/pull/7174\"\u003e#7174\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/0aca21739c0d1fcaaa206e04a6cd574ebc415483\"\u003e\u003ccode\u003e0aca217\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/milesspencer35\"\u003e\u003ccode\u003e@​milesspencer35\u003c/code\u003e\u003c/a\u003e! - feat(sequence): Add support for decimal start and increment values in the \u003ccode\u003eautonumber\u003c/code\u003e directive\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7512\"\u003e#7512\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/8e17492f7365ba50896382feb69a23efd9d8a22d\"\u003e\u003ccode\u003e8e17492\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/aruncveli\"\u003e\u003ccode\u003e@​aruncveli\u003c/code\u003e\u003c/a\u003e! - feat(flowchart): add datastore shape\u003c/p\u003e\n\u003cp\u003eIn Data flow diagrams, a datastore/warehouse/file/database is used to represent data persistence. It is denoted by a rectangle with only top and bottom borders, and can be used in flowcharts with \u003ccode\u003eA@{ shape: datastore, label: \u0026quot;Datastore\u0026quot; }\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/6440\"\u003e#6440\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/9ad8dde6d049adde85d8ed2d476c09b5820f3f4b\"\u003e\u003ccode\u003e9ad8dde\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/yordis\"\u003e\u003ccode\u003e@​yordis\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/lgazo\"\u003e\u003ccode\u003e@​lgazo\u003c/code\u003e\u003c/a\u003e! - feat: add Event Modeling diagram\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7707\"\u003e#7707\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/27db774627be1cee881961dfd0d2cb21cd01b79d\"\u003e\u003ccode\u003e27db774\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/txmxthy\"\u003e\u003ccode\u003e@​txmxthy\u003c/code\u003e\u003c/a\u003e! - feat(architecture): expose four fcose layout knobs for \u003ccode\u003earchitecture-beta\u003c/code\u003e diagrams (\u003ccode\u003enodeSeparation\u003c/code\u003e, \u003ccode\u003eidealEdgeLengthMultiplier\u003c/code\u003e, \u003ccode\u003eedgeElasticity\u003c/code\u003e, \u003ccode\u003enumIter\u003c/code\u003e) so authors can tune layout density and spread overlapping siblings without changing diagram source\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7604\"\u003e#7604\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/bf9502fb6012a4b724679b401ac928f5ee55161c\"\u003e\u003ccode\u003ebf9502f\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/M-a-c\"\u003e\u003ccode\u003e@​M-a-c\u003c/code\u003e\u003c/a\u003e! - feat(class): add nested namespace support for class diagrams via dot notation and syntactic nesting\u003c/p\u003e\n\u003cp\u003eIf you have namespaces in class diagrams that use \u003ccode\u003e.\u003c/code\u003es already and want to render them without nesting (≤v11.14.0 behaviour), you can use set \u003ccode\u003eclass.hierarchicalNamespaces=false\u003c/code\u003e in your mermaid config:\u003c/p\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003econfig:\n  class:\n    hierarchicalNamespaces: false\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7272\"\u003e#7272\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/88cdd3dc0aab9577174561b04e14760c565a232b\"\u003e\u003ccode\u003e88cdd3d\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/xinbenlv\"\u003e\u003ccode\u003e@​xinbenlv\u003c/code\u003e\u003c/a\u003e! - feat(sankey): add outlined label style, configurable nodeWidth/nodePadding, and custom node colors\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/e9b0f34d8d82a6260077764ee45e1d7d90957a0f\"\u003e\u003ccode\u003ee9b0f34\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix: prevent unbalanced CSS styles in classDefs\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/37ff937f1da2e19f882fd1db01235db4d01f4056\"\u003e\u003ccode\u003e37ff937\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix: create CSS styles using the CSSOM\u003c/p\u003e\n\u003cp\u003eThis removes some invalid CSS and normalizes some CSS formatting.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7508\"\u003e#7508\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/bfe60cc67b9a6dec64f9161f58e4d24a06c42b65\"\u003e\u003ccode\u003ebfe60cc\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/biiab\"\u003e\u003ccode\u003e@​biiab\u003c/code\u003e\u003c/a\u003e! - fix(stateDiagram): \u003ccode\u003eend note\u003c/code\u003e now only closes a note when used on a new line\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/faafb5d49106dd32c367f3882505f2dd625aa30e\"\u003e\u003ccode\u003efaafb5d\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix(gantt): add iteration limit for \u003ccode\u003eexcludes\u003c/code\u003e field\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/65f8be2a42faf869b811469571983cba7eeeca99\"\u003e\u003ccode\u003e65f8be2\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix: disallow some CSS at-rules in custom CSS\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7726\"\u003e#7726\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/1502f32f3c5fb944925b0c527fbbde3c4f041824\"\u003e\u003ccode\u003e1502f32\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/aloisklink\"\u003e\u003ccode\u003e@​aloisklink\u003c/code\u003e\u003c/a\u003e! - fix(wardley): fix unnecessary sanitization of text\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7578\"\u003e#7578\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/1f98db8e326299ac97a2fa60abfd509d8f5f16e2\"\u003e\u003ccode\u003e1f98db8\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/Gaston202\"\u003e\u003ccode\u003e@​Gaston202\u003c/code\u003e\u003c/a\u003e! - fix(class): self-referential class multiplicity labels no longer rendered multiple times\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7560\"\u003e#7560\u003c/a\u003e. Resolves an issue where cardinality labels on self-referential class relationships were rendered three times due to edge splitting in the dagre layout. The fix ensures that each sub-edge only carries its relevant label positions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7592\"\u003e#7592\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/2343e38498a3b31f8ce5e79f1f009e0b56fbe086\"\u003e\u003ccode\u003e2343e38\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/knsv-bot\"\u003e\u003ccode\u003e@​knsv-bot\u003c/code\u003e\u003c/a\u003e! - fix(sequence): add background box behind alt/else section title labels in sequence diagrams\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7589\"\u003e#7589\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/7fb9509b8b5cb1dc48519dc60cf6cdc6afba0462\"\u003e\u003ccode\u003e7fb9509\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/NYCU-Chung\"\u003e\u003ccode\u003e@​NYCU-Chung\u003c/code\u003e\u003c/a\u003e! - fix(block): prevent column widths from shrinking when mixing different column spans\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7632\"\u003e#7632\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/3f9e0f15bedc1e2c71ddb6b34192d1a21124cfc2\"\u003e\u003ccode\u003e3f9e0f1\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ekiauhce\"\u003e\u003ccode\u003e@​ekiauhce\u003c/code\u003e\u003c/a\u003e! - fix(sequence): correct messageAlign label position for right-to-left arrows in sequence diagrams\u003c/p\u003e\n\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/mermaid-js/mermaid/commit/41646dfd43ac83f001b03c70605feb036afae46d\"\u003e\u003ccode\u003e41646df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7739\"\u003e#7739\u003c/a\u003e from aloisklink/ci/fix-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/2671f5c44a1515960ebc41c09a365c41860f95ee\"\u003e\u003ccode\u003e2671f5c\u003c/code\u003e\u003c/a\u003e docs: fix v11.15.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/f4bf04b5db8bed603e40ed3d5ce5228d6b07754e\"\u003e\u003ccode\u003ef4bf04b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7738\"\u003e#7738\u003c/a\u003e from mermaid-js/changeset-release/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/abfb563e1dcbd46d617f44a6361bd6d926dc6289\"\u003e\u003ccode\u003eabfb563\u003c/code\u003e\u003c/a\u003e Version Packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/60b289f428d0a0832ad95ed4e1fb326344e23532\"\u003e\u003ccode\u003e60b289f\u003c/code\u003e\u003c/a\u003e Release Candidate 11.15.0 (\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7737\"\u003e#7737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/d37c0db39ca2405b4473361063df2c47109dc2c9\"\u003e\u003ccode\u003ed37c0db\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7730\"\u003e#7730\u003c/a\u003e from aloisklink/fix/fix-edgeLabelRightLeft-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/5ab5a2895fa8b7e90de85b43a4b99aa50b39b0f1\"\u003e\u003ccode\u003e5ab5a28\u003c/code\u003e\u003c/a\u003e docs: improve nested namespace changeset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/18f8b4c5bf67aface3485272b48042f2fdd6fad2\"\u003e\u003ccode\u003e18f8b4c\u003c/code\u003e\u003c/a\u003e fix: revert endEdgeLabelLeft/endEdgeLabelRight change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/504b2eb73d4d827baa817efd47ab6f44ae769b5a\"\u003e\u003ccode\u003e504b2eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7726\"\u003e#7726\u003c/a\u003e from aloisklink/fix/correct-unnecessary-html-escapes...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/1502f32f3c5fb944925b0c527fbbde3c4f041824\"\u003e\u003ccode\u003e1502f32\u003c/code\u003e\u003c/a\u003e fix(wardley): fix unnecessary sanitization of text\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mermaid-js/mermaid/compare/mermaid@11.14.0...mermaid@11.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@analogjs/platform` from 2.5.0 to 2.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/releases\"\u003e@​analogjs/platform's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2\"\u003e2.5.2\u003c/a\u003e (2026-05-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shap...\n\n_Description has been truncated_","html_url":"https://github.com/chrisjwalk/angular-cli-netcore-ngrx-starter/pull/163","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisjwalk%2Fangular-cli-netcore-ngrx-starter/issues/163","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/163/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":"4474000305","node_id":"PR_kwDOBucjac7c5Wbf","number":161,"state":"closed","title":"chore(deps): Bump the all-deps group across 1 directory with 58 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-25T22:37:49.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-19T02:43:50.000Z","updated_at":"2026-05-25T22:37:51.000Z","time_to_close":590039,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"all-deps","update_count":58,"packages":[{"name":"@analogjs/content","old_version":"2.5.0","new_version":"2.5.1","repository_url":"https://github.com/analogjs/analog"},{"name":"@analogjs/router","old_version":"2.5.0","new_version":"2.5.1","repository_url":"https://github.com/analogjs/analog"},{"name":"@analogjs/vite-plugin-angular","old_version":"2.5.0","new_version":"2.5.1","repository_url":"https://github.com/analogjs/analog"},{"name":"@analogjs/vitest-angular","old_version":"2.5.0","new_version":"2.5.1","repository_url":"https://github.com/analogjs/analog"},{"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/platform-server","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/service-worker","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"mermaid","old_version":"11.14.0","new_version":"11.15.0","repository_url":"https://github.com/mermaid-js/mermaid"},{"name":"@analogjs/platform","old_version":"2.5.0","new_version":"2.5.1","repository_url":"https://github.com/analogjs/analog"},{"name":"@angular-devkit/architect","old_version":"0.2102.10","new_version":"0.2102.11","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular-devkit/core","old_version":"21.2.10","new_version":"21.2.11","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular-devkit/schematics","old_version":"21.2.10","new_version":"21.2.11","repository_url":"https://github.com/angular/angular-cli"},{"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":"@angular/language-service","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@commitlint/cli","old_version":"21.0.0","new_version":"21.0.1","repository_url":"https://github.com/conventional-changelog/commitlint"},{"name":"@commitlint/config-conventional","old_version":"21.0.0","new_version":"21.0.1","repository_url":"https://github.com/conventional-changelog/commitlint"},{"name":"@nx/angular","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@nx/devkit","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@nx/esbuild","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@nx/eslint","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@nx/eslint-plugin","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@nx/js","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@nx/node","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@nx/playwright","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@nx/vite","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@nx/vitest","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@nx/web","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@nx/workspace","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@oxc-project/runtime","old_version":"0.129.0","new_version":"0.132.0","repository_url":"https://github.com/oxc-project/oxc"},{"name":"@playwright/test","old_version":"1.59.1","new_version":"1.60.0","repository_url":"https://github.com/microsoft/playwright"},{"name":"@schematics/angular","old_version":"21.2.10","new_version":"21.2.11","repository_url":"https://github.com/angular/angular-cli"},{"name":"@types/node","old_version":"25.6.2","new_version":"25.9.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@typescript-eslint/utils","old_version":"8.59.2","new_version":"8.59.4","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"@vitest/coverage-v8","old_version":"4.1.5","new_version":"4.1.6","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"@vitest/ui","old_version":"4.1.5","new_version":"4.1.6","repository_url":"https://github.com/vitest-dev/vitest"},{"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":"eslint-plugin-playwright","old_version":"2.10.2","new_version":"2.10.3","repository_url":"https://github.com/mskelton/eslint-plugin-playwright"},{"name":"lint-staged","old_version":"17.0.4","new_version":"17.0.5","repository_url":"https://github.com/lint-staged/lint-staged"},{"name":"nx","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"typescript-eslint","old_version":"8.59.2","new_version":"8.59.4","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"vite","old_version":"8.0.11","new_version":"8.0.13","repository_url":"https://github.com/vitejs/vite"},{"name":"vitest","old_version":"4.1.5","new_version":"4.1.6","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"ink","old_version":"7.0.2","new_version":"7.0.3","repository_url":"https://github.com/vadimdemedes/ink"}],"path":null,"ecosystem":"npm"},"body":"Bumps the all-deps group with 58 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@analogjs/content](https://github.com/analogjs/analog) | `2.5.0` | `2.5.1` |\n| [@analogjs/router](https://github.com/analogjs/analog) | `2.5.0` | `2.5.1` |\n| [@analogjs/vite-plugin-angular](https://github.com/analogjs/analog) | `2.5.0` | `2.5.1` |\n| [@analogjs/vitest-angular](https://github.com/analogjs/analog) | `2.5.0` | `2.5.1` |\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/platform-server](https://github.com/angular/angular/tree/HEAD/packages/platform-server) | `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/service-worker](https://github.com/angular/angular/tree/HEAD/packages/service-worker) | `21.2.12` | `21.2.13` |\n| [mermaid](https://github.com/mermaid-js/mermaid) | `11.14.0` | `11.15.0` |\n| [@analogjs/platform](https://github.com/analogjs/analog) | `2.5.0` | `2.5.1` |\n| [@angular-devkit/architect](https://github.com/angular/angular-cli) | `0.2102.10` | `0.2102.11` |\n| [@angular-devkit/core](https://github.com/angular/angular-cli) | `21.2.10` | `21.2.11` |\n| [@angular-devkit/schematics](https://github.com/angular/angular-cli) | `21.2.10` | `21.2.11` |\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| [@angular/language-service](https://github.com/angular/angular/tree/HEAD/packages/language-service) | `21.2.12` | `21.2.13` |\n| [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) | `21.0.0` | `21.0.1` |\n| [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) | `21.0.0` | `21.0.1` |\n| [@nx/angular](https://github.com/nrwl/nx/tree/HEAD/packages/angular) | `22.7.1` | `22.7.2` |\n| [@nx/devkit](https://github.com/nrwl/nx/tree/HEAD/packages/devkit) | `22.7.1` | `22.7.2` |\n| [@nx/esbuild](https://github.com/nrwl/nx/tree/HEAD/packages/esbuild) | `22.7.1` | `22.7.2` |\n| [@nx/eslint](https://github.com/nrwl/nx/tree/HEAD/packages/eslint) | `22.7.1` | `22.7.2` |\n| [@nx/eslint-plugin](https://github.com/nrwl/nx/tree/HEAD/packages/eslint-plugin) | `22.7.1` | `22.7.2` |\n| [@nx/js](https://github.com/nrwl/nx/tree/HEAD/packages/js) | `22.7.1` | `22.7.2` |\n| [@nx/node](https://github.com/nrwl/nx/tree/HEAD/packages/node) | `22.7.1` | `22.7.2` |\n| [@nx/playwright](https://github.com/nrwl/nx/tree/HEAD/packages/playwright) | `22.7.1` | `22.7.2` |\n| [@nx/vite](https://github.com/nrwl/nx/tree/HEAD/packages/vite) | `22.7.1` | `22.7.2` |\n| [@nx/vitest](https://github.com/nrwl/nx/tree/HEAD/packages/vitest) | `22.7.1` | `22.7.2` |\n| [@nx/web](https://github.com/nrwl/nx/tree/HEAD/packages/web) | `22.7.1` | `22.7.2` |\n| [@nx/workspace](https://github.com/nrwl/nx/tree/HEAD/packages/workspace) | `22.7.1` | `22.7.2` |\n| [@oxc-project/runtime](https://github.com/oxc-project/oxc/tree/HEAD/npm/runtime) | `0.129.0` | `0.132.0` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.59.1` | `1.60.0` |\n| [@schematics/angular](https://github.com/angular/angular-cli) | `21.2.10` | `21.2.11` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.6.2` | `25.9.0` |\n| [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.59.2` | `8.59.4` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.1.5` | `4.1.6` |\n| [@vitest/ui](https://github.com/vitest-dev/vitest/tree/HEAD/packages/ui) | `4.1.5` | `4.1.6` |\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| [eslint-plugin-playwright](https://github.com/mskelton/eslint-plugin-playwright) | `2.10.2` | `2.10.3` |\n| [lint-staged](https://github.com/lint-staged/lint-staged) | `17.0.4` | `17.0.5` |\n| [nx](https://github.com/nrwl/nx/tree/HEAD/packages/nx) | `22.7.1` | `22.7.2` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.59.2` | `8.59.4` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.0.11` | `8.0.13` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.5` | `4.1.6` |\n| [ink](https://github.com/vadimdemedes/ink) | `7.0.2` | `7.0.3` |\n\n\nUpdates `@analogjs/content` from 2.5.0 to 2.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/releases\"\u003e@​analogjs/content's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.2...v2.5.1-beta.3\"\u003e2.5.1-beta.3\u003c/a\u003e (2026-05-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.1...v2.5.1-beta.2\"\u003e2.5.1-beta.2\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1-beta.1\"\u003e2.5.1-beta.1\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\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/analogjs/analog/blob/beta/CHANGELOG.md\"\u003e@​analogjs/content's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.2...v2.5.1-beta.3\"\u003e2.5.1-beta.3\u003c/a\u003e (2026-05-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.1...v2.5.1-beta.2\"\u003e2.5.1-beta.2\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1-beta.1\"\u003e2.5.1-beta.1\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\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/analogjs/analog/commit/116bd1db7aca99a663540de960fb73338d6f7574\"\u003e\u003ccode\u003e116bd1d\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/3646787bcfb786acd9160496bb3de7906de87390\"\u003e\u003ccode\u003e3646787\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2334\"\u003e#2334\u003c/a\u003e from analogjs/beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/3f51e35a256153ca07946288299c2a323de1c015\"\u003e\u003ccode\u003e3f51e35\u003c/code\u003e\u003c/a\u003e chore: update pr-scope-governance.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/ae08d65f147a46a658af4b2ecd8c25b0972ed949\"\u003e\u003ccode\u003eae08d65\u003c/code\u003e\u003c/a\u003e chore: update pr-scope-governance.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/19bebb657fe3ff284eab72e852aac718b684f2a9\"\u003e\u003ccode\u003e19bebb6\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1-beta.3 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e\u003ccode\u003e46c608f\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/17dd6bfa5cd9fea6d46bba3e7ec6e2e0d629eade\"\u003e\u003ccode\u003e17dd6bf\u003c/code\u003e\u003c/a\u003e chore: update personal contributor information (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2331\"\u003e#2331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/bb4cf8a63e4e860b8d3c0970025a4759815f4bdb\"\u003e\u003ccode\u003ebb4cf8a\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1-beta.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e\u003ccode\u003e6f90b77\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): keep fallback-block components eager in defer walker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e\u003ccode\u003e8a0bae6\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): wrap binary/integer-literal receivers in member access\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@analogjs/router` from 2.5.0 to 2.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/releases\"\u003e@​analogjs/router's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.2...v2.5.1-beta.3\"\u003e2.5.1-beta.3\u003c/a\u003e (2026-05-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.1...v2.5.1-beta.2\"\u003e2.5.1-beta.2\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1-beta.1\"\u003e2.5.1-beta.1\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\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/analogjs/analog/blob/beta/CHANGELOG.md\"\u003e@​analogjs/router's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.2...v2.5.1-beta.3\"\u003e2.5.1-beta.3\u003c/a\u003e (2026-05-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.1...v2.5.1-beta.2\"\u003e2.5.1-beta.2\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1-beta.1\"\u003e2.5.1-beta.1\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\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/analogjs/analog/commit/116bd1db7aca99a663540de960fb73338d6f7574\"\u003e\u003ccode\u003e116bd1d\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/3646787bcfb786acd9160496bb3de7906de87390\"\u003e\u003ccode\u003e3646787\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2334\"\u003e#2334\u003c/a\u003e from analogjs/beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/3f51e35a256153ca07946288299c2a323de1c015\"\u003e\u003ccode\u003e3f51e35\u003c/code\u003e\u003c/a\u003e chore: update pr-scope-governance.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/ae08d65f147a46a658af4b2ecd8c25b0972ed949\"\u003e\u003ccode\u003eae08d65\u003c/code\u003e\u003c/a\u003e chore: update pr-scope-governance.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/19bebb657fe3ff284eab72e852aac718b684f2a9\"\u003e\u003ccode\u003e19bebb6\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1-beta.3 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e\u003ccode\u003e46c608f\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/17dd6bfa5cd9fea6d46bba3e7ec6e2e0d629eade\"\u003e\u003ccode\u003e17dd6bf\u003c/code\u003e\u003c/a\u003e chore: update personal contributor information (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2331\"\u003e#2331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/bb4cf8a63e4e860b8d3c0970025a4759815f4bdb\"\u003e\u003ccode\u003ebb4cf8a\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1-beta.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e\u003ccode\u003e6f90b77\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): keep fallback-block components eager in defer walker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e\u003ccode\u003e8a0bae6\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): wrap binary/integer-literal receivers in member access\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@analogjs/vite-plugin-angular` from 2.5.0 to 2.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/releases\"\u003e@​analogjs/vite-plugin-angular's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.2...v2.5.1-beta.3\"\u003e2.5.1-beta.3\u003c/a\u003e (2026-05-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.1...v2.5.1-beta.2\"\u003e2.5.1-beta.2\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1-beta.1\"\u003e2.5.1-beta.1\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\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/analogjs/analog/blob/beta/CHANGELOG.md\"\u003e@​analogjs/vite-plugin-angular's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.2...v2.5.1-beta.3\"\u003e2.5.1-beta.3\u003c/a\u003e (2026-05-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.1...v2.5.1-beta.2\"\u003e2.5.1-beta.2\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1-beta.1\"\u003e2.5.1-beta.1\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\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/analogjs/analog/commit/116bd1db7aca99a663540de960fb73338d6f7574\"\u003e\u003ccode\u003e116bd1d\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/3646787bcfb786acd9160496bb3de7906de87390\"\u003e\u003ccode\u003e3646787\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2334\"\u003e#2334\u003c/a\u003e from analogjs/beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/3f51e35a256153ca07946288299c2a323de1c015\"\u003e\u003ccode\u003e3f51e35\u003c/code\u003e\u003c/a\u003e chore: update pr-scope-governance.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/ae08d65f147a46a658af4b2ecd8c25b0972ed949\"\u003e\u003ccode\u003eae08d65\u003c/code\u003e\u003c/a\u003e chore: update pr-scope-governance.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/19bebb657fe3ff284eab72e852aac718b684f2a9\"\u003e\u003ccode\u003e19bebb6\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1-beta.3 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e\u003ccode\u003e46c608f\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/17dd6bfa5cd9fea6d46bba3e7ec6e2e0d629eade\"\u003e\u003ccode\u003e17dd6bf\u003c/code\u003e\u003c/a\u003e chore: update personal contributor information (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2331\"\u003e#2331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/bb4cf8a63e4e860b8d3c0970025a4759815f4bdb\"\u003e\u003ccode\u003ebb4cf8a\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1-beta.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e\u003ccode\u003e6f90b77\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): keep fallback-block components eager in defer walker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e\u003ccode\u003e8a0bae6\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): wrap binary/integer-literal receivers in member access\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@analogjs/vitest-angular` from 2.5.0 to 2.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/releases\"\u003e@​analogjs/vitest-angular's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.2...v2.5.1-beta.3\"\u003e2.5.1-beta.3\u003c/a\u003e (2026-05-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.1...v2.5.1-beta.2\"\u003e2.5.1-beta.2\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1-beta.1\"\u003e2.5.1-beta.1\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\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/analogjs/analog/blob/beta/CHANGELOG.md\"\u003e@​analogjs/vitest-angular's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.2...v2.5.1-beta.3\"\u003e2.5.1-beta.3\u003c/a\u003e (2026-05-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.1...v2.5.1-beta.2\"\u003e2.5.1-beta.2\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1-beta.1\"\u003e2.5.1-beta.1\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\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/analogjs/analog/commit/116bd1db7aca99a663540de960fb73338d6f7574\"\u003e\u003ccode\u003e116bd1d\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/3646787bcfb786acd9160496bb3de7906de87390\"\u003e\u003ccode\u003e3646787\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2334\"\u003e#2334\u003c/a\u003e from analogjs/beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/3f51e35a256153ca07946288299c2a323de1c015\"\u003e\u003ccode\u003e3f51e35\u003c/code\u003e\u003c/a\u003e chore: update pr-scope-governance.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/ae08d65f147a46a658af4b2ecd8c25b0972ed949\"\u003e\u003ccode\u003eae08d65\u003c/code\u003e\u003c/a\u003e chore: update pr-scope-governance.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/19bebb657fe3ff284eab72e852aac718b684f2a9\"\u003e\u003ccode\u003e19bebb6\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1-beta.3 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e\u003ccode\u003e46c608f\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/17dd6bfa5cd9fea6d46bba3e7ec6e2e0d629eade\"\u003e\u003ccode\u003e17dd6bf\u003c/code\u003e\u003c/a\u003e chore: update personal contributor information (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2331\"\u003e#2331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/bb4cf8a63e4e860b8d3c0970025a4759815f4bdb\"\u003e\u003ccode\u003ebb4cf8a\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1-beta.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e\u003ccode\u003e6f90b77\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): keep fallback-block components eager in defer walker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e\u003ccode\u003e8a0bae6\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): wrap binary/integer-literal receivers in member access\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\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/...\n\n_Description has been truncated_","html_url":"https://github.com/chrisjwalk/angular-cli-netcore-ngrx-starter/pull/161","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisjwalk%2Fangular-cli-netcore-ngrx-starter/issues/161","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/161/packages"},{"uuid":"4465110793","node_id":"PR_kwDOQJxXsc7ccwoS","number":109,"state":"closed","title":"chore(deps)(deps): bump the all-packages group across 1 directory with 43 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-05-17T22:23:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-17T22:19:10.000Z","updated_at":"2026-05-17T22:23:58.000Z","time_to_close":286,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps): bump","group_name":"all-packages","update_count":43,"packages":[{"name":"@tanstack/react-query","old_version":"5.100.9","new_version":"5.100.10","repository_url":"https://github.com/TanStack/query"},{"name":"axios","old_version":"1.16.0","new_version":"1.16.1","repository_url":"https://github.com/axios/axios"},{"name":"eslint-config-next","old_version":"16.2.4","new_version":"16.2.6","repository_url":"https://github.com/vercel/next.js"},{"name":"fumadocs-core","old_version":"16.5.0","new_version":"16.8.11","repository_url":"https://github.com/fuma-nama/fumadocs"},{"name":"fumadocs-mdx","old_version":"14.2.6","new_version":"15.0.6","repository_url":"https://github.com/fuma-nama/fumadocs"},{"name":"fumadocs-ui","old_version":"16.5.0","new_version":"16.8.11","repository_url":"https://github.com/fuma-nama/fumadocs"},{"name":"lucide-react","old_version":"0.469.0","new_version":"1.16.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"mermaid","old_version":"11.14.0","new_version":"11.15.0","repository_url":"https://github.com/mermaid-js/mermaid"},{"name":"@commitlint/cli","old_version":"20.5.3","new_version":"21.0.1","repository_url":"https://github.com/conventional-changelog/commitlint"},{"name":"@commitlint/config-conventional","old_version":"20.5.3","new_version":"21.0.1","repository_url":"https://github.com/conventional-changelog/commitlint"},{"name":"@middy/core","old_version":"7.5.0","new_version":"7.6.4","repository_url":"https://github.com/middyjs/middy"},{"name":"@middy/http-cors","old_version":"7.5.0","new_version":"7.6.4","repository_url":"https://github.com/middyjs/middy"},{"name":"@middy/http-security-headers","old_version":"7.5.0","new_version":"7.6.4","repository_url":"https://github.com/middyjs/middy"},{"name":"@middy/validator","old_version":"7.5.0","new_version":"7.6.4","repository_url":"https://github.com/middyjs/middy"},{"name":"@nestjs/common","old_version":"11.1.19","new_version":"11.1.21","repository_url":"https://github.com/nestjs/nest"},{"name":"@types/node","old_version":"22.19.7","new_version":"25.8.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"ai","old_version":"6.0.177","new_version":"6.0.184","repository_url":"https://github.com/vercel/ai"},{"name":"baseline-browser-mapping","old_version":"2.10.29","new_version":"2.10.30","repository_url":"https://github.com/web-platform-dx/baseline-browser-mapping"},{"name":"enhanced-resolve","old_version":"5.21.2","new_version":"5.21.3","repository_url":"https://github.com/webpack/enhanced-resolve"},{"name":"eslint","old_version":"8.57.1","new_version":"10.4.0","repository_url":"https://github.com/eslint/eslint"},{"name":"eslint-plugin-oxlint","old_version":"1.62.0","new_version":"1.65.0","repository_url":"https://github.com/oxc-project/eslint-plugin-oxlint"},{"name":"eslint-plugin-unicorn","old_version":"62.0.0","new_version":"64.0.0","repository_url":"https://github.com/sindresorhus/eslint-plugin-unicorn"},{"name":"jiti","old_version":"2.6.1","new_version":"2.7.0","repository_url":"https://github.com/unjs/jiti"},{"name":"oxlint","old_version":"1.62.0","new_version":"1.65.0","repository_url":"https://github.com/oxc-project/oxc"},{"name":"storybook","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"typescript","old_version":"5.9.3","new_version":"6.0.3","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"verdaccio","old_version":"6.6.0","new_version":"6.7.1","repository_url":"https://github.com/verdaccio/verdaccio"},{"name":"@playwright/test","old_version":"1.59.1","new_version":"1.60.0","repository_url":"https://github.com/microsoft/playwright"},{"name":"@storybook/addon-a11y","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/addon-docs","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/addon-themes","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/react-vite","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/test-runner","old_version":"0.24.3","new_version":"0.24.4","repository_url":"https://github.com/storybookjs/test-runner"},{"name":"wait-on","old_version":"8.0.5","new_version":"9.0.10","repository_url":"https://github.com/jeffbski/wait-on"},{"name":"@ai-sdk/openai","old_version":"3.0.63","new_version":"3.0.64","repository_url":"https://github.com/vercel/ai"},{"name":"@google/genai","old_version":"1.51.0","new_version":"2.3.0","repository_url":"https://github.com/googleapis/js-genai"},{"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":"eslint-plugin-n","old_version":"17.24.0","new_version":"18.0.1","repository_url":"https://github.com/eslint-community/eslint-plugin-n"},{"name":"eslint-plugin-security","old_version":"2.1.1","new_version":"4.0.0","repository_url":"https://github.com/eslint-community/eslint-plugin-security"},{"name":"eslint-plugin-sonarjs","old_version":"3.0.7","new_version":"4.0.3","repository_url":"https://github.com/SonarSource/SonarJS"},{"name":"eslint-plugin-vue","old_version":"10.9.0","new_version":"10.9.1","repository_url":"https://github.com/vuejs/eslint-plugin-vue"},{"name":"tsx","old_version":"4.21.0","new_version":"4.22.1","repository_url":"https://github.com/privatenumber/tsx"}],"path":null,"ecosystem":"npm"},"body":"Bumps the all-packages group with 42 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.100.9` | `5.100.10` |\n| [axios](https://github.com/axios/axios) | `1.16.0` | `1.16.1` |\n| [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `16.2.4` | `16.2.6` |\n| [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.5.0` | `16.8.11` |\n| [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `14.2.6` | `15.0.6` |\n| [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.5.0` | `16.8.11` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.469.0` | `1.16.0` |\n| [mermaid](https://github.com/mermaid-js/mermaid) | `11.14.0` | `11.15.0` |\n| [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) | `20.5.3` | `21.0.1` |\n| [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) | `20.5.3` | `21.0.1` |\n| [@middy/core](https://github.com/middyjs/middy/tree/HEAD/packages/core) | `7.5.0` | `7.6.4` |\n| [@middy/http-cors](https://github.com/middyjs/middy/tree/HEAD/packages/http-cors) | `7.5.0` | `7.6.4` |\n| [@middy/http-security-headers](https://github.com/middyjs/middy/tree/HEAD/packages/http-security-headers) | `7.5.0` | `7.6.4` |\n| [@middy/validator](https://github.com/middyjs/middy/tree/HEAD/packages/validator) | `7.5.0` | `7.6.4` |\n| [@nestjs/common](https://github.com/nestjs/nest/tree/HEAD/packages/common) | `11.1.19` | `11.1.21` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `22.19.7` | `25.8.0` |\n| [ai](https://github.com/vercel/ai/tree/HEAD/packages/ai) | `6.0.177` | `6.0.184` |\n| [baseline-browser-mapping](https://github.com/web-platform-dx/baseline-browser-mapping) | `2.10.29` | `2.10.30` |\n| [enhanced-resolve](https://github.com/webpack/enhanced-resolve) | `5.21.2` | `5.21.3` |\n| [eslint](https://github.com/eslint/eslint) | `8.57.1` | `10.4.0` |\n| [eslint-plugin-oxlint](https://github.com/oxc-project/eslint-plugin-oxlint) | `1.62.0` | `1.65.0` |\n| [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) | `62.0.0` | `64.0.0` |\n| [jiti](https://github.com/unjs/jiti) | `2.6.1` | `2.7.0` |\n| [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) | `1.62.0` | `1.65.0` |\n| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/core) | `10.3.6` | `10.4.0` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `6.0.3` |\n| [verdaccio](https://github.com/verdaccio/verdaccio) | `6.6.0` | `6.7.1` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.59.1` | `1.60.0` |\n| [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `10.3.6` | `10.4.0` |\n| [@storybook/addon-docs](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/docs) | `10.3.6` | `10.4.0` |\n| [@storybook/addon-themes](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/themes) | `10.3.6` | `10.4.0` |\n| [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `10.3.6` | `10.4.0` |\n| [@storybook/test-runner](https://github.com/storybookjs/test-runner) | `0.24.3` | `0.24.4` |\n| [wait-on](https://github.com/jeffbski/wait-on) | `8.0.5` | `9.0.10` |\n| [@ai-sdk/openai](https://github.com/vercel/ai/tree/HEAD/packages/openai) | `3.0.63` | `3.0.64` |\n| [@google/genai](https://github.com/googleapis/js-genai) | `1.51.0` | `2.3.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| [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) | `17.24.0` | `18.0.1` |\n| [eslint-plugin-security](https://github.com/eslint-community/eslint-plugin-security) | `2.1.1` | `4.0.0` |\n| [eslint-plugin-sonarjs](https://github.com/SonarSource/SonarJS) | `3.0.7` | `4.0.3` |\n| [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) | `10.9.0` | `10.9.1` |\n| [tsx](https://github.com/privatenumber/tsx) | `4.21.0` | `4.22.1` |\n\n\nUpdates `@tanstack/react-query` from 5.100.9 to 5.100.10\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md\"\u003e@​tanstack/react-query's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.100.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.10\u003c/li\u003e\n\u003c/ul\u003e\n\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\u003eSee full diff in \u003ca href=\"https://github.com/TanStack/query/commits/HEAD/packages/react-query\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `axios` from 1.16.0 to 1.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axios/axios/releases\"\u003eaxios's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.16.1 — May 13, 2026\u003c/h2\u003e\n\u003cp\u003eThis release ships a defence-in-depth fix for prototype pollution in \u003ccode\u003eformDataToJSON\u003c/code\u003e, hardens proxy and CI workflows, restores Webpack 4 compatibility for the fetch adapter, and includes several small bug fixes and maintenance improvements.\u003c/p\u003e\n\u003ch2\u003e🔒 Security Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ePrototype Pollution Defence-in-Depth:\u003c/strong\u003e Hardened \u003ccode\u003eformDataToJSON\u003c/code\u003e against already-polluted \u003ccode\u003eObject.prototype\u003c/code\u003e by walking own properties only, so attacker-controlled keys inherited from a poisoned prototype cannot propagate through deserialization. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/7413\"\u003e#7413\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eProxy Cleartext Leak:\u003c/strong\u003e Fixed an issue where HTTPS request data could be transmitted in cleartext to an HTTP proxy under certain configurations. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10858\"\u003e#10858\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCI Cache Removal:\u003c/strong\u003e Removed all GitHub Actions caches as a defence-in-depth measure against cache poisoning vectors in the build pipeline. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10882\"\u003e#10882\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eData URI Parsing:\u003c/strong\u003e Updated the \u003ccode\u003efromDataURI\u003c/code\u003e regex to match RFC 2397 more strictly, fixing edge cases in \u003ccode\u003edata:\u003c/code\u003e URL handling. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10829\"\u003e#10829\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUnicode Headers:\u003c/strong\u003e Preserved Unicode header values when running through request interceptors, so non-ASCII header content is no longer corrupted before dispatch. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10850\"\u003e#10850\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eXHR Upload Progress:\u003c/strong\u003e Guarded against malformed \u003ccode\u003eProgressEvent\u003c/code\u003e payloads emitted by some environments during XHR upload, preventing crashes when \u003ccode\u003eloaded\u003c/code\u003e / \u003ccode\u003etotal\u003c/code\u003e are missing or invalid. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10868\"\u003e#10868\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWebpack 4 Fetch Adapter:\u003c/strong\u003e Fixed an \u0026quot;unexpected token\u0026quot; error caused by syntax in the fetch adapter that Webpack 4 could not parse, restoring compatibility for legacy bundler users. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10864\"\u003e#10864\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType Definitions:\u003c/strong\u003e Made \u003ccode\u003eparseReviver\u003c/code\u003e \u003ccode\u003econtext.source\u003c/code\u003e optional in the type definitions to align with the ES2023 specification. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10837\"\u003e#10837\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eURL Object Support Reverted:\u003c/strong\u003e Reverted the change that allowed passing a \u003ccode\u003eURL\u003c/code\u003e object as \u003ccode\u003econfig.url\u003c/code\u003e (originally \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10866\"\u003e#10866\u003c/a\u003e\u003c/strong\u003e) due to regressions; this support will be reintroduced in a later release once the underlying issues are addressed. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10874\"\u003e#10874\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔧 Maintenance \u0026amp; Chores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCycle Detection Refactor:\u003c/strong\u003e Replaced the array-based cycle tracker in \u003ccode\u003etoJSONObject\u003c/code\u003e with a \u003ccode\u003eWeakSet\u003c/code\u003e, improving performance and memory behaviour on large nested structures. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10832\"\u003e#10832\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecomposeSignals Cleanup:\u003c/strong\u003e Refactored \u003ccode\u003ecomposeSignals\u003c/code\u003e to use a clearer early-return structure, simplifying the cancellation/abort composition path. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10844\"\u003e#10844\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAI Readiness \u0026amp; Repo Docs:\u003c/strong\u003e Added \u003ccode\u003eAGENTS.md\u003c/code\u003e and related contributor-guide updates for both human and AI agents, plus post-release documentation improvements. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10835\"\u003e#10835\u003c/a\u003e\u003c/strong\u003e, \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10841\"\u003e#10841\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDocs Improvements:\u003c/strong\u003e Clarified the GET request example, fixed the interceptor \u003ccode\u003eeject\u003c/code\u003e example to reference the correct instance, and corrected the Buzzoid sponsor description in the README. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10836\"\u003e#10836\u003c/a\u003e\u003c/strong\u003e, \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10853\"\u003e#10853\u003c/a\u003e\u003c/strong\u003e, \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10856\"\u003e#10856\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSponsorship Tooling:\u003c/strong\u003e Fixed empty sponsor arrays in the sponsor processing script, added the ability to inject additional sponsors, updated the sponsorship link, and added a Twicsy advertisement entry. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10843\"\u003e#10843\u003c/a\u003e\u003c/strong\u003e, \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10859\"\u003e#10859\u003c/a\u003e\u003c/strong\u003e, \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10869\"\u003e#10869\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDependencies:\u003c/strong\u003e Bumped \u003ccode\u003e@commitlint/cli\u003c/code\u003e from 20.5.0 to 20.5.2. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10846\"\u003e#10846\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🌟 New Contributors\u003c/h2\u003e\n\u003cp\u003eWe are thrilled to welcome our new contributors. Thank you for helping improve axios:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/hpinmetaverse\"\u003e\u003ccode\u003e@​hpinmetaverse\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10836\"\u003e#10836\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/tommyhgunz14\"\u003e\u003ccode\u003e@​tommyhgunz14\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/7413\"\u003e#7413\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/abhu85\"\u003e\u003ccode\u003e@​abhu85\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10829\"\u003e#10829\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/divyanshuraj1095\"\u003e\u003ccode\u003e@​divyanshuraj1095\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10853\"\u003e#10853\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/sagodi97\"\u003e\u003ccode\u003e@​sagodi97\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10856\"\u003e#10856\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/rkdfx\"\u003e\u003ccode\u003e@​rkdfx\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10868\"\u003e#10868\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/Liuwei1125\"\u003e\u003ccode\u003e@​Liuwei1125\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10866\"\u003e#10866\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/axios/axios/compare/v1.16.0...v1.16.1\"\u003eFull Changelog\u003c/a\u003e\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/axios/axios/blob/v1.x/CHANGELOG.md\"\u003eaxios's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\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/axios/axios/commit/1337d6b537afb2d3f501074c8ac4ef4308221197\"\u003e\u003ccode\u003e1337d6b\u003c/code\u003e\u003c/a\u003e chore(release): prepare release 1.16.1 (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10877\"\u003e#10877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/858a790cec06054547d0d3f941916d6fb2a4d18e\"\u003e\u003ccode\u003e858a790\u003c/code\u003e\u003c/a\u003e fix: remove all caches (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10882\"\u003e#10882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/34adfd90efc9c145488399e1cf7fa96de67080fa\"\u003e\u003ccode\u003e34adfd9\u003c/code\u003e\u003c/a\u003e revert: \u0026quot;fix: support URL object as config.url input (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10866\"\u003e#10866\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10874\"\u003e#10874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/847d89b43654405d9a231e0b669832c2092b621f\"\u003e\u003ccode\u003e847d89b\u003c/code\u003e\u003c/a\u003e fix: support URL object as config.url input (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10866\"\u003e#10866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/40948863677bb793bfff0293cce7e7b4f8a1b212\"\u003e\u003ccode\u003e4094886\u003c/code\u003e\u003c/a\u003e fix(progress): guard malformed XHR upload events (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10868\"\u003e#10868\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/44f0c5bf73c45df6009365141faa394d73596bd7\"\u003e\u003ccode\u003e44f0c5b\u003c/code\u003e\u003c/a\u003e chore: change sponsorship link and add Twicsy advertisement (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10869\"\u003e#10869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/64e1095efedc64c9fecf5176bd9cf2e5e93140d6\"\u003e\u003ccode\u003e64e1095\u003c/code\u003e\u003c/a\u003e chore: update PR and issue template to use h2 (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10865\"\u003e#10865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/3e6b4e1f311b43aa1dc77d78150a601d9fe4b280\"\u003e\u003ccode\u003e3e6b4e1\u003c/code\u003e\u003c/a\u003e fix: error unexpected token in fetch JS compatibility issue with Webpack 4 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/c4453bab70f53575175903aee60810c821f72129\"\u003e\u003ccode\u003ec4453ba\u003c/code\u003e\u003c/a\u003e fix: add the ability to add additional sponsors to the process sponsors scrip...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/caa00a90b524bb67ed033474abcf4d8645ced793\"\u003e\u003ccode\u003ecaa00a9\u003c/code\u003e\u003c/a\u003e fix: https data in cleartext to proxy (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10858\"\u003e#10858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axios/axios/compare/v1.16.0...v1.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `eslint-config-next` from 16.2.4 to 16.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/vercel/next.js/releases\"\u003eeslint-config-next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev16.2.6\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!NOTE]\nThis release contains security fixes and backported bug fixes. It does \u003cstrong\u003enot\u003c/strong\u003e include all pending features/changes on canary.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eSecurity Fixes\u003c/h3\u003e\n\u003cp\u003eThe following advisories have been addressed:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eHigh:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-8h8q-6873-q5fj\"\u003eGHSA-8h8q-6873-q5fj: Denial of Service with Server Components\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-267c-6grr-h53f\"\u003eGHSA-267c-6grr-h53f: Middleware / Proxy bypass in App Router applications via segment-prefetch routes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-26hh-7cqf-hhc6\"\u003eGHSA-26hh-7cqf-hhc6: Middleware / Proxy bypass in App Router applications via segment-prefetch routes - \u003cstrong\u003eIncomplete Fix Follow-Up\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-mg66-mrh9-m8jx\"\u003eGHSA-mg66-mrh9-m8jx: Denial of Service via connection exhaustion in applications using Cache Components\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-492v-c6pp-mqqv\"\u003eGHSA-492v-c6pp-mqqv: Middleware / Proxy bypass through dynamic route parameter injection\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-c4j6-fc7j-m34r\"\u003eGHSA-c4j6-fc7j-m34r: Server-side request forgery in applications using WebSocket upgrades\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-36qx-fr4f-26g5\"\u003eGHSA-36qx-fr4f-26g5: Middleware / Proxy bypass in Pages Router applications using i18n\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eModerate:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-ffhc-5mcf-pf4q\"\u003eGHSA-ffhc-5mcf-pf4q: Cross-site scripting in App Router applications using CSP nonces\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-gx5p-jg67-6x7h\"\u003eGHSA-gx5p-jg67-6x7h: Cross-site scripting in beforeInteractive scripts with untrusted input\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-h64f-5h5j-jqjh\"\u003eGHSA-h64f-5h5j-jqjh: Denial of Service in the Image Optimization API\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-wfc6-r584-vfw7\"\u003eGHSA-wfc6-r584-vfw7: Cache poisoning in React Server Component responses\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eLow:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-vfv6-92ff-j949\"\u003eGHSA-vfv6-92ff-j949: Cache poisoning via collisions in React Server Component cache-busting\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-3g8h-86w9-wvmq\"\u003eGHSA-3g8h-86w9-wvmq: Middleware / Proxy redirects can be cache-poisoned\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: preserve HTTP access fallbacks during prerender recovery (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/92231\"\u003e#92231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix fallback route params case in app-page handler (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/91737\"\u003e#91737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix invalid HTML response for route-level RSC requests in deployment adapter (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/91541\"\u003e#91541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePatch setHeader for direct route handlers (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/93101\"\u003e#93101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude deployment id in \u003ccode\u003ecacheHandlers\u003c/code\u003e keys (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/93453\"\u003e#93453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix double-encoding of URL pathname parts in client param parsing (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/93491\"\u003e#93491\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev16.2.5\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!NOTE]\nThis release contains security fixes and backported bug fixes. It does \u003cstrong\u003enot\u003c/strong\u003e include all pending features/changes on canary.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eSecurity Fixes\u003c/h3\u003e\n\u003cp\u003eThe following advisories have been addressed:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eHigh:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-8h8q-6873-q5fj\"\u003eGHSA-8h8q-6873-q5fj: Denial of Service with Server Components\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-267c-6grr-h53f\"\u003eGHSA-267c-6grr-h53f: Middleware / Proxy bypass in App Router applications via segment-prefetch routes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-mg66-mrh9-m8jx\"\u003eGHSA-mg66-mrh9-m8jx: Denial of Service via connection exhaustion in applications using Cache Components\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-492v-c6pp-mqqv\"\u003eGHSA-492v-c6pp-mqqv: Middleware / Proxy bypass through dynamic route parameter injection\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-c4j6-fc7j-m34r\"\u003eGHSA-c4j6-fc7j-m34r: Server-side request forgery in applications using WebSocket upgrades\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/vercel/next.js/commit/ee6e79b1792a4d401ddf2480f40a83549fe8e722\"\u003e\u003ccode\u003eee6e79b\u003c/code\u003e\u003c/a\u003e v16.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/commit/766148f9cd48c0e218acafcd0f15defc14871bf4\"\u003e\u003ccode\u003e766148f\u003c/code\u003e\u003c/a\u003e v16.2.5\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/vercel/next.js/commits/v16.2.6/packages/eslint-config-next\"\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 eslint-config-next since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fumadocs-core` from 16.5.0 to 16.8.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fuma-nama/fumadocs/releases\"\u003efumadocs-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003efumadocs-core@16.8.11\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1dc86c7: loosen the range for waku\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-core@16.8.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e062beab: fix internal types\u003c/li\u003e\n\u003cli\u003e505cfe0: Add \u003ccode\u003eremark-block-id\u003c/code\u003e plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-core@16.8.8\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.8.7\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.8.6\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.8.5\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e79d3209: Narrow schema type for private OpenAPI properties\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-core@16.8.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e61b15e9: fix Shiki languages not loaded under lazy mode\u003c/li\u003e\n\u003cli\u003e1a5433c: Support \u003ccode\u003e$\u003c/code\u003e in locale for page tree generation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-core@16.8.3\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.8.2\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.8.1\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.7.16\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e9cf33e9: Improve inline code output\u003c/li\u003e\n\u003cli\u003e9cf33e9: Support async hooks in Shiki transformers\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-core@16.7.15\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ee1567e2: use local fork of Shiki rehype integration\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/fuma-nama/fumadocs/commit/99f1066de511270e8c8d3db409f09b868f89364b\"\u003e\u003ccode\u003e99f1066\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3280\"\u003e#3280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/d4c78e4aefdd5b54d853ace1b38eaab4ad4858d8\"\u003e\u003ccode\u003ed4c78e4\u003c/code\u003e\u003c/a\u003e OpenAPI: render deprecated badge for deprecated operations (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3281\"\u003e#3281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/0287f49f65b01c6fc383b162d8ac55ab6ca92b36\"\u003e\u003ccode\u003e0287f49\u003c/code\u003e\u003c/a\u003e UI: improve default OG image\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/1dc86c7dc9a771cc514a288e90d0c369bae52382\"\u003e\u003ccode\u003e1dc86c7\u003c/code\u003e\u003c/a\u003e Core: loosen the range for waku\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/b3052ac079ead8c629e7382c56db643fe2ac0285\"\u003e\u003ccode\u003eb3052ac\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3279\"\u003e#3279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/61f3a27eb5cb8330a51f7e72ea0c005fb6a218f8\"\u003e\u003ccode\u003e61f3a27\u003c/code\u003e\u003c/a\u003e UI: encode storage keys\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/1c9494986d262281492ef1fa6c9d67576f9cd659\"\u003e\u003ccode\u003e1c94949\u003c/code\u003e\u003c/a\u003e Preview: Rate limit config for AI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/8a4e1d1eda2746f353987b11a7242be58b314449\"\u003e\u003ccode\u003e8a4e1d1\u003c/code\u003e\u003c/a\u003e Previiew: Support file-sytem checks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/b160b260b45d2b485cc62da0deaab35b14bcc4a1\"\u003e\u003ccode\u003eb160b26\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3275\"\u003e#3275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/ce1d37af6ceb6491ad9f9a4a66a23c65a0565ece\"\u003e\u003ccode\u003ece1d37a\u003c/code\u003e\u003c/a\u003e Chore: re-define bin.js for fumadocs-mdx\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.5.0...fumadocs-core@16.8.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fumadocs-mdx` from 14.2.6 to 15.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fuma-nama/fumadocs/releases\"\u003efumadocs-mdx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003efumadocs-mdx@15.0.6\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eda4a81a: Update vite configs\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@15.0.5\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1fb6a61: Support custom base directory for content sources\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@15.0.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e819b6ec: Support Rolldown integration\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@15.0.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e2569154: Pre-generate Vite config to prevent CJS compat issues\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [062beab]\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [505cfe0]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@15.0.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e298ac97: fix compatibility issues with Vite RSC\u003c/li\u003e\n\u003cli\u003eb212481: remove vitefu from inline deps\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@15.0.0\u003c/h2\u003e\n\u003ch3\u003eMajor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e3de9dfe: \u003cstrong\u003eRequire ESM for \u003ccode\u003enext.config\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eModern Node.js now supports \u003ccode\u003enext.config.mts\u003c/code\u003e format, compatibility layer is no longer needed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e3de9dfe: Raise minimum \u003ccode\u003efumadocs-core\u003c/code\u003e version to \u003ccode\u003e16.7.0\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e5745fcf: Support better Node.js loader registry\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@14.3.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e79d3209: Deprecate forwarded schemas at \u003ccode\u003efumadocs-mdx/config\u003c/code\u003e, recommend \u003ccode\u003efumadocs-core/source/schema\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [79d3209]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.5\u003c/li\u003e\n\u003c/ul\u003e\n\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\u003eSee full diff in \u003ca href=\"https://github.com/fuma-nama/fumadocs/commits/fumadocs-mdx@15.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fumadocs-ui` from 16.5.0 to 16.8.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fuma-nama/fumadocs/releases\"\u003efumadocs-ui's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003efumadocs-ui@16.8.11\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [1dc86c7]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [062beab]\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [505cfe0]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.8\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eb494c8d: Support copy ID in headings\u003c/li\u003e\n\u003cli\u003e03626ba: [Search UI] show \u003ccode\u003ectrl\u003c/code\u003e for Linux machines\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e34f37f3: hotfix TOC\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.6\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1aa48d0: fix RTL layout for Clerk style\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.6\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.5\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [79d3209]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.5\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eb5ff03b: Support new OG image design for Takumi\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [61b15e9]\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [1a5433c]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e8082ef6: Add \u003ccode\u003elegacy/layout\u003c/code\u003e for versions prior to 16.2\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/fuma-nama/fumadocs/commit/99f1066de511270e8c8d3db409f09b868f89364b\"\u003e\u003ccode\u003e99f1066\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3280\"\u003e#3280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/d4c78e4aefdd5b54d853ace1b38eaab4ad4858d8\"\u003e\u003ccode\u003ed4c78e4\u003c/code\u003e\u003c/a\u003e OpenAPI: render deprecated badge for deprecated operations (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3281\"\u003e#3281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/0287f49f65b01c6fc383b162d8ac55ab6ca92b36\"\u003e\u003ccode\u003e0287f49\u003c/code\u003e\u003c/a\u003e UI: improve default OG image\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/1dc86c7dc9a771cc514a288e90d0c369bae52382\"\u003e\u003ccode\u003e1dc86c7\u003c/code\u003e\u003c/a\u003e Core: loosen the range for waku\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/b3052ac079ead8c629e7382c56db643fe2ac0285\"\u003e\u003ccode\u003eb3052ac\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3279\"\u003e#3279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/61f3a27eb5cb8330a51f7e72ea0c005fb6a218f8\"\u003e\u003ccode\u003e61f3a27\u003c/code\u003e\u003c/a\u003e UI: encode storage keys\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/1c9494986d262281492ef1fa6c9d67576f9cd659\"\u003e\u003ccode\u003e1c94949\u003c/code\u003e\u003c/a\u003e Preview: Rate limit config for AI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/8a4e1d1eda2746f353987b11a7242be58b314449\"\u003e\u003ccode\u003e8a4e1d1\u003c/code\u003e\u003c/a\u003e Previiew: Support file-sytem checks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/b160b260b45d2b485cc62da0deaab35b14bcc4a1\"\u003e\u003ccode\u003eb160b26\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3275\"\u003e#3275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/ce1d37af6ceb6491ad9f9a4a66a23c65a0565ece\"\u003e\u003ccode\u003ece1d37a\u003c/code\u003e\u003c/a\u003e Chore: re-define bin.js for fumadocs-mdx\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.5.0...fumadocs-ui@16.8.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lucide-react` from 0.469.0 to 1.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lucide-icons/lucide/releases\"\u003elucide-react's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.16.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003eblender\u003c/code\u003e icon by \u003ca href=\"https://github.com/rrod497\"\u003e\u003ccode\u003e@​rrod497\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/3884\"\u003elucide-icons/lucide#3884\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lucide-icons/lucide/compare/1.15.0...1.16.0\"\u003ehttps://github.com/lucide-icons/lucide/compare/1.15.0...1.16.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: remove 'less' from brand stopwords by \u003ca href=\"https://github.com/jguddas\"\u003e\u003ccode\u003e@​jguddas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4331\"\u003elucide-icons/lucide#4331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(\u003ccode\u003e@​lucide/vue\u003c/code\u003e): Clone slots before passing to icon by \u003ca href=\"https://github.com/axtho\"\u003e\u003ccode\u003e@​axtho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4339\"\u003elucide-icons/lucide#4339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003etext-cursor\u003c/code\u003e icon by \u003ca href=\"https://github.com/jamiemlaw\"\u003e\u003ccode\u003e@​jamiemlaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4340\"\u003elucide-icons/lucide#4340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003elandmark\u003c/code\u003e icon by \u003ca href=\"https://github.com/jamiemlaw\"\u003e\u003ccode\u003e@​jamiemlaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4334\"\u003elucide-icons/lucide#4334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump nitropack from 2.13.1 to 2.13.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4352\"\u003elucide-icons/lucide#4352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump simple-git from 3.33.0 to 3.36.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4349\"\u003elucide-icons/lucide#4349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003ecandy-cane\u003c/code\u003e icon by \u003ca href=\"https://github.com/jguddas\"\u003e\u003ccode\u003e@​jguddas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4148\"\u003elucide-icons/lucide#4148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003evolleyball\u003c/code\u003e icon by \u003ca href=\"https://github.com/jamiemlaw\"\u003e\u003ccode\u003e@​jamiemlaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4338\"\u003elucide-icons/lucide#4338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003echart-no-axes-combined\u003c/code\u003e icon by \u003ca href=\"https://github.com/jguddas\"\u003e\u003ccode\u003e@​jguddas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/3567\"\u003elucide-icons/lucide#3567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icon): added broccoli icon by \u003ca href=\"https://github.com/swastik7805\"\u003e\u003ccode\u003e@​swastik7805\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4263\"\u003elucide-icons/lucide#4263\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(site): Updates to site and updated carbon ads by \u003ca href=\"https://github.com/ericfennis\"\u003e\u003ccode\u003e@​ericfennis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4359\"\u003elucide-icons/lucide#4359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added sticky note variants by \u003ca href=\"https://github.com/Barakudum\"\u003e\u003ccode\u003e@​Barakudum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4348\"\u003elucide-icons/lucide#4348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump astro from 6.1.6 to 6.1.10 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4361\"\u003elucide-icons/lucide#4361\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/axtho\"\u003e\u003ccode\u003e@​axtho\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4339\"\u003elucide-icons/lucide#4339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Barakudum\"\u003e\u003ccode\u003e@​Barakudum\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4348\"\u003elucide-icons/lucide#4348\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lucide-icons/lucide/compare/1.14.0...1.15.0\"\u003ehttps://github.com/lucide-icons/lucide/compare/1.14.0...1.15.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003erepeat-off\u003c/code\u003e icon by \u003ca href=\"https://github.com/jguddas\"\u003e\u003ccode\u003e@​jguddas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/3102\"\u003elucide-icons/lucide#3102\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lucide-icons/lucide/compare/1.13.0...1.14.0\"\u003ehttps://github.com/lucide-icons/lucide/compare/1.13.0...1.14.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(docs): sync URL params with UI state on categories page by \u003ca href=\"https://github.com/taimar\"\u003e\u003ccode\u003e@​taimar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4111\"\u003elucide-icons/lucide#4111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): add \u003ccode\u003ewaves-vertical\u003c/code\u003e icon by \u003ca href=\"https://github.com/jamiemlaw\"\u003e\u003ccode\u003e@​jamiemlaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/3867\"\u003elucide-icons/lucide#3867\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lucide-icons/lucide/compare/1.12.0...1.13.0\"\u003ehttps://github.com/lucide-icons/lucide/compare/1.12.0...1.13.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(icon): add folder-bookmark icon by \u003ca href=\"https://github.com/swastik7805\"\u003e\u003ccode\u003e@​swastik7805\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4262\"\u003elucide-icons/lucide#4262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(readme): Update readme files by \u003ca href=\"https://github.com/ericfennis\"\u003e\u003ccode\u003e@​ericfennis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4320\"\u003elucide-icons/lucide#4320\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003eastroid\u003c/code\u003e icon by \u003ca href=\"https://github.com/whoisBugsbunny\"\u003e\u003ccode\u003e@​whoisBugsbunny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4217\"\u003elucide-icons/lucide#4217\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/lucide-icons/lucide/commit/07c885e6c1f9952965ba388b7fd2bb7c4d416a67\"\u003e\u003ccode\u003e07c885e\u003c/code\u003e\u003c/a\u003e fix(docs): fix zephyr-cloud URL in readmes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/50d8af5a1012e188f3d71ac8f1fc0fba1aab5357\"\u003e\u003ccode\u003e50d8af5\u003c/code\u003e\u003c/a\u003e docs(readme): Update readme files (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4320\"\u003e#4320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/653e44b83293567ff24dcb90ca1094a9cf0a042a\"\u003e\u003ccode\u003e653e44b\u003c/code\u003e\u003c/a\u003e feat(packages): use .mjs for ESM bundles (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4285\"\u003e#4285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/7623e23f787fe78e5075a613fd22da2cecbb9b1b\"\u003e\u003ccode\u003e7623e23\u003c/code\u003e\u003c/a\u003e feat(docs): add Zephyr Cloud to Hero Backers tier \u0026amp; rework updateSponsors scr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/dada0a82970d3733d1d716e2089591c538272a39\"\u003e\u003ccode\u003edada0a8\u003c/code\u003e\u003c/a\u003e fix(lucide-react): Fix dynamic imports (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4210\"\u003e#4210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/a6e648a66ff470c2255d3666765fd73cfcc185ff\"\u003e\u003ccode\u003ea6e648a\u003c/code\u003e\u003c/a\u003e fix(lucide-react): correct client directives in RSC files (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4189\"\u003e#4189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/1f010a357a21c7a8c5e1f92dd90f09d76a04e2dd\"\u003e\u003ccode\u003e1f010a3\u003c/code\u003e\u003c/a\u003e fix(lucide-react): Fixes provider export and RSC render issues (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4175\"\u003e#4175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/484f2c9cd377dbeb536f63d4b183ecfd26947014\"\u003e\u003ccode\u003e484f2c9\u003c/code\u003e\u003c/a\u003e docs(version-1): Version 1 website (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4142\"\u003e#4142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/a0e202d759da95c243b541f8d3c1c26eada32b2e\"\u003e\u003ccode\u003ea0e202d\u003c/code\u003e\u003c/a\u003e feat(packages/angular): add new \u003ccode\u003e@​lucide/angular\u003c/code\u003e package (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/3897\"\u003e#3897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/c5b155ec37f0217bfd85e309873029379df473ac\"\u003e\u003ccode\u003ec5b155e\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of \u003ca href=\"https://github.com/lucide-icons/lucide\"\u003ehttps://github.com/lucide-icons/lucide\u003c/a\u003e into next\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lucide-icons/lucide/commits/1.16.0/packages/lucide-react\"\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 lucide-react since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mermaid` from 11.14.0 to 11.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mermaid-js/mermaid/releases\"\u003emermaid's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emermaid@11.15.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/mermaid-js/mermaid/pull/7174\"\u003e#7174\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/0aca21739c0d1fcaaa206e04a6cd574ebc415483\"\u003e\u003ccode\u003e0aca217\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/milesspencer35\"\u003e\u003ccode\u003e@​milesspencer35\u003c/code\u003e\u003c/a\u003e! - feat(sequence): Add support for decimal start and increment values in the \u003ccode\u003eautonumber\u003c/code\u003e directive\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7512\"\u003e#7512\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/8e17492f7365ba50896382feb69a23efd9d8a22d\"\u003e\u003ccode\u003e8e17492\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/aruncveli\"\u003e\u003ccode\u003e@​aruncveli\u003c/code\u003e\u003c/a\u003e! - feat(flowchart): add datastore shape\u003c/p\u003e\n\u003cp\u003eIn Data flow diagrams, a datastore/warehouse/file/database is used to represent data persistence. It is denoted by a rectangle with only top and bottom borders, and can be used in flowcharts with \u003ccode\u003eA@{ shape: datastore, label: \u0026quot;Datastore\u0026quot; }\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/6440\"\u003e#6440\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/9ad8dde6d049adde85d8ed2d476c09b5820f3f4b\"\u003e\u003ccode\u003e9ad8dde\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/yordis\"\u003e\u003ccode\u003e@​yordis\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/lgazo\"\u003e\u003ccode\u003e@​lgazo\u003c/code\u003e\u003c/a\u003e! - feat: add Event Modeling diagram\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7707\"\u003e#7707\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/27db774627be1cee881961dfd0d2cb21cd01b79d\"\u003e\u003ccode\u003e27db774\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/txmxthy\"\u003e\u003ccode\u003e@​txmxthy\u003c/code\u003e\u003c/a\u003e! - feat(architecture): expose four fcose layout knobs for \u003ccode\u003earchitecture-beta\u003c/code\u003e diagrams (\u003ccode\u003enodeSeparation\u003c/code\u003e, \u003ccode\u003eidealEdgeLengthMultiplier\u003c/code\u003e, \u003ccode\u003eedgeElasticity\u003c/code\u003e, \u003ccode\u003enumIter\u003c/code\u003e) so authors can tune layout density and spread overlapping siblings without changing diagram source\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7604\"\u003e#7604\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/bf9502fb6012a4b724679b401ac928f5ee55161c\"\u003e\u003ccode\u003ebf9502f\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/M-a-c\"\u003e\u003ccode\u003e@​M-a-c\u003c/code\u003e\u003c/a\u003e! - feat(class): add nested namespace support for class diagrams via dot notation and syntactic nesting\u003c/p\u003e\n\u003cp\u003eIf you have namespaces in class diagrams that use \u003ccode\u003e.\u003c/code\u003es already and want to render them without nesting (≤v11.14.0 behaviour), you can use set \u003ccode\u003eclass.hierarchicalNamespaces=false\u003c/code\u003e in your mermaid config:\u003c/p\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003econfig:\n  class:\n    hierarchicalNamespaces: false\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7272\"\u003e#7272\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/88cdd3dc0aab9577174561b04e14760c565a232b\"\u003e\u003ccode\u003e88cdd3d\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/xinbenlv\"\u003e\u003ccode\u003e@​xinbenlv\u003c/code\u003e\u003c/a\u003e! - feat(sankey): add outlined label style, configurable nodeWidth/nodePadding, and custom node colors\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/e9b0f34d8d82a6260077764ee45e1d7d90957a0f\"\u003e\u003ccode\u003ee9b0f34\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix: prevent unbalanced CSS styles in classDefs\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/37ff937f1da2e19f882fd1db01235db4d01f4056\"\u003e\u003ccode\u003e37ff937\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix: create CSS styles using the CSSOM\u003c/p\u003e\n\u003cp\u003eThis removes some invalid CSS and normalizes some CSS formatting.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7508\"\u003e#7508\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/bfe60cc67b9a6dec64f9161f58e4d24a06c42b65\"\u003e\u003ccode\u003ebfe60cc\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/biiab\"\u003e\u003ccode\u003e@​biiab\u003c/code\u003e\u003c/a\u003e! - fix(stateDiagram): \u003ccode\u003eend note\u003c/code\u003e now only closes a note when used on a new line\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/faafb5d49106dd32c367f3882505f2dd625aa30e\"\u003e\u003ccode\u003efaafb5d\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix(gantt): add iteration limit for \u003ccode\u003eexcludes\u003c/code\u003e field\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/65f8be2a42faf869b811469571983cba7eeeca99\"\u003e\u003ccode\u003e65f8be2\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix: disallow some CSS at-rules in custom CSS\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7726\"\u003e#7726\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/1502f32f3c5fb944925b0c527fbbde3c4f041824\"\u003e\u003ccode\u003e1502f32\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/aloisklink\"\u003e\u003ccode\u003e@​aloisklink\u003c/code\u003e\u003c/a\u003e! - fix(wardley): fix unnecessary sanitization of text\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7578\"\u003e#7578\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/1f98db8e326299ac97a2fa60abfd509d8f5f16e2\"\u003e\u003ccode\u003e1f98db8\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/Gaston202\"\u003e\u003ccode\u003e@​Gaston202\u003c/code\u003e\u003c/a\u003e! - fix(class): self-referential class multiplicity labels no longer rendered multiple times\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7560\"\u003e#7560\u003c/a\u003e. Resolves an issue where cardinality labels on self-referential class relationships were rendered three times due to edge splitting in the dagre layout. The fix ensures that each sub-edge only carries its relevant label positions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7592\"\u003e#7592\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/2343e38498a3b31f8ce5e79f1f009e0b56fbe086\"\u003e\u003ccode\u003e2343e38\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/knsv-bot\"\u003e\u003ccode\u003e@​knsv-bot\u003c/code\u003e\u003c/a\u003e! - fix(sequence): add background box behind alt/else section title labels in sequence diagrams\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7589\"\u003e#7589\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/7fb9509b8b5cb1dc48519dc60cf6cdc6afba0462\"\u003e\u003ccode\u003e7fb9509\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/NYCU-Chung\"\u003e\u003ccode\u003e@​NYCU-Chung\u003c/code\u003e\u003c/a\u003e! - fix(block): prevent column widths from shrinking when mixing different column spans\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7632\"\u003e#7632\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/3f9e0f15bedc1e2c71ddb6b34192d1a21124cfc2\"\u003e\u003ccode\u003e3f9e0f1\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ekiauhce\"\u003e\u003ccode\u003e@​ekiauhce\u003c/code\u003e\u003c/a\u003e! - fix(sequence): correct messageAlign label position for right-to-left arrows in sequence diagrams\u003c/p\u003e\n\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/mermaid-js/mermaid/commit/41646dfd43ac83f001b03c70605feb036afae46d\"\u003e\u003ccode\u003e41646df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7739\"\u003e#7739\u003c/a\u003e from aloisklink/ci/fix-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/2671f5c44a1515960ebc41c09a365c41860f95ee\"\u003e\u003ccode\u003e2671f5c\u003c/code\u003e\u003c/a\u003e docs: fix v11.15.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/f4bf04b5db8bed603e40ed3d5ce5228d6b07754e\"\u003e\u003ccode\u003ef4bf04b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7738\"\u003e#7738\u003c/a\u003e from mermaid-js/changeset-release/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/abfb563e1dcbd46d617f44a6361bd6d926dc6289\"\u003e\u003ccode\u003eabfb563\u003c/code\u003e\u003c/a\u003e Version Packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/60b289f428d0a0832ad95ed4e1fb326344e23532\"\u003e\u003ccode\u003e60b289f\u003c/code\u003e\u003c/a\u003e Release Candidate 11.15.0 (\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7737\"\u003e#7737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/d37c0db39ca2405b4473361063df2c47109dc2c9\"\u003e\u003ccode\u003ed37c0db\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7730\"\u003e#7730\u003c/a\u003e from aloisklink/fix/fix-edgeLabelRightLeft-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/5ab5a2895fa8b7e90de85b43a4b99aa50b39b0f1\"\u003e\u003ccode\u003e5ab5a28\u003c/code\u003e\u003c/a\u003e docs: improve nested namespace changeset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/18f8b4c5bf67aface3485272b48042f2fdd6fad2\"\u003e\u003ccode\u003e18f8b4c\u003c/code\u003e\u003c/a\u003e fix: revert endEdgeLabelLeft/endEdgeLabelRight change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/504b2eb73d4d827baa817efd47ab6f44ae769b5a\"\u003e\u003ccode\u003e504b2eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7726\"\u003e#7726\u003c/a\u003e from aloisklink/fix/correct-unnecessary-html-escapes...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/1502f32f3c5fb944925b0c527fbbde3c4f041824\"\u003e\u003ccode\u003e1502f32\u003c/code\u003e\u003c/a\u003e fix(wardley): fix unnecessary sanitization of text\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mermaid-js/mermaid/compare/mermaid@11.14.0...mermaid@11.15.0\"\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.5.3 to 21.0.1\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@​commitlint/cli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\"\u003e21.0.1\u003c/a\u003e (2026-05-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(load): only resolve relative formatter paths 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/4761\"\u003econventional-changelog/commitlint#4761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(types): add presetConfig to ParserPreset interface by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4749\"\u003econventional-changelog/commitlint#4749\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCI\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: stop spawning schedule jobs on contributors' forks by \u003ca href=\"https://github.com/knocte\"\u003e\u003ccode\u003e@​knocte\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4753\"\u003econventional-changelog/commitlint#4753\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add weekly non-blocking pnpm audit 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/4766\"\u003econventional-changelog/commitlint#4766\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/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4749\"\u003econventional-changelog/commitlint#4749\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/v21.0.0...v21.0.1\"\u003ehttps://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev21.0.0\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003eHeads-up: --legacy-output is a transitional escape hatch. It will be removed in a future major release. Plan to migrate your parsers / snapshots to the new format during the v21 lifecycle.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.5.3...v21.0.0\"\u003e21.0.0\u003c/a\u003e (2026-05-08)\u003c/h2\u003e\n\u003ch3\u003eBreaking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore!: minimum node version v22 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4679\"\u003e#4679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat!: show input from a new line by \u003ca href=\"https://github.com/knocte\"\u003e\u003ccode\u003e@​knocte\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4727\"\u003e#4727\u003c/a\u003e (adds --legacy-output flag)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: widen cz-commitlint inquirer peer dep to support v9–v12 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4682\"\u003e#4682\u003c/a\u003e — closes \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4554\"\u003e#4554\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternals (Node 22 cleanup)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: replace dependencies with Node 22 built-ins by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4681\"\u003e#4681\u003c/a\u003e — drops glob, fast-glob, import-meta-resolve, minimist, fs-extra\u003c/li\u003e\n\u003cli\u003erefactor: replace read-pkg with native fs.readFile + JSON.parse by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4742\"\u003e#4742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dependency yargs to v18 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4686\"\u003e#4686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove cross-env, move env vars to vitest config by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4684\"\u003e#4684\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependency updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: update dependency \u003ccode\u003e@​types/node\u003c/code\u003e to v22.19.17 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4739\"\u003e#4739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dependency \u003ccode\u003e@​swc/core\u003c/code\u003e to v1.15.33 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4743\"\u003e#4743\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@​commitlint/cli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\"\u003e21.0.1\u003c/a\u003e (2026-05-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\u003ch1\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.5.3...v21.0.0\"\u003e21.0.0\u003c/a\u003e (2026-05-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003echore!: minimum node version v22 (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4679\"\u003e#4679\u003c/a\u003e) (\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/ac2b3f4a947670e46af9a738881ba14158f0987a\"\u003eac2b3f4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/issues/4679\"\u003e#4679\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop node v18 and v20 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eBump engines to \u0026gt;=v22 in all 39 package.json files\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003e@​types/node\u003c/code\u003e to ^22.0.0\u003c/li\u003e\n\u003cli\u003eUpdate CI matrix to [22, 24]\u003c/li\u003e\n\u003cli\u003eUpdate Ubuntu baseline job to ubuntu:26.04\u003c/li\u003e\n\u003cli\u003eUpdate Dockerfile.ci, .mise.toml, .codesandbox/ci.json\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit hook to use --ignore-engines\u003c/li\u003e\n\u003cli\u003eUpdate README and docs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCo-authored-by: Claude Opus 4.6 (1M context) \u003ca href=\"mailto:noreply@anthropic.com\"\u003enoreply@anthropic.com\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/conventional-changelog/commitlint/commit/db8d7d6461d721fe2561ce4307e4069eaf6dcc8c\"\u003e\u003ccode\u003edb8d7d6\u003c/code\u003e\u003c/a\u003e v21.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/1329a25fd6f13b993fdf4e8c1b5a25ff2bf7ee07\"\u003e\u003ccode\u003e1329a25\u003c/code\u003e\u003c/a\u003e chore: migrate to pnpm (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4762\"\u003e#4762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/db39968cdcf7b655e5951d2f550edadc4f0768ef\"\u003e\u003ccode\u003edb39968\u003c/code\u003e\u003c/a\u003e chore: pre pnpm cleanup (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4759\"\u003e#4759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/6099ae50aa71fe7f99d75af1b8d9537aa7685747\"\u003e\u003ccode\u003e6099ae5\u003c/code\u003e\u003c/a\u003e chore: replace eslint with oxlint (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4756\"\u003e#4756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/f081a8ef93019bb8b07f39c756f6d4a052020d3b\"\u003e\u003ccode\u003ef081a8e\u003c/code\u003e\u003c/a\u003e v21.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/40d7e36ffac0986ad0988fedd39a7ebcfde93d3c\"\u003e\u003ccode\u003e40d7e36\u003c/code\u003e\u003c/a\u003e feat!: show input from a new line (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4727\"\u003e#4727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/44c31743ded411d949e935247e8079e5085d8239\"\u003e\u003ccode\u003e44c3174\u003c/code\u003e\u003c/a\u003e chore: update dependency yargs to v18 \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4432\"\u003e#4432\u003c/a\u003e (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4686\"\u003e#4686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/ac01464b453a818e01f2f232a307b61a66167920\"\u003e\u003ccode\u003eac01464\u003c/code\u003e\u003c/a\u003e chore: replace dependencies with Node 22 built-ins (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4681\"\u003e#4681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/ac2b3f4a947670e46af9a738881ba14158f0987a\"\u003e\u003ccode\u003eac2b3f4\u003c/code\u003e\u003c/a\u003e chore!: minimum node version v22 (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4679\"\u003e#4679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/conventional-changelog/commitlint/commits/v21.0.1/@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.5.3 to 21.0.1\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@​commitlint/config-conventional's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\"\u003e21.0.1\u003c/a\u003e (2026-05-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(load): only resolve relative formatter paths 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/4761\"\u003econventional-changelog/commitlint#4761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(types): add presetConfig to ParserPreset interface by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4749\"\u003econventional-changelog/commitlint#4749\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCI\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: stop spawning schedule jobs on contributors' forks by \u003ca href=\"https://github.com/knocte\"\u003e\u003ccode\u003e@​knocte\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4753\"\u003econventional-changelog/commitlint#4753\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add weekly non-blocking pnpm audit 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/4766\"\u003econventional-changelog/commitlint#4766\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/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4749\"\u003econventional-changelog/commitlint#4749\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/v21.0.0...v21.0.1\"\u003ehttps://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev21.0.0\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003eHeads-up: --legacy-output is a transitional escape hatch. It will be removed in a future major release. Plan to migrate your parsers / snapshots to the new format during the v21 lifecycle.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.5.3...v21.0.0\"\u003e21.0.0\u003c/a\u003e (2026-05-08)\u003c/h2\u003e\n\u003ch3\u003eBreaking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore!: minimum node version v22 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4679\"\u003e#4679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat!: show input from a new line by \u003ca href=\"https://github.com/knocte\"\u003e\u003ccode\u003e@​knocte\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4727\"\u003e#4727\u003c/a\u003e (adds --legacy-output flag)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: widen cz-commitlint inquirer peer dep to support v9–v12 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4682\"\u003e#4682\u003c/a\u003e — closes \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4554\"\u003e#4554\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternals (Node 22 cleanup)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: replace dependencies with Node 22 built-ins by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4681\"\u003e#4681\u003c/a\u003e — drops glob, fast-glob, import-meta-resolve, minimist, fs-extra\u003c/li\u003e\n\u003cli\u003erefactor: replace read-pkg with native fs.readFile + JSON.parse by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4742\"\u003e#4742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dependency yargs to v18 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4686\"\u003e#4686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove cross-env, move env vars to vitest config by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4684\"\u003e#4684\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependency updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: update dependency \u003ccode\u003e@​types/node\u003c/code\u003e to v22.19.17 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4739\"\u003e#4739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dependency \u003ccode\u003e@​swc/core\u003c/code\u003e to v1.15.33 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4743\"\u003e#4743\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@​commitlint/config-conventional's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\"\u003e21.0.1\u003c/a\u003e (2026-05-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\u003ch1\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.5.3...v21.0.0\"\u003e21.0.0\u003c/a\u003e (2026-05-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003echore!: minimum node version v22 (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4679\"\u003e#4679\u003c/a\u003e) (\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/ac2b3f4a947670e46af9a738881ba14158f0987a\"\u003eac2b3f4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/issues/4679\"\u003e#4679\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop node v18 and v20 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eBump engines to \u0026gt;=v22 in all 39 package.json files\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003e@​types/node\u003c/code\u003e to ^22.0.0\u003c/li\u003e\n\u003cli\u003eUpd...\n\n_Description has been truncated_","html_url":"https://github.com/ofri-peretz/eslint/pull/109","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ofri-peretz%2Feslint/issues/109","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/109/packages"},{"uuid":"4462366841","node_id":"PR_kwDOQJxXsc7cUqqo","number":102,"state":"open","title":"chore(deps)(deps): bump the all-packages group across 1 directory with 44 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-17T05:10:17.000Z","updated_at":"2026-05-17T05:11:23.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps): bump","group_name":"all-packages","update_count":44,"packages":[{"name":"@tanstack/react-query","old_version":"5.100.9","new_version":"5.100.10","repository_url":"https://github.com/TanStack/query"},{"name":"axios","old_version":"1.16.0","new_version":"1.16.1","repository_url":"https://github.com/axios/axios"},{"name":"eslint-config-next","old_version":"16.2.4","new_version":"16.2.6","repository_url":"https://github.com/vercel/next.js"},{"name":"fumadocs-core","old_version":"16.5.0","new_version":"16.8.11","repository_url":"https://github.com/fuma-nama/fumadocs"},{"name":"fumadocs-mdx","old_version":"14.2.6","new_version":"15.0.5","repository_url":"https://github.com/fuma-nama/fumadocs"},{"name":"fumadocs-ui","old_version":"16.5.0","new_version":"16.8.11","repository_url":"https://github.com/fuma-nama/fumadocs"},{"name":"lucide-react","old_version":"0.469.0","new_version":"1.16.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"mermaid","old_version":"11.14.0","new_version":"11.15.0","repository_url":"https://github.com/mermaid-js/mermaid"},{"name":"@commitlint/cli","old_version":"20.5.3","new_version":"21.0.1","repository_url":"https://github.com/conventional-changelog/commitlint"},{"name":"@commitlint/config-conventional","old_version":"20.5.3","new_version":"21.0.1","repository_url":"https://github.com/conventional-changelog/commitlint"},{"name":"@middy/core","old_version":"7.5.0","new_version":"7.6.4","repository_url":"https://github.com/middyjs/middy"},{"name":"@middy/http-cors","old_version":"7.5.0","new_version":"7.6.4","repository_url":"https://github.com/middyjs/middy"},{"name":"@middy/http-security-headers","old_version":"7.5.0","new_version":"7.6.4","repository_url":"https://github.com/middyjs/middy"},{"name":"@middy/validator","old_version":"7.5.0","new_version":"7.6.4","repository_url":"https://github.com/middyjs/middy"},{"name":"@nestjs/common","old_version":"11.1.19","new_version":"11.1.21","repository_url":"https://github.com/nestjs/nest"},{"name":"@types/node","old_version":"22.19.7","new_version":"25.8.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"ai","old_version":"6.0.177","new_version":"6.0.184","repository_url":"https://github.com/vercel/ai"},{"name":"baseline-browser-mapping","old_version":"2.10.29","new_version":"2.10.30","repository_url":"https://github.com/web-platform-dx/baseline-browser-mapping"},{"name":"enhanced-resolve","old_version":"5.21.2","new_version":"5.21.3","repository_url":"https://github.com/webpack/enhanced-resolve"},{"name":"eslint","old_version":"8.57.1","new_version":"10.4.0","repository_url":"https://github.com/eslint/eslint"},{"name":"eslint-plugin-oxlint","old_version":"1.62.0","new_version":"1.65.0","repository_url":"https://github.com/oxc-project/eslint-plugin-oxlint"},{"name":"eslint-plugin-unicorn","old_version":"62.0.0","new_version":"64.0.0","repository_url":"https://github.com/sindresorhus/eslint-plugin-unicorn"},{"name":"jiti","old_version":"2.6.1","new_version":"2.7.0","repository_url":"https://github.com/unjs/jiti"},{"name":"oxlint","old_version":"1.62.0","new_version":"1.65.0","repository_url":"https://github.com/oxc-project/oxc"},{"name":"storybook","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"typescript","old_version":"5.9.3","new_version":"6.0.3","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"verdaccio","old_version":"6.6.0","new_version":"6.7.1","repository_url":"https://github.com/verdaccio/verdaccio"},{"name":"@playwright/test","old_version":"1.59.1","new_version":"1.60.0","repository_url":"https://github.com/microsoft/playwright"},{"name":"@storybook/addon-a11y","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/addon-docs","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/addon-themes","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/react-vite","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/test-runner","old_version":"0.24.3","new_version":"0.24.4","repository_url":"https://github.com/storybookjs/test-runner"},{"name":"wait-on","old_version":"8.0.5","new_version":"9.0.10","repository_url":"https://github.com/jeffbski/wait-on"},{"name":"@ai-sdk/openai","old_version":"3.0.63","new_version":"3.0.64","repository_url":"https://github.com/vercel/ai"},{"name":"@types/vscode","old_version":"1.118.0","new_version":"1.120.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@google/genai","old_version":"1.51.0","new_version":"2.3.0","repository_url":"https://github.com/googleapis/js-genai"},{"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":"eslint-plugin-n","old_version":"17.24.0","new_version":"18.0.1","repository_url":"https://github.com/eslint-community/eslint-plugin-n"},{"name":"eslint-plugin-security","old_version":"2.1.1","new_version":"4.0.0","repository_url":"https://github.com/eslint-community/eslint-plugin-security"},{"name":"eslint-plugin-sonarjs","old_version":"3.0.7","new_version":"4.0.3","repository_url":"https://github.com/SonarSource/SonarJS"},{"name":"eslint-plugin-vue","old_version":"10.9.0","new_version":"10.9.1","repository_url":"https://github.com/vuejs/eslint-plugin-vue"},{"name":"tsx","old_version":"4.21.0","new_version":"4.22.1","repository_url":"https://github.com/privatenumber/tsx"}],"path":null,"ecosystem":"npm"},"body":"Bumps the all-packages group with 43 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.100.9` | `5.100.10` |\n| [axios](https://github.com/axios/axios) | `1.16.0` | `1.16.1` |\n| [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `16.2.4` | `16.2.6` |\n| [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.5.0` | `16.8.11` |\n| [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `14.2.6` | `15.0.5` |\n| [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.5.0` | `16.8.11` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.469.0` | `1.16.0` |\n| [mermaid](https://github.com/mermaid-js/mermaid) | `11.14.0` | `11.15.0` |\n| [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) | `20.5.3` | `21.0.1` |\n| [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) | `20.5.3` | `21.0.1` |\n| [@middy/core](https://github.com/middyjs/middy/tree/HEAD/packages/core) | `7.5.0` | `7.6.4` |\n| [@middy/http-cors](https://github.com/middyjs/middy/tree/HEAD/packages/http-cors) | `7.5.0` | `7.6.4` |\n| [@middy/http-security-headers](https://github.com/middyjs/middy/tree/HEAD/packages/http-security-headers) | `7.5.0` | `7.6.4` |\n| [@middy/validator](https://github.com/middyjs/middy/tree/HEAD/packages/validator) | `7.5.0` | `7.6.4` |\n| [@nestjs/common](https://github.com/nestjs/nest/tree/HEAD/packages/common) | `11.1.19` | `11.1.21` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `22.19.7` | `25.8.0` |\n| [ai](https://github.com/vercel/ai/tree/HEAD/packages/ai) | `6.0.177` | `6.0.184` |\n| [baseline-browser-mapping](https://github.com/web-platform-dx/baseline-browser-mapping) | `2.10.29` | `2.10.30` |\n| [enhanced-resolve](https://github.com/webpack/enhanced-resolve) | `5.21.2` | `5.21.3` |\n| [eslint](https://github.com/eslint/eslint) | `8.57.1` | `10.4.0` |\n| [eslint-plugin-oxlint](https://github.com/oxc-project/eslint-plugin-oxlint) | `1.62.0` | `1.65.0` |\n| [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) | `62.0.0` | `64.0.0` |\n| [jiti](https://github.com/unjs/jiti) | `2.6.1` | `2.7.0` |\n| [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) | `1.62.0` | `1.65.0` |\n| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/core) | `10.3.6` | `10.4.0` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `6.0.3` |\n| [verdaccio](https://github.com/verdaccio/verdaccio) | `6.6.0` | `6.7.1` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.59.1` | `1.60.0` |\n| [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `10.3.6` | `10.4.0` |\n| [@storybook/addon-docs](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/docs) | `10.3.6` | `10.4.0` |\n| [@storybook/addon-themes](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/themes) | `10.3.6` | `10.4.0` |\n| [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `10.3.6` | `10.4.0` |\n| [@storybook/test-runner](https://github.com/storybookjs/test-runner) | `0.24.3` | `0.24.4` |\n| [wait-on](https://github.com/jeffbski/wait-on) | `8.0.5` | `9.0.10` |\n| [@ai-sdk/openai](https://github.com/vercel/ai/tree/HEAD/packages/openai) | `3.0.63` | `3.0.64` |\n| [@types/vscode](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/vscode) | `1.118.0` | `1.120.0` |\n| [@google/genai](https://github.com/googleapis/js-genai) | `1.51.0` | `2.3.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| [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) | `17.24.0` | `18.0.1` |\n| [eslint-plugin-security](https://github.com/eslint-community/eslint-plugin-security) | `2.1.1` | `4.0.0` |\n| [eslint-plugin-sonarjs](https://github.com/SonarSource/SonarJS) | `3.0.7` | `4.0.3` |\n| [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) | `10.9.0` | `10.9.1` |\n| [tsx](https://github.com/privatenumber/tsx) | `4.21.0` | `4.22.1` |\n\n\nUpdates `@tanstack/react-query` from 5.100.9 to 5.100.10\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md\"\u003e@​tanstack/react-query's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.100.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.10\u003c/li\u003e\n\u003c/ul\u003e\n\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\u003eSee full diff in \u003ca href=\"https://github.com/TanStack/query/commits/HEAD/packages/react-query\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `axios` from 1.16.0 to 1.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axios/axios/releases\"\u003eaxios's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.16.1 — May 13, 2026\u003c/h2\u003e\n\u003cp\u003eThis release ships a defence-in-depth fix for prototype pollution in \u003ccode\u003eformDataToJSON\u003c/code\u003e, hardens proxy and CI workflows, restores Webpack 4 compatibility for the fetch adapter, and includes several small bug fixes and maintenance improvements.\u003c/p\u003e\n\u003ch2\u003e🔒 Security Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ePrototype Pollution Defence-in-Depth:\u003c/strong\u003e Hardened \u003ccode\u003eformDataToJSON\u003c/code\u003e against already-polluted \u003ccode\u003eObject.prototype\u003c/code\u003e by walking own properties only, so attacker-controlled keys inherited from a poisoned prototype cannot propagate through deserialization. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/7413\"\u003e#7413\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eProxy Cleartext Leak:\u003c/strong\u003e Fixed an issue where HTTPS request data could be transmitted in cleartext to an HTTP proxy under certain configurations. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10858\"\u003e#10858\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCI Cache Removal:\u003c/strong\u003e Removed all GitHub Actions caches as a defence-in-depth measure against cache poisoning vectors in the build pipeline. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10882\"\u003e#10882\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eData URI Parsing:\u003c/strong\u003e Updated the \u003ccode\u003efromDataURI\u003c/code\u003e regex to match RFC 2397 more strictly, fixing edge cases in \u003ccode\u003edata:\u003c/code\u003e URL handling. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10829\"\u003e#10829\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUnicode Headers:\u003c/strong\u003e Preserved Unicode header values when running through request interceptors, so non-ASCII header content is no longer corrupted before dispatch. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10850\"\u003e#10850\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eXHR Upload Progress:\u003c/strong\u003e Guarded against malformed \u003ccode\u003eProgressEvent\u003c/code\u003e payloads emitted by some environments during XHR upload, preventing crashes when \u003ccode\u003eloaded\u003c/code\u003e / \u003ccode\u003etotal\u003c/code\u003e are missing or invalid. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10868\"\u003e#10868\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWebpack 4 Fetch Adapter:\u003c/strong\u003e Fixed an \u0026quot;unexpected token\u0026quot; error caused by syntax in the fetch adapter that Webpack 4 could not parse, restoring compatibility for legacy bundler users. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10864\"\u003e#10864\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType Definitions:\u003c/strong\u003e Made \u003ccode\u003eparseReviver\u003c/code\u003e \u003ccode\u003econtext.source\u003c/code\u003e optional in the type definitions to align with the ES2023 specification. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10837\"\u003e#10837\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eURL Object Support Reverted:\u003c/strong\u003e Reverted the change that allowed passing a \u003ccode\u003eURL\u003c/code\u003e object as \u003ccode\u003econfig.url\u003c/code\u003e (originally \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10866\"\u003e#10866\u003c/a\u003e\u003c/strong\u003e) due to regressions; this support will be reintroduced in a later release once the underlying issues are addressed. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10874\"\u003e#10874\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔧 Maintenance \u0026amp; Chores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCycle Detection Refactor:\u003c/strong\u003e Replaced the array-based cycle tracker in \u003ccode\u003etoJSONObject\u003c/code\u003e with a \u003ccode\u003eWeakSet\u003c/code\u003e, improving performance and memory behaviour on large nested structures. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10832\"\u003e#10832\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecomposeSignals Cleanup:\u003c/strong\u003e Refactored \u003ccode\u003ecomposeSignals\u003c/code\u003e to use a clearer early-return structure, simplifying the cancellation/abort composition path. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10844\"\u003e#10844\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAI Readiness \u0026amp; Repo Docs:\u003c/strong\u003e Added \u003ccode\u003eAGENTS.md\u003c/code\u003e and related contributor-guide updates for both human and AI agents, plus post-release documentation improvements. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10835\"\u003e#10835\u003c/a\u003e\u003c/strong\u003e, \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10841\"\u003e#10841\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDocs Improvements:\u003c/strong\u003e Clarified the GET request example, fixed the interceptor \u003ccode\u003eeject\u003c/code\u003e example to reference the correct instance, and corrected the Buzzoid sponsor description in the README. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10836\"\u003e#10836\u003c/a\u003e\u003c/strong\u003e, \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10853\"\u003e#10853\u003c/a\u003e\u003c/strong\u003e, \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10856\"\u003e#10856\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSponsorship Tooling:\u003c/strong\u003e Fixed empty sponsor arrays in the sponsor processing script, added the ability to inject additional sponsors, updated the sponsorship link, and added a Twicsy advertisement entry. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10843\"\u003e#10843\u003c/a\u003e\u003c/strong\u003e, \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10859\"\u003e#10859\u003c/a\u003e\u003c/strong\u003e, \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10869\"\u003e#10869\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDependencies:\u003c/strong\u003e Bumped \u003ccode\u003e@commitlint/cli\u003c/code\u003e from 20.5.0 to 20.5.2. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10846\"\u003e#10846\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🌟 New Contributors\u003c/h2\u003e\n\u003cp\u003eWe are thrilled to welcome our new contributors. Thank you for helping improve axios:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/hpinmetaverse\"\u003e\u003ccode\u003e@​hpinmetaverse\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10836\"\u003e#10836\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/tommyhgunz14\"\u003e\u003ccode\u003e@​tommyhgunz14\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/7413\"\u003e#7413\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/abhu85\"\u003e\u003ccode\u003e@​abhu85\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10829\"\u003e#10829\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/divyanshuraj1095\"\u003e\u003ccode\u003e@​divyanshuraj1095\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10853\"\u003e#10853\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/sagodi97\"\u003e\u003ccode\u003e@​sagodi97\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10856\"\u003e#10856\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/rkdfx\"\u003e\u003ccode\u003e@​rkdfx\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10868\"\u003e#10868\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/Liuwei1125\"\u003e\u003ccode\u003e@​Liuwei1125\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10866\"\u003e#10866\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/axios/axios/compare/v1.16.0...v1.16.1\"\u003eFull Changelog\u003c/a\u003e\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/axios/axios/blob/v1.x/CHANGELOG.md\"\u003eaxios's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\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/axios/axios/commit/1337d6b537afb2d3f501074c8ac4ef4308221197\"\u003e\u003ccode\u003e1337d6b\u003c/code\u003e\u003c/a\u003e chore(release): prepare release 1.16.1 (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10877\"\u003e#10877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/858a790cec06054547d0d3f941916d6fb2a4d18e\"\u003e\u003ccode\u003e858a790\u003c/code\u003e\u003c/a\u003e fix: remove all caches (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10882\"\u003e#10882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/34adfd90efc9c145488399e1cf7fa96de67080fa\"\u003e\u003ccode\u003e34adfd9\u003c/code\u003e\u003c/a\u003e revert: \u0026quot;fix: support URL object as config.url input (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10866\"\u003e#10866\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10874\"\u003e#10874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/847d89b43654405d9a231e0b669832c2092b621f\"\u003e\u003ccode\u003e847d89b\u003c/code\u003e\u003c/a\u003e fix: support URL object as config.url input (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10866\"\u003e#10866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/40948863677bb793bfff0293cce7e7b4f8a1b212\"\u003e\u003ccode\u003e4094886\u003c/code\u003e\u003c/a\u003e fix(progress): guard malformed XHR upload events (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10868\"\u003e#10868\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/44f0c5bf73c45df6009365141faa394d73596bd7\"\u003e\u003ccode\u003e44f0c5b\u003c/code\u003e\u003c/a\u003e chore: change sponsorship link and add Twicsy advertisement (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10869\"\u003e#10869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/64e1095efedc64c9fecf5176bd9cf2e5e93140d6\"\u003e\u003ccode\u003e64e1095\u003c/code\u003e\u003c/a\u003e chore: update PR and issue template to use h2 (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10865\"\u003e#10865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/3e6b4e1f311b43aa1dc77d78150a601d9fe4b280\"\u003e\u003ccode\u003e3e6b4e1\u003c/code\u003e\u003c/a\u003e fix: error unexpected token in fetch JS compatibility issue with Webpack 4 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/c4453bab70f53575175903aee60810c821f72129\"\u003e\u003ccode\u003ec4453ba\u003c/code\u003e\u003c/a\u003e fix: add the ability to add additional sponsors to the process sponsors scrip...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/caa00a90b524bb67ed033474abcf4d8645ced793\"\u003e\u003ccode\u003ecaa00a9\u003c/code\u003e\u003c/a\u003e fix: https data in cleartext to proxy (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10858\"\u003e#10858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axios/axios/compare/v1.16.0...v1.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `eslint-config-next` from 16.2.4 to 16.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/vercel/next.js/releases\"\u003eeslint-config-next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev16.2.6\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!NOTE]\nThis release contains security fixes and backported bug fixes. It does \u003cstrong\u003enot\u003c/strong\u003e include all pending features/changes on canary.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eSecurity Fixes\u003c/h3\u003e\n\u003cp\u003eThe following advisories have been addressed:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eHigh:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-8h8q-6873-q5fj\"\u003eGHSA-8h8q-6873-q5fj: Denial of Service with Server Components\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-267c-6grr-h53f\"\u003eGHSA-267c-6grr-h53f: Middleware / Proxy bypass in App Router applications via segment-prefetch routes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-26hh-7cqf-hhc6\"\u003eGHSA-26hh-7cqf-hhc6: Middleware / Proxy bypass in App Router applications via segment-prefetch routes - \u003cstrong\u003eIncomplete Fix Follow-Up\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-mg66-mrh9-m8jx\"\u003eGHSA-mg66-mrh9-m8jx: Denial of Service via connection exhaustion in applications using Cache Components\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-492v-c6pp-mqqv\"\u003eGHSA-492v-c6pp-mqqv: Middleware / Proxy bypass through dynamic route parameter injection\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-c4j6-fc7j-m34r\"\u003eGHSA-c4j6-fc7j-m34r: Server-side request forgery in applications using WebSocket upgrades\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-36qx-fr4f-26g5\"\u003eGHSA-36qx-fr4f-26g5: Middleware / Proxy bypass in Pages Router applications using i18n\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eModerate:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-ffhc-5mcf-pf4q\"\u003eGHSA-ffhc-5mcf-pf4q: Cross-site scripting in App Router applications using CSP nonces\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-gx5p-jg67-6x7h\"\u003eGHSA-gx5p-jg67-6x7h: Cross-site scripting in beforeInteractive scripts with untrusted input\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-h64f-5h5j-jqjh\"\u003eGHSA-h64f-5h5j-jqjh: Denial of Service in the Image Optimization API\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-wfc6-r584-vfw7\"\u003eGHSA-wfc6-r584-vfw7: Cache poisoning in React Server Component responses\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eLow:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-vfv6-92ff-j949\"\u003eGHSA-vfv6-92ff-j949: Cache poisoning via collisions in React Server Component cache-busting\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-3g8h-86w9-wvmq\"\u003eGHSA-3g8h-86w9-wvmq: Middleware / Proxy redirects can be cache-poisoned\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: preserve HTTP access fallbacks during prerender recovery (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/92231\"\u003e#92231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix fallback route params case in app-page handler (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/91737\"\u003e#91737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix invalid HTML response for route-level RSC requests in deployment adapter (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/91541\"\u003e#91541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePatch setHeader for direct route handlers (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/93101\"\u003e#93101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude deployment id in \u003ccode\u003ecacheHandlers\u003c/code\u003e keys (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/93453\"\u003e#93453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix double-encoding of URL pathname parts in client param parsing (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/93491\"\u003e#93491\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev16.2.5\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!NOTE]\nThis release contains security fixes and backported bug fixes. It does \u003cstrong\u003enot\u003c/strong\u003e include all pending features/changes on canary.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eSecurity Fixes\u003c/h3\u003e\n\u003cp\u003eThe following advisories have been addressed:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eHigh:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-8h8q-6873-q5fj\"\u003eGHSA-8h8q-6873-q5fj: Denial of Service with Server Components\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-267c-6grr-h53f\"\u003eGHSA-267c-6grr-h53f: Middleware / Proxy bypass in App Router applications via segment-prefetch routes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-mg66-mrh9-m8jx\"\u003eGHSA-mg66-mrh9-m8jx: Denial of Service via connection exhaustion in applications using Cache Components\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-492v-c6pp-mqqv\"\u003eGHSA-492v-c6pp-mqqv: Middleware / Proxy bypass through dynamic route parameter injection\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-c4j6-fc7j-m34r\"\u003eGHSA-c4j6-fc7j-m34r: Server-side request forgery in applications using WebSocket upgrades\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/vercel/next.js/commit/ee6e79b1792a4d401ddf2480f40a83549fe8e722\"\u003e\u003ccode\u003eee6e79b\u003c/code\u003e\u003c/a\u003e v16.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/commit/766148f9cd48c0e218acafcd0f15defc14871bf4\"\u003e\u003ccode\u003e766148f\u003c/code\u003e\u003c/a\u003e v16.2.5\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/vercel/next.js/commits/v16.2.6/packages/eslint-config-next\"\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 eslint-config-next since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fumadocs-core` from 16.5.0 to 16.8.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fuma-nama/fumadocs/releases\"\u003efumadocs-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003efumadocs-core@16.8.11\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1dc86c7: loosen the range for waku\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-core@16.8.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e062beab: fix internal types\u003c/li\u003e\n\u003cli\u003e505cfe0: Add \u003ccode\u003eremark-block-id\u003c/code\u003e plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-core@16.8.8\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.8.7\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.8.6\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.8.5\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e79d3209: Narrow schema type for private OpenAPI properties\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-core@16.8.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e61b15e9: fix Shiki languages not loaded under lazy mode\u003c/li\u003e\n\u003cli\u003e1a5433c: Support \u003ccode\u003e$\u003c/code\u003e in locale for page tree generation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-core@16.8.3\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.8.2\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.8.1\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.7.16\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e9cf33e9: Improve inline code output\u003c/li\u003e\n\u003cli\u003e9cf33e9: Support async hooks in Shiki transformers\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-core@16.7.15\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ee1567e2: use local fork of Shiki rehype integration\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/fuma-nama/fumadocs/commit/99f1066de511270e8c8d3db409f09b868f89364b\"\u003e\u003ccode\u003e99f1066\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3280\"\u003e#3280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/d4c78e4aefdd5b54d853ace1b38eaab4ad4858d8\"\u003e\u003ccode\u003ed4c78e4\u003c/code\u003e\u003c/a\u003e OpenAPI: render deprecated badge for deprecated operations (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3281\"\u003e#3281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/0287f49f65b01c6fc383b162d8ac55ab6ca92b36\"\u003e\u003ccode\u003e0287f49\u003c/code\u003e\u003c/a\u003e UI: improve default OG image\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/1dc86c7dc9a771cc514a288e90d0c369bae52382\"\u003e\u003ccode\u003e1dc86c7\u003c/code\u003e\u003c/a\u003e Core: loosen the range for waku\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/b3052ac079ead8c629e7382c56db643fe2ac0285\"\u003e\u003ccode\u003eb3052ac\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3279\"\u003e#3279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/61f3a27eb5cb8330a51f7e72ea0c005fb6a218f8\"\u003e\u003ccode\u003e61f3a27\u003c/code\u003e\u003c/a\u003e UI: encode storage keys\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/1c9494986d262281492ef1fa6c9d67576f9cd659\"\u003e\u003ccode\u003e1c94949\u003c/code\u003e\u003c/a\u003e Preview: Rate limit config for AI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/8a4e1d1eda2746f353987b11a7242be58b314449\"\u003e\u003ccode\u003e8a4e1d1\u003c/code\u003e\u003c/a\u003e Previiew: Support file-sytem checks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/b160b260b45d2b485cc62da0deaab35b14bcc4a1\"\u003e\u003ccode\u003eb160b26\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3275\"\u003e#3275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/ce1d37af6ceb6491ad9f9a4a66a23c65a0565ece\"\u003e\u003ccode\u003ece1d37a\u003c/code\u003e\u003c/a\u003e Chore: re-define bin.js for fumadocs-mdx\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.5.0...fumadocs-core@16.8.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fumadocs-mdx` from 14.2.6 to 15.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fuma-nama/fumadocs/releases\"\u003efumadocs-mdx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003efumadocs-mdx@15.0.5\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1fb6a61: Support custom base directory for content sources\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@15.0.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e819b6ec: Support Rolldown integration\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@15.0.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e2569154: Pre-generate Vite config to prevent CJS compat issues\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [062beab]\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [505cfe0]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@15.0.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e298ac97: fix compatibility issues with Vite RSC\u003c/li\u003e\n\u003cli\u003eb212481: remove vitefu from inline deps\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@15.0.0\u003c/h2\u003e\n\u003ch3\u003eMajor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e3de9dfe: \u003cstrong\u003eRequire ESM for \u003ccode\u003enext.config\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eModern Node.js now supports \u003ccode\u003enext.config.mts\u003c/code\u003e format, compatibility layer is no longer needed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e3de9dfe: Raise minimum \u003ccode\u003efumadocs-core\u003c/code\u003e version to \u003ccode\u003e16.7.0\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e5745fcf: Support better Node.js loader registry\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@14.3.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e79d3209: Deprecate forwarded schemas at \u003ccode\u003efumadocs-mdx/config\u003c/code\u003e, recommend \u003ccode\u003efumadocs-core/source/schema\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [79d3209]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.5\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@14.3.0\u003c/h2\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efa9f678: \u003cstrong\u003eMake Next.js config ESM only\u003c/strong\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\u003eSee full diff in \u003ca href=\"https://github.com/fuma-nama/fumadocs/commits/fumadocs-mdx@15.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fumadocs-ui` from 16.5.0 to 16.8.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fuma-nama/fumadocs/releases\"\u003efumadocs-ui's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003efumadocs-ui@16.8.11\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [1dc86c7]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [062beab]\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [505cfe0]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.8\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eb494c8d: Support copy ID in headings\u003c/li\u003e\n\u003cli\u003e03626ba: [Search UI] show \u003ccode\u003ectrl\u003c/code\u003e for Linux machines\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e34f37f3: hotfix TOC\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.6\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1aa48d0: fix RTL layout for Clerk style\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.6\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.5\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [79d3209]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.5\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eb5ff03b: Support new OG image design for Takumi\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [61b15e9]\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [1a5433c]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e8082ef6: Add \u003ccode\u003elegacy/layout\u003c/code\u003e for versions prior to 16.2\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/fuma-nama/fumadocs/commit/99f1066de511270e8c8d3db409f09b868f89364b\"\u003e\u003ccode\u003e99f1066\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3280\"\u003e#3280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/d4c78e4aefdd5b54d853ace1b38eaab4ad4858d8\"\u003e\u003ccode\u003ed4c78e4\u003c/code\u003e\u003c/a\u003e OpenAPI: render deprecated badge for deprecated operations (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3281\"\u003e#3281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/0287f49f65b01c6fc383b162d8ac55ab6ca92b36\"\u003e\u003ccode\u003e0287f49\u003c/code\u003e\u003c/a\u003e UI: improve default OG image\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/1dc86c7dc9a771cc514a288e90d0c369bae52382\"\u003e\u003ccode\u003e1dc86c7\u003c/code\u003e\u003c/a\u003e Core: loosen the range for waku\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/b3052ac079ead8c629e7382c56db643fe2ac0285\"\u003e\u003ccode\u003eb3052ac\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3279\"\u003e#3279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/61f3a27eb5cb8330a51f7e72ea0c005fb6a218f8\"\u003e\u003ccode\u003e61f3a27\u003c/code\u003e\u003c/a\u003e UI: encode storage keys\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/1c9494986d262281492ef1fa6c9d67576f9cd659\"\u003e\u003ccode\u003e1c94949\u003c/code\u003e\u003c/a\u003e Preview: Rate limit config for AI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/8a4e1d1eda2746f353987b11a7242be58b314449\"\u003e\u003ccode\u003e8a4e1d1\u003c/code\u003e\u003c/a\u003e Previiew: Support file-sytem checks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/b160b260b45d2b485cc62da0deaab35b14bcc4a1\"\u003e\u003ccode\u003eb160b26\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3275\"\u003e#3275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/ce1d37af6ceb6491ad9f9a4a66a23c65a0565ece\"\u003e\u003ccode\u003ece1d37a\u003c/code\u003e\u003c/a\u003e Chore: re-define bin.js for fumadocs-mdx\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.5.0...fumadocs-ui@16.8.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lucide-react` from 0.469.0 to 1.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lucide-icons/lucide/releases\"\u003elucide-react's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.16.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003eblender\u003c/code\u003e icon by \u003ca href=\"https://github.com/rrod497\"\u003e\u003ccode\u003e@​rrod497\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/3884\"\u003elucide-icons/lucide#3884\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lucide-icons/lucide/compare/1.15.0...1.16.0\"\u003ehttps://github.com/lucide-icons/lucide/compare/1.15.0...1.16.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: remove 'less' from brand stopwords by \u003ca href=\"https://github.com/jguddas\"\u003e\u003ccode\u003e@​jguddas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4331\"\u003elucide-icons/lucide#4331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(\u003ccode\u003e@​lucide/vue\u003c/code\u003e): Clone slots before passing to icon by \u003ca href=\"https://github.com/axtho\"\u003e\u003ccode\u003e@​axtho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4339\"\u003elucide-icons/lucide#4339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003etext-cursor\u003c/code\u003e icon by \u003ca href=\"https://github.com/jamiemlaw\"\u003e\u003ccode\u003e@​jamiemlaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4340\"\u003elucide-icons/lucide#4340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003elandmark\u003c/code\u003e icon by \u003ca href=\"https://github.com/jamiemlaw\"\u003e\u003ccode\u003e@​jamiemlaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4334\"\u003elucide-icons/lucide#4334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump nitropack from 2.13.1 to 2.13.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4352\"\u003elucide-icons/lucide#4352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump simple-git from 3.33.0 to 3.36.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4349\"\u003elucide-icons/lucide#4349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003ecandy-cane\u003c/code\u003e icon by \u003ca href=\"https://github.com/jguddas\"\u003e\u003ccode\u003e@​jguddas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4148\"\u003elucide-icons/lucide#4148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003evolleyball\u003c/code\u003e icon by \u003ca href=\"https://github.com/jamiemlaw\"\u003e\u003ccode\u003e@​jamiemlaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4338\"\u003elucide-icons/lucide#4338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003echart-no-axes-combined\u003c/code\u003e icon by \u003ca href=\"https://github.com/jguddas\"\u003e\u003ccode\u003e@​jguddas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/3567\"\u003elucide-icons/lucide#3567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icon): added broccoli icon by \u003ca href=\"https://github.com/swastik7805\"\u003e\u003ccode\u003e@​swastik7805\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4263\"\u003elucide-icons/lucide#4263\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(site): Updates to site and updated carbon ads by \u003ca href=\"https://github.com/ericfennis\"\u003e\u003ccode\u003e@​ericfennis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4359\"\u003elucide-icons/lucide#4359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added sticky note variants by \u003ca href=\"https://github.com/Barakudum\"\u003e\u003ccode\u003e@​Barakudum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4348\"\u003elucide-icons/lucide#4348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump astro from 6.1.6 to 6.1.10 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4361\"\u003elucide-icons/lucide#4361\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/axtho\"\u003e\u003ccode\u003e@​axtho\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4339\"\u003elucide-icons/lucide#4339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Barakudum\"\u003e\u003ccode\u003e@​Barakudum\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4348\"\u003elucide-icons/lucide#4348\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lucide-icons/lucide/compare/1.14.0...1.15.0\"\u003ehttps://github.com/lucide-icons/lucide/compare/1.14.0...1.15.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003erepeat-off\u003c/code\u003e icon by \u003ca href=\"https://github.com/jguddas\"\u003e\u003ccode\u003e@​jguddas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/3102\"\u003elucide-icons/lucide#3102\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lucide-icons/lucide/compare/1.13.0...1.14.0\"\u003ehttps://github.com/lucide-icons/lucide/compare/1.13.0...1.14.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(docs): sync URL params with UI state on categories page by \u003ca href=\"https://github.com/taimar\"\u003e\u003ccode\u003e@​taimar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4111\"\u003elucide-icons/lucide#4111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): add \u003ccode\u003ewaves-vertical\u003c/code\u003e icon by \u003ca href=\"https://github.com/jamiemlaw\"\u003e\u003ccode\u003e@​jamiemlaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/3867\"\u003elucide-icons/lucide#3867\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lucide-icons/lucide/compare/1.12.0...1.13.0\"\u003ehttps://github.com/lucide-icons/lucide/compare/1.12.0...1.13.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(icon): add folder-bookmark icon by \u003ca href=\"https://github.com/swastik7805\"\u003e\u003ccode\u003e@​swastik7805\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4262\"\u003elucide-icons/lucide#4262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(readme): Update readme files by \u003ca href=\"https://github.com/ericfennis\"\u003e\u003ccode\u003e@​ericfennis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4320\"\u003elucide-icons/lucide#4320\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003eastroid\u003c/code\u003e icon by \u003ca href=\"https://github.com/whoisBugsbunny\"\u003e\u003ccode\u003e@​whoisBugsbunny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4217\"\u003elucide-icons/lucide#4217\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/lucide-icons/lucide/commit/07c885e6c1f9952965ba388b7fd2bb7c4d416a67\"\u003e\u003ccode\u003e07c885e\u003c/code\u003e\u003c/a\u003e fix(docs): fix zephyr-cloud URL in readmes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/50d8af5a1012e188f3d71ac8f1fc0fba1aab5357\"\u003e\u003ccode\u003e50d8af5\u003c/code\u003e\u003c/a\u003e docs(readme): Update readme files (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4320\"\u003e#4320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/653e44b83293567ff24dcb90ca1094a9cf0a042a\"\u003e\u003ccode\u003e653e44b\u003c/code\u003e\u003c/a\u003e feat(packages): use .mjs for ESM bundles (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4285\"\u003e#4285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/7623e23f787fe78e5075a613fd22da2cecbb9b1b\"\u003e\u003ccode\u003e7623e23\u003c/code\u003e\u003c/a\u003e feat(docs): add Zephyr Cloud to Hero Backers tier \u0026amp; rework updateSponsors scr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/dada0a82970d3733d1d716e2089591c538272a39\"\u003e\u003ccode\u003edada0a8\u003c/code\u003e\u003c/a\u003e fix(lucide-react): Fix dynamic imports (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4210\"\u003e#4210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/a6e648a66ff470c2255d3666765fd73cfcc185ff\"\u003e\u003ccode\u003ea6e648a\u003c/code\u003e\u003c/a\u003e fix(lucide-react): correct client directives in RSC files (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4189\"\u003e#4189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/1f010a357a21c7a8c5e1f92dd90f09d76a04e2dd\"\u003e\u003ccode\u003e1f010a3\u003c/code\u003e\u003c/a\u003e fix(lucide-react): Fixes provider export and RSC render issues (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4175\"\u003e#4175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/484f2c9cd377dbeb536f63d4b183ecfd26947014\"\u003e\u003ccode\u003e484f2c9\u003c/code\u003e\u003c/a\u003e docs(version-1): Version 1 website (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4142\"\u003e#4142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/a0e202d759da95c243b541f8d3c1c26eada32b2e\"\u003e\u003ccode\u003ea0e202d\u003c/code\u003e\u003c/a\u003e feat(packages/angular): add new \u003ccode\u003e@​lucide/angular\u003c/code\u003e package (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/3897\"\u003e#3897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/c5b155ec37f0217bfd85e309873029379df473ac\"\u003e\u003ccode\u003ec5b155e\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of \u003ca href=\"https://github.com/lucide-icons/lucide\"\u003ehttps://github.com/lucide-icons/lucide\u003c/a\u003e into next\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lucide-icons/lucide/commits/1.16.0/packages/lucide-react\"\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 lucide-react since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mermaid` from 11.14.0 to 11.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mermaid-js/mermaid/releases\"\u003emermaid's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emermaid@11.15.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/mermaid-js/mermaid/pull/7174\"\u003e#7174\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/0aca21739c0d1fcaaa206e04a6cd574ebc415483\"\u003e\u003ccode\u003e0aca217\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/milesspencer35\"\u003e\u003ccode\u003e@​milesspencer35\u003c/code\u003e\u003c/a\u003e! - feat(sequence): Add support for decimal start and increment values in the \u003ccode\u003eautonumber\u003c/code\u003e directive\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7512\"\u003e#7512\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/8e17492f7365ba50896382feb69a23efd9d8a22d\"\u003e\u003ccode\u003e8e17492\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/aruncveli\"\u003e\u003ccode\u003e@​aruncveli\u003c/code\u003e\u003c/a\u003e! - feat(flowchart): add datastore shape\u003c/p\u003e\n\u003cp\u003eIn Data flow diagrams, a datastore/warehouse/file/database is used to represent data persistence. It is denoted by a rectangle with only top and bottom borders, and can be used in flowcharts with \u003ccode\u003eA@{ shape: datastore, label: \u0026quot;Datastore\u0026quot; }\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/6440\"\u003e#6440\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/9ad8dde6d049adde85d8ed2d476c09b5820f3f4b\"\u003e\u003ccode\u003e9ad8dde\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/yordis\"\u003e\u003ccode\u003e@​yordis\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/lgazo\"\u003e\u003ccode\u003e@​lgazo\u003c/code\u003e\u003c/a\u003e! - feat: add Event Modeling diagram\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7707\"\u003e#7707\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/27db774627be1cee881961dfd0d2cb21cd01b79d\"\u003e\u003ccode\u003e27db774\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/txmxthy\"\u003e\u003ccode\u003e@​txmxthy\u003c/code\u003e\u003c/a\u003e! - feat(architecture): expose four fcose layout knobs for \u003ccode\u003earchitecture-beta\u003c/code\u003e diagrams (\u003ccode\u003enodeSeparation\u003c/code\u003e, \u003ccode\u003eidealEdgeLengthMultiplier\u003c/code\u003e, \u003ccode\u003eedgeElasticity\u003c/code\u003e, \u003ccode\u003enumIter\u003c/code\u003e) so authors can tune layout density and spread overlapping siblings without changing diagram source\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7604\"\u003e#7604\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/bf9502fb6012a4b724679b401ac928f5ee55161c\"\u003e\u003ccode\u003ebf9502f\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/M-a-c\"\u003e\u003ccode\u003e@​M-a-c\u003c/code\u003e\u003c/a\u003e! - feat(class): add nested namespace support for class diagrams via dot notation and syntactic nesting\u003c/p\u003e\n\u003cp\u003eIf you have namespaces in class diagrams that use \u003ccode\u003e.\u003c/code\u003es already and want to render them without nesting (≤v11.14.0 behaviour), you can use set \u003ccode\u003eclass.hierarchicalNamespaces=false\u003c/code\u003e in your mermaid config:\u003c/p\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003econfig:\n  class:\n    hierarchicalNamespaces: false\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7272\"\u003e#7272\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/88cdd3dc0aab9577174561b04e14760c565a232b\"\u003e\u003ccode\u003e88cdd3d\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/xinbenlv\"\u003e\u003ccode\u003e@​xinbenlv\u003c/code\u003e\u003c/a\u003e! - feat(sankey): add outlined label style, configurable nodeWidth/nodePadding, and custom node colors\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/e9b0f34d8d82a6260077764ee45e1d7d90957a0f\"\u003e\u003ccode\u003ee9b0f34\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix: prevent unbalanced CSS styles in classDefs\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/37ff937f1da2e19f882fd1db01235db4d01f4056\"\u003e\u003ccode\u003e37ff937\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix: create CSS styles using the CSSOM\u003c/p\u003e\n\u003cp\u003eThis removes some invalid CSS and normalizes some CSS formatting.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7508\"\u003e#7508\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/bfe60cc67b9a6dec64f9161f58e4d24a06c42b65\"\u003e\u003ccode\u003ebfe60cc\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/biiab\"\u003e\u003ccode\u003e@​biiab\u003c/code\u003e\u003c/a\u003e! - fix(stateDiagram): \u003ccode\u003eend note\u003c/code\u003e now only closes a note when used on a new line\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/faafb5d49106dd32c367f3882505f2dd625aa30e\"\u003e\u003ccode\u003efaafb5d\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix(gantt): add iteration limit for \u003ccode\u003eexcludes\u003c/code\u003e field\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/65f8be2a42faf869b811469571983cba7eeeca99\"\u003e\u003ccode\u003e65f8be2\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix: disallow some CSS at-rules in custom CSS\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7726\"\u003e#7726\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/1502f32f3c5fb944925b0c527fbbde3c4f041824\"\u003e\u003ccode\u003e1502f32\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/aloisklink\"\u003e\u003ccode\u003e@​aloisklink\u003c/code\u003e\u003c/a\u003e! - fix(wardley): fix unnecessary sanitization of text\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7578\"\u003e#7578\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/1f98db8e326299ac97a2fa60abfd509d8f5f16e2\"\u003e\u003ccode\u003e1f98db8\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/Gaston202\"\u003e\u003ccode\u003e@​Gaston202\u003c/code\u003e\u003c/a\u003e! - fix(class): self-referential class multiplicity labels no longer rendered multiple times\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7560\"\u003e#7560\u003c/a\u003e. Resolves an issue where cardinality labels on self-referential class relationships were rendered three times due to edge splitting in the dagre layout. The fix ensures that each sub-edge only carries its relevant label positions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7592\"\u003e#7592\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/2343e38498a3b31f8ce5e79f1f009e0b56fbe086\"\u003e\u003ccode\u003e2343e38\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/knsv-bot\"\u003e\u003ccode\u003e@​knsv-bot\u003c/code\u003e\u003c/a\u003e! - fix(sequence): add background box behind alt/else section title labels in sequence diagrams\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7589\"\u003e#7589\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/7fb9509b8b5cb1dc48519dc60cf6cdc6afba0462\"\u003e\u003ccode\u003e7fb9509\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/NYCU-Chung\"\u003e\u003ccode\u003e@​NYCU-Chung\u003c/code\u003e\u003c/a\u003e! - fix(block): prevent column widths from shrinking when mixing different column spans\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7632\"\u003e#7632\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/3f9e0f15bedc1e2c71ddb6b34192d1a21124cfc2\"\u003e\u003ccode\u003e3f9e0f1\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ekiauhce\"\u003e\u003ccode\u003e@​ekiauhce\u003c/code\u003e\u003c/a\u003e! - fix(sequence): correct messageAlign label position for right-to-left arrows in sequence diagrams\u003c/p\u003e\n\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/mermaid-js/mermaid/commit/41646dfd43ac83f001b03c70605feb036afae46d\"\u003e\u003ccode\u003e41646df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7739\"\u003e#7739\u003c/a\u003e from aloisklink/ci/fix-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/2671f5c44a1515960ebc41c09a365c41860f95ee\"\u003e\u003ccode\u003e2671f5c\u003c/code\u003e\u003c/a\u003e docs: fix v11.15.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/f4bf04b5db8bed603e40ed3d5ce5228d6b07754e\"\u003e\u003ccode\u003ef4bf04b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7738\"\u003e#7738\u003c/a\u003e from mermaid-js/changeset-release/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/abfb563e1dcbd46d617f44a6361bd6d926dc6289\"\u003e\u003ccode\u003eabfb563\u003c/code\u003e\u003c/a\u003e Version Packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/60b289f428d0a0832ad95ed4e1fb326344e23532\"\u003e\u003ccode\u003e60b289f\u003c/code\u003e\u003c/a\u003e Release Candidate 11.15.0 (\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7737\"\u003e#7737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/d37c0db39ca2405b4473361063df2c47109dc2c9\"\u003e\u003ccode\u003ed37c0db\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7730\"\u003e#7730\u003c/a\u003e from aloisklink/fix/fix-edgeLabelRightLeft-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/5ab5a2895fa8b7e90de85b43a4b99aa50b39b0f1\"\u003e\u003ccode\u003e5ab5a28\u003c/code\u003e\u003c/a\u003e docs: improve nested namespace changeset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/18f8b4c5bf67aface3485272b48042f2fdd6fad2\"\u003e\u003ccode\u003e18f8b4c\u003c/code\u003e\u003c/a\u003e fix: revert endEdgeLabelLeft/endEdgeLabelRight change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/504b2eb73d4d827baa817efd47ab6f44ae769b5a\"\u003e\u003ccode\u003e504b2eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7726\"\u003e#7726\u003c/a\u003e from aloisklink/fix/correct-unnecessary-html-escapes...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/1502f32f3c5fb944925b0c527fbbde3c4f041824\"\u003e\u003ccode\u003e1502f32\u003c/code\u003e\u003c/a\u003e fix(wardley): fix unnecessary sanitization of text\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mermaid-js/mermaid/compare/mermaid@11.14.0...mermaid@11.15.0\"\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.5.3 to 21.0.1\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@​commitlint/cli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\"\u003e21.0.1\u003c/a\u003e (2026-05-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(load): only resolve relative formatter paths 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/4761\"\u003econventional-changelog/commitlint#4761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(types): add presetConfig to ParserPreset interface by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4749\"\u003econventional-changelog/commitlint#4749\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCI\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: stop spawning schedule jobs on contributors' forks by \u003ca href=\"https://github.com/knocte\"\u003e\u003ccode\u003e@​knocte\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4753\"\u003econventional-changelog/commitlint#4753\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add weekly non-blocking pnpm audit 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/4766\"\u003econventional-changelog/commitlint#4766\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/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4749\"\u003econventional-changelog/commitlint#4749\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/v21.0.0...v21.0.1\"\u003ehttps://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev21.0.0\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003eHeads-up: --legacy-output is a transitional escape hatch. It will be removed in a future major release. Plan to migrate your parsers / snapshots to the new format during the v21 lifecycle.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.5.3...v21.0.0\"\u003e21.0.0\u003c/a\u003e (2026-05-08)\u003c/h2\u003e\n\u003ch3\u003eBreaking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore!: minimum node version v22 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4679\"\u003e#4679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat!: show input from a new line by \u003ca href=\"https://github.com/knocte\"\u003e\u003ccode\u003e@​knocte\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4727\"\u003e#4727\u003c/a\u003e (adds --legacy-output flag)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: widen cz-commitlint inquirer peer dep to support v9–v12 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4682\"\u003e#4682\u003c/a\u003e — closes \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4554\"\u003e#4554\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternals (Node 22 cleanup)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: replace dependencies with Node 22 built-ins by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4681\"\u003e#4681\u003c/a\u003e — drops glob, fast-glob, import-meta-resolve, minimist, fs-extra\u003c/li\u003e\n\u003cli\u003erefactor: replace read-pkg with native fs.readFile + JSON.parse by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4742\"\u003e#4742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dependency yargs to v18 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4686\"\u003e#4686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove cross-env, move env vars to vitest config by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4684\"\u003e#4684\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependency updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: update dependency \u003ccode\u003e@​types/node\u003c/code\u003e to v22.19.17 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4739\"\u003e#4739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dependency \u003ccode\u003e@​swc/core\u003c/code\u003e to v1.15.33 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4743\"\u003e#4743\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@​commitlint/cli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\"\u003e21.0.1\u003c/a\u003e (2026-05-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\u003ch1\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.5.3...v21.0.0\"\u003e21.0.0\u003c/a\u003e (2026-05-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003echore!: minimum node version v22 (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4679\"\u003e#4679\u003c/a\u003e) (\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/ac2b3f4a947670e46af9a738881ba14158f0987a\"\u003eac2b3f4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/issues/4679\"\u003e#4679\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop node v18 and v20 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eBump engines to \u0026gt;=v22 in all 39 package.json files\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003e@​types/node\u003c/code\u003e to ^22.0.0\u003c/li\u003e\n\u003cli\u003eUpdate CI matrix to [22, 24]\u003c/li\u003e\n\u003cli\u003eUpdate Ubuntu baseline job to ubuntu:26.04\u003c/li\u003e\n\u003cli\u003eUpdate Dockerfile.ci, .mise.toml, .codesandbox/ci.json\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit hook to use --ignore-engines\u003c/li\u003e\n\u003cli\u003eUpdate README and docs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCo-authored-by: Claude Opus 4.6 (1M context) \u003ca href=\"mailto:noreply@anthropic.com\"\u003enoreply@anthropic.com\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/conventional-changelog/commitlint/commit/db8d7d6461d721fe2561ce4307e4069eaf6dcc8c\"\u003e\u003ccode\u003edb8d7d6\u003c/code\u003e\u003c/a\u003e v21.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/1329a25fd6f13b993fdf4e8c1b5a25ff2bf7ee07\"\u003e\u003ccode\u003e1329a25\u003c/code\u003e\u003c/a\u003e chore: migrate to pnpm (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4762\"\u003e#4762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/db39968cdcf7b655e5951d2f550edadc4f0768ef\"\u003e\u003ccode\u003edb39968\u003c/code\u003e\u003c/a\u003e chore: pre pnpm cleanup (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4759\"\u003e#4759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/6099ae50aa71fe7f99d75af1b8d9537aa7685747\"\u003e\u003ccode\u003e6099ae5\u003c/code\u003e\u003c/a\u003e chore: replace eslint with oxlint (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4756\"\u003e#4756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/f081a8ef93019bb8b07f39c756f6d4a052020d3b\"\u003e\u003ccode\u003ef081a8e\u003c/code\u003e\u003c/a\u003e v21.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/40d7e36ffac0986ad0988fedd39a7ebcfde93d3c\"\u003e\u003ccode\u003e40d7e36\u003c/code\u003e\u003c/a\u003e feat!: show input from a new line (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4727\"\u003e#4727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/44c31743ded411d949e935247e8079e5085d8239\"\u003e\u003ccode\u003e44c3174\u003c/code\u003e\u003c/a\u003e chore: update dependency yargs to v18 \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4432\"\u003e#4432\u003c/a\u003e (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4686\"\u003e#4686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/ac01464b453a818e01f2f232a307b61a66167920\"\u003e\u003ccode\u003eac01464\u003c/code\u003e\u003c/a\u003e chore: replace dependencies with Node 22 built-ins (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4681\"\u003e#4681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/ac2b3f4a947670e46af9a738881ba14158f0987a\"\u003e\u003ccode\u003eac2b3f4\u003c/code\u003e\u003c/a\u003e chore!: minimum node version v22 (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4679\"\u003e#4679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/conventional-changelog/commitlint/commits/v21.0.1/@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.5.3 to 21.0.1\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@​commitlint/config-conventional's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\"\u003e21.0.1\u003c/a\u003e (2026-05-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(load): only resolve relative formatter paths 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/4761\"\u003econventional-changelog/commitlint#4761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(types): add presetConfig to ParserPreset interface by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4749\"\u003econventional-changelog/commitlint#4749\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCI\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: stop spawning schedule jobs on contributors' forks by \u003ca href=\"https://github.com/knocte\"\u003e\u003ccode\u003e@​knocte\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4753\"\u003econventional-changelog/commitlint#4753\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add weekly non-blocking pnpm audit 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/4766\"\u003econventional-changelog/commitlint#4766\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/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4749\"\u003econventional-changelog/commitlint#4749\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/v21.0.0...v21.0.1\"\u003ehttps://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev21.0.0\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003eHeads-up: --legacy-output is a transitional escape hatch. It will be removed in a future major release. Plan to migrate your parsers / snapshots to the new format during the v21 lifecycle.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.5.3...v21.0.0\"\u003e21.0.0\u003c/a\u003e (2026-05-08)\u003c/h2\u003e\n\u003ch3\u003eBreaking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore!: minimum node version v22 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4679\"\u003e#4679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat!: show input from a new line by \u003ca href=\"https://github.com/knocte\"\u003e\u003ccode\u003e@​knocte\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4727\"\u003e#4727\u003c/a\u003e (adds --legacy-output flag)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: widen cz-commitlint inquirer peer dep to support v9–v12 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4682\"\u003e#4682\u003c/a\u003e — closes \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4554\"\u003e#4554\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternals (Node 22 cleanup)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: replace dependencies with Node 22 built-ins by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4681\"\u003e#4681\u003c/a\u003e — drops glob, fast-glob, import-meta-resolve, minimist, fs-extra\u003c/li\u003e\n\u003cli\u003erefactor: replace read-pkg with native fs.readFile + JSON.parse by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4742\"\u003e#4742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dependency yargs to v18 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4686\"\u003e#4686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove cross-env, move env vars to vitest config by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4684\"\u003e#4684\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependency updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: update dependency \u003ccode\u003e@​types/node\u003c/code\u003e to v22.19.17 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4739\"\u003e#4739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dependency \u003ccode\u003e@​swc/core\u003c/code\u003e to v1.15.33 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4743\"\u003e#4743\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@​commitlint/config-conventional's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\"\u003e21.0.1\u003c/a\u003e (2026-05-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\u003ch1\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.5.3...v21.0.0\"\u003e21.0.0\u003c/a\u003e (2026-05-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003echore!: minimum node version v22 (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4679\"\u003e#4679\u003c/a\u003e) (\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/ac2b3f4a947670e46af9a738881ba14158f0987a\"\u003eac2b3f4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/issues/4679\"\u003e#4679\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop node v18 and v20 su...\n\n_Description has been truncated_","html_url":"https://github.com/ofri-peretz/eslint/pull/102","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ofri-peretz%2Feslint/issues/102","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/102/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":"4377888612","node_id":"PR_kwDOSTgCzs7YE2Wk","number":3,"state":"open","title":"build(deps-dev): bump @angular-eslint/eslint-plugin from 13.0.1 to 21.3.1","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-04T15:53:45.000Z","updated_at":"2026-05-04T15:54:21.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"@angular-eslint/eslint-plugin","old_version":"13.0.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":null,"ecosystem":"npm"},"body":"Bumps [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) from 13.0.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@​angular-eslint/eslint-plugin'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/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.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\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\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\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\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\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\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\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\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:\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\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\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-implicit-takeuntil-destroyed] add rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2803\"\u003e#2803\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGabriel J. \u003ca href=\"https://github.com/rznn7\"\u003e\u003ccode\u003e@​rznn7\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.1.0 (2025-12-08)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e add prefer-signal-model rule to encourage using model() for two-way bindings (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2818\"\u003e#2818\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/1000391b2041c3bae7a4687273291959a9289fd9\"\u003e\u003ccode\u003e1000391\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-uncalled-signals] properly handle statements with una...\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/eslint-plugin/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/ffcc447713c47e0ebca1886e3a2216222f99966a\"\u003e\u003ccode\u003effcc447\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-uncalled-signals] detect \u003ccode\u003eSignal\u003c/code\u003e type correctly (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/65f2540c19820548b4e61dbbb9fddedf2e2031be\"\u003e\u003ccode\u003e65f2540\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): [no-uncalled-signals] detect Signal member access (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2848\"\u003e#2848\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/eslint-plugin/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/d86425178e40e8b628c45d848dc122403c0859bb\"\u003e\u003ccode\u003ed864251\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): add computed-must-return rule (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2882\"\u003e#2882\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/eslint-plugin\"\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/eslint-plugin\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/eslint-plugin\u0026package-manager=npm_and_yarn\u0026previous-version=13.0.1\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/skygenesisenterprise/zapper-icon/pull/3","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/skygenesisenterprise%2Fzapper-icon/issues/3","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3/packages"},{"uuid":"4354855277","node_id":"PR_kwDORlHGQM7W7z2R","number":25,"state":"open","title":"chore(deps): bump the console group across 1 directory with 18 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-04-30T02:12:32.000Z","updated_at":"2026-04-30T02:12:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"console","update_count":18,"packages":[{"name":"@bufbuild/protobuf","old_version":"2.11.0","new_version":"2.12.0","repository_url":"https://github.com/bufbuild/protobuf-es"},{"name":"@connectrpc/connect","old_version":"2.0.4","new_version":"2.1.1","repository_url":"https://github.com/connectrpc/connect-es"},{"name":"@connectrpc/connect-web","old_version":"2.0.4","new_version":"2.1.1","repository_url":"https://github.com/connectrpc/connect-es"},{"name":"@netlify/build-info","old_version":"10.3.0","new_version":"10.5.1","repository_url":"https://github.com/netlify/build"},{"name":"@tanstack/angular-query-experimental","old_version":"5.90.24","new_version":"5.100.6","repository_url":"https://github.com/TanStack/query"},{"name":"libphonenumber-js","old_version":"1.12.35","new_version":"1.12.42"},{"name":"opentype.js","old_version":"1.3.4","new_version":"1.3.5","repository_url":"https://github.com/opentypejs/opentype.js"},{"name":"posthog-js","old_version":"1.336.1","new_version":"1.372.5","repository_url":"https://github.com/PostHog/posthog-js"},{"name":"zone.js","old_version":"0.15.1","new_version":"0.16.1","repository_url":"https://github.com/angular/angular"},{"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/template-parser","old_version":"21.3.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@typescript-eslint/eslint-plugin","old_version":"8.57.0","new_version":"8.59.1","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"@typescript-eslint/parser","old_version":"8.57.0","new_version":"8.59.1","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"eslint","old_version":"10.0.0","new_version":"10.2.1","repository_url":"https://github.com/eslint/eslint"},{"name":"globals","old_version":"17.3.0","new_version":"17.5.0","repository_url":"https://github.com/sindresorhus/globals"},{"name":"karma-jasmine-html-reporter","old_version":"2.1.0","new_version":"2.2.0","repository_url":"https://github.com/dfederm/karma-jasmine-html-reporter"},{"name":"prettier","old_version":"3.8.1","new_version":"3.8.3","repository_url":"https://github.com/prettier/prettier"}],"path":null,"ecosystem":"npm"},"body":"Bumps the console group with 18 updates in the /console directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@bufbuild/protobuf](https://github.com/bufbuild/protobuf-es/tree/HEAD/packages/protobuf) | `2.11.0` | `2.12.0` |\n| [@connectrpc/connect](https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect) | `2.0.4` | `2.1.1` |\n| [@connectrpc/connect-web](https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web) | `2.0.4` | `2.1.1` |\n| [@netlify/build-info](https://github.com/netlify/build/tree/HEAD/packages/build-info) | `10.3.0` | `10.5.1` |\n| [@tanstack/angular-query-experimental](https://github.com/TanStack/query/tree/HEAD/packages/angular-query-experimental) | `5.90.24` | `5.100.6` |\n| [libphonenumber-js](https://gitlab.com/catamphetamine/libphonenumber-js) | `1.12.35` | `1.12.42` |\n| [opentype.js](https://github.com/opentypejs/opentype.js) | `1.3.4` | `1.3.5` |\n| [posthog-js](https://github.com/PostHog/posthog-js) | `1.336.1` | `1.372.5` |\n| [zone.js](https://github.com/angular/angular/tree/HEAD/packages/zone.js) | `0.15.1` | `0.16.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/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `21.3.0` | `21.3.1` |\n| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.57.0` | `8.59.1` |\n| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.57.0` | `8.59.1` |\n| [eslint](https://github.com/eslint/eslint) | `10.0.0` | `10.2.1` |\n| [globals](https://github.com/sindresorhus/globals) | `17.3.0` | `17.5.0` |\n| [karma-jasmine-html-reporter](https://github.com/dfederm/karma-jasmine-html-reporter) | `2.1.0` | `2.2.0` |\n| [prettier](https://github.com/prettier/prettier) | `3.8.1` | `3.8.3` |\n\n\nUpdates `@bufbuild/protobuf` from 2.11.0 to 2.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bufbuild/protobuf-es/releases\"\u003e\u003ccode\u003e@​bufbuild/protobuf\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGracefully handle Number for BigInt fields by \u003ca href=\"https://github.com/timostamm\"\u003e\u003ccode\u003e@​timostamm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bufbuild/protobuf-es/pull/1346\"\u003ebufbuild/protobuf-es#1346\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eexactOptionalPropertyTypes\u003c/code\u003e by \u003ca href=\"https://github.com/haines\"\u003e\u003ccode\u003e@​haines\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bufbuild/protobuf-es/pull/1371\"\u003ebufbuild/protobuf-es#1371\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix UTF-8 validation for proto3 and edition feature \u003ccode\u003eutf8_validation\u003c/code\u003e by \u003ca href=\"https://github.com/emcfarlane\"\u003e\u003ccode\u003e@​emcfarlane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bufbuild/protobuf-es/pull/1386\"\u003ebufbuild/protobuf-es#1386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix binary tag parse validation to reject overlong values by \u003ca href=\"https://github.com/emcfarlane\"\u003e\u003ccode\u003e@​emcfarlane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bufbuild/protobuf-es/pull/1387\"\u003ebufbuild/protobuf-es#1387\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Any JSON encoding for messages without a custom JSON representation by \u003ca href=\"https://github.com/emcfarlane\"\u003e\u003ccode\u003e@​emcfarlane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bufbuild/protobuf-es/pull/1388\"\u003ebufbuild/protobuf-es#1388\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate to protocolbuffers/protobuf v34.0 by \u003ca href=\"https://github.com/emcfarlane\"\u003e\u003ccode\u003e@​emcfarlane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bufbuild/protobuf-es/pull/1385\"\u003ebufbuild/protobuf-es#1385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate conformance tests to protocolbuffers/protobuf v34.0 by \u003ca href=\"https://github.com/emcfarlane\"\u003e\u003ccode\u003e@​emcfarlane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bufbuild/protobuf-es/pull/1391\"\u003ebufbuild/protobuf-es#1391\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/emcfarlane\"\u003e\u003ccode\u003e@​emcfarlane\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bufbuild/protobuf-es/pull/1386\"\u003ebufbuild/protobuf-es#1386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/bufbuild/protobuf-es/compare/v2.11.0...v2.12.0\"\u003ehttps://github.com/bufbuild/protobuf-es/compare/v2.11.0...v2.12.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/bufbuild/protobuf-es/commit/63a85470d21154c4ed069b2bc196b294327830f3\"\u003e\u003ccode\u003e63a8547\u003c/code\u003e\u003c/a\u003e Release 2.12.0 (\u003ca href=\"https://github.com/bufbuild/protobuf-es/tree/HEAD/packages/protobuf/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bufbuild/protobuf-es/commit/859013cd4dfb49061da35bd279817dd4fa84c666\"\u003e\u003ccode\u003e859013c\u003c/code\u003e\u003c/a\u003e Update to protocolbuffers/protobuf v34.0 (\u003ca href=\"https://github.com/bufbuild/protobuf-es/tree/HEAD/packages/protobuf/issues/1385\"\u003e#1385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bufbuild/protobuf-es/commit/58c72f76f538369406d427b0e5b60d35e6cba195\"\u003e\u003ccode\u003e58c72f7\u003c/code\u003e\u003c/a\u003e Fix Any JSON encoding for messages without a custom JSON representation (\u003ca href=\"https://github.com/bufbuild/protobuf-es/tree/HEAD/packages/protobuf/issues/1388\"\u003e#1388\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bufbuild/protobuf-es/commit/32a1435070dd3d7422239eaf4d4695be4057cc4f\"\u003e\u003ccode\u003e32a1435\u003c/code\u003e\u003c/a\u003e Reject overlong varints and malformed wire-format tags (\u003ca href=\"https://github.com/bufbuild/protobuf-es/tree/HEAD/packages/protobuf/issues/1387\"\u003e#1387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bufbuild/protobuf-es/commit/e0df1ba7fe83654170eda2fa8008940ae06340e6\"\u003e\u003ccode\u003ee0df1ba\u003c/code\u003e\u003c/a\u003e Resolve utf8_validation feature and validate UTF-8 on binary input (\u003ca href=\"https://github.com/bufbuild/protobuf-es/tree/HEAD/packages/protobuf/issues/1386\"\u003e#1386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bufbuild/protobuf-es/commit/6be44080e8c3808818c61a5eb3fc75ecb847ee61\"\u003e\u003ccode\u003e6be4408\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003eexactOptionalPropertyTypes\u003c/code\u003e (\u003ca href=\"https://github.com/bufbuild/protobuf-es/tree/HEAD/packages/protobuf/issues/1371\"\u003e#1371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bufbuild/protobuf-es/commit/2ca7058cff818d3b3df0f245b6359880959e9992\"\u003e\u003ccode\u003e2ca7058\u003c/code\u003e\u003c/a\u003e Fix minor JSDoc issues (\u003ca href=\"https://github.com/bufbuild/protobuf-es/tree/HEAD/packages/protobuf/issues/1373\"\u003e#1373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bufbuild/protobuf-es/commit/b9e4d8b45bbbe5a8fe1e1d44fd330df333135aac\"\u003e\u003ccode\u003eb9e4d8b\u003c/code\u003e\u003c/a\u003e Gracefully handle Number for BigInt fields (\u003ca href=\"https://github.com/bufbuild/protobuf-es/tree/HEAD/packages/protobuf/issues/1346\"\u003e#1346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/bufbuild/protobuf-es/commits/v2.12.0/packages/protobuf\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@connectrpc/connect` from 2.0.4 to 2.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/connectrpc/connect-es/releases\"\u003e\u003ccode\u003e@​connectrpc/connect\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDo not hold on to HTTP/2 connections after receiving GOAWAY without open streams by \u003ca href=\"https://github.com/timostamm\"\u003e\u003ccode\u003e@​timostamm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1566\"\u003econnectrpc/connect-es#1566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Protovalidate (\u003ccode\u003e@​connectrpc/validate\u003c/code\u003e) to README by \u003ca href=\"https://github.com/jrinehart-buf\"\u003e\u003ccode\u003e@​jrinehart-buf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1595\"\u003econnectrpc/connect-es#1595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix memory leak in Http2SessionManager's verify step by \u003ca href=\"https://github.com/ttyniwa\"\u003e\u003ccode\u003e@​ttyniwa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1616\"\u003econnectrpc/connect-es#1616\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/jrinehart-buf\"\u003e\u003ccode\u003e@​jrinehart-buf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1595\"\u003econnectrpc/connect-es#1595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ttyniwa\"\u003e\u003ccode\u003e@​ttyniwa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1616\"\u003econnectrpc/connect-es#1616\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/connectrpc/connect-es/compare/v2.1.0...v2.1.1\"\u003ehttps://github.com/connectrpc/connect-es/compare/v2.1.0...v2.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003c/p\u003e\n\u003cp\u003eTypeScript 5.9 includes breaking changes to lib.d.ts, forcing us to change return types for some functions from \u003ccode\u003eUint8Array\u003c/code\u003e to \u003ccode\u003eUint8Array\u0026lt;ArrayBuffer\u0026gt;\u003c/code\u003e. This is unlikely to affect you, but if it does, see \u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect/issues/1560\"\u003e#1560\u003c/a\u003e for details.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to TypeScript 5.9 and change return types from \u003ccode\u003eUint8Array\u003c/code\u003e to \u003ccode\u003eUint8Array\u0026lt;ArrayBuffer\u0026gt;\u003c/code\u003e by \u003ca href=\"https://github.com/timostamm\"\u003e\u003ccode\u003e@​timostamm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1560\"\u003econnectrpc/connect-es#1560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for Node.js 18 by \u003ca href=\"https://github.com/timostamm\"\u003e\u003ccode\u003e@​timostamm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1559\"\u003econnectrpc/connect-es#1559\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/connectrpc/connect-es/compare/v2.0.4...v2.1.0\"\u003ehttps://github.com/connectrpc/connect-es/compare/v2.0.4...v2.1.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/connectrpc/connect-es/commit/bf6b19103f110b4bf61d5d326c2f1443fc2eb155\"\u003e\u003ccode\u003ebf6b191\u003c/code\u003e\u003c/a\u003e Release 2.1.1 (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect/issues/1618\"\u003e#1618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/6585c9e5d42e0f667b09ed28f7443996dc50b288\"\u003e\u003ccode\u003e6585c9e\u003c/code\u003e\u003c/a\u003e Bump the bench group across 1 directory with 4 updates (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect/issues/1584\"\u003e#1584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/f27d8bf86b964dead42f1d3f9d136dd1053d691a\"\u003e\u003ccode\u003ef27d8bf\u003c/code\u003e\u003c/a\u003e Bump jasmine and \u003ccode\u003e@​types/jasmine\u003c/code\u003e (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect/issues/1611\"\u003e#1611\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/54f492b0d7d9b5774974e645f55ff9ed57fd943e\"\u003e\u003ccode\u003e54f492b\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003e@​bufbuild/buf\u003c/code\u003e from 1.57.2 to 1.59.0 (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect/issues/1613\"\u003e#1613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/5a9d53cebbf1f76edf63470ed5e0edd6c4951300\"\u003e\u003ccode\u003e5a9d53c\u003c/code\u003e\u003c/a\u003e Minor improvement for docs (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect/issues/1602\"\u003e#1602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/9168232adae5545827e138292fa5fe93774c9461\"\u003e\u003ccode\u003e9168232\u003c/code\u003e\u003c/a\u003e Add Protovalidate (\u003ccode\u003e@​connectrpc/validate\u003c/code\u003e) to README (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect/issues/1595\"\u003e#1595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/332f9b5503a80ad59c309482c0364015947c635e\"\u003e\u003ccode\u003e332f9b5\u003c/code\u003e\u003c/a\u003e Bump jasmine from 5.10.0 to 5.11.0 (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect/issues/1590\"\u003e#1590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/1e0eb151a7c01e324787e6efb40639117fb76b82\"\u003e\u003ccode\u003e1e0eb15\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003e@​bufbuild/buf\u003c/code\u003e from 1.57.0 to 1.57.2 (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect/issues/1586\"\u003e#1586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/78b40abd3ecd2f4fa2dda6382e371be8e9de3f6d\"\u003e\u003ccode\u003e78b40ab\u003c/code\u003e\u003c/a\u003e Bump jasmine and \u003ccode\u003e@​types/jasmine\u003c/code\u003e (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect/issues/1572\"\u003e#1572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/cedb07dcf83da91dc152b3788b18b752a3c2a281\"\u003e\u003ccode\u003ecedb07d\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003e@​bufbuild/buf\u003c/code\u003e from 1.56.0 to 1.57.0 (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/connectrpc/connect-es/commits/v2.1.1/packages/connect\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@connectrpc/connect-web` from 2.0.4 to 2.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/connectrpc/connect-es/releases\"\u003e\u003ccode\u003e@​connectrpc/connect-web\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDo not hold on to HTTP/2 connections after receiving GOAWAY without open streams by \u003ca href=\"https://github.com/timostamm\"\u003e\u003ccode\u003e@​timostamm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1566\"\u003econnectrpc/connect-es#1566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Protovalidate (\u003ccode\u003e@​connectrpc/validate\u003c/code\u003e) to README by \u003ca href=\"https://github.com/jrinehart-buf\"\u003e\u003ccode\u003e@​jrinehart-buf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1595\"\u003econnectrpc/connect-es#1595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix memory leak in Http2SessionManager's verify step by \u003ca href=\"https://github.com/ttyniwa\"\u003e\u003ccode\u003e@​ttyniwa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1616\"\u003econnectrpc/connect-es#1616\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/jrinehart-buf\"\u003e\u003ccode\u003e@​jrinehart-buf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1595\"\u003econnectrpc/connect-es#1595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ttyniwa\"\u003e\u003ccode\u003e@​ttyniwa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1616\"\u003econnectrpc/connect-es#1616\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/connectrpc/connect-es/compare/v2.1.0...v2.1.1\"\u003ehttps://github.com/connectrpc/connect-es/compare/v2.1.0...v2.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003c/p\u003e\n\u003cp\u003eTypeScript 5.9 includes breaking changes to lib.d.ts, forcing us to change return types for some functions from \u003ccode\u003eUint8Array\u003c/code\u003e to \u003ccode\u003eUint8Array\u0026lt;ArrayBuffer\u0026gt;\u003c/code\u003e. This is unlikely to affect you, but if it does, see \u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web/issues/1560\"\u003e#1560\u003c/a\u003e for details.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to TypeScript 5.9 and change return types from \u003ccode\u003eUint8Array\u003c/code\u003e to \u003ccode\u003eUint8Array\u0026lt;ArrayBuffer\u0026gt;\u003c/code\u003e by \u003ca href=\"https://github.com/timostamm\"\u003e\u003ccode\u003e@​timostamm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1560\"\u003econnectrpc/connect-es#1560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for Node.js 18 by \u003ca href=\"https://github.com/timostamm\"\u003e\u003ccode\u003e@​timostamm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1559\"\u003econnectrpc/connect-es#1559\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/connectrpc/connect-es/compare/v2.0.4...v2.1.0\"\u003ehttps://github.com/connectrpc/connect-es/compare/v2.0.4...v2.1.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/connectrpc/connect-es/commit/bf6b19103f110b4bf61d5d326c2f1443fc2eb155\"\u003e\u003ccode\u003ebf6b191\u003c/code\u003e\u003c/a\u003e Release 2.1.1 (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web/issues/1618\"\u003e#1618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/6585c9e5d42e0f667b09ed28f7443996dc50b288\"\u003e\u003ccode\u003e6585c9e\u003c/code\u003e\u003c/a\u003e Bump the bench group across 1 directory with 4 updates (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web/issues/1584\"\u003e#1584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/f27d8bf86b964dead42f1d3f9d136dd1053d691a\"\u003e\u003ccode\u003ef27d8bf\u003c/code\u003e\u003c/a\u003e Bump jasmine and \u003ccode\u003e@​types/jasmine\u003c/code\u003e (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web/issues/1611\"\u003e#1611\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/54f492b0d7d9b5774974e645f55ff9ed57fd943e\"\u003e\u003ccode\u003e54f492b\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003e@​bufbuild/buf\u003c/code\u003e from 1.57.2 to 1.59.0 (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web/issues/1613\"\u003e#1613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/332f9b5503a80ad59c309482c0364015947c635e\"\u003e\u003ccode\u003e332f9b5\u003c/code\u003e\u003c/a\u003e Bump jasmine from 5.10.0 to 5.11.0 (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web/issues/1590\"\u003e#1590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/1e0eb151a7c01e324787e6efb40639117fb76b82\"\u003e\u003ccode\u003e1e0eb15\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003e@​bufbuild/buf\u003c/code\u003e from 1.57.0 to 1.57.2 (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web/issues/1586\"\u003e#1586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/78b40abd3ecd2f4fa2dda6382e371be8e9de3f6d\"\u003e\u003ccode\u003e78b40ab\u003c/code\u003e\u003c/a\u003e Bump jasmine and \u003ccode\u003e@​types/jasmine\u003c/code\u003e (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web/issues/1572\"\u003e#1572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/cedb07dcf83da91dc152b3788b18b752a3c2a281\"\u003e\u003ccode\u003ecedb07d\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003e@​bufbuild/buf\u003c/code\u003e from 1.56.0 to 1.57.0 (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/26ce5447eac4ef40c7de0d91d2ea5c29b6d558ee\"\u003e\u003ccode\u003e26ce544\u003c/code\u003e\u003c/a\u003e Bump the webdriver group with 5 updates (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web/issues/1570\"\u003e#1570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/85666751a75d61441f32883429d7fc622f110ace\"\u003e\u003ccode\u003e8566675\u003c/code\u003e\u003c/a\u003e Release 2.1.0 (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web/issues/1564\"\u003e#1564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/connectrpc/connect-es/commits/v2.1.1/packages/connect-web\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@netlify/build-info` from 10.3.0 to 10.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/netlify/build/releases\"\u003e\u003ccode\u003e@​netlify/build-info\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ebuild-info: v10.5.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/netlify/build/compare/build-info-v10.5.0...build-info-v10.5.1\"\u003e10.5.1\u003c/a\u003e (2026-04-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure that React Router is not detected as part of Hydrogen projects (\u003ca href=\"https://redirect.github.com/netlify/build/issues/7020\"\u003e#7020\u003c/a\u003e) (\u003ca href=\"https://github.com/netlify/build/commit/24d58863de012eb2022848ed090b87b00f331baf\"\u003e24d5886\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebuild-info: v10.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/netlify/build/compare/build-info-v10.4.0...build-info-v10.5.0\"\u003e10.5.0\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd vitepress (\u003ca href=\"https://redirect.github.com/netlify/build/issues/6866\"\u003e#6866\u003c/a\u003e) (\u003ca href=\"https://github.com/netlify/build/commit/99b64c439dc1cf16c27670f81c544263d31fb56a\"\u003e99b64c4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebuild-info: v10.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/netlify/build/compare/build-info-v10.3.1...build-info-v10.4.0\"\u003e10.4.0\u003c/a\u003e (2026-03-10)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuild-info:\u003c/strong\u003e add Mastra (\u003ca href=\"https://redirect.github.com/netlify/build/issues/6929\"\u003e#6929\u003c/a\u003e) (\u003ca href=\"https://github.com/netlify/build/commit/989db155cbe19b5f3febdb3f1b6fefead75eada2\"\u003e989db15\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e upgrade to minimatch 10 (\u003ca href=\"https://redirect.github.com/netlify/build/issues/6954\"\u003e#6954\u003c/a\u003e) (\u003ca href=\"https://github.com/netlify/build/commit/d89024d5ce4a7b2d6a7d51d6fcc3a9e90b41e290\"\u003ed89024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebuild-info: v10.3.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/netlify/build/compare/build-info-v10.3.0...build-info-v10.3.1\"\u003e10.3.1\u003c/a\u003e (2026-02-25)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e update \u003ccode\u003e@​netlify/serverless-functions-api\u003c/code\u003e to v2.10.0 for identity support (\u003ca href=\"https://redirect.github.com/netlify/build/issues/6952\"\u003e#6952\u003c/a\u003e) (\u003ca href=\"https://github.com/netlify/build/commit/15d00ddffb030be7b63dcb5c32975c7d94c4484e\"\u003e15d00dd\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/netlify/build/blob/main/packages/build-info/CHANGELOG.md\"\u003e\u003ccode\u003e@​netlify/build-info\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/netlify/build/compare/build-info-v10.5.0...build-info-v10.5.1\"\u003e10.5.1\u003c/a\u003e (2026-04-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure that React Router is not detected as part of Hydrogen projects (\u003ca href=\"https://redirect.github.com/netlify/build/issues/7020\"\u003e#7020\u003c/a\u003e) (\u003ca href=\"https://github.com/netlify/build/commit/24d58863de012eb2022848ed090b87b00f331baf\"\u003e24d5886\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/netlify/build/compare/build-info-v10.4.0...build-info-v10.5.0\"\u003e10.5.0\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd vitepress (\u003ca href=\"https://redirect.github.com/netlify/build/issues/6866\"\u003e#6866\u003c/a\u003e) (\u003ca href=\"https://github.com/netlify/build/commit/99b64c439dc1cf16c27670f81c544263d31fb56a\"\u003e99b64c4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/netlify/build/compare/build-info-v10.3.1...build-info-v10.4.0\"\u003e10.4.0\u003c/a\u003e (2026-03-10)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuild-info:\u003c/strong\u003e add Mastra (\u003ca href=\"https://redirect.github.com/netlify/build/issues/6929\"\u003e#6929\u003c/a\u003e) (\u003ca href=\"https://github.com/netlify/build/commit/989db155cbe19b5f3febdb3f1b6fefead75eada2\"\u003e989db15\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e upgrade to minimatch 10 (\u003ca href=\"https://redirect.github.com/netlify/build/issues/6954\"\u003e#6954\u003c/a\u003e) (\u003ca href=\"https://github.com/netlify/build/commit/d89024d5ce4a7b2d6a7d51d6fcc3a9e90b41e290\"\u003ed89024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/netlify/build/compare/build-info-v10.3.0...build-info-v10.3.1\"\u003e10.3.1\u003c/a\u003e (2026-02-25)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e update \u003ccode\u003e@​netlify/serverless-functions-api\u003c/code\u003e to v2.10.0 for identity support (\u003ca href=\"https://redirect.github.com/netlify/build/issues/6952\"\u003e#6952\u003c/a\u003e) (\u003ca href=\"https://github.com/netlify/build/commit/15d00ddffb030be7b63dcb5c32975c7d94c4484e\"\u003e15d00dd\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/netlify/build/commit/d17373f5f6ab58289a5bc78d90bd0b520c9c652f\"\u003e\u003ccode\u003ed17373f\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://github.com/netlify/build/tree/HEAD/packages/build-info/issues/7035\"\u003e#7035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netlify/build/commit/24d58863de012eb2022848ed090b87b00f331baf\"\u003e\u003ccode\u003e24d5886\u003c/code\u003e\u003c/a\u003e fix: ensure that React Router is not detected as part of Hydrogen projects (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netlify/build/commit/85ec413dbce5342df01289953b91169c1f84c34b\"\u003e\u003ccode\u003e85ec413\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://github.com/netlify/build/tree/HEAD/packages/build-info/issues/7011\"\u003e#7011\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netlify/build/commit/99b64c439dc1cf16c27670f81c544263d31fb56a\"\u003e\u003ccode\u003e99b64c4\u003c/code\u003e\u003c/a\u003e feat: add vitepress (\u003ca href=\"https://github.com/netlify/build/tree/HEAD/packages/build-info/issues/6866\"\u003e#6866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netlify/build/commit/0ddf077b1055b90e13b678c3516afc0dfdb9c76d\"\u003e\u003ccode\u003e0ddf077\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://github.com/netlify/build/tree/HEAD/packages/build-info/issues/6968\"\u003e#6968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netlify/build/commit/989db155cbe19b5f3febdb3f1b6fefead75eada2\"\u003e\u003ccode\u003e989db15\u003c/code\u003e\u003c/a\u003e feat(build-info): add Mastra (\u003ca href=\"https://github.com/netlify/build/tree/HEAD/packages/build-info/issues/6929\"\u003e#6929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netlify/build/commit/d89024d5ce4a7b2d6a7d51d6fcc3a9e90b41e290\"\u003e\u003ccode\u003ed89024d\u003c/code\u003e\u003c/a\u003e fix(deps): upgrade to minimatch 10 (\u003ca href=\"https://github.com/netlify/build/tree/HEAD/packages/build-info/issues/6954\"\u003e#6954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netlify/build/commit/f0adac340a6e7a853d156b4685c66bb65d04bad5\"\u003e\u003ccode\u003ef0adac3\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://github.com/netlify/build/tree/HEAD/packages/build-info/issues/6953\"\u003e#6953\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netlify/build/commit/5de08d50fe44b45a0f7b78c3b9a87af3455402ab\"\u003e\u003ccode\u003e5de08d5\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://github.com/netlify/build/tree/HEAD/packages/build-info/issues/6851\"\u003e#6851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netlify/build/commit/66891ca2cb6b1b0cc15df41b64ee84207e8ea6bc\"\u003e\u003ccode\u003e66891ca\u003c/code\u003e\u003c/a\u003e feat: return detected framework version accuracy (\u003ca href=\"https://github.com/netlify/build/tree/HEAD/packages/build-info/issues/6852\"\u003e#6852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/netlify/build/commits/build-info-v10.5.1/packages/build-info\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@tanstack/angular-query-experimental` from 5.90.24 to 5.100.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/TanStack/query/releases\"\u003e\u003ccode\u003e@​tanstack/angular-query-experimental\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/angular-query-experimental\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.6\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.6\u003c/li\u003e\n\u003c/ul\u003e\n\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/TanStack/query/blob/main/packages/angular-query-experimental/CHANGELOG.md\"\u003e\u003ccode\u003e@​tanstack/angular-query-experimental\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.100.6\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.6\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.100.5\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/a53ef97f87decb8ea2431710f5199431d3c94c8d\"\u003e\u003ccode\u003ea53ef97\u003c/code\u003e\u003c/a\u003e]:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.5\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.100.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003efix(devtools): change onClose callback type from () =\u0026gt; unknown to () =\u0026gt; void (\u003ca href=\"https://redirect.github.com/TanStack/query/pull/10118\"\u003e#10118\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated dependencies []:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.100.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/f85d825e02efbbff02e2081528ed28f5e5382f7a\"\u003e\u003ccode\u003ef85d825\u003c/code\u003e\u003c/a\u003e]:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.100.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/ea4497e8aa00d8c1c3a36fb1e17563a889d6ab31\"\u003e\u003ccode\u003eea4497e\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/TanStack/query/commit/d6a7bf3e3e024c1a77d0536813238cc8007a5fa7\"\u003e\u003ccode\u003ed6a7bf3\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/TanStack/query/commit/645d5d130f5e8017cb1bf1a37987f7b980aed705\"\u003e\u003ccode\u003e645d5d1\u003c/code\u003e\u003c/a\u003e]:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.100.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/1bb0d234280fd4ae1725c439088426a20593a8df\"\u003e\u003ccode\u003e1bb0d23\u003c/code\u003e\u003c/a\u003e]:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.100.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/6540a4126b1c087d86d64525e78f32d9920dcd31\"\u003e\u003ccode\u003e6540a41\u003c/code\u003e\u003c/a\u003e]:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.0\u003c/li\u003e\n\u003c/ul\u003e\n\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/TanStack/query/commit/87f7ccf580d7c12c527ce922a43977c9c653f897\"\u003e\u003ccode\u003e87f7ccf\u003c/code\u003e\u003c/a\u003e ci: Version Packages (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/angular-query-experimental/issues/10604\"\u003e#10604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/f88a608c590038882399cfe996565c8e9477a3a4\"\u003e\u003ccode\u003ef88a608\u003c/code\u003e\u003c/a\u003e test(angular-query-experimental/injectIsRestoring): add test for resolving 'p...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/dd901aef9803226a791f3f858114171ddeae7d70\"\u003e\u003ccode\u003edd901ae\u003c/code\u003e\u003c/a\u003e test(angular-query-experimental/injectQueries): add test for error state when...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/3547f86e13419771cf7aee7d76a64c84fe10c53c\"\u003e\u003ccode\u003e3547f86\u003c/code\u003e\u003c/a\u003e test(angular-query-experimental/injectIsRestoring): add test for reactively r...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/c9755be3edc28bce37d10e2a8caaac12428e7646\"\u003e\u003ccode\u003ec9755be\u003c/code\u003e\u003c/a\u003e test(angular-query-experimental/injectIsMutating): add filter test by 'mutati...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/7a5b53c4ea6e912a53ddc5cb0059155f5ff3f8be\"\u003e\u003ccode\u003e7a5b53c\u003c/code\u003e\u003c/a\u003e test(angular-query-experimental/injectIsFetching): add filter test by 'queryK...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/51ef23f46b23f9f7fd858386e42bfbb3adb5e49d\"\u003e\u003ccode\u003e51ef23f\u003c/code\u003e\u003c/a\u003e test(angular-query-experimental/injectMutation): add test for 'mutateAsync' r...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/72a15ae4d9f6fe262cb1bd72107f9862291c1e9d\"\u003e\u003ccode\u003e72a15ae\u003c/code\u003e\u003c/a\u003e test(angular-query-experimental/injectMutation): switch 'pending' test to '\u003ca href=\"https://github.com/C\"\u003e\u003ccode\u003e@​C\u003c/code\u003e\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/e69e5d2a07cc8ac661b1a2d926b8409b155a2e22\"\u003e\u003ccode\u003ee69e5d2\u003c/code\u003e\u003c/a\u003e test(angular-query-experimental/injectMutation): switch 'error' test to '\u003ca href=\"https://github.com/Com\"\u003e\u003ccode\u003e@​Com\u003c/code\u003e\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/d78883bff0a0b950fa1385588def01db99397aaa\"\u003e\u003ccode\u003ed78883b\u003c/code\u003e\u003c/a\u003e test(angular-query-experimental/injectQuery): remove duplicate error test alr...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/TanStack/query/commits/@tanstack/angular-query-experimental@5.100.6/packages/angular-query-experimental\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `libphonenumber-js` from 1.12.35 to 1.12.42\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/CHANGELOG.md\"\u003elibphonenumber-js's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.12.42 / 23.4.2026\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated metadata to version 9.0.29:\n\u003cul\u003e\n\u003cli\u003eUpdated phone metadata for region code(s):\nBI, BL, GP, MF, MY, SK, TH, TR, TW\u003c/li\u003e\n\u003cli\u003eUpdated short number metadata for region code(s): CH\u003c/li\u003e\n\u003cli\u003eNew geocoding data for country calling code(s): 7 (kk)\u003c/li\u003e\n\u003cli\u003eUpdated carrier data for country calling code(s):\n7 (en, ru), 31 (en), 32 (en), 90 (en), 257 (en), 590 (en), 593 (en)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.12.42 / 11.4.2026\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated metadata to version 9.0.28:\n\u003cul\u003e\n\u003cli\u003eUpdated phone metadata for region code(s): BW, IL, MN, RE, SR, YT\u003c/li\u003e\n\u003cli\u003eUpdated carrier data for country calling code(s):\n34 (en), 267 (en), 359 (en), 972 (en), 976 (en)\u003c/li\u003e\n\u003cli\u003eUpdated / refreshed time zone meta data.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.12.41 / 28.3.2026\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated metadata to version 9.0.27:\n\u003cul\u003e\n\u003cli\u003eUpdated phone metadata for region code(s):\nBF, BL, CM, GF, GH, GP, GU, KE, MF, MQ, MY, SX, TD, TJ, US\u003c/li\u003e\n\u003cli\u003eNew geocoding data for country calling code(s): 1738 (en)\u003c/li\u003e\n\u003cli\u003eNew carrier data for country calling code(s): 1721 (en)\u003c/li\u003e\n\u003cli\u003eUpdated carrier data for country calling code(s):\n60 (en), 599 (en), 992 (en)\u003c/li\u003e\n\u003cli\u003eUpdated / refreshed time zone meta data.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.12.40 / 13.3.2026\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated metadata to version 9.0.26:\n\u003cul\u003e\n\u003cli\u003eUpdated phone metadata for region code(s):\nBL, GF, GP, GY, KY, MF, PL, PM, VU\u003c/li\u003e\n\u003cli\u003eUpdated short number metadata for region code(s): BL, GF, GP, GY, MF, PM\u003c/li\u003e\n\u003cli\u003eUpdated geocoding data for country calling code(s): 48 (en)\u003c/li\u003e\n\u003cli\u003eUpdated carrier data for country calling code(s):\n33 (en), 44 (en), 229 (en), 591 (en), 1345 (en)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.12.39 / 9.3.2026\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated metadata to version 9.0.25:\n\u003cul\u003e\n\u003cli\u003eUpdated alternate formatting data for country calling code(s): 90\u003c/li\u003e\n\u003cli\u003eUpdated phone metadata for region code(s): 882, HK, MY, PA, SL, TG, TR\u003c/li\u003e\n\u003cli\u003eUpdated short number metadata for region code(s): KR\u003c/li\u003e\n\u003c/ul\u003e\n\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://gitlab.com/catamphetamine/libphonenumber-js/commit/9129b6102f64c28e7608a85c5f2fffa67bc8de46\"\u003e\u003ccode\u003e9129b61\u003c/code\u003e\u003c/a\u003e 1.12.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/commit/953e1c38bd7dc10ad5bf1e6a83517becd2ae35cc\"\u003e\u003ccode\u003e953e1c3\u003c/code\u003e\u003c/a\u003e Updated metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/commit/19f2ec9460a35759e06d61257bb15d799cb02163\"\u003e\u003ccode\u003e19f2ec9\u003c/code\u003e\u003c/a\u003e Updated metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/commit/aa91fea8036e07231118e9d7db3a3f906229d820\"\u003e\u003ccode\u003eaa91fea\u003c/code\u003e\u003c/a\u003e 1.12.41\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/commit/4619cb37b2b6c9115c4ffd28b274fb690848a9a9\"\u003e\u003ccode\u003e4619cb3\u003c/code\u003e\u003c/a\u003e Updated metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/commit/2669ac8ee5247497c646645f38a72606e6c4aa39\"\u003e\u003ccode\u003e2669ac8\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/issues/207\"\u003e#207\u003c/a\u003e. .npmignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/commit/e147d4c3f6f230756049a1fe51e631b2acb803e4\"\u003e\u003ccode\u003ee147d4c\u003c/code\u003e\u003c/a\u003e 1.12.40\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/commit/53609468802947c274e8ce4c7c048ca96346057e\"\u003e\u003ccode\u003e5360946\u003c/code\u003e\u003c/a\u003e Updated metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/commit/35e49728a203c91d2cba1ed6afc55c25d4da2f49\"\u003e\u003ccode\u003e35e4972\u003c/code\u003e\u003c/a\u003e Updated \u003ccode\u003elibphonenumber-metadata-generator\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/commit/4d6d0b2f3ea5ad3f2bdf9b39317ac3b2404f0753\"\u003e\u003ccode\u003e4d6d0b2\u003c/code\u003e\u003c/a\u003e 1.12.39\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/compare/v1.12.35...v1.12.42\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentype.js` from 1.3.4 to 1.3.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/opentypejs/opentype.js/releases\"\u003eopentype.js's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd COLRv0 + CPALv0 support by \u003ca href=\"https://github.com/yne\"\u003e\u003ccode\u003e@​yne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/490\"\u003eopentypejs/opentype.js#490\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix cpal arguments by \u003ca href=\"https://github.com/yne\"\u003e\u003ccode\u003e@​yne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/508\"\u003eopentypejs/opentype.js#508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate to use Buffer.alloc in place of deprecated new Buffer() by \u003ca href=\"https://github.com/pwagland\"\u003e\u003ccode\u003e@​pwagland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/474\"\u003eopentypejs/opentype.js#474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRedefine \u003ccode\u003edeltaGlyphId\u003c/code\u003e from \u003ccode\u003eUSHORT\u003c/code\u003e to \u003ccode\u003eSHORT\u003c/code\u003e according to spec in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/456\"\u003eopentypejs/opentype.js#456\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd tests for parsing lookup type 6 formats 1 and 3 by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/454\"\u003eopentypejs/opentype.js#454\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd option for leftSideBearing in new Glyph by \u003ca href=\"https://github.com/adri326\"\u003e\u003ccode\u003e@​adri326\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/510\"\u003eopentypejs/opentype.js#510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplaced concat with push for performance by \u003ca href=\"https://github.com/Balearica\"\u003e\u003ccode\u003e@​Balearica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/513\"\u003eopentypejs/opentype.js#513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't attempt to parse meta table tags \u0026quot;appl\u0026quot; and \u0026quot;bild\u0026quot;. Fixes \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/issues/522\"\u003e#522\u003c/a\u003e by \u003ca href=\"https://github.com/graphicore\"\u003e\u003ccode\u003e@​graphicore\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/523\"\u003eopentypejs/opentype.js#523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGracefully handle unsupported WOFF2 parsing by \u003ca href=\"https://github.com/yne\"\u003e\u003ccode\u003e@​yne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/518\"\u003eopentypejs/opentype.js#518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump json5 from 2.2.0 to 2.2.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/537\"\u003eopentypejs/opentype.js#537\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump minimist and rollup-plugin-license by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/543\"\u003eopentypejs/opentype.js#543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efont inspector: fix headline floating when table section with \u0026quot;Undefined\u0026quot; is expanded by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/545\"\u003eopentypejs/opentype.js#545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve platform specific names in fonts. by \u003ca href=\"https://github.com/ILOVEPIE\"\u003e\u003ccode\u003e@​ILOVEPIE\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/542\"\u003eopentypejs/opentype.js#542\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emake jshint and jscs ignore the /.git folder by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/549\"\u003eopentypejs/opentype.js#549\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump dependencies by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/550\"\u003eopentypejs/opentype.js#550\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecreate post table from existing data if available by \u003ca href=\"https://github.com/cthorner\"\u003e\u003ccode\u003e@​cthorner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/530\"\u003eopentypejs/opentype.js#530\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003elog warning instead of throwing an error when encountering an unknown ClassDef format by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/548\"\u003eopentypejs/opentype.js#548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed code style issue. by \u003ca href=\"https://github.com/ILOVEPIE\"\u003e\u003ccode\u003e@​ILOVEPIE\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/555\"\u003eopentypejs/opentype.js#555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emark as side effect free by \u003ca href=\"https://github.com/hipstersmoothie\"\u003e\u003ccode\u003e@​hipstersmoothie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/531\"\u003eopentypejs/opentype.js#531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emake cffEncoding.charset fall back to CIDs instead of undefined by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/562\"\u003eopentypejs/opentype.js#562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet correctly unicode 0 to \u0026quot;.null\u0026quot; glyph by \u003ca href=\"https://github.com/puria\"\u003e\u003ccode\u003e@​puria\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/461\"\u003eopentypejs/opentype.js#461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGSUB writing support for lookup type 5 by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/566\"\u003eopentypejs/opentype.js#566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadding stringToGlyphIndexes() by \u003ca href=\"https://github.com/axkibe\"\u003e\u003ccode\u003e@​axkibe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/575\"\u003eopentypejs/opentype.js#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eoptimize performance by replacing modulus with bitwise operator by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/572\"\u003eopentypejs/opentype.js#572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAuto test + deploy using Github Action by \u003ca href=\"https://github.com/yne\"\u003e\u003ccode\u003e@​yne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/567\"\u003eopentypejs/opentype.js#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Illegal Invocation in \u003ccode\u003enpm start\u003c/code\u003e Hot Reload by \u003ca href=\"https://github.com/yne\"\u003e\u003ccode\u003e@​yne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/578\"\u003eopentypejs/opentype.js#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGSUB lookup table type 7 subtable format 1 by \u003ca href=\"https://github.com/CTOStone\"\u003e\u003ccode\u003e@​CTOStone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/486\"\u003eopentypejs/opentype.js#486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing and writing support for variable font tables fvar, STAT and avar by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/576\"\u003eopentypejs/opentype.js#576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd missing import file extensions, add \u003ca href=\"https://github.com/TODO\"\u003e\u003ccode\u003e@​TODO\u003c/code\u003e\u003c/a\u003e comments for refactoring by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/582\"\u003eopentypejs/opentype.js#582\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eimplement CFF2 parsing by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/580\"\u003eopentypejs/opentype.js#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParse cmap table format 14 and handle Unicode Variation Sequences (UVSes) by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/581\"\u003eopentypejs/opentype.js#581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSVG-related improvements and fixes by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/569\"\u003eopentypejs/opentype.js#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Added a thai context to the bidi and substitution features by \u003ca href=\"https://github.com/rafallyczkowskiadylic\"\u003e\u003ccode\u003e@​rafallyczkowskiadylic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/535\"\u003eopentypejs/opentype.js#535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echeck if command exists in subpath before comparing values by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/585\"\u003eopentypejs/opentype.js#585\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded local rule for banning forEach(), replace forEach() with for() by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/584\"\u003eopentypejs/opentype.js#584\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd WOFF2 loading support to demo pages by \u003ca href=\"https://github.com/yne\"\u003e\u003ccode\u003e@​yne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/591\"\u003eopentypejs/opentype.js#591\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egasp table by \u003ca href=\"https://github.com/ollimeier\"\u003e\u003ccode\u003e@​ollimeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/595\"\u003eopentypejs/opentype.js#595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(glyph): Resolve the problem of invalid unicodes input parameters by \u003ca href=\"https://github.com/sammyfeng0530\"\u003e\u003ccode\u003e@​sammyfeng0530\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/608\"\u003eopentypejs/opentype.js#608\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate README.md by \u003ca href=\"https://github.com/Zearin\"\u003e\u003ccode\u003e@​Zearin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/600\"\u003eopentypejs/opentype.js#600\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd tests for and fix \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/issues/613\"\u003e#613\u003c/a\u003e, test toDOMElement() via mocked elements by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/621\"\u003eopentypejs/opentype.js#621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echange npm start command to output module version by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/625\"\u003eopentypejs/opentype.js#625\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebump all dependency versions except mocha by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/629\"\u003eopentypejs/opentype.js#629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd tests for LONGDATETIME parsing/encoding by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/631\"\u003eopentypejs/opentype.js#631\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Create dependabot.yml by \u003ca href=\"https://github.com/Jolg42\"\u003e\u003ccode\u003e@​Jolg42\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/636\"\u003eopentypejs/opentype.js#636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump eslint from 8.52.0 to 8.53.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/637\"\u003eopentypejs/opentype.js#637\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Update README.md by \u003ca href=\"https://github.com/Jolg42\"\u003e\u003ccode\u003e@​Jolg42\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/639\"\u003eopentypejs/opentype.js#639\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ehandle endchar command with seac parameters (standard encoding accented characters) by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/633\"\u003eopentypejs/opentype.js#633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix hasChar() for CMAP fonts and add tests (fix \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/issues/330\"\u003e#330\u003c/a\u003e) by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/632\"\u003eopentypejs/opentype.js#632\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/opentypejs/opentype.js/commit/e2eaedebfa6187c1b435a87e6b7b02e6f1ba1b48\"\u003e\u003ccode\u003ee2eaede\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/issues/833\"\u003e#833\u003c/a\u003e from opentypejs/cursor/use-trusted-npm-publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/opentypejs/opentype.js/commit/44e9523570ca32c73cae5d8baa37413ead8a3ea6\"\u003e\u003ccode\u003e44e9523\u003c/code\u003e\u003c/a\u003e Use Node 24 for npm releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/opentypejs/opentype.js/commit/c500ded9c66ef80cae7241213e123c29d9034c05\"\u003e\u003ccode\u003ec500ded\u003c/code\u003e\u003c/a\u003e Use trusted npm publishing for releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/opentypejs/opentype.js/commit/f2cb527408108f0e8759ee93ff611c0d94d0d412\"\u003e\u003ccode\u003ef2cb527\u003c/code\u003e\u003c/a\u003e Bump GitHub Actions JavaScript actions to v5.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/opentypejs/opentype.js/commit/bd60958213f37279a09cf528ba7f39b0690d9f68\"\u003e\u003ccode\u003ebd60958\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/issues/832\"\u003e#832\u003c/a\u003e from opentypejs/cursor/harden-release-workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/opentypejs/opentype.js/commit/c2c6bafc55f33febac565ef7ffe2df21fe91243c\"\u003e\u003ccode\u003ec2c6baf\u003c/code\u003e\u003c/a\u003e Harden release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/opentypejs/opentype.js/commit/cf02e12bc209dfc3b85d4af4fba1dd33909b0556\"\u003e\u003ccode\u003ecf02e12\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/issues/824\"\u003e#824\u003c/a\u003e from fjobeir/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/opentypejs/opentype.js/commit/7b85ca371ae7e15dcf445da6d912c074132c2167\"\u003e\u003ccode\u003e7b85ca3\u003c/code\u003e\u003c/a\u003e reverse changes on package-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/opentypejs/opentype.js/commit/658d9c3f8b19791e30dfea1b1e8831c3e7650c1f\"\u003e\u003ccode\u003e658d9c3\u003c/code\u003e\u003c/a\u003e Remove version from package-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/opentypejs/opentype.js/commit/478a12a1fba388736e60ee05c662bde2123068ff\"\u003e\u003ccode\u003e478a12a\u003c/code\u003e\u003c/a\u003e fix: remove version from PR\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/opentypejs/opentype.js/compare/1.3.4...1.3.5\"\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 opentype.js since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `posthog-js` from 1.336.1 to 1.372.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PostHog/posthog-js/releases\"\u003eposthog-js's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eposthog-js@1.372.5\u003c/h2\u003e\n\u003ch2\u003e1.372.5\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/PostHog/posthog-js/pull/3448\"\u003e#3448\u003c/a\u003e \u003ca href=\"https://github.com/PostHog/posthog-js/commit/c726aaea62483509469317870e6c3a3bedee3f18\"\u003e\u003ccode\u003ec726aae\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/apps/posthog\"\u003e\u003ccode\u003e@​posthog\u003c/code\u003e\u003c/a\u003e! - fix(exceptions): avoid cross-origin property access when calling the previous \u003ccode\u003ewindow.onunhandledrejection\u003c/code\u003e handler\n(2026-04-29)\u003c/li\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​posthog/types\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.372.5\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​posthog/core\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.27.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eposthog-js@1.372.4\u003c/h2\u003e\n\u003ch2\u003e1.372.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/PostHog/posthog-js/pull/3495\"\u003e#3495\u003c/a\u003e \u003ca href=\"https://github.com/PostHog/posthog-js/commit/5a6b2a55c015345909f93f744ebddd618e1fc85d\"\u003e\u003ccode\u003e5a6b2a5\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/apps/posthog\"\u003e\u003ccode\u003e@​posthog\u003c/code\u003e\u003c/a\u003e! - Fix copy autocapture when copying or cutting text from Shadow DOM or document fragment contexts.\n(2026-04-29)\u003c/li\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​posthog/types\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.372.4\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​posthog/core\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.27.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eposthog-js@1.372.3\u003c/h2\u003e\n\u003ch2\u003e1.372.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/PostHog/posthog-js/pull/3488\"\u003e#3488\u003c/a\u003e \u003ca href=\"https://github.com/PostHog/posthog-js/commit/5b8efc35d9acf77db2d6979ffa4b655b5f279721\"\u003e\u003ccode\u003e5b8efc3\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/lucasheriques\"\u003e\u003ccode\u003e@​lucasheriques\u003c/code\u003e\u003c/a\u003e! - Add browser survey translation rendering and language tracking.\n(2026-04-27)\u003c/li\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​posthog/types\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.372.3\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​posthog/core\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.27.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eposthog-js@1.372.2\u003c/h2\u003e\n\u003ch2\u003e1.372.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/PostHog/posthog-js/pull/3484\"\u003e#3484\u003c/a\u003e \u003ca href=\"https://github.com/PostHog/posthog-js/commit/cba25700dca2e8d8e138ea6034bd42dc9d002596\"\u003e\u003ccode\u003ecba2570\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/veryayskiy\"\u003e\u003ccode\u003e@​veryayskiy\u003c/code\u003e\u003c/a\u003e! - Fix autofocus\n(2026-04-27)\u003c/li\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​posthog/types\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.372.2\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​posthog/core\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.27.6\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eposthog-js@1.372.1\u003c/h2\u003e\n\u003ch2\u003e1.372.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/PostHog/posthog-js/pull/3464\"\u003e#3464\u003c/a\u003e \u003ca href=\"https://github.com/PostHog/posthog-js/commit/70508dfd7dd1201dd9c61c126a3c27ad39311c6a\"\u003e\u003ccode\u003e70508df\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/dustinbyrne\"\u003e\u003ccode\u003e@​dustinbyrne\u003c/code\u003e\u003c/a\u003e! - Avoid using \u003ccode\u003eBlob.stream()\u003c/code\u003e for native async gzip compression to prevent Safari \u003ccode\u003eNotReadableError\u003c/code\u003e stream failures.\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/PostHog/posthog-js/commit/d0db43d2a011681316c99e768fe10338bad40c95\"\u003e\u003ccode\u003ed0db43d\u003c/code\u003e\u003c/a\u003e chore: update versions and lockfile [version bump]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-js/commit/c726aaea62483509469317870e6c3a3bedee3f18\"\u003e\u003ccode\u003ec726aae\u003c/code\u003e\u003c/a\u003e fix(exceptions): avoid cross-origin access in wrapUnhandledRejection (\u003ca href=\"https://redirect.github.com/PostHog/posthog-js/issues/3448\"\u003e#3448\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-js/commit/983118fa5655ce31f70682f982fcb9777ab78030\"\u003e\u003ccode\u003e983118f\u003c/code\u003e\u003c/a\u003e chore: update versions and lockfile [version bump]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-js/commit/5a6b2a55c015345909f93f744ebddd618e1fc85d\"\u003e\u003ccode\u003e5a6b2a5\u003c/code\u003e\u003c/a\u003e fix(autocapture): guard copy/cut handler against shadow DOM and document frag...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-js/commit/fe1874d3f1f1abea11b5058be2c54670fe12f542\"\u003e\u003ccode\u003efe1874d\u003c/code\u003e\u003c/a\u003e ci: avoid shell injection from github.base_ref in changeset check (\u003ca href=\"https://redirect.github.com/PostHog/posthog-js/issues/3494\"\u003e#3494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-js/commit/a9028a568fee45afdbbc2d943d7e0d52b4e78b12\"\u003e\u003ccode\u003ea9028a5\u003c/code\u003e\u003c/a\u003e chore: update versions and lockfile [version bump]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-js/commit/eae94077cd577323b4ccd5fc3f4238f98194b3f6\"\u003e\u003ccode\u003eeae9407\u003c/code\u003e\u003c/a\u003e fix(react-native): include survey responses on dismiss (\u003ca href=\"https://redirect.github.com/PostHog/posthog-js/issues/3468\"\u003e#3468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-js/commit/1816007d3d405046b54fc5c9cda1242ddf8ce73d\"\u003e\u003ccode\u003e1816007\u003c/code\u003e\u003c/a\u003e chore: update versions and lockfile [version bump]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-js/commit/5b8efc35d9acf77db2d6979ffa4b655b5f279721\"\u003e\u003ccode\u003e5b8efc3\u003c/code\u003e\u003c/a\u003e feat(surveys): render translated survey copy (\u003ca href=\"https://redirect.github.com/PostHog/posthog-js/issues/3488\"\u003e#3488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-js/commit/24848fcb47032b3d55df9fbf29116250a16dee94\"\u003e\u003ccode\u003e24848fc\u003c/code\u003e\u003c/a\u003e feat(logs): storage (\u003ca href=\"https://redirect.github.com/PostHog/posthog-js/issues/3462\"\u003e#3462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PostHog/posthog-js/compare/posthog-js@1.336.1...posthog-js@1.372.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zone.js` from 0.15.1 to 0.16.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/packages/zone.js/CHANGELOG.md\"\u003ezone.js's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003c!-- raw HTML omitted --\u003e0.16.1 (2026-02-18)\u003c!-- raw HTML omitted --\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(zone.js): support passthrough of Promise.try API (\u003ca href=\"https://github.com/angular/angular/commit/fc557f0\"\u003efc557f0\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/angular/angular/issues/67057\"\u003e#67057\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003c!-- raw HTML omitted --\u003e0.16.0 (2025-11-19)\u003c!-- raw HTML omitted --\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(zone.js): Support jasmine v6 (\u003ca href=\"https://github.com/angular/angular/commit/48abe00\"\u003e48abe00\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(zone.js): waitForAsync should pass args to the test function (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/zone.js/issues/61755\"\u003e#61755\u003c/a\u003e) (\u003ca href=\"https://github.com/angular/angular/commit/3c216c1\"\u003e3c216c1\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/angular/angular/issues/61755\"\u003e#61755\u003c/a\u003e \u003ca href=\"https://redirect.github.com/angular/angular/issues/61717\"\u003e#61717\u003c/a\u003e \u003ca href=\"https://redirect.github.com/angular/angular/issues/61755\"\u003e#61755\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor(zone.js): Add internal implementation for auto ticking fakeAsync (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/zone.js/issues/62135\"\u003e#62135\u003c/a\u003e) (\u003ca href=\"https://github.com/angular/angular/commit/0a827f9\"\u003e0a827f9\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/angular/angular/issues/62135\"\u003e#62135\u003c/a\u003e \u003ca href=\"https://redirect.github.com/angular/angular/issues/62135\"\u003e#62135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor(zone.js): Improve missing proxy zone error for jest imported (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/zone.js/issues/64497\"\u003e#64497\u003c/a\u003e) (\u003ca href=\"https://github.com/angular/angular/commit/ced2fa5\"\u003eced2fa5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/angular/angular/issues/64497\"\u003e#64497\u003c/a\u003e \u003ca href=\"https://redirect.github.com/angular/angular/issues/47603\"\u003e#47603\u003c/a\u003e \u003ca href=\"https://redirect.github.com/angular/angular/issues/64497\"\u003e#64497\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor(zone.js): remove legacy browser support (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/zone.js/issues/63511\"\u003e#63511\u003c/a\u003e) (\u003ca href=\"https://github.com/angular/angular/commit/2e46596\"\u003e2e46596\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/angular/angular/issues/63511\"\u003e#63511\u003c/a\u003e \u003ca href=\"https://redirect.github.com/angular/angular/issues/63511\"\u003e#63511\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor(zone.js): remove unused jasmine globalerror monkey patching. (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/zone.js/issues/63077\"\u003e#63077\u003c/a\u003e) (\u003ca href=\"https://github.com/angular/angular/commit/9aef481\"\u003e9aef481\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/angular/angular/issues/63077\"\u003e#63077\u003c/a\u003e \u003ca href=\"https://redirect.github.com/angular/angular/issues/63072\"\u003e#63072\u003c/a\u003e \u003ca href=\"https://redirect.github.com/angular/angular/issues/63077\"\u003e#63077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest(zone.js): refactor tests to remove usage of shelljs (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/zone.js/issues/64042\"\u003e#64042\u003c/a\u003e) (\u003ca href=\"https://github.com/angular/angular/commit/422a3b9\"\u003e422a3b9\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/angular/angular/issues/64042\"\u003e#64042\u003c/a\u003e \u003ca href=\"https://redirect.github.com/angular/angular/issues/64042\"\u003e#64042\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGE\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIE/Non-Chromium Edge are not supported anymore.\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/angular/commit/ac8b5ff9382ee92761c414098a3295cd8d1cd519\"\u003e\u003ccode\u003eac8b5ff\u003c/code\u003e\u003c/a\u003e release: cut the zone.js-0.16.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/98610aabaf88654863f863addece1c67d6429095\"\u003e\u003ccode\u003e98610aa\u003c/code\u003e\u003c/a\u003e docs(zone.js): update release and publish commands in DEVELOPER.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99e336a034d597aa93d2042123174e7acbfc520\"\u003e\u003ccode\u003ed99e336\u003c/code\u003e\u003c/a\u003e docs(zone.js): update build command in DEVELOPER.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/c2f7eaa833bc8cfaa331bfed370b4b83bf628c2e\"\u003e\u003ccode\u003ec2f7eaa\u003c/code\u003e\u003c/a\u003e docs(zone.js): update instructions to use pnpm\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/fc557f0276aefe523e328cad984eddb3ba7fecdb\"\u003e\u003ccode\u003efc557f0\u003c/code\u003e\u003c/a\u003e fix(zone.js): support passthrough of Promise.try API\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/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/0c6604f47858d6bea566db4a8a68fe72870022f3\"\u003e\u003ccode\u003e0c6604f\u003c/code\u003e\u003c/a\u003e refactor(common): update copyright to Google LLC\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/df3258cfc471f4061f7db8b135cf4d84fe6cbf3b\"\u003e\u003ccode\u003edf3258c\u003c/code\u003e\u003c/a\u003e build: update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/9989c5fb7814fe19c782bebcf9355b3bf4fde526\"\u003e\u003ccode\u003e9989c5f\u003c/code\u003e\u003c/a\u003e build: update dependency \u003ccode\u003e@​csstools/css-color-parser\u003c/code\u003e to v4\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/zone.js-0.16.1/packages/zone.js\"\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.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/eslint-plugin\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/eslint-plugin/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/eslint-plugin\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\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\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\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\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/1000391b2041c3bae7a4687273291959a9289fd9\"\u003e\u003ccode\u003e1000391\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-uncalled-signals] properly handle statements with una...\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/eslint-plugin/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...\n\n_Description has been truncated_","html_url":"https://github.com/riffcc/zitadel/pull/25","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/riffcc%2Fzitadel/issues/25","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/25/packages"},{"uuid":"4256708155","node_id":"PR_kwDOQu-3B87SD7cP","number":638,"state":"open","title":"deps: bump the angular group with 14 updates","user":"dependabot[bot]","labels":["dependencies","area-build"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T17:28:12.000Z","updated_at":"2026-04-13T17:28:56.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"angular","update_count":14,"packages":[{"name":"@angular/cdk","old_version":"21.2.1","new_version":"21.2.6","repository_url":"https://github.com/angular/components"},{"name":"@angular/common","old_version":"21.2.2","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler","old_version":"21.2.2","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/core","old_version":"21.2.2","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/forms","old_version":"21.2.2","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser","old_version":"21.2.2","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/router","old_version":"21.2.2","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@ngrx/effects","old_version":"21.0.1","new_version":"21.1.0","repository_url":"https://github.com/ngrx/platform"},{"name":"@ngrx/store","old_version":"21.0.1","new_version":"21.1.0","repository_url":"https://github.com/ngrx/platform"},{"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/template-parser","old_version":"21.3.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular/compiler-cli","old_version":"21.2.2","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@ngtools/webpack","old_version":"21.2.1","new_version":"21.2.7","repository_url":"https://github.com/angular/angular-cli"}],"path":null,"ecosystem":"npm"},"body":"Bumps the angular group with 14 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@angular/cdk](https://github.com/angular/components) | `21.2.1` | `21.2.6` |\n| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `21.2.2` | `21.2.8` |\n| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `21.2.2` | `21.2.8` |\n| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `21.2.2` | `21.2.8` |\n| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `21.2.2` | `21.2.8` |\n| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `21.2.2` | `21.2.8` |\n| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `21.2.2` | `21.2.8` |\n| [@ngrx/effects](https://github.com/ngrx/platform) | `21.0.1` | `21.1.0` |\n| [@ngrx/store](https://github.com/ngrx/platform) | `21.0.1` | `21.1.0` |\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/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `21.3.0` | `21.3.1` |\n| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `21.2.2` | `21.2.8` |\n| [@ngtools/webpack](https://github.com/angular/angular-cli) | `21.2.1` | `21.2.7` |\n\nUpdates `@angular/cdk` from 21.2.1 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\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\u003ch2\u003e21.2.2\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/345c543dcb8cf5869930ffdec37a3101483eddd8\"\u003e\u003cimg src=\"https://img.shields.io/badge/345c543dcb-fix-green\" alt=\"fix - 345c543dcb\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003egrid:\u003c/strong\u003e unit tests and small fixes for grid directives (\u003ca href=\"https://redirect.github.com/angular/components/issues/32841\"\u003e#32841\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\u003ch1\u003e21.2.4 \u0026quot;hassium-halfpipe\u0026quot; (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ematerial\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/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.1...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.2 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\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\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.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\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\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.2 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\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\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.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\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\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.2 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\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\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.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.2 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\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\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.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\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\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/platform-browser` from 21.2.2 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/platform-browser\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/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 emp...\n\n_Description has been truncated_","html_url":"https://github.com/Pix-Elated/ravenquest-companion/pull/638","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pix-Elated%2Fravenquest-companion/issues/638","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/638/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":"4213049290","node_id":"PR_kwDOA7BWOs7QRGuB","number":537,"state":"open","title":"Bump @angular-eslint/eslint-plugin from 13.5.0 to 21.3.1","user":"dependabot[bot]","labels":["dependencies","Stale","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-06T17:25:57.000Z","updated_at":"2026-05-12T04:54:41.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"@angular-eslint/eslint-plugin","old_version":"13.5.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":null,"ecosystem":"npm"},"body":"Bumps [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) from 13.5.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/eslint-plugin\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/eslint-plugin/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/eslint-plugin\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\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\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\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\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\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\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\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\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:\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\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\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-implicit-takeuntil-destroyed] add rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2803\"\u003e#2803\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGabriel J. \u003ca href=\"https://github.com/rznn7\"\u003e\u003ccode\u003e@​rznn7\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.1.0 (2025-12-08)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e add prefer-signal-model rule to encourage using model() for two-way bindings (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2818\"\u003e#2818\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/1000391b2041c3bae7a4687273291959a9289fd9\"\u003e\u003ccode\u003e1000391\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-uncalled-signals] properly handle statements with una...\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/eslint-plugin/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/ffcc447713c47e0ebca1886e3a2216222f99966a\"\u003e\u003ccode\u003effcc447\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-uncalled-signals] detect \u003ccode\u003eSignal\u003c/code\u003e type correctly (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/65f2540c19820548b4e61dbbb9fddedf2e2031be\"\u003e\u003ccode\u003e65f2540\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): [no-uncalled-signals] detect Signal member access (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2848\"\u003e#2848\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/eslint-plugin/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/d86425178e40e8b628c45d848dc122403c0859bb\"\u003e\u003ccode\u003ed864251\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): add computed-must-return rule (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2882\"\u003e#2882\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/eslint-plugin\"\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/eslint-plugin\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/eslint-plugin\u0026package-manager=npm_and_yarn\u0026previous-version=13.5.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/devsecopsmaturitymodel/DevSecOps-MaturityModel/pull/537","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/devsecopsmaturitymodel%2FDevSecOps-MaturityModel/issues/537","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/537/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":"4190123456","node_id":"PR_kwDORvwnNM7PZANB","number":39,"state":"closed","title":"Bump @angular-eslint/eslint-plugin from 20.7.0 to 21.3.1 in /client","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-02T22:12:48.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-01T21:56:50.000Z","updated_at":"2026-04-02T22:12:56.000Z","time_to_close":87358,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"@angular-eslint/eslint-plugin","old_version":"20.7.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":"/client","ecosystem":"npm"},"body":"Bumps [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) from 20.7.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/eslint-plugin\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/eslint-plugin/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/eslint-plugin\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\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\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\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\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\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\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\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\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:\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\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\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-implicit-takeuntil-destroyed] add rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2803\"\u003e#2803\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGabriel J. \u003ca href=\"https://github.com/rznn7\"\u003e\u003ccode\u003e@​rznn7\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.1.0 (2025-12-08)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e add prefer-signal-model rule to encourage using model() for two-way bindings (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2818\"\u003e#2818\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/1000391b2041c3bae7a4687273291959a9289fd9\"\u003e\u003ccode\u003e1000391\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-uncalled-signals] properly handle statements with una...\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/eslint-plugin/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/ffcc447713c47e0ebca1886e3a2216222f99966a\"\u003e\u003ccode\u003effcc447\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-uncalled-signals] detect \u003ccode\u003eSignal\u003c/code\u003e type correctly (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/65f2540c19820548b4e61dbbb9fddedf2e2031be\"\u003e\u003ccode\u003e65f2540\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): [no-uncalled-signals] detect Signal member access (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2848\"\u003e#2848\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/eslint-plugin/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/d86425178e40e8b628c45d848dc122403c0859bb\"\u003e\u003ccode\u003ed864251\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): add computed-must-return rule (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2882\"\u003e#2882\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/eslint-plugin\"\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/eslint-plugin\u0026package-manager=npm_and_yarn\u0026previous-version=20.7.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/UMM-CSci-3601-S26/it-2-cameron-guadalupe-max-pierce/pull/39","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/UMM-CSci-3601-S26%2Fit-2-cameron-guadalupe-max-pierce/issues/39","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/39/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"},{"uuid":"4156801050","node_id":"PR_kwDOBiCNks7OMrNC","number":1397,"state":"open","title":"Bump the angular group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-28T01:08:41.000Z","updated_at":"2026-04-04T15:01:09.416Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"angular","update_count":5,"packages":[{"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"}],"path":null,"ecosystem":"npm"},"body":"Bumps the angular group with 5 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) | `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\n\nUpdates `@angular-eslint/builder` from 20.1.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\n\nUpdates `@angular-eslint/eslint-plugin` from 20.1.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/eslint-plugin\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/eslint-plugin/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/eslint-plugin\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\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\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\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\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\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\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\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\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:\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\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\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-implicit-takeuntil-destroyed] add rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2803\"\u003e#2803\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGabriel J. \u003ca href=\"https://github.com/rznn7\"\u003e\u003ccode\u003e@​rznn7\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.1.0 (2025-12-08)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e add prefer-signal-model rule to encourage using model() for two-way bindings (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2818\"\u003e#2818\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/1000391b2041c3bae7a4687273291959a9289fd9\"\u003e\u003ccode\u003e1000391\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-uncalled-signals] properly handle statements with una...\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/eslint-plugin/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/ffcc447713c47e0ebca1886e3a2216222f99966a\"\u003e\u003ccode\u003effcc447\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-uncalled-signals] detect \u003ccode\u003eSignal\u003c/code\u003e type correctly (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/65f2540c19820548b4e61dbbb9fddedf2e2031be\"\u003e\u003ccode\u003e65f2540\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): [no-uncalled-signals] detect Signal member access (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2848\"\u003e#2848\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/eslint-plugin/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/d86425178e40e8b628c45d848dc122403c0859bb\"\u003e\u003ccode\u003ed864251\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): add computed-must-return rule (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2882\"\u003e#2882\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/eslint-plugin\"\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/eslint-plugin\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-eslint/eslint-plugin-template` from 20.1.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/eslint-plugin-template\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/eslint-plugin-template/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/eslint-plugin-template\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\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\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\u003ebjarketrux\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\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\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\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e support ignore attributes for prefer-static-string-properties rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2852\"\u003e#2852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e add prefer-class-binding rule to enforce class binding over ngClass (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2827\"\u003e#2827\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.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2862\"\u003e#2862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e allow autofocus on dialog elements for improved accessibility (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2851\"\u003e#2851\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKaran Mistry \u003ca href=\"https://github.com/mistrykaran91\"\u003e\u003ccode\u003e@​mistrykaran91\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.1.0 (2025-12-08)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for eslint-plugin-template 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/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/a3fb6cceddc3a498f59e57a020d76efb78e57968\"\u003e\u003ccode\u003ea3fb6cc\u003c/code\u003e\u003c/a\u003e fix(prefer-self-closing-tags): add selectedcontent nonAriaElements (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template/issues/2939\"\u003e#2939\u003c/a\u003e)\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/eslint-plugin-template/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/4425fec25a860f2578c64e222e136e729ff8cf17\"\u003e\u003ccode\u003e4425fec\u003c/code\u003e\u003c/a\u003e docs(no-nested-tags): use backticks for HTML tags (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template/issues/2935\"\u003e#2935\u003c/a\u003e)\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/253da820cb5f263e113024068308ffd55e89bad0\"\u003e\u003ccode\u003e253da82\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin-template): [prefer-template-literal] preserve nested non st...\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/eslint-plugin-template/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/218a8afff65dd506b4cd5452df82fc86f572f020\"\u003e\u003ccode\u003e218a8af\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin-template): add \u003ccode\u003eno-non-null-assertion\u003c/code\u003e rule (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template/issues/2885\"\u003e#2885\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/eslint-plugin-template\"\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/eslint-plugin-template\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-eslint/schematics` from 20.1.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/schematics\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/schematics/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/schematics\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\u003cp\u003eThis was a version bump only for schematics to align it with other projects, there were no code changes.\u003c/p\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 schematics 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 schematics 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🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eschematics:\u003c/strong\u003e generate new projects using eslint defineConfig (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/5aa8171b\"\u003e5aa8171b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e⚠️ update Angular dependencies to v21 (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/6a6b671e\"\u003e6a6b671e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e⚠️ Breaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ update Angular dependencies to v21 (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/6a6b671e\"\u003e6a6b671e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJamesHenry \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\u003e20.7.0 (2025-11-22)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for schematics 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/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/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/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/schematics/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/schematics/issues/2820\"\u003e#2820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/b19b1f627d3ff20f583f10caf005ed7bc147b7ab\"\u003e\u003ccode\u003eb19b1f6\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/9ae353f71d8135399f9e3cb776963a98f4cc4f08\"\u003e\u003ccode\u003e9ae353f\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/5aa8171b510021a6d3bc167d5cf041da8ba56484\"\u003e\u003ccode\u003e5aa8171\u003c/code\u003e\u003c/a\u003e feat(schematics): generate new projects using eslint defineConfig\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/6a6b671ec8597f9a04edb9993c410593e5700d18\"\u003e\u003ccode\u003e6a6b671\u003c/code\u003e\u003c/a\u003e feat!: update Angular dependencies to v21\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.3.1/packages/schematics\"\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/schematics\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-eslint/template-parser` from 20.1.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/template-parser\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/template-parser/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/template-parser\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\u003cp\u003eThis was a version bump only for template-parser to align it with other projects, there were no code changes.\u003c/p\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-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.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.2.0 (2026-01-29)\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.1.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2862\"\u003e#2862\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.1.0 (2025-12-08)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for template-parser to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch2\u003e21.0.1 (2025-11-23)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for template-parser 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\u003cp\u003eThis was a version bump only for template-parser to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch2\u003e20.7.0 (2025-11-22)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for template-parser to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch2\u003e20.6.0 (2025-11-09)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for template-parser to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch2\u003e20.5.2 (2025-11-08)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\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-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/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/f78af866b48ae63bb437d422d4d29170a55e5611\"\u003e\u003ccode\u003ef78af86\u003c/code\u003e\u003c/a\u003e fix: update dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.0 (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser/issues/2915\"\u003e#2915\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/template-parser/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/218a8afff65dd506b4cd5452df82fc86f572f020\"\u003e\u003ccode\u003e218a8af\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin-template): add \u003ccode\u003eno-non-null-assertion\u003c/code\u003e rule (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser/issues/2885\"\u003e#2885\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/d49bbe0ba374ab85f521b5f35e90fd3223031984\"\u003e\u003ccode\u003ed49bbe0\u003c/code\u003e\u003c/a\u003e fix: update dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.1.0 (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser/issues/2862\"\u003e#2862\u003c/a\u003e)\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/b19b1f627d3ff20f583f10caf005ed7bc147b7ab\"\u003e\u003ccode\u003eb19b1f6\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/9ae353f71d8135399f9e3cb776963a98f4cc4f08\"\u003e\u003ccode\u003e9ae353f\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.0.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.3.1/packages/template-parser\"\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/template-parser\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\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 \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/SubJunk/TimelineTools/pull/1397","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SubJunk%2FTimelineTools/issues/1397","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1397/packages"},{"uuid":"4147018825","node_id":"PR_kwDOJ4r_ws7N2L1w","number":689,"state":"open","title":"Bump @angular-eslint/eslint-plugin from 20.7.0 to 21.3.1 in /nifi-frontend/src/main/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-26T20:07:55.000Z","updated_at":"2026-04-01T22:34:18.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"@angular-eslint/eslint-plugin","old_version":"20.7.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":"/nifi-frontend/src/main/frontend","ecosystem":"npm"},"body":"Bumps [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) from 20.7.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/eslint-plugin\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/eslint-plugin/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/eslint-plugin\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\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\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\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\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\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\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\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\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:\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\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\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-implicit-takeuntil-destroyed] add rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2803\"\u003e#2803\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGabriel J. \u003ca href=\"https://github.com/rznn7\"\u003e\u003ccode\u003e@​rznn7\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.1.0 (2025-12-08)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e add prefer-signal-model rule to encourage using model() for two-way bindings (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2818\"\u003e#2818\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/1000391b2041c3bae7a4687273291959a9289fd9\"\u003e\u003ccode\u003e1000391\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-uncalled-signals] properly handle statements with una...\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/eslint-plugin/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/ffcc447713c47e0ebca1886e3a2216222f99966a\"\u003e\u003ccode\u003effcc447\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-uncalled-signals] detect \u003ccode\u003eSignal\u003c/code\u003e type correctly (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/65f2540c19820548b4e61dbbb9fddedf2e2031be\"\u003e\u003ccode\u003e65f2540\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): [no-uncalled-signals] detect Signal member access (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2848\"\u003e#2848\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/eslint-plugin/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/d86425178e40e8b628c45d848dc122403c0859bb\"\u003e\u003ccode\u003ed864251\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): add computed-must-return rule (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2882\"\u003e#2882\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/eslint-plugin\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/Eng-Anetac/nifi/pull/689","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eng-Anetac%2Fnifi/issues/689","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/689/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":"21.3.1","new_version":"21.4.0","update_type":"minor","path":null,"pr_created_at":"2026-05-25T22:40:18.000Z","version_change":"21.3.1 → 21.4.0","issue":{"uuid":"4519899475","node_id":"PR_kwDOBucjac7fMGhb","number":163,"state":"open","title":"chore(deps): Bump the all-deps group across 1 directory with 31 updates","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-25T22:40:18.000Z","updated_at":"2026-05-30T18:00:24.247Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"all-deps","update_count":31,"packages":[{"name":"@analogjs/content","old_version":"2.5.0","new_version":"2.5.2","repository_url":"https://github.com/analogjs/analog"},{"name":"@analogjs/router","old_version":"2.5.0","new_version":"2.5.2","repository_url":"https://github.com/analogjs/analog"},{"name":"@analogjs/vite-plugin-angular","old_version":"2.5.0","new_version":"2.5.2","repository_url":"https://github.com/analogjs/analog"},{"name":"@analogjs/vitest-angular","old_version":"2.5.0","new_version":"2.5.2","repository_url":"https://github.com/analogjs/analog"},{"name":"marked","old_version":"18.0.3","new_version":"18.0.4","repository_url":"https://github.com/markedjs/marked"},{"name":"mermaid","old_version":"11.14.0","new_version":"11.15.0","repository_url":"https://github.com/mermaid-js/mermaid"},{"name":"@analogjs/platform","old_version":"2.5.0","new_version":"2.5.2","repository_url":"https://github.com/analogjs/analog"},{"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":"@commitlint/cli","old_version":"21.0.0","new_version":"21.0.1","repository_url":"https://github.com/conventional-changelog/commitlint"},{"name":"@commitlint/config-conventional","old_version":"21.0.0","new_version":"21.0.1","repository_url":"https://github.com/conventional-changelog/commitlint"},{"name":"@oxc-project/runtime","old_version":"0.129.0","new_version":"0.132.0","repository_url":"https://github.com/oxc-project/oxc"},{"name":"@playwright/test","old_version":"1.59.1","new_version":"1.60.0","repository_url":"https://github.com/microsoft/playwright"},{"name":"@schematics/angular","old_version":"21.2.10","new_version":"21.2.12","repository_url":"https://github.com/angular/angular-cli"},{"name":"@swc/core","old_version":"1.15.33","new_version":"1.15.40","repository_url":"https://github.com/swc-project/swc"},{"name":"@testing-library/angular","old_version":"19.2.1","new_version":"19.3.0","repository_url":"https://github.com/testing-library/angular-testing-library"},{"name":"@types/node","old_version":"25.6.2","new_version":"25.9.1","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@typescript-eslint/utils","old_version":"8.59.2","new_version":"8.60.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"@vitest/coverage-v8","old_version":"4.1.5","new_version":"4.1.7","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"@vitest/ui","old_version":"4.1.5","new_version":"4.1.7","repository_url":"https://github.com/vitest-dev/vitest"},{"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":"eslint-plugin-playwright","old_version":"2.10.2","new_version":"2.10.4","repository_url":"https://github.com/mskelton/eslint-plugin-playwright"},{"name":"lint-staged","old_version":"17.0.4","new_version":"17.0.5","repository_url":"https://github.com/lint-staged/lint-staged"},{"name":"postcss","old_version":"8.5.14","new_version":"8.5.15","repository_url":"https://github.com/postcss/postcss"},{"name":"typescript-eslint","old_version":"8.59.2","new_version":"8.60.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"vite","old_version":"8.0.11","new_version":"8.0.14","repository_url":"https://github.com/vitejs/vite"},{"name":"vitest","old_version":"4.1.5","new_version":"4.1.7","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"ink","old_version":"7.0.2","new_version":"7.0.4","repository_url":"https://github.com/vadimdemedes/ink"},{"name":"@types/react","old_version":"19.2.14","new_version":"19.2.15","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"}],"path":null,"ecosystem":"npm"},"body":"Bumps the all-deps group with 31 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@analogjs/content](https://github.com/analogjs/analog) | `2.5.0` | `2.5.2` |\n| [@analogjs/router](https://github.com/analogjs/analog) | `2.5.0` | `2.5.2` |\n| [@analogjs/vite-plugin-angular](https://github.com/analogjs/analog) | `2.5.0` | `2.5.2` |\n| [@analogjs/vitest-angular](https://github.com/analogjs/analog) | `2.5.0` | `2.5.2` |\n| [marked](https://github.com/markedjs/marked) | `18.0.3` | `18.0.4` |\n| [mermaid](https://github.com/mermaid-js/mermaid) | `11.14.0` | `11.15.0` |\n| [@analogjs/platform](https://github.com/analogjs/analog) | `2.5.0` | `2.5.2` |\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| [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) | `21.0.0` | `21.0.1` |\n| [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) | `21.0.0` | `21.0.1` |\n| [@oxc-project/runtime](https://github.com/oxc-project/oxc/tree/HEAD/npm/runtime) | `0.129.0` | `0.132.0` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.59.1` | `1.60.0` |\n| [@schematics/angular](https://github.com/angular/angular-cli) | `21.2.10` | `21.2.12` |\n| [@swc/core](https://github.com/swc-project/swc/tree/HEAD/packages/core) | `1.15.33` | `1.15.40` |\n| [@testing-library/angular](https://github.com/testing-library/angular-testing-library) | `19.2.1` | `19.3.0` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.6.2` | `25.9.1` |\n| [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.59.2` | `8.60.0` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.1.5` | `4.1.7` |\n| [@vitest/ui](https://github.com/vitest-dev/vitest/tree/HEAD/packages/ui) | `4.1.5` | `4.1.7` |\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| [eslint-plugin-playwright](https://github.com/mskelton/eslint-plugin-playwright) | `2.10.2` | `2.10.4` |\n| [lint-staged](https://github.com/lint-staged/lint-staged) | `17.0.4` | `17.0.5` |\n| [postcss](https://github.com/postcss/postcss) | `8.5.14` | `8.5.15` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.59.2` | `8.60.0` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.0.11` | `8.0.14` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.5` | `4.1.7` |\n| [ink](https://github.com/vadimdemedes/ink) | `7.0.2` | `7.0.4` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.15` |\n\n\nUpdates `@analogjs/content` from 2.5.0 to 2.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/releases\"\u003e@​analogjs/content's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2\"\u003e2.5.2\u003c/a\u003e (2026-05-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.4...v2.5.2-beta.5\"\u003e2.5.2-beta.5\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.3...v2.5.2-beta.4\"\u003e2.5.2-beta.4\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.2...v2.5.2-beta.3\"\u003e2.5.2-beta.3\u003c/a\u003e (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.1...v2.5.2-beta.2\"\u003e2.5.2-beta.2\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2-beta.1\"\u003e2.5.2-beta.1\u003c/a\u003e (2026-05-15)\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/blob/beta/CHANGELOG.md\"\u003e@​analogjs/content's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2\"\u003e2.5.2\u003c/a\u003e (2026-05-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.4...v2.5.2-beta.5\"\u003e2.5.2-beta.5\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.3...v2.5.2-beta.4\"\u003e2.5.2-beta.4\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.2...v2.5.2-beta.3\"\u003e2.5.2-beta.3\u003c/a\u003e (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.1...v2.5.2-beta.2\"\u003e2.5.2-beta.2\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2-beta.1\"\u003e2.5.2-beta.1\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\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/analogjs/analog/commit/93c2f8388ec7554608acbebf93780235808cea0f\"\u003e\u003ccode\u003e93c2f83\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/d4ca9a812a64bde6609e0030a09c752fd9c8d1e9\"\u003e\u003ccode\u003ed4ca9a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2342\"\u003e#2342\u003c/a\u003e from analogjs/beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/9e6eb3fb061c369af08f4ce6737f9667737bf9e9\"\u003e\u003ccode\u003e9e6eb3f\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.5 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e\u003ccode\u003e532aa3e\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): compose fastCompile JIT strip map and cover esbuild...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/95a40e49c70a584da96ff5123151bf7762a68056\"\u003e\u003ccode\u003e95a40e4\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.4 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e\u003ccode\u003e44e6334\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/5fda5b4254ea3506e450f240c21677ba713ef45a\"\u003e\u003ccode\u003e5fda5b4\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.3 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e\u003ccode\u003e96ec5b3\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): skip source .d.ts files for composite TS projects (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/0ca4322159e27f9d32cb93257c25394f42c4f679\"\u003e\u003ccode\u003e0ca4322\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003e\u003ccode\u003ebc63520\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@analogjs/router` from 2.5.0 to 2.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/releases\"\u003e@​analogjs/router's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2\"\u003e2.5.2\u003c/a\u003e (2026-05-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.4...v2.5.2-beta.5\"\u003e2.5.2-beta.5\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.3...v2.5.2-beta.4\"\u003e2.5.2-beta.4\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.2...v2.5.2-beta.3\"\u003e2.5.2-beta.3\u003c/a\u003e (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.1...v2.5.2-beta.2\"\u003e2.5.2-beta.2\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2-beta.1\"\u003e2.5.2-beta.1\u003c/a\u003e (2026-05-15)\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/blob/beta/CHANGELOG.md\"\u003e@​analogjs/router's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2\"\u003e2.5.2\u003c/a\u003e (2026-05-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.4...v2.5.2-beta.5\"\u003e2.5.2-beta.5\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.3...v2.5.2-beta.4\"\u003e2.5.2-beta.4\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.2...v2.5.2-beta.3\"\u003e2.5.2-beta.3\u003c/a\u003e (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.1...v2.5.2-beta.2\"\u003e2.5.2-beta.2\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2-beta.1\"\u003e2.5.2-beta.1\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\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/analogjs/analog/commit/93c2f8388ec7554608acbebf93780235808cea0f\"\u003e\u003ccode\u003e93c2f83\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/d4ca9a812a64bde6609e0030a09c752fd9c8d1e9\"\u003e\u003ccode\u003ed4ca9a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2342\"\u003e#2342\u003c/a\u003e from analogjs/beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/9e6eb3fb061c369af08f4ce6737f9667737bf9e9\"\u003e\u003ccode\u003e9e6eb3f\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.5 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e\u003ccode\u003e532aa3e\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): compose fastCompile JIT strip map and cover esbuild...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/95a40e49c70a584da96ff5123151bf7762a68056\"\u003e\u003ccode\u003e95a40e4\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.4 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e\u003ccode\u003e44e6334\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/5fda5b4254ea3506e450f240c21677ba713ef45a\"\u003e\u003ccode\u003e5fda5b4\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.3 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e\u003ccode\u003e96ec5b3\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): skip source .d.ts files for composite TS projects (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/0ca4322159e27f9d32cb93257c25394f42c4f679\"\u003e\u003ccode\u003e0ca4322\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003e\u003ccode\u003ebc63520\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@analogjs/vite-plugin-angular` from 2.5.0 to 2.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/releases\"\u003e@​analogjs/vite-plugin-angular's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2\"\u003e2.5.2\u003c/a\u003e (2026-05-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.4...v2.5.2-beta.5\"\u003e2.5.2-beta.5\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.3...v2.5.2-beta.4\"\u003e2.5.2-beta.4\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.2...v2.5.2-beta.3\"\u003e2.5.2-beta.3\u003c/a\u003e (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.1...v2.5.2-beta.2\"\u003e2.5.2-beta.2\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2-beta.1\"\u003e2.5.2-beta.1\u003c/a\u003e (2026-05-15)\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/blob/beta/CHANGELOG.md\"\u003e@​analogjs/vite-plugin-angular's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2\"\u003e2.5.2\u003c/a\u003e (2026-05-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.4...v2.5.2-beta.5\"\u003e2.5.2-beta.5\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.3...v2.5.2-beta.4\"\u003e2.5.2-beta.4\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.2...v2.5.2-beta.3\"\u003e2.5.2-beta.3\u003c/a\u003e (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.1...v2.5.2-beta.2\"\u003e2.5.2-beta.2\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2-beta.1\"\u003e2.5.2-beta.1\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\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/analogjs/analog/commit/93c2f8388ec7554608acbebf93780235808cea0f\"\u003e\u003ccode\u003e93c2f83\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/d4ca9a812a64bde6609e0030a09c752fd9c8d1e9\"\u003e\u003ccode\u003ed4ca9a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2342\"\u003e#2342\u003c/a\u003e from analogjs/beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/9e6eb3fb061c369af08f4ce6737f9667737bf9e9\"\u003e\u003ccode\u003e9e6eb3f\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.5 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e\u003ccode\u003e532aa3e\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): compose fastCompile JIT strip map and cover esbuild...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/95a40e49c70a584da96ff5123151bf7762a68056\"\u003e\u003ccode\u003e95a40e4\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.4 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e\u003ccode\u003e44e6334\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/5fda5b4254ea3506e450f240c21677ba713ef45a\"\u003e\u003ccode\u003e5fda5b4\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.3 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e\u003ccode\u003e96ec5b3\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): skip source .d.ts files for composite TS projects (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/0ca4322159e27f9d32cb93257c25394f42c4f679\"\u003e\u003ccode\u003e0ca4322\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003e\u003ccode\u003ebc63520\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@analogjs/vitest-angular` from 2.5.0 to 2.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/releases\"\u003e@​analogjs/vitest-angular's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2\"\u003e2.5.2\u003c/a\u003e (2026-05-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.4...v2.5.2-beta.5\"\u003e2.5.2-beta.5\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.3...v2.5.2-beta.4\"\u003e2.5.2-beta.4\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.2...v2.5.2-beta.3\"\u003e2.5.2-beta.3\u003c/a\u003e (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.1...v2.5.2-beta.2\"\u003e2.5.2-beta.2\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.2-beta.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2-beta.1\"\u003e2.5.2-beta.1\u003c/a\u003e (2026-05-15)\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/blob/beta/CHANGELOG.md\"\u003e@​analogjs/vitest-angular's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2\"\u003e2.5.2\u003c/a\u003e (2026-05-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.4...v2.5.2-beta.5\"\u003e2.5.2-beta.5\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e compose fastCompile JIT strip map and cover esbuild fallback (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2341\"\u003e#2341\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e532aa3e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.3...v2.5.2-beta.4\"\u003e2.5.2-beta.4\u003c/a\u003e (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2340\"\u003e#2340\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e44e6334\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.2...v2.5.2-beta.3\"\u003e2.5.2-beta.3\u003c/a\u003e (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e skip source .d.ts files for composite TS projects (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2335\"\u003e#2335\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e96ec5b3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.2-beta.1...v2.5.2-beta.2\"\u003e2.5.2-beta.2\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22 (\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003ebc63520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support the \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e decorator in the fast compiler (\u003ca href=\"https://github.com/analogjs/analog/commit/b284696088faa4e65f572eb83708329b6eed3f79\"\u003eb284696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2-beta.1\"\u003e2.5.2-beta.1\u003c/a\u003e (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shaped core preset (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2337\"\u003e#2337\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/1956794ce6bb0b15d5aacf53a81b22469bb568a7\"\u003e1956794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\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/analogjs/analog/commit/93c2f8388ec7554608acbebf93780235808cea0f\"\u003e\u003ccode\u003e93c2f83\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/d4ca9a812a64bde6609e0030a09c752fd9c8d1e9\"\u003e\u003ccode\u003ed4ca9a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2342\"\u003e#2342\u003c/a\u003e from analogjs/beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/9e6eb3fb061c369af08f4ce6737f9667737bf9e9\"\u003e\u003ccode\u003e9e6eb3f\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.5 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/532aa3e0ff239175ead36d57278a243022492f0c\"\u003e\u003ccode\u003e532aa3e\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): compose fastCompile JIT strip map and cover esbuild...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/95a40e49c70a584da96ff5123151bf7762a68056\"\u003e\u003ccode\u003e95a40e4\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.4 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/44e6334cd9add9187fab6f5007e0b43361a9d84c\"\u003e\u003ccode\u003e44e6334\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): strip TS in fastCompile JIT path for StackBlitz (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/5fda5b4254ea3506e450f240c21677ba713ef45a\"\u003e\u003ccode\u003e5fda5b4\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.3 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/96ec5b38c030aa36009be2c6f0d9c5be342aa351\"\u003e\u003ccode\u003e96ec5b3\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): skip source .d.ts files for composite TS projects (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/0ca4322159e27f9d32cb93257c25394f42c4f679\"\u003e\u003ccode\u003e0ca4322\u003c/code\u003e\u003c/a\u003e chore: release 2.5.2-beta.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/bc63520720dd983d6ae8e2dcd6a936efe6168625\"\u003e\u003ccode\u003ebc63520\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): reject \u003ca href=\"https://github.com/Service\"\u003e\u003ccode\u003e@​Service\u003c/code\u003e\u003c/a\u003e on Angular below 22\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `marked` from 18.0.3 to 18.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/markedjs/marked/releases\"\u003emarked's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev18.0.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/markedjs/marked/compare/v18.0.3...v18.0.4\"\u003e18.0.4\u003c/a\u003e (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ecache list indentation regexes (\u003ca href=\"https://redirect.github.com/markedjs/marked/issues/3969\"\u003e#3969\u003c/a\u003e) (\u003ca href=\"https://github.com/markedjs/marked/commit/a37983f188d697fe98d350554dc95c49eaac6edd\"\u003ea37983f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix cli not reading stdin (\u003ca href=\"https://redirect.github.com/markedjs/marked/issues/3967\"\u003e#3967\u003c/a\u003e) (\u003ca href=\"https://github.com/markedjs/marked/commit/11adb697eeee2b0fa6da3a38d5146626347592dc\"\u003e11adb69\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/markedjs/marked/commit/0a2cd54cbe91911890e4460ae4fd7b9966e05654\"\u003e\u003ccode\u003e0a2cd54\u003c/code\u003e\u003c/a\u003e chore(release): 18.0.4 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/markedjs/marked/commit/11adb697eeee2b0fa6da3a38d5146626347592dc\"\u003e\u003ccode\u003e11adb69\u003c/code\u003e\u003c/a\u003e fix: fix cli not reading stdin (\u003ca href=\"https://redirect.github.com/markedjs/marked/issues/3967\"\u003e#3967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/markedjs/marked/commit/a37983f188d697fe98d350554dc95c49eaac6edd\"\u003e\u003ccode\u003ea37983f\u003c/code\u003e\u003c/a\u003e fix: cache list indentation regexes (\u003ca href=\"https://redirect.github.com/markedjs/marked/issues/3969\"\u003e#3969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/markedjs/marked/commit/d38b8c27e75a0d64fa2ff233a81a8b976210f1f1\"\u003e\u003ccode\u003ed38b8c2\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump eslint from 10.3.0 to 10.4.0 (\u003ca href=\"https://redirect.github.com/markedjs/marked/issues/3976\"\u003e#3976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/markedjs/marked/commit/7d9b17e8cd13af580fa404d114401043b5510344\"\u003e\u003ccode\u003e7d9b17e\u003c/code\u003e\u003c/a\u003e chore(docs): fix typo in package links (\u003ca href=\"https://redirect.github.com/markedjs/marked/issues/3975\"\u003e#3975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/markedjs/marked/commit/a7affc3b8ba7fc99481b6582ab5baa860228ec86\"\u003e\u003ccode\u003ea7affc3\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump \u003ccode\u003e@​semantic-release/release-notes-generator\u003c/code\u003e from 14.1.0 t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/markedjs/marked/commit/47d6ba1898437d913affd87180e157e47bf5c101\"\u003e\u003ccode\u003e47d6ba1\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump \u003ccode\u003e@​semantic-release/github\u003c/code\u003e from 12.0.6 to 12.0.8 (\u003ca href=\"https://redirect.github.com/markedjs/marked/issues/3972\"\u003e#3972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/markedjs/marked/commit/69257e455e599e9c9ddedcaf913569279b12c20c\"\u003e\u003ccode\u003e69257e4\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump eslint from 10.2.1 to 10.3.0 (\u003ca href=\"https://redirect.github.com/markedjs/marked/issues/3966\"\u003e#3966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/markedjs/marked/commit/1731d387f76ac98601a83504b217c2d7f5643898\"\u003e\u003ccode\u003e1731d38\u003c/code\u003e\u003c/a\u003e refactor(test): move task list output coverage to specs (\u003ca href=\"https://redirect.github.com/markedjs/marked/issues/3963\"\u003e#3963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/markedjs/marked/compare/v18.0.3...v18.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mermaid` from 11.14.0 to 11.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mermaid-js/mermaid/releases\"\u003emermaid's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emermaid@11.15.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/mermaid-js/mermaid/pull/7174\"\u003e#7174\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/0aca21739c0d1fcaaa206e04a6cd574ebc415483\"\u003e\u003ccode\u003e0aca217\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/milesspencer35\"\u003e\u003ccode\u003e@​milesspencer35\u003c/code\u003e\u003c/a\u003e! - feat(sequence): Add support for decimal start and increment values in the \u003ccode\u003eautonumber\u003c/code\u003e directive\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7512\"\u003e#7512\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/8e17492f7365ba50896382feb69a23efd9d8a22d\"\u003e\u003ccode\u003e8e17492\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/aruncveli\"\u003e\u003ccode\u003e@​aruncveli\u003c/code\u003e\u003c/a\u003e! - feat(flowchart): add datastore shape\u003c/p\u003e\n\u003cp\u003eIn Data flow diagrams, a datastore/warehouse/file/database is used to represent data persistence. It is denoted by a rectangle with only top and bottom borders, and can be used in flowcharts with \u003ccode\u003eA@{ shape: datastore, label: \u0026quot;Datastore\u0026quot; }\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/6440\"\u003e#6440\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/9ad8dde6d049adde85d8ed2d476c09b5820f3f4b\"\u003e\u003ccode\u003e9ad8dde\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/yordis\"\u003e\u003ccode\u003e@​yordis\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/lgazo\"\u003e\u003ccode\u003e@​lgazo\u003c/code\u003e\u003c/a\u003e! - feat: add Event Modeling diagram\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7707\"\u003e#7707\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/27db774627be1cee881961dfd0d2cb21cd01b79d\"\u003e\u003ccode\u003e27db774\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/txmxthy\"\u003e\u003ccode\u003e@​txmxthy\u003c/code\u003e\u003c/a\u003e! - feat(architecture): expose four fcose layout knobs for \u003ccode\u003earchitecture-beta\u003c/code\u003e diagrams (\u003ccode\u003enodeSeparation\u003c/code\u003e, \u003ccode\u003eidealEdgeLengthMultiplier\u003c/code\u003e, \u003ccode\u003eedgeElasticity\u003c/code\u003e, \u003ccode\u003enumIter\u003c/code\u003e) so authors can tune layout density and spread overlapping siblings without changing diagram source\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7604\"\u003e#7604\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/bf9502fb6012a4b724679b401ac928f5ee55161c\"\u003e\u003ccode\u003ebf9502f\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/M-a-c\"\u003e\u003ccode\u003e@​M-a-c\u003c/code\u003e\u003c/a\u003e! - feat(class): add nested namespace support for class diagrams via dot notation and syntactic nesting\u003c/p\u003e\n\u003cp\u003eIf you have namespaces in class diagrams that use \u003ccode\u003e.\u003c/code\u003es already and want to render them without nesting (≤v11.14.0 behaviour), you can use set \u003ccode\u003eclass.hierarchicalNamespaces=false\u003c/code\u003e in your mermaid config:\u003c/p\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003econfig:\n  class:\n    hierarchicalNamespaces: false\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7272\"\u003e#7272\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/88cdd3dc0aab9577174561b04e14760c565a232b\"\u003e\u003ccode\u003e88cdd3d\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/xinbenlv\"\u003e\u003ccode\u003e@​xinbenlv\u003c/code\u003e\u003c/a\u003e! - feat(sankey): add outlined label style, configurable nodeWidth/nodePadding, and custom node colors\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/e9b0f34d8d82a6260077764ee45e1d7d90957a0f\"\u003e\u003ccode\u003ee9b0f34\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix: prevent unbalanced CSS styles in classDefs\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/37ff937f1da2e19f882fd1db01235db4d01f4056\"\u003e\u003ccode\u003e37ff937\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix: create CSS styles using the CSSOM\u003c/p\u003e\n\u003cp\u003eThis removes some invalid CSS and normalizes some CSS formatting.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7508\"\u003e#7508\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/bfe60cc67b9a6dec64f9161f58e4d24a06c42b65\"\u003e\u003ccode\u003ebfe60cc\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/biiab\"\u003e\u003ccode\u003e@​biiab\u003c/code\u003e\u003c/a\u003e! - fix(stateDiagram): \u003ccode\u003eend note\u003c/code\u003e now only closes a note when used on a new line\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/faafb5d49106dd32c367f3882505f2dd625aa30e\"\u003e\u003ccode\u003efaafb5d\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix(gantt): add iteration limit for \u003ccode\u003eexcludes\u003c/code\u003e field\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/65f8be2a42faf869b811469571983cba7eeeca99\"\u003e\u003ccode\u003e65f8be2\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix: disallow some CSS at-rules in custom CSS\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7726\"\u003e#7726\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/1502f32f3c5fb944925b0c527fbbde3c4f041824\"\u003e\u003ccode\u003e1502f32\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/aloisklink\"\u003e\u003ccode\u003e@​aloisklink\u003c/code\u003e\u003c/a\u003e! - fix(wardley): fix unnecessary sanitization of text\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7578\"\u003e#7578\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/1f98db8e326299ac97a2fa60abfd509d8f5f16e2\"\u003e\u003ccode\u003e1f98db8\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/Gaston202\"\u003e\u003ccode\u003e@​Gaston202\u003c/code\u003e\u003c/a\u003e! - fix(class): self-referential class multiplicity labels no longer rendered multiple times\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7560\"\u003e#7560\u003c/a\u003e. Resolves an issue where cardinality labels on self-referential class relationships were rendered three times due to edge splitting in the dagre layout. The fix ensures that each sub-edge only carries its relevant label positions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7592\"\u003e#7592\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/2343e38498a3b31f8ce5e79f1f009e0b56fbe086\"\u003e\u003ccode\u003e2343e38\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/knsv-bot\"\u003e\u003ccode\u003e@​knsv-bot\u003c/code\u003e\u003c/a\u003e! - fix(sequence): add background box behind alt/else section title labels in sequence diagrams\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7589\"\u003e#7589\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/7fb9509b8b5cb1dc48519dc60cf6cdc6afba0462\"\u003e\u003ccode\u003e7fb9509\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/NYCU-Chung\"\u003e\u003ccode\u003e@​NYCU-Chung\u003c/code\u003e\u003c/a\u003e! - fix(block): prevent column widths from shrinking when mixing different column spans\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7632\"\u003e#7632\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/3f9e0f15bedc1e2c71ddb6b34192d1a21124cfc2\"\u003e\u003ccode\u003e3f9e0f1\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ekiauhce\"\u003e\u003ccode\u003e@​ekiauhce\u003c/code\u003e\u003c/a\u003e! - fix(sequence): correct messageAlign label position for right-to-left arrows in sequence diagrams\u003c/p\u003e\n\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/mermaid-js/mermaid/commit/41646dfd43ac83f001b03c70605feb036afae46d\"\u003e\u003ccode\u003e41646df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7739\"\u003e#7739\u003c/a\u003e from aloisklink/ci/fix-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/2671f5c44a1515960ebc41c09a365c41860f95ee\"\u003e\u003ccode\u003e2671f5c\u003c/code\u003e\u003c/a\u003e docs: fix v11.15.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/f4bf04b5db8bed603e40ed3d5ce5228d6b07754e\"\u003e\u003ccode\u003ef4bf04b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7738\"\u003e#7738\u003c/a\u003e from mermaid-js/changeset-release/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/abfb563e1dcbd46d617f44a6361bd6d926dc6289\"\u003e\u003ccode\u003eabfb563\u003c/code\u003e\u003c/a\u003e Version Packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/60b289f428d0a0832ad95ed4e1fb326344e23532\"\u003e\u003ccode\u003e60b289f\u003c/code\u003e\u003c/a\u003e Release Candidate 11.15.0 (\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7737\"\u003e#7737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/d37c0db39ca2405b4473361063df2c47109dc2c9\"\u003e\u003ccode\u003ed37c0db\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7730\"\u003e#7730\u003c/a\u003e from aloisklink/fix/fix-edgeLabelRightLeft-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/5ab5a2895fa8b7e90de85b43a4b99aa50b39b0f1\"\u003e\u003ccode\u003e5ab5a28\u003c/code\u003e\u003c/a\u003e docs: improve nested namespace changeset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/18f8b4c5bf67aface3485272b48042f2fdd6fad2\"\u003e\u003ccode\u003e18f8b4c\u003c/code\u003e\u003c/a\u003e fix: revert endEdgeLabelLeft/endEdgeLabelRight change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/504b2eb73d4d827baa817efd47ab6f44ae769b5a\"\u003e\u003ccode\u003e504b2eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7726\"\u003e#7726\u003c/a\u003e from aloisklink/fix/correct-unnecessary-html-escapes...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/1502f32f3c5fb944925b0c527fbbde3c4f041824\"\u003e\u003ccode\u003e1502f32\u003c/code\u003e\u003c/a\u003e fix(wardley): fix unnecessary sanitization of text\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mermaid-js/mermaid/compare/mermaid@11.14.0...mermaid@11.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@analogjs/platform` from 2.5.0 to 2.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/releases\"\u003e@​analogjs/platform's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1...v2.5.2\"\u003e2.5.2\u003c/a\u003e (2026-05-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorybook-angular:\u003c/strong\u003e support Storybook 10.4+ object-shap...\n\n_Description has been truncated_","html_url":"https://github.com/chrisjwalk/angular-cli-netcore-ngrx-starter/pull/163","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisjwalk%2Fangular-cli-netcore-ngrx-starter/issues/163","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/163/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-19T02:43:50.000Z","version_change":"21.3.1 → 21.4.0","issue":{"uuid":"4474000305","node_id":"PR_kwDOBucjac7c5Wbf","number":161,"state":"closed","title":"chore(deps): Bump the all-deps group across 1 directory with 58 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-25T22:37:49.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-19T02:43:50.000Z","updated_at":"2026-05-25T22:37:51.000Z","time_to_close":590039,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"all-deps","update_count":58,"packages":[{"name":"@analogjs/content","old_version":"2.5.0","new_version":"2.5.1","repository_url":"https://github.com/analogjs/analog"},{"name":"@analogjs/router","old_version":"2.5.0","new_version":"2.5.1","repository_url":"https://github.com/analogjs/analog"},{"name":"@analogjs/vite-plugin-angular","old_version":"2.5.0","new_version":"2.5.1","repository_url":"https://github.com/analogjs/analog"},{"name":"@analogjs/vitest-angular","old_version":"2.5.0","new_version":"2.5.1","repository_url":"https://github.com/analogjs/analog"},{"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/platform-server","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/service-worker","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"mermaid","old_version":"11.14.0","new_version":"11.15.0","repository_url":"https://github.com/mermaid-js/mermaid"},{"name":"@analogjs/platform","old_version":"2.5.0","new_version":"2.5.1","repository_url":"https://github.com/analogjs/analog"},{"name":"@angular-devkit/architect","old_version":"0.2102.10","new_version":"0.2102.11","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular-devkit/core","old_version":"21.2.10","new_version":"21.2.11","repository_url":"https://github.com/angular/angular-cli"},{"name":"@angular-devkit/schematics","old_version":"21.2.10","new_version":"21.2.11","repository_url":"https://github.com/angular/angular-cli"},{"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":"@angular/language-service","old_version":"21.2.12","new_version":"21.2.13","repository_url":"https://github.com/angular/angular"},{"name":"@commitlint/cli","old_version":"21.0.0","new_version":"21.0.1","repository_url":"https://github.com/conventional-changelog/commitlint"},{"name":"@commitlint/config-conventional","old_version":"21.0.0","new_version":"21.0.1","repository_url":"https://github.com/conventional-changelog/commitlint"},{"name":"@nx/angular","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@nx/devkit","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@nx/esbuild","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@nx/eslint","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@nx/eslint-plugin","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@nx/js","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@nx/node","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@nx/playwright","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@nx/vite","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@nx/vitest","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@nx/web","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@nx/workspace","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"@oxc-project/runtime","old_version":"0.129.0","new_version":"0.132.0","repository_url":"https://github.com/oxc-project/oxc"},{"name":"@playwright/test","old_version":"1.59.1","new_version":"1.60.0","repository_url":"https://github.com/microsoft/playwright"},{"name":"@schematics/angular","old_version":"21.2.10","new_version":"21.2.11","repository_url":"https://github.com/angular/angular-cli"},{"name":"@types/node","old_version":"25.6.2","new_version":"25.9.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@typescript-eslint/utils","old_version":"8.59.2","new_version":"8.59.4","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"@vitest/coverage-v8","old_version":"4.1.5","new_version":"4.1.6","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"@vitest/ui","old_version":"4.1.5","new_version":"4.1.6","repository_url":"https://github.com/vitest-dev/vitest"},{"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":"eslint-plugin-playwright","old_version":"2.10.2","new_version":"2.10.3","repository_url":"https://github.com/mskelton/eslint-plugin-playwright"},{"name":"lint-staged","old_version":"17.0.4","new_version":"17.0.5","repository_url":"https://github.com/lint-staged/lint-staged"},{"name":"nx","old_version":"22.7.1","new_version":"22.7.2","repository_url":"https://github.com/nrwl/nx"},{"name":"typescript-eslint","old_version":"8.59.2","new_version":"8.59.4","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"vite","old_version":"8.0.11","new_version":"8.0.13","repository_url":"https://github.com/vitejs/vite"},{"name":"vitest","old_version":"4.1.5","new_version":"4.1.6","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"ink","old_version":"7.0.2","new_version":"7.0.3","repository_url":"https://github.com/vadimdemedes/ink"}],"path":null,"ecosystem":"npm"},"body":"Bumps the all-deps group with 58 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@analogjs/content](https://github.com/analogjs/analog) | `2.5.0` | `2.5.1` |\n| [@analogjs/router](https://github.com/analogjs/analog) | `2.5.0` | `2.5.1` |\n| [@analogjs/vite-plugin-angular](https://github.com/analogjs/analog) | `2.5.0` | `2.5.1` |\n| [@analogjs/vitest-angular](https://github.com/analogjs/analog) | `2.5.0` | `2.5.1` |\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/platform-server](https://github.com/angular/angular/tree/HEAD/packages/platform-server) | `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/service-worker](https://github.com/angular/angular/tree/HEAD/packages/service-worker) | `21.2.12` | `21.2.13` |\n| [mermaid](https://github.com/mermaid-js/mermaid) | `11.14.0` | `11.15.0` |\n| [@analogjs/platform](https://github.com/analogjs/analog) | `2.5.0` | `2.5.1` |\n| [@angular-devkit/architect](https://github.com/angular/angular-cli) | `0.2102.10` | `0.2102.11` |\n| [@angular-devkit/core](https://github.com/angular/angular-cli) | `21.2.10` | `21.2.11` |\n| [@angular-devkit/schematics](https://github.com/angular/angular-cli) | `21.2.10` | `21.2.11` |\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| [@angular/language-service](https://github.com/angular/angular/tree/HEAD/packages/language-service) | `21.2.12` | `21.2.13` |\n| [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) | `21.0.0` | `21.0.1` |\n| [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) | `21.0.0` | `21.0.1` |\n| [@nx/angular](https://github.com/nrwl/nx/tree/HEAD/packages/angular) | `22.7.1` | `22.7.2` |\n| [@nx/devkit](https://github.com/nrwl/nx/tree/HEAD/packages/devkit) | `22.7.1` | `22.7.2` |\n| [@nx/esbuild](https://github.com/nrwl/nx/tree/HEAD/packages/esbuild) | `22.7.1` | `22.7.2` |\n| [@nx/eslint](https://github.com/nrwl/nx/tree/HEAD/packages/eslint) | `22.7.1` | `22.7.2` |\n| [@nx/eslint-plugin](https://github.com/nrwl/nx/tree/HEAD/packages/eslint-plugin) | `22.7.1` | `22.7.2` |\n| [@nx/js](https://github.com/nrwl/nx/tree/HEAD/packages/js) | `22.7.1` | `22.7.2` |\n| [@nx/node](https://github.com/nrwl/nx/tree/HEAD/packages/node) | `22.7.1` | `22.7.2` |\n| [@nx/playwright](https://github.com/nrwl/nx/tree/HEAD/packages/playwright) | `22.7.1` | `22.7.2` |\n| [@nx/vite](https://github.com/nrwl/nx/tree/HEAD/packages/vite) | `22.7.1` | `22.7.2` |\n| [@nx/vitest](https://github.com/nrwl/nx/tree/HEAD/packages/vitest) | `22.7.1` | `22.7.2` |\n| [@nx/web](https://github.com/nrwl/nx/tree/HEAD/packages/web) | `22.7.1` | `22.7.2` |\n| [@nx/workspace](https://github.com/nrwl/nx/tree/HEAD/packages/workspace) | `22.7.1` | `22.7.2` |\n| [@oxc-project/runtime](https://github.com/oxc-project/oxc/tree/HEAD/npm/runtime) | `0.129.0` | `0.132.0` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.59.1` | `1.60.0` |\n| [@schematics/angular](https://github.com/angular/angular-cli) | `21.2.10` | `21.2.11` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.6.2` | `25.9.0` |\n| [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.59.2` | `8.59.4` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.1.5` | `4.1.6` |\n| [@vitest/ui](https://github.com/vitest-dev/vitest/tree/HEAD/packages/ui) | `4.1.5` | `4.1.6` |\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| [eslint-plugin-playwright](https://github.com/mskelton/eslint-plugin-playwright) | `2.10.2` | `2.10.3` |\n| [lint-staged](https://github.com/lint-staged/lint-staged) | `17.0.4` | `17.0.5` |\n| [nx](https://github.com/nrwl/nx/tree/HEAD/packages/nx) | `22.7.1` | `22.7.2` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.59.2` | `8.59.4` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.0.11` | `8.0.13` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.5` | `4.1.6` |\n| [ink](https://github.com/vadimdemedes/ink) | `7.0.2` | `7.0.3` |\n\n\nUpdates `@analogjs/content` from 2.5.0 to 2.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/releases\"\u003e@​analogjs/content's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.2...v2.5.1-beta.3\"\u003e2.5.1-beta.3\u003c/a\u003e (2026-05-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.1...v2.5.1-beta.2\"\u003e2.5.1-beta.2\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1-beta.1\"\u003e2.5.1-beta.1\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\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/analogjs/analog/blob/beta/CHANGELOG.md\"\u003e@​analogjs/content's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.2...v2.5.1-beta.3\"\u003e2.5.1-beta.3\u003c/a\u003e (2026-05-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.1...v2.5.1-beta.2\"\u003e2.5.1-beta.2\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1-beta.1\"\u003e2.5.1-beta.1\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\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/analogjs/analog/commit/116bd1db7aca99a663540de960fb73338d6f7574\"\u003e\u003ccode\u003e116bd1d\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/3646787bcfb786acd9160496bb3de7906de87390\"\u003e\u003ccode\u003e3646787\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2334\"\u003e#2334\u003c/a\u003e from analogjs/beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/3f51e35a256153ca07946288299c2a323de1c015\"\u003e\u003ccode\u003e3f51e35\u003c/code\u003e\u003c/a\u003e chore: update pr-scope-governance.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/ae08d65f147a46a658af4b2ecd8c25b0972ed949\"\u003e\u003ccode\u003eae08d65\u003c/code\u003e\u003c/a\u003e chore: update pr-scope-governance.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/19bebb657fe3ff284eab72e852aac718b684f2a9\"\u003e\u003ccode\u003e19bebb6\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1-beta.3 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e\u003ccode\u003e46c608f\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/17dd6bfa5cd9fea6d46bba3e7ec6e2e0d629eade\"\u003e\u003ccode\u003e17dd6bf\u003c/code\u003e\u003c/a\u003e chore: update personal contributor information (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2331\"\u003e#2331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/bb4cf8a63e4e860b8d3c0970025a4759815f4bdb\"\u003e\u003ccode\u003ebb4cf8a\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1-beta.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e\u003ccode\u003e6f90b77\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): keep fallback-block components eager in defer walker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e\u003ccode\u003e8a0bae6\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): wrap binary/integer-literal receivers in member access\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@analogjs/router` from 2.5.0 to 2.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/releases\"\u003e@​analogjs/router's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.2...v2.5.1-beta.3\"\u003e2.5.1-beta.3\u003c/a\u003e (2026-05-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.1...v2.5.1-beta.2\"\u003e2.5.1-beta.2\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1-beta.1\"\u003e2.5.1-beta.1\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\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/analogjs/analog/blob/beta/CHANGELOG.md\"\u003e@​analogjs/router's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.2...v2.5.1-beta.3\"\u003e2.5.1-beta.3\u003c/a\u003e (2026-05-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.1...v2.5.1-beta.2\"\u003e2.5.1-beta.2\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1-beta.1\"\u003e2.5.1-beta.1\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\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/analogjs/analog/commit/116bd1db7aca99a663540de960fb73338d6f7574\"\u003e\u003ccode\u003e116bd1d\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/3646787bcfb786acd9160496bb3de7906de87390\"\u003e\u003ccode\u003e3646787\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2334\"\u003e#2334\u003c/a\u003e from analogjs/beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/3f51e35a256153ca07946288299c2a323de1c015\"\u003e\u003ccode\u003e3f51e35\u003c/code\u003e\u003c/a\u003e chore: update pr-scope-governance.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/ae08d65f147a46a658af4b2ecd8c25b0972ed949\"\u003e\u003ccode\u003eae08d65\u003c/code\u003e\u003c/a\u003e chore: update pr-scope-governance.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/19bebb657fe3ff284eab72e852aac718b684f2a9\"\u003e\u003ccode\u003e19bebb6\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1-beta.3 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e\u003ccode\u003e46c608f\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/17dd6bfa5cd9fea6d46bba3e7ec6e2e0d629eade\"\u003e\u003ccode\u003e17dd6bf\u003c/code\u003e\u003c/a\u003e chore: update personal contributor information (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2331\"\u003e#2331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/bb4cf8a63e4e860b8d3c0970025a4759815f4bdb\"\u003e\u003ccode\u003ebb4cf8a\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1-beta.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e\u003ccode\u003e6f90b77\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): keep fallback-block components eager in defer walker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e\u003ccode\u003e8a0bae6\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): wrap binary/integer-literal receivers in member access\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@analogjs/vite-plugin-angular` from 2.5.0 to 2.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/releases\"\u003e@​analogjs/vite-plugin-angular's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.2...v2.5.1-beta.3\"\u003e2.5.1-beta.3\u003c/a\u003e (2026-05-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.1...v2.5.1-beta.2\"\u003e2.5.1-beta.2\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1-beta.1\"\u003e2.5.1-beta.1\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\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/analogjs/analog/blob/beta/CHANGELOG.md\"\u003e@​analogjs/vite-plugin-angular's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.2...v2.5.1-beta.3\"\u003e2.5.1-beta.3\u003c/a\u003e (2026-05-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.1...v2.5.1-beta.2\"\u003e2.5.1-beta.2\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1-beta.1\"\u003e2.5.1-beta.1\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\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/analogjs/analog/commit/116bd1db7aca99a663540de960fb73338d6f7574\"\u003e\u003ccode\u003e116bd1d\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/3646787bcfb786acd9160496bb3de7906de87390\"\u003e\u003ccode\u003e3646787\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2334\"\u003e#2334\u003c/a\u003e from analogjs/beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/3f51e35a256153ca07946288299c2a323de1c015\"\u003e\u003ccode\u003e3f51e35\u003c/code\u003e\u003c/a\u003e chore: update pr-scope-governance.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/ae08d65f147a46a658af4b2ecd8c25b0972ed949\"\u003e\u003ccode\u003eae08d65\u003c/code\u003e\u003c/a\u003e chore: update pr-scope-governance.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/19bebb657fe3ff284eab72e852aac718b684f2a9\"\u003e\u003ccode\u003e19bebb6\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1-beta.3 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e\u003ccode\u003e46c608f\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/17dd6bfa5cd9fea6d46bba3e7ec6e2e0d629eade\"\u003e\u003ccode\u003e17dd6bf\u003c/code\u003e\u003c/a\u003e chore: update personal contributor information (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2331\"\u003e#2331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/bb4cf8a63e4e860b8d3c0970025a4759815f4bdb\"\u003e\u003ccode\u003ebb4cf8a\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1-beta.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e\u003ccode\u003e6f90b77\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): keep fallback-block components eager in defer walker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e\u003ccode\u003e8a0bae6\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): wrap binary/integer-literal receivers in member access\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@analogjs/vitest-angular` from 2.5.0 to 2.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/analogjs/analog/releases\"\u003e@​analogjs/vitest-angular's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.2...v2.5.1-beta.3\"\u003e2.5.1-beta.3\u003c/a\u003e (2026-05-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.1...v2.5.1-beta.2\"\u003e2.5.1-beta.2\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.1-beta.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1-beta.1\"\u003e2.5.1-beta.1\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\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/analogjs/analog/blob/beta/CHANGELOG.md\"\u003e@​analogjs/vitest-angular's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003e2.5.1\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.2...v2.5.1-beta.3\"\u003e2.5.1-beta.3\u003c/a\u003e (2026-05-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e46c608f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.1-beta.1...v2.5.1-beta.2\"\u003e2.5.1-beta.2\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e keep fallback-block components eager in defer walker (\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e6f90b77\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e support \u003ca href=\"https://github.com/defer\"\u003e\u003ccode\u003e@​defer\u003c/code\u003e\u003c/a\u003e nested inside \u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/analogjs/analog/commit/28c960068d473dc2cc0f4eff583bd11f0fd22220\"\u003e28c9600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e wrap binary/integer-literal receivers in member access (\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e8a0bae6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1-beta.1\"\u003e2.5.1-beta.1\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evite-plugin-angular:\u003c/strong\u003e strip TS in fastCompile bypass for non-Angular files (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2327\"\u003e#2327\u003c/a\u003e) (\u003ca href=\"https://github.com/analogjs/analog/commit/d337c55ffe83b1a961e6aa91e805feab12e1aa1b\"\u003ed337c55\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/analogjs/analog/commit/116bd1db7aca99a663540de960fb73338d6f7574\"\u003e\u003ccode\u003e116bd1d\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/3646787bcfb786acd9160496bb3de7906de87390\"\u003e\u003ccode\u003e3646787\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2334\"\u003e#2334\u003c/a\u003e from analogjs/beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/3f51e35a256153ca07946288299c2a323de1c015\"\u003e\u003ccode\u003e3f51e35\u003c/code\u003e\u003c/a\u003e chore: update pr-scope-governance.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/ae08d65f147a46a658af4b2ecd8c25b0972ed949\"\u003e\u003ccode\u003eae08d65\u003c/code\u003e\u003c/a\u003e chore: update pr-scope-governance.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/19bebb657fe3ff284eab72e852aac718b684f2a9\"\u003e\u003ccode\u003e19bebb6\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1-beta.3 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/46c608f0e365e483e623d52bd7ef61b01d535365\"\u003e\u003ccode\u003e46c608f\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): preserve TS sourcemaps in test pipeline (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2333\"\u003e#2333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/17dd6bfa5cd9fea6d46bba3e7ec6e2e0d629eade\"\u003e\u003ccode\u003e17dd6bf\u003c/code\u003e\u003c/a\u003e chore: update personal contributor information (\u003ca href=\"https://redirect.github.com/analogjs/analog/issues/2331\"\u003e#2331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/bb4cf8a63e4e860b8d3c0970025a4759815f4bdb\"\u003e\u003ccode\u003ebb4cf8a\u003c/code\u003e\u003c/a\u003e chore: release 2.5.1-beta.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/6f90b777e45af5a566d96fd626d1a49a2c5f401d\"\u003e\u003ccode\u003e6f90b77\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): keep fallback-block components eager in defer walker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/analogjs/analog/commit/8a0bae6c2d7713d26ab4ab99a153fc006a9595ec\"\u003e\u003ccode\u003e8a0bae6\u003c/code\u003e\u003c/a\u003e fix(vite-plugin-angular): wrap binary/integer-literal receivers in member access\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/analogjs/analog/compare/v2.5.0...v2.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\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/...\n\n_Description has been truncated_","html_url":"https://github.com/chrisjwalk/angular-cli-netcore-ngrx-starter/pull/161","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisjwalk%2Fangular-cli-netcore-ngrx-starter/issues/161","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/161/packages"}},{"old_version":"21.3.1","new_version":"21.4.0","update_type":"minor","path":null,"pr_created_at":"2026-05-17T22:19:10.000Z","version_change":"21.3.1 → 21.4.0","issue":{"uuid":"4465110793","node_id":"PR_kwDOQJxXsc7ccwoS","number":109,"state":"closed","title":"chore(deps)(deps): bump the all-packages group across 1 directory with 43 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-05-17T22:23:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-17T22:19:10.000Z","updated_at":"2026-05-17T22:23:58.000Z","time_to_close":286,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps): bump","group_name":"all-packages","update_count":43,"packages":[{"name":"@tanstack/react-query","old_version":"5.100.9","new_version":"5.100.10","repository_url":"https://github.com/TanStack/query"},{"name":"axios","old_version":"1.16.0","new_version":"1.16.1","repository_url":"https://github.com/axios/axios"},{"name":"eslint-config-next","old_version":"16.2.4","new_version":"16.2.6","repository_url":"https://github.com/vercel/next.js"},{"name":"fumadocs-core","old_version":"16.5.0","new_version":"16.8.11","repository_url":"https://github.com/fuma-nama/fumadocs"},{"name":"fumadocs-mdx","old_version":"14.2.6","new_version":"15.0.6","repository_url":"https://github.com/fuma-nama/fumadocs"},{"name":"fumadocs-ui","old_version":"16.5.0","new_version":"16.8.11","repository_url":"https://github.com/fuma-nama/fumadocs"},{"name":"lucide-react","old_version":"0.469.0","new_version":"1.16.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"mermaid","old_version":"11.14.0","new_version":"11.15.0","repository_url":"https://github.com/mermaid-js/mermaid"},{"name":"@commitlint/cli","old_version":"20.5.3","new_version":"21.0.1","repository_url":"https://github.com/conventional-changelog/commitlint"},{"name":"@commitlint/config-conventional","old_version":"20.5.3","new_version":"21.0.1","repository_url":"https://github.com/conventional-changelog/commitlint"},{"name":"@middy/core","old_version":"7.5.0","new_version":"7.6.4","repository_url":"https://github.com/middyjs/middy"},{"name":"@middy/http-cors","old_version":"7.5.0","new_version":"7.6.4","repository_url":"https://github.com/middyjs/middy"},{"name":"@middy/http-security-headers","old_version":"7.5.0","new_version":"7.6.4","repository_url":"https://github.com/middyjs/middy"},{"name":"@middy/validator","old_version":"7.5.0","new_version":"7.6.4","repository_url":"https://github.com/middyjs/middy"},{"name":"@nestjs/common","old_version":"11.1.19","new_version":"11.1.21","repository_url":"https://github.com/nestjs/nest"},{"name":"@types/node","old_version":"22.19.7","new_version":"25.8.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"ai","old_version":"6.0.177","new_version":"6.0.184","repository_url":"https://github.com/vercel/ai"},{"name":"baseline-browser-mapping","old_version":"2.10.29","new_version":"2.10.30","repository_url":"https://github.com/web-platform-dx/baseline-browser-mapping"},{"name":"enhanced-resolve","old_version":"5.21.2","new_version":"5.21.3","repository_url":"https://github.com/webpack/enhanced-resolve"},{"name":"eslint","old_version":"8.57.1","new_version":"10.4.0","repository_url":"https://github.com/eslint/eslint"},{"name":"eslint-plugin-oxlint","old_version":"1.62.0","new_version":"1.65.0","repository_url":"https://github.com/oxc-project/eslint-plugin-oxlint"},{"name":"eslint-plugin-unicorn","old_version":"62.0.0","new_version":"64.0.0","repository_url":"https://github.com/sindresorhus/eslint-plugin-unicorn"},{"name":"jiti","old_version":"2.6.1","new_version":"2.7.0","repository_url":"https://github.com/unjs/jiti"},{"name":"oxlint","old_version":"1.62.0","new_version":"1.65.0","repository_url":"https://github.com/oxc-project/oxc"},{"name":"storybook","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"typescript","old_version":"5.9.3","new_version":"6.0.3","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"verdaccio","old_version":"6.6.0","new_version":"6.7.1","repository_url":"https://github.com/verdaccio/verdaccio"},{"name":"@playwright/test","old_version":"1.59.1","new_version":"1.60.0","repository_url":"https://github.com/microsoft/playwright"},{"name":"@storybook/addon-a11y","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/addon-docs","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/addon-themes","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/react-vite","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/test-runner","old_version":"0.24.3","new_version":"0.24.4","repository_url":"https://github.com/storybookjs/test-runner"},{"name":"wait-on","old_version":"8.0.5","new_version":"9.0.10","repository_url":"https://github.com/jeffbski/wait-on"},{"name":"@ai-sdk/openai","old_version":"3.0.63","new_version":"3.0.64","repository_url":"https://github.com/vercel/ai"},{"name":"@google/genai","old_version":"1.51.0","new_version":"2.3.0","repository_url":"https://github.com/googleapis/js-genai"},{"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":"eslint-plugin-n","old_version":"17.24.0","new_version":"18.0.1","repository_url":"https://github.com/eslint-community/eslint-plugin-n"},{"name":"eslint-plugin-security","old_version":"2.1.1","new_version":"4.0.0","repository_url":"https://github.com/eslint-community/eslint-plugin-security"},{"name":"eslint-plugin-sonarjs","old_version":"3.0.7","new_version":"4.0.3","repository_url":"https://github.com/SonarSource/SonarJS"},{"name":"eslint-plugin-vue","old_version":"10.9.0","new_version":"10.9.1","repository_url":"https://github.com/vuejs/eslint-plugin-vue"},{"name":"tsx","old_version":"4.21.0","new_version":"4.22.1","repository_url":"https://github.com/privatenumber/tsx"}],"path":null,"ecosystem":"npm"},"body":"Bumps the all-packages group with 42 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.100.9` | `5.100.10` |\n| [axios](https://github.com/axios/axios) | `1.16.0` | `1.16.1` |\n| [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `16.2.4` | `16.2.6` |\n| [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.5.0` | `16.8.11` |\n| [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `14.2.6` | `15.0.6` |\n| [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.5.0` | `16.8.11` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.469.0` | `1.16.0` |\n| [mermaid](https://github.com/mermaid-js/mermaid) | `11.14.0` | `11.15.0` |\n| [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) | `20.5.3` | `21.0.1` |\n| [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) | `20.5.3` | `21.0.1` |\n| [@middy/core](https://github.com/middyjs/middy/tree/HEAD/packages/core) | `7.5.0` | `7.6.4` |\n| [@middy/http-cors](https://github.com/middyjs/middy/tree/HEAD/packages/http-cors) | `7.5.0` | `7.6.4` |\n| [@middy/http-security-headers](https://github.com/middyjs/middy/tree/HEAD/packages/http-security-headers) | `7.5.0` | `7.6.4` |\n| [@middy/validator](https://github.com/middyjs/middy/tree/HEAD/packages/validator) | `7.5.0` | `7.6.4` |\n| [@nestjs/common](https://github.com/nestjs/nest/tree/HEAD/packages/common) | `11.1.19` | `11.1.21` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `22.19.7` | `25.8.0` |\n| [ai](https://github.com/vercel/ai/tree/HEAD/packages/ai) | `6.0.177` | `6.0.184` |\n| [baseline-browser-mapping](https://github.com/web-platform-dx/baseline-browser-mapping) | `2.10.29` | `2.10.30` |\n| [enhanced-resolve](https://github.com/webpack/enhanced-resolve) | `5.21.2` | `5.21.3` |\n| [eslint](https://github.com/eslint/eslint) | `8.57.1` | `10.4.0` |\n| [eslint-plugin-oxlint](https://github.com/oxc-project/eslint-plugin-oxlint) | `1.62.0` | `1.65.0` |\n| [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) | `62.0.0` | `64.0.0` |\n| [jiti](https://github.com/unjs/jiti) | `2.6.1` | `2.7.0` |\n| [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) | `1.62.0` | `1.65.0` |\n| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/core) | `10.3.6` | `10.4.0` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `6.0.3` |\n| [verdaccio](https://github.com/verdaccio/verdaccio) | `6.6.0` | `6.7.1` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.59.1` | `1.60.0` |\n| [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `10.3.6` | `10.4.0` |\n| [@storybook/addon-docs](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/docs) | `10.3.6` | `10.4.0` |\n| [@storybook/addon-themes](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/themes) | `10.3.6` | `10.4.0` |\n| [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `10.3.6` | `10.4.0` |\n| [@storybook/test-runner](https://github.com/storybookjs/test-runner) | `0.24.3` | `0.24.4` |\n| [wait-on](https://github.com/jeffbski/wait-on) | `8.0.5` | `9.0.10` |\n| [@ai-sdk/openai](https://github.com/vercel/ai/tree/HEAD/packages/openai) | `3.0.63` | `3.0.64` |\n| [@google/genai](https://github.com/googleapis/js-genai) | `1.51.0` | `2.3.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| [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) | `17.24.0` | `18.0.1` |\n| [eslint-plugin-security](https://github.com/eslint-community/eslint-plugin-security) | `2.1.1` | `4.0.0` |\n| [eslint-plugin-sonarjs](https://github.com/SonarSource/SonarJS) | `3.0.7` | `4.0.3` |\n| [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) | `10.9.0` | `10.9.1` |\n| [tsx](https://github.com/privatenumber/tsx) | `4.21.0` | `4.22.1` |\n\n\nUpdates `@tanstack/react-query` from 5.100.9 to 5.100.10\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md\"\u003e@​tanstack/react-query's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.100.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.10\u003c/li\u003e\n\u003c/ul\u003e\n\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\u003eSee full diff in \u003ca href=\"https://github.com/TanStack/query/commits/HEAD/packages/react-query\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `axios` from 1.16.0 to 1.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axios/axios/releases\"\u003eaxios's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.16.1 — May 13, 2026\u003c/h2\u003e\n\u003cp\u003eThis release ships a defence-in-depth fix for prototype pollution in \u003ccode\u003eformDataToJSON\u003c/code\u003e, hardens proxy and CI workflows, restores Webpack 4 compatibility for the fetch adapter, and includes several small bug fixes and maintenance improvements.\u003c/p\u003e\n\u003ch2\u003e🔒 Security Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ePrototype Pollution Defence-in-Depth:\u003c/strong\u003e Hardened \u003ccode\u003eformDataToJSON\u003c/code\u003e against already-polluted \u003ccode\u003eObject.prototype\u003c/code\u003e by walking own properties only, so attacker-controlled keys inherited from a poisoned prototype cannot propagate through deserialization. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/7413\"\u003e#7413\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eProxy Cleartext Leak:\u003c/strong\u003e Fixed an issue where HTTPS request data could be transmitted in cleartext to an HTTP proxy under certain configurations. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10858\"\u003e#10858\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCI Cache Removal:\u003c/strong\u003e Removed all GitHub Actions caches as a defence-in-depth measure against cache poisoning vectors in the build pipeline. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10882\"\u003e#10882\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eData URI Parsing:\u003c/strong\u003e Updated the \u003ccode\u003efromDataURI\u003c/code\u003e regex to match RFC 2397 more strictly, fixing edge cases in \u003ccode\u003edata:\u003c/code\u003e URL handling. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10829\"\u003e#10829\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUnicode Headers:\u003c/strong\u003e Preserved Unicode header values when running through request interceptors, so non-ASCII header content is no longer corrupted before dispatch. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10850\"\u003e#10850\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eXHR Upload Progress:\u003c/strong\u003e Guarded against malformed \u003ccode\u003eProgressEvent\u003c/code\u003e payloads emitted by some environments during XHR upload, preventing crashes when \u003ccode\u003eloaded\u003c/code\u003e / \u003ccode\u003etotal\u003c/code\u003e are missing or invalid. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10868\"\u003e#10868\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWebpack 4 Fetch Adapter:\u003c/strong\u003e Fixed an \u0026quot;unexpected token\u0026quot; error caused by syntax in the fetch adapter that Webpack 4 could not parse, restoring compatibility for legacy bundler users. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10864\"\u003e#10864\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType Definitions:\u003c/strong\u003e Made \u003ccode\u003eparseReviver\u003c/code\u003e \u003ccode\u003econtext.source\u003c/code\u003e optional in the type definitions to align with the ES2023 specification. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10837\"\u003e#10837\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eURL Object Support Reverted:\u003c/strong\u003e Reverted the change that allowed passing a \u003ccode\u003eURL\u003c/code\u003e object as \u003ccode\u003econfig.url\u003c/code\u003e (originally \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10866\"\u003e#10866\u003c/a\u003e\u003c/strong\u003e) due to regressions; this support will be reintroduced in a later release once the underlying issues are addressed. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10874\"\u003e#10874\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔧 Maintenance \u0026amp; Chores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCycle Detection Refactor:\u003c/strong\u003e Replaced the array-based cycle tracker in \u003ccode\u003etoJSONObject\u003c/code\u003e with a \u003ccode\u003eWeakSet\u003c/code\u003e, improving performance and memory behaviour on large nested structures. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10832\"\u003e#10832\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecomposeSignals Cleanup:\u003c/strong\u003e Refactored \u003ccode\u003ecomposeSignals\u003c/code\u003e to use a clearer early-return structure, simplifying the cancellation/abort composition path. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10844\"\u003e#10844\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAI Readiness \u0026amp; Repo Docs:\u003c/strong\u003e Added \u003ccode\u003eAGENTS.md\u003c/code\u003e and related contributor-guide updates for both human and AI agents, plus post-release documentation improvements. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10835\"\u003e#10835\u003c/a\u003e\u003c/strong\u003e, \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10841\"\u003e#10841\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDocs Improvements:\u003c/strong\u003e Clarified the GET request example, fixed the interceptor \u003ccode\u003eeject\u003c/code\u003e example to reference the correct instance, and corrected the Buzzoid sponsor description in the README. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10836\"\u003e#10836\u003c/a\u003e\u003c/strong\u003e, \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10853\"\u003e#10853\u003c/a\u003e\u003c/strong\u003e, \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10856\"\u003e#10856\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSponsorship Tooling:\u003c/strong\u003e Fixed empty sponsor arrays in the sponsor processing script, added the ability to inject additional sponsors, updated the sponsorship link, and added a Twicsy advertisement entry. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10843\"\u003e#10843\u003c/a\u003e\u003c/strong\u003e, \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10859\"\u003e#10859\u003c/a\u003e\u003c/strong\u003e, \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10869\"\u003e#10869\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDependencies:\u003c/strong\u003e Bumped \u003ccode\u003e@commitlint/cli\u003c/code\u003e from 20.5.0 to 20.5.2. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10846\"\u003e#10846\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🌟 New Contributors\u003c/h2\u003e\n\u003cp\u003eWe are thrilled to welcome our new contributors. Thank you for helping improve axios:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/hpinmetaverse\"\u003e\u003ccode\u003e@​hpinmetaverse\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10836\"\u003e#10836\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/tommyhgunz14\"\u003e\u003ccode\u003e@​tommyhgunz14\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/7413\"\u003e#7413\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/abhu85\"\u003e\u003ccode\u003e@​abhu85\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10829\"\u003e#10829\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/divyanshuraj1095\"\u003e\u003ccode\u003e@​divyanshuraj1095\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10853\"\u003e#10853\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/sagodi97\"\u003e\u003ccode\u003e@​sagodi97\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10856\"\u003e#10856\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/rkdfx\"\u003e\u003ccode\u003e@​rkdfx\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10868\"\u003e#10868\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/Liuwei1125\"\u003e\u003ccode\u003e@​Liuwei1125\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10866\"\u003e#10866\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/axios/axios/compare/v1.16.0...v1.16.1\"\u003eFull Changelog\u003c/a\u003e\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/axios/axios/blob/v1.x/CHANGELOG.md\"\u003eaxios's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\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/axios/axios/commit/1337d6b537afb2d3f501074c8ac4ef4308221197\"\u003e\u003ccode\u003e1337d6b\u003c/code\u003e\u003c/a\u003e chore(release): prepare release 1.16.1 (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10877\"\u003e#10877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/858a790cec06054547d0d3f941916d6fb2a4d18e\"\u003e\u003ccode\u003e858a790\u003c/code\u003e\u003c/a\u003e fix: remove all caches (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10882\"\u003e#10882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/34adfd90efc9c145488399e1cf7fa96de67080fa\"\u003e\u003ccode\u003e34adfd9\u003c/code\u003e\u003c/a\u003e revert: \u0026quot;fix: support URL object as config.url input (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10866\"\u003e#10866\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10874\"\u003e#10874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/847d89b43654405d9a231e0b669832c2092b621f\"\u003e\u003ccode\u003e847d89b\u003c/code\u003e\u003c/a\u003e fix: support URL object as config.url input (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10866\"\u003e#10866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/40948863677bb793bfff0293cce7e7b4f8a1b212\"\u003e\u003ccode\u003e4094886\u003c/code\u003e\u003c/a\u003e fix(progress): guard malformed XHR upload events (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10868\"\u003e#10868\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/44f0c5bf73c45df6009365141faa394d73596bd7\"\u003e\u003ccode\u003e44f0c5b\u003c/code\u003e\u003c/a\u003e chore: change sponsorship link and add Twicsy advertisement (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10869\"\u003e#10869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/64e1095efedc64c9fecf5176bd9cf2e5e93140d6\"\u003e\u003ccode\u003e64e1095\u003c/code\u003e\u003c/a\u003e chore: update PR and issue template to use h2 (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10865\"\u003e#10865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/3e6b4e1f311b43aa1dc77d78150a601d9fe4b280\"\u003e\u003ccode\u003e3e6b4e1\u003c/code\u003e\u003c/a\u003e fix: error unexpected token in fetch JS compatibility issue with Webpack 4 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/c4453bab70f53575175903aee60810c821f72129\"\u003e\u003ccode\u003ec4453ba\u003c/code\u003e\u003c/a\u003e fix: add the ability to add additional sponsors to the process sponsors scrip...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/caa00a90b524bb67ed033474abcf4d8645ced793\"\u003e\u003ccode\u003ecaa00a9\u003c/code\u003e\u003c/a\u003e fix: https data in cleartext to proxy (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10858\"\u003e#10858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axios/axios/compare/v1.16.0...v1.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `eslint-config-next` from 16.2.4 to 16.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/vercel/next.js/releases\"\u003eeslint-config-next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev16.2.6\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!NOTE]\nThis release contains security fixes and backported bug fixes. It does \u003cstrong\u003enot\u003c/strong\u003e include all pending features/changes on canary.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eSecurity Fixes\u003c/h3\u003e\n\u003cp\u003eThe following advisories have been addressed:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eHigh:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-8h8q-6873-q5fj\"\u003eGHSA-8h8q-6873-q5fj: Denial of Service with Server Components\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-267c-6grr-h53f\"\u003eGHSA-267c-6grr-h53f: Middleware / Proxy bypass in App Router applications via segment-prefetch routes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-26hh-7cqf-hhc6\"\u003eGHSA-26hh-7cqf-hhc6: Middleware / Proxy bypass in App Router applications via segment-prefetch routes - \u003cstrong\u003eIncomplete Fix Follow-Up\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-mg66-mrh9-m8jx\"\u003eGHSA-mg66-mrh9-m8jx: Denial of Service via connection exhaustion in applications using Cache Components\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-492v-c6pp-mqqv\"\u003eGHSA-492v-c6pp-mqqv: Middleware / Proxy bypass through dynamic route parameter injection\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-c4j6-fc7j-m34r\"\u003eGHSA-c4j6-fc7j-m34r: Server-side request forgery in applications using WebSocket upgrades\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-36qx-fr4f-26g5\"\u003eGHSA-36qx-fr4f-26g5: Middleware / Proxy bypass in Pages Router applications using i18n\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eModerate:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-ffhc-5mcf-pf4q\"\u003eGHSA-ffhc-5mcf-pf4q: Cross-site scripting in App Router applications using CSP nonces\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-gx5p-jg67-6x7h\"\u003eGHSA-gx5p-jg67-6x7h: Cross-site scripting in beforeInteractive scripts with untrusted input\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-h64f-5h5j-jqjh\"\u003eGHSA-h64f-5h5j-jqjh: Denial of Service in the Image Optimization API\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-wfc6-r584-vfw7\"\u003eGHSA-wfc6-r584-vfw7: Cache poisoning in React Server Component responses\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eLow:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-vfv6-92ff-j949\"\u003eGHSA-vfv6-92ff-j949: Cache poisoning via collisions in React Server Component cache-busting\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-3g8h-86w9-wvmq\"\u003eGHSA-3g8h-86w9-wvmq: Middleware / Proxy redirects can be cache-poisoned\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: preserve HTTP access fallbacks during prerender recovery (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/92231\"\u003e#92231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix fallback route params case in app-page handler (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/91737\"\u003e#91737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix invalid HTML response for route-level RSC requests in deployment adapter (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/91541\"\u003e#91541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePatch setHeader for direct route handlers (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/93101\"\u003e#93101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude deployment id in \u003ccode\u003ecacheHandlers\u003c/code\u003e keys (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/93453\"\u003e#93453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix double-encoding of URL pathname parts in client param parsing (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/93491\"\u003e#93491\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev16.2.5\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!NOTE]\nThis release contains security fixes and backported bug fixes. It does \u003cstrong\u003enot\u003c/strong\u003e include all pending features/changes on canary.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eSecurity Fixes\u003c/h3\u003e\n\u003cp\u003eThe following advisories have been addressed:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eHigh:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-8h8q-6873-q5fj\"\u003eGHSA-8h8q-6873-q5fj: Denial of Service with Server Components\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-267c-6grr-h53f\"\u003eGHSA-267c-6grr-h53f: Middleware / Proxy bypass in App Router applications via segment-prefetch routes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-mg66-mrh9-m8jx\"\u003eGHSA-mg66-mrh9-m8jx: Denial of Service via connection exhaustion in applications using Cache Components\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-492v-c6pp-mqqv\"\u003eGHSA-492v-c6pp-mqqv: Middleware / Proxy bypass through dynamic route parameter injection\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-c4j6-fc7j-m34r\"\u003eGHSA-c4j6-fc7j-m34r: Server-side request forgery in applications using WebSocket upgrades\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/vercel/next.js/commit/ee6e79b1792a4d401ddf2480f40a83549fe8e722\"\u003e\u003ccode\u003eee6e79b\u003c/code\u003e\u003c/a\u003e v16.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/commit/766148f9cd48c0e218acafcd0f15defc14871bf4\"\u003e\u003ccode\u003e766148f\u003c/code\u003e\u003c/a\u003e v16.2.5\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/vercel/next.js/commits/v16.2.6/packages/eslint-config-next\"\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 eslint-config-next since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fumadocs-core` from 16.5.0 to 16.8.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fuma-nama/fumadocs/releases\"\u003efumadocs-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003efumadocs-core@16.8.11\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1dc86c7: loosen the range for waku\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-core@16.8.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e062beab: fix internal types\u003c/li\u003e\n\u003cli\u003e505cfe0: Add \u003ccode\u003eremark-block-id\u003c/code\u003e plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-core@16.8.8\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.8.7\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.8.6\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.8.5\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e79d3209: Narrow schema type for private OpenAPI properties\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-core@16.8.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e61b15e9: fix Shiki languages not loaded under lazy mode\u003c/li\u003e\n\u003cli\u003e1a5433c: Support \u003ccode\u003e$\u003c/code\u003e in locale for page tree generation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-core@16.8.3\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.8.2\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.8.1\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.7.16\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e9cf33e9: Improve inline code output\u003c/li\u003e\n\u003cli\u003e9cf33e9: Support async hooks in Shiki transformers\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-core@16.7.15\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ee1567e2: use local fork of Shiki rehype integration\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/fuma-nama/fumadocs/commit/99f1066de511270e8c8d3db409f09b868f89364b\"\u003e\u003ccode\u003e99f1066\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3280\"\u003e#3280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/d4c78e4aefdd5b54d853ace1b38eaab4ad4858d8\"\u003e\u003ccode\u003ed4c78e4\u003c/code\u003e\u003c/a\u003e OpenAPI: render deprecated badge for deprecated operations (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3281\"\u003e#3281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/0287f49f65b01c6fc383b162d8ac55ab6ca92b36\"\u003e\u003ccode\u003e0287f49\u003c/code\u003e\u003c/a\u003e UI: improve default OG image\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/1dc86c7dc9a771cc514a288e90d0c369bae52382\"\u003e\u003ccode\u003e1dc86c7\u003c/code\u003e\u003c/a\u003e Core: loosen the range for waku\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/b3052ac079ead8c629e7382c56db643fe2ac0285\"\u003e\u003ccode\u003eb3052ac\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3279\"\u003e#3279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/61f3a27eb5cb8330a51f7e72ea0c005fb6a218f8\"\u003e\u003ccode\u003e61f3a27\u003c/code\u003e\u003c/a\u003e UI: encode storage keys\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/1c9494986d262281492ef1fa6c9d67576f9cd659\"\u003e\u003ccode\u003e1c94949\u003c/code\u003e\u003c/a\u003e Preview: Rate limit config for AI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/8a4e1d1eda2746f353987b11a7242be58b314449\"\u003e\u003ccode\u003e8a4e1d1\u003c/code\u003e\u003c/a\u003e Previiew: Support file-sytem checks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/b160b260b45d2b485cc62da0deaab35b14bcc4a1\"\u003e\u003ccode\u003eb160b26\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3275\"\u003e#3275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/ce1d37af6ceb6491ad9f9a4a66a23c65a0565ece\"\u003e\u003ccode\u003ece1d37a\u003c/code\u003e\u003c/a\u003e Chore: re-define bin.js for fumadocs-mdx\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.5.0...fumadocs-core@16.8.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fumadocs-mdx` from 14.2.6 to 15.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fuma-nama/fumadocs/releases\"\u003efumadocs-mdx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003efumadocs-mdx@15.0.6\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eda4a81a: Update vite configs\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@15.0.5\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1fb6a61: Support custom base directory for content sources\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@15.0.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e819b6ec: Support Rolldown integration\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@15.0.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e2569154: Pre-generate Vite config to prevent CJS compat issues\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [062beab]\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [505cfe0]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@15.0.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e298ac97: fix compatibility issues with Vite RSC\u003c/li\u003e\n\u003cli\u003eb212481: remove vitefu from inline deps\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@15.0.0\u003c/h2\u003e\n\u003ch3\u003eMajor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e3de9dfe: \u003cstrong\u003eRequire ESM for \u003ccode\u003enext.config\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eModern Node.js now supports \u003ccode\u003enext.config.mts\u003c/code\u003e format, compatibility layer is no longer needed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e3de9dfe: Raise minimum \u003ccode\u003efumadocs-core\u003c/code\u003e version to \u003ccode\u003e16.7.0\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e5745fcf: Support better Node.js loader registry\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@14.3.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e79d3209: Deprecate forwarded schemas at \u003ccode\u003efumadocs-mdx/config\u003c/code\u003e, recommend \u003ccode\u003efumadocs-core/source/schema\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [79d3209]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.5\u003c/li\u003e\n\u003c/ul\u003e\n\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\u003eSee full diff in \u003ca href=\"https://github.com/fuma-nama/fumadocs/commits/fumadocs-mdx@15.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fumadocs-ui` from 16.5.0 to 16.8.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fuma-nama/fumadocs/releases\"\u003efumadocs-ui's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003efumadocs-ui@16.8.11\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [1dc86c7]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [062beab]\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [505cfe0]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.8\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eb494c8d: Support copy ID in headings\u003c/li\u003e\n\u003cli\u003e03626ba: [Search UI] show \u003ccode\u003ectrl\u003c/code\u003e for Linux machines\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e34f37f3: hotfix TOC\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.6\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1aa48d0: fix RTL layout for Clerk style\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.6\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.5\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [79d3209]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.5\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eb5ff03b: Support new OG image design for Takumi\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [61b15e9]\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [1a5433c]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e8082ef6: Add \u003ccode\u003elegacy/layout\u003c/code\u003e for versions prior to 16.2\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/fuma-nama/fumadocs/commit/99f1066de511270e8c8d3db409f09b868f89364b\"\u003e\u003ccode\u003e99f1066\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3280\"\u003e#3280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/d4c78e4aefdd5b54d853ace1b38eaab4ad4858d8\"\u003e\u003ccode\u003ed4c78e4\u003c/code\u003e\u003c/a\u003e OpenAPI: render deprecated badge for deprecated operations (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3281\"\u003e#3281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/0287f49f65b01c6fc383b162d8ac55ab6ca92b36\"\u003e\u003ccode\u003e0287f49\u003c/code\u003e\u003c/a\u003e UI: improve default OG image\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/1dc86c7dc9a771cc514a288e90d0c369bae52382\"\u003e\u003ccode\u003e1dc86c7\u003c/code\u003e\u003c/a\u003e Core: loosen the range for waku\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/b3052ac079ead8c629e7382c56db643fe2ac0285\"\u003e\u003ccode\u003eb3052ac\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3279\"\u003e#3279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/61f3a27eb5cb8330a51f7e72ea0c005fb6a218f8\"\u003e\u003ccode\u003e61f3a27\u003c/code\u003e\u003c/a\u003e UI: encode storage keys\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/1c9494986d262281492ef1fa6c9d67576f9cd659\"\u003e\u003ccode\u003e1c94949\u003c/code\u003e\u003c/a\u003e Preview: Rate limit config for AI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/8a4e1d1eda2746f353987b11a7242be58b314449\"\u003e\u003ccode\u003e8a4e1d1\u003c/code\u003e\u003c/a\u003e Previiew: Support file-sytem checks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/b160b260b45d2b485cc62da0deaab35b14bcc4a1\"\u003e\u003ccode\u003eb160b26\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3275\"\u003e#3275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/ce1d37af6ceb6491ad9f9a4a66a23c65a0565ece\"\u003e\u003ccode\u003ece1d37a\u003c/code\u003e\u003c/a\u003e Chore: re-define bin.js for fumadocs-mdx\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.5.0...fumadocs-ui@16.8.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lucide-react` from 0.469.0 to 1.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lucide-icons/lucide/releases\"\u003elucide-react's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.16.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003eblender\u003c/code\u003e icon by \u003ca href=\"https://github.com/rrod497\"\u003e\u003ccode\u003e@​rrod497\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/3884\"\u003elucide-icons/lucide#3884\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lucide-icons/lucide/compare/1.15.0...1.16.0\"\u003ehttps://github.com/lucide-icons/lucide/compare/1.15.0...1.16.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: remove 'less' from brand stopwords by \u003ca href=\"https://github.com/jguddas\"\u003e\u003ccode\u003e@​jguddas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4331\"\u003elucide-icons/lucide#4331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(\u003ccode\u003e@​lucide/vue\u003c/code\u003e): Clone slots before passing to icon by \u003ca href=\"https://github.com/axtho\"\u003e\u003ccode\u003e@​axtho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4339\"\u003elucide-icons/lucide#4339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003etext-cursor\u003c/code\u003e icon by \u003ca href=\"https://github.com/jamiemlaw\"\u003e\u003ccode\u003e@​jamiemlaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4340\"\u003elucide-icons/lucide#4340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003elandmark\u003c/code\u003e icon by \u003ca href=\"https://github.com/jamiemlaw\"\u003e\u003ccode\u003e@​jamiemlaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4334\"\u003elucide-icons/lucide#4334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump nitropack from 2.13.1 to 2.13.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4352\"\u003elucide-icons/lucide#4352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump simple-git from 3.33.0 to 3.36.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4349\"\u003elucide-icons/lucide#4349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003ecandy-cane\u003c/code\u003e icon by \u003ca href=\"https://github.com/jguddas\"\u003e\u003ccode\u003e@​jguddas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4148\"\u003elucide-icons/lucide#4148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003evolleyball\u003c/code\u003e icon by \u003ca href=\"https://github.com/jamiemlaw\"\u003e\u003ccode\u003e@​jamiemlaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4338\"\u003elucide-icons/lucide#4338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003echart-no-axes-combined\u003c/code\u003e icon by \u003ca href=\"https://github.com/jguddas\"\u003e\u003ccode\u003e@​jguddas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/3567\"\u003elucide-icons/lucide#3567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icon): added broccoli icon by \u003ca href=\"https://github.com/swastik7805\"\u003e\u003ccode\u003e@​swastik7805\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4263\"\u003elucide-icons/lucide#4263\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(site): Updates to site and updated carbon ads by \u003ca href=\"https://github.com/ericfennis\"\u003e\u003ccode\u003e@​ericfennis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4359\"\u003elucide-icons/lucide#4359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added sticky note variants by \u003ca href=\"https://github.com/Barakudum\"\u003e\u003ccode\u003e@​Barakudum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4348\"\u003elucide-icons/lucide#4348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump astro from 6.1.6 to 6.1.10 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4361\"\u003elucide-icons/lucide#4361\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/axtho\"\u003e\u003ccode\u003e@​axtho\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4339\"\u003elucide-icons/lucide#4339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Barakudum\"\u003e\u003ccode\u003e@​Barakudum\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4348\"\u003elucide-icons/lucide#4348\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lucide-icons/lucide/compare/1.14.0...1.15.0\"\u003ehttps://github.com/lucide-icons/lucide/compare/1.14.0...1.15.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003erepeat-off\u003c/code\u003e icon by \u003ca href=\"https://github.com/jguddas\"\u003e\u003ccode\u003e@​jguddas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/3102\"\u003elucide-icons/lucide#3102\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lucide-icons/lucide/compare/1.13.0...1.14.0\"\u003ehttps://github.com/lucide-icons/lucide/compare/1.13.0...1.14.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(docs): sync URL params with UI state on categories page by \u003ca href=\"https://github.com/taimar\"\u003e\u003ccode\u003e@​taimar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4111\"\u003elucide-icons/lucide#4111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): add \u003ccode\u003ewaves-vertical\u003c/code\u003e icon by \u003ca href=\"https://github.com/jamiemlaw\"\u003e\u003ccode\u003e@​jamiemlaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/3867\"\u003elucide-icons/lucide#3867\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lucide-icons/lucide/compare/1.12.0...1.13.0\"\u003ehttps://github.com/lucide-icons/lucide/compare/1.12.0...1.13.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(icon): add folder-bookmark icon by \u003ca href=\"https://github.com/swastik7805\"\u003e\u003ccode\u003e@​swastik7805\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4262\"\u003elucide-icons/lucide#4262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(readme): Update readme files by \u003ca href=\"https://github.com/ericfennis\"\u003e\u003ccode\u003e@​ericfennis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4320\"\u003elucide-icons/lucide#4320\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003eastroid\u003c/code\u003e icon by \u003ca href=\"https://github.com/whoisBugsbunny\"\u003e\u003ccode\u003e@​whoisBugsbunny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4217\"\u003elucide-icons/lucide#4217\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/lucide-icons/lucide/commit/07c885e6c1f9952965ba388b7fd2bb7c4d416a67\"\u003e\u003ccode\u003e07c885e\u003c/code\u003e\u003c/a\u003e fix(docs): fix zephyr-cloud URL in readmes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/50d8af5a1012e188f3d71ac8f1fc0fba1aab5357\"\u003e\u003ccode\u003e50d8af5\u003c/code\u003e\u003c/a\u003e docs(readme): Update readme files (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4320\"\u003e#4320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/653e44b83293567ff24dcb90ca1094a9cf0a042a\"\u003e\u003ccode\u003e653e44b\u003c/code\u003e\u003c/a\u003e feat(packages): use .mjs for ESM bundles (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4285\"\u003e#4285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/7623e23f787fe78e5075a613fd22da2cecbb9b1b\"\u003e\u003ccode\u003e7623e23\u003c/code\u003e\u003c/a\u003e feat(docs): add Zephyr Cloud to Hero Backers tier \u0026amp; rework updateSponsors scr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/dada0a82970d3733d1d716e2089591c538272a39\"\u003e\u003ccode\u003edada0a8\u003c/code\u003e\u003c/a\u003e fix(lucide-react): Fix dynamic imports (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4210\"\u003e#4210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/a6e648a66ff470c2255d3666765fd73cfcc185ff\"\u003e\u003ccode\u003ea6e648a\u003c/code\u003e\u003c/a\u003e fix(lucide-react): correct client directives in RSC files (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4189\"\u003e#4189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/1f010a357a21c7a8c5e1f92dd90f09d76a04e2dd\"\u003e\u003ccode\u003e1f010a3\u003c/code\u003e\u003c/a\u003e fix(lucide-react): Fixes provider export and RSC render issues (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4175\"\u003e#4175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/484f2c9cd377dbeb536f63d4b183ecfd26947014\"\u003e\u003ccode\u003e484f2c9\u003c/code\u003e\u003c/a\u003e docs(version-1): Version 1 website (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4142\"\u003e#4142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/a0e202d759da95c243b541f8d3c1c26eada32b2e\"\u003e\u003ccode\u003ea0e202d\u003c/code\u003e\u003c/a\u003e feat(packages/angular): add new \u003ccode\u003e@​lucide/angular\u003c/code\u003e package (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/3897\"\u003e#3897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/c5b155ec37f0217bfd85e309873029379df473ac\"\u003e\u003ccode\u003ec5b155e\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of \u003ca href=\"https://github.com/lucide-icons/lucide\"\u003ehttps://github.com/lucide-icons/lucide\u003c/a\u003e into next\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lucide-icons/lucide/commits/1.16.0/packages/lucide-react\"\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 lucide-react since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mermaid` from 11.14.0 to 11.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mermaid-js/mermaid/releases\"\u003emermaid's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emermaid@11.15.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/mermaid-js/mermaid/pull/7174\"\u003e#7174\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/0aca21739c0d1fcaaa206e04a6cd574ebc415483\"\u003e\u003ccode\u003e0aca217\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/milesspencer35\"\u003e\u003ccode\u003e@​milesspencer35\u003c/code\u003e\u003c/a\u003e! - feat(sequence): Add support for decimal start and increment values in the \u003ccode\u003eautonumber\u003c/code\u003e directive\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7512\"\u003e#7512\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/8e17492f7365ba50896382feb69a23efd9d8a22d\"\u003e\u003ccode\u003e8e17492\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/aruncveli\"\u003e\u003ccode\u003e@​aruncveli\u003c/code\u003e\u003c/a\u003e! - feat(flowchart): add datastore shape\u003c/p\u003e\n\u003cp\u003eIn Data flow diagrams, a datastore/warehouse/file/database is used to represent data persistence. It is denoted by a rectangle with only top and bottom borders, and can be used in flowcharts with \u003ccode\u003eA@{ shape: datastore, label: \u0026quot;Datastore\u0026quot; }\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/6440\"\u003e#6440\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/9ad8dde6d049adde85d8ed2d476c09b5820f3f4b\"\u003e\u003ccode\u003e9ad8dde\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/yordis\"\u003e\u003ccode\u003e@​yordis\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/lgazo\"\u003e\u003ccode\u003e@​lgazo\u003c/code\u003e\u003c/a\u003e! - feat: add Event Modeling diagram\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7707\"\u003e#7707\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/27db774627be1cee881961dfd0d2cb21cd01b79d\"\u003e\u003ccode\u003e27db774\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/txmxthy\"\u003e\u003ccode\u003e@​txmxthy\u003c/code\u003e\u003c/a\u003e! - feat(architecture): expose four fcose layout knobs for \u003ccode\u003earchitecture-beta\u003c/code\u003e diagrams (\u003ccode\u003enodeSeparation\u003c/code\u003e, \u003ccode\u003eidealEdgeLengthMultiplier\u003c/code\u003e, \u003ccode\u003eedgeElasticity\u003c/code\u003e, \u003ccode\u003enumIter\u003c/code\u003e) so authors can tune layout density and spread overlapping siblings without changing diagram source\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7604\"\u003e#7604\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/bf9502fb6012a4b724679b401ac928f5ee55161c\"\u003e\u003ccode\u003ebf9502f\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/M-a-c\"\u003e\u003ccode\u003e@​M-a-c\u003c/code\u003e\u003c/a\u003e! - feat(class): add nested namespace support for class diagrams via dot notation and syntactic nesting\u003c/p\u003e\n\u003cp\u003eIf you have namespaces in class diagrams that use \u003ccode\u003e.\u003c/code\u003es already and want to render them without nesting (≤v11.14.0 behaviour), you can use set \u003ccode\u003eclass.hierarchicalNamespaces=false\u003c/code\u003e in your mermaid config:\u003c/p\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003econfig:\n  class:\n    hierarchicalNamespaces: false\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7272\"\u003e#7272\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/88cdd3dc0aab9577174561b04e14760c565a232b\"\u003e\u003ccode\u003e88cdd3d\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/xinbenlv\"\u003e\u003ccode\u003e@​xinbenlv\u003c/code\u003e\u003c/a\u003e! - feat(sankey): add outlined label style, configurable nodeWidth/nodePadding, and custom node colors\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/e9b0f34d8d82a6260077764ee45e1d7d90957a0f\"\u003e\u003ccode\u003ee9b0f34\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix: prevent unbalanced CSS styles in classDefs\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/37ff937f1da2e19f882fd1db01235db4d01f4056\"\u003e\u003ccode\u003e37ff937\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix: create CSS styles using the CSSOM\u003c/p\u003e\n\u003cp\u003eThis removes some invalid CSS and normalizes some CSS formatting.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7508\"\u003e#7508\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/bfe60cc67b9a6dec64f9161f58e4d24a06c42b65\"\u003e\u003ccode\u003ebfe60cc\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/biiab\"\u003e\u003ccode\u003e@​biiab\u003c/code\u003e\u003c/a\u003e! - fix(stateDiagram): \u003ccode\u003eend note\u003c/code\u003e now only closes a note when used on a new line\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/faafb5d49106dd32c367f3882505f2dd625aa30e\"\u003e\u003ccode\u003efaafb5d\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix(gantt): add iteration limit for \u003ccode\u003eexcludes\u003c/code\u003e field\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/65f8be2a42faf869b811469571983cba7eeeca99\"\u003e\u003ccode\u003e65f8be2\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix: disallow some CSS at-rules in custom CSS\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7726\"\u003e#7726\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/1502f32f3c5fb944925b0c527fbbde3c4f041824\"\u003e\u003ccode\u003e1502f32\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/aloisklink\"\u003e\u003ccode\u003e@​aloisklink\u003c/code\u003e\u003c/a\u003e! - fix(wardley): fix unnecessary sanitization of text\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7578\"\u003e#7578\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/1f98db8e326299ac97a2fa60abfd509d8f5f16e2\"\u003e\u003ccode\u003e1f98db8\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/Gaston202\"\u003e\u003ccode\u003e@​Gaston202\u003c/code\u003e\u003c/a\u003e! - fix(class): self-referential class multiplicity labels no longer rendered multiple times\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7560\"\u003e#7560\u003c/a\u003e. Resolves an issue where cardinality labels on self-referential class relationships were rendered three times due to edge splitting in the dagre layout. The fix ensures that each sub-edge only carries its relevant label positions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7592\"\u003e#7592\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/2343e38498a3b31f8ce5e79f1f009e0b56fbe086\"\u003e\u003ccode\u003e2343e38\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/knsv-bot\"\u003e\u003ccode\u003e@​knsv-bot\u003c/code\u003e\u003c/a\u003e! - fix(sequence): add background box behind alt/else section title labels in sequence diagrams\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7589\"\u003e#7589\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/7fb9509b8b5cb1dc48519dc60cf6cdc6afba0462\"\u003e\u003ccode\u003e7fb9509\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/NYCU-Chung\"\u003e\u003ccode\u003e@​NYCU-Chung\u003c/code\u003e\u003c/a\u003e! - fix(block): prevent column widths from shrinking when mixing different column spans\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7632\"\u003e#7632\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/3f9e0f15bedc1e2c71ddb6b34192d1a21124cfc2\"\u003e\u003ccode\u003e3f9e0f1\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ekiauhce\"\u003e\u003ccode\u003e@​ekiauhce\u003c/code\u003e\u003c/a\u003e! - fix(sequence): correct messageAlign label position for right-to-left arrows in sequence diagrams\u003c/p\u003e\n\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/mermaid-js/mermaid/commit/41646dfd43ac83f001b03c70605feb036afae46d\"\u003e\u003ccode\u003e41646df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7739\"\u003e#7739\u003c/a\u003e from aloisklink/ci/fix-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/2671f5c44a1515960ebc41c09a365c41860f95ee\"\u003e\u003ccode\u003e2671f5c\u003c/code\u003e\u003c/a\u003e docs: fix v11.15.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/f4bf04b5db8bed603e40ed3d5ce5228d6b07754e\"\u003e\u003ccode\u003ef4bf04b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7738\"\u003e#7738\u003c/a\u003e from mermaid-js/changeset-release/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/abfb563e1dcbd46d617f44a6361bd6d926dc6289\"\u003e\u003ccode\u003eabfb563\u003c/code\u003e\u003c/a\u003e Version Packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/60b289f428d0a0832ad95ed4e1fb326344e23532\"\u003e\u003ccode\u003e60b289f\u003c/code\u003e\u003c/a\u003e Release Candidate 11.15.0 (\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7737\"\u003e#7737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/d37c0db39ca2405b4473361063df2c47109dc2c9\"\u003e\u003ccode\u003ed37c0db\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7730\"\u003e#7730\u003c/a\u003e from aloisklink/fix/fix-edgeLabelRightLeft-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/5ab5a2895fa8b7e90de85b43a4b99aa50b39b0f1\"\u003e\u003ccode\u003e5ab5a28\u003c/code\u003e\u003c/a\u003e docs: improve nested namespace changeset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/18f8b4c5bf67aface3485272b48042f2fdd6fad2\"\u003e\u003ccode\u003e18f8b4c\u003c/code\u003e\u003c/a\u003e fix: revert endEdgeLabelLeft/endEdgeLabelRight change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/504b2eb73d4d827baa817efd47ab6f44ae769b5a\"\u003e\u003ccode\u003e504b2eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7726\"\u003e#7726\u003c/a\u003e from aloisklink/fix/correct-unnecessary-html-escapes...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/1502f32f3c5fb944925b0c527fbbde3c4f041824\"\u003e\u003ccode\u003e1502f32\u003c/code\u003e\u003c/a\u003e fix(wardley): fix unnecessary sanitization of text\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mermaid-js/mermaid/compare/mermaid@11.14.0...mermaid@11.15.0\"\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.5.3 to 21.0.1\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@​commitlint/cli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\"\u003e21.0.1\u003c/a\u003e (2026-05-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(load): only resolve relative formatter paths 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/4761\"\u003econventional-changelog/commitlint#4761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(types): add presetConfig to ParserPreset interface by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4749\"\u003econventional-changelog/commitlint#4749\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCI\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: stop spawning schedule jobs on contributors' forks by \u003ca href=\"https://github.com/knocte\"\u003e\u003ccode\u003e@​knocte\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4753\"\u003econventional-changelog/commitlint#4753\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add weekly non-blocking pnpm audit 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/4766\"\u003econventional-changelog/commitlint#4766\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/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4749\"\u003econventional-changelog/commitlint#4749\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/v21.0.0...v21.0.1\"\u003ehttps://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev21.0.0\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003eHeads-up: --legacy-output is a transitional escape hatch. It will be removed in a future major release. Plan to migrate your parsers / snapshots to the new format during the v21 lifecycle.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.5.3...v21.0.0\"\u003e21.0.0\u003c/a\u003e (2026-05-08)\u003c/h2\u003e\n\u003ch3\u003eBreaking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore!: minimum node version v22 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4679\"\u003e#4679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat!: show input from a new line by \u003ca href=\"https://github.com/knocte\"\u003e\u003ccode\u003e@​knocte\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4727\"\u003e#4727\u003c/a\u003e (adds --legacy-output flag)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: widen cz-commitlint inquirer peer dep to support v9–v12 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4682\"\u003e#4682\u003c/a\u003e — closes \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4554\"\u003e#4554\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternals (Node 22 cleanup)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: replace dependencies with Node 22 built-ins by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4681\"\u003e#4681\u003c/a\u003e — drops glob, fast-glob, import-meta-resolve, minimist, fs-extra\u003c/li\u003e\n\u003cli\u003erefactor: replace read-pkg with native fs.readFile + JSON.parse by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4742\"\u003e#4742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dependency yargs to v18 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4686\"\u003e#4686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove cross-env, move env vars to vitest config by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4684\"\u003e#4684\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependency updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: update dependency \u003ccode\u003e@​types/node\u003c/code\u003e to v22.19.17 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4739\"\u003e#4739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dependency \u003ccode\u003e@​swc/core\u003c/code\u003e to v1.15.33 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4743\"\u003e#4743\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@​commitlint/cli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\"\u003e21.0.1\u003c/a\u003e (2026-05-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\u003ch1\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.5.3...v21.0.0\"\u003e21.0.0\u003c/a\u003e (2026-05-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003echore!: minimum node version v22 (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4679\"\u003e#4679\u003c/a\u003e) (\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/ac2b3f4a947670e46af9a738881ba14158f0987a\"\u003eac2b3f4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/issues/4679\"\u003e#4679\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop node v18 and v20 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eBump engines to \u0026gt;=v22 in all 39 package.json files\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003e@​types/node\u003c/code\u003e to ^22.0.0\u003c/li\u003e\n\u003cli\u003eUpdate CI matrix to [22, 24]\u003c/li\u003e\n\u003cli\u003eUpdate Ubuntu baseline job to ubuntu:26.04\u003c/li\u003e\n\u003cli\u003eUpdate Dockerfile.ci, .mise.toml, .codesandbox/ci.json\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit hook to use --ignore-engines\u003c/li\u003e\n\u003cli\u003eUpdate README and docs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCo-authored-by: Claude Opus 4.6 (1M context) \u003ca href=\"mailto:noreply@anthropic.com\"\u003enoreply@anthropic.com\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/conventional-changelog/commitlint/commit/db8d7d6461d721fe2561ce4307e4069eaf6dcc8c\"\u003e\u003ccode\u003edb8d7d6\u003c/code\u003e\u003c/a\u003e v21.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/1329a25fd6f13b993fdf4e8c1b5a25ff2bf7ee07\"\u003e\u003ccode\u003e1329a25\u003c/code\u003e\u003c/a\u003e chore: migrate to pnpm (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4762\"\u003e#4762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/db39968cdcf7b655e5951d2f550edadc4f0768ef\"\u003e\u003ccode\u003edb39968\u003c/code\u003e\u003c/a\u003e chore: pre pnpm cleanup (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4759\"\u003e#4759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/6099ae50aa71fe7f99d75af1b8d9537aa7685747\"\u003e\u003ccode\u003e6099ae5\u003c/code\u003e\u003c/a\u003e chore: replace eslint with oxlint (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4756\"\u003e#4756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/f081a8ef93019bb8b07f39c756f6d4a052020d3b\"\u003e\u003ccode\u003ef081a8e\u003c/code\u003e\u003c/a\u003e v21.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/40d7e36ffac0986ad0988fedd39a7ebcfde93d3c\"\u003e\u003ccode\u003e40d7e36\u003c/code\u003e\u003c/a\u003e feat!: show input from a new line (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4727\"\u003e#4727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/44c31743ded411d949e935247e8079e5085d8239\"\u003e\u003ccode\u003e44c3174\u003c/code\u003e\u003c/a\u003e chore: update dependency yargs to v18 \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4432\"\u003e#4432\u003c/a\u003e (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4686\"\u003e#4686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/ac01464b453a818e01f2f232a307b61a66167920\"\u003e\u003ccode\u003eac01464\u003c/code\u003e\u003c/a\u003e chore: replace dependencies with Node 22 built-ins (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4681\"\u003e#4681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/ac2b3f4a947670e46af9a738881ba14158f0987a\"\u003e\u003ccode\u003eac2b3f4\u003c/code\u003e\u003c/a\u003e chore!: minimum node version v22 (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4679\"\u003e#4679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/conventional-changelog/commitlint/commits/v21.0.1/@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.5.3 to 21.0.1\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@​commitlint/config-conventional's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\"\u003e21.0.1\u003c/a\u003e (2026-05-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(load): only resolve relative formatter paths 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/4761\"\u003econventional-changelog/commitlint#4761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(types): add presetConfig to ParserPreset interface by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4749\"\u003econventional-changelog/commitlint#4749\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCI\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: stop spawning schedule jobs on contributors' forks by \u003ca href=\"https://github.com/knocte\"\u003e\u003ccode\u003e@​knocte\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4753\"\u003econventional-changelog/commitlint#4753\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add weekly non-blocking pnpm audit 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/4766\"\u003econventional-changelog/commitlint#4766\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/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4749\"\u003econventional-changelog/commitlint#4749\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/v21.0.0...v21.0.1\"\u003ehttps://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev21.0.0\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003eHeads-up: --legacy-output is a transitional escape hatch. It will be removed in a future major release. Plan to migrate your parsers / snapshots to the new format during the v21 lifecycle.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.5.3...v21.0.0\"\u003e21.0.0\u003c/a\u003e (2026-05-08)\u003c/h2\u003e\n\u003ch3\u003eBreaking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore!: minimum node version v22 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4679\"\u003e#4679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat!: show input from a new line by \u003ca href=\"https://github.com/knocte\"\u003e\u003ccode\u003e@​knocte\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4727\"\u003e#4727\u003c/a\u003e (adds --legacy-output flag)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: widen cz-commitlint inquirer peer dep to support v9–v12 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4682\"\u003e#4682\u003c/a\u003e — closes \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4554\"\u003e#4554\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternals (Node 22 cleanup)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: replace dependencies with Node 22 built-ins by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4681\"\u003e#4681\u003c/a\u003e — drops glob, fast-glob, import-meta-resolve, minimist, fs-extra\u003c/li\u003e\n\u003cli\u003erefactor: replace read-pkg with native fs.readFile + JSON.parse by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4742\"\u003e#4742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dependency yargs to v18 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4686\"\u003e#4686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove cross-env, move env vars to vitest config by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4684\"\u003e#4684\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependency updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: update dependency \u003ccode\u003e@​types/node\u003c/code\u003e to v22.19.17 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4739\"\u003e#4739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dependency \u003ccode\u003e@​swc/core\u003c/code\u003e to v1.15.33 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4743\"\u003e#4743\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@​commitlint/config-conventional's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\"\u003e21.0.1\u003c/a\u003e (2026-05-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\u003ch1\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.5.3...v21.0.0\"\u003e21.0.0\u003c/a\u003e (2026-05-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003echore!: minimum node version v22 (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4679\"\u003e#4679\u003c/a\u003e) (\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/ac2b3f4a947670e46af9a738881ba14158f0987a\"\u003eac2b3f4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/issues/4679\"\u003e#4679\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop node v18 and v20 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eBump engines to \u0026gt;=v22 in all 39 package.json files\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003e@​types/node\u003c/code\u003e to ^22.0.0\u003c/li\u003e\n\u003cli\u003eUpd...\n\n_Description has been truncated_","html_url":"https://github.com/ofri-peretz/eslint/pull/109","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ofri-peretz%2Feslint/issues/109","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/109/packages"}},{"old_version":"21.3.1","new_version":"21.4.0","update_type":"minor","path":null,"pr_created_at":"2026-05-17T05:10:17.000Z","version_change":"21.3.1 → 21.4.0","issue":{"uuid":"4462366841","node_id":"PR_kwDOQJxXsc7cUqqo","number":102,"state":"open","title":"chore(deps)(deps): bump the all-packages group across 1 directory with 44 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-17T05:10:17.000Z","updated_at":"2026-05-17T05:11:23.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps): bump","group_name":"all-packages","update_count":44,"packages":[{"name":"@tanstack/react-query","old_version":"5.100.9","new_version":"5.100.10","repository_url":"https://github.com/TanStack/query"},{"name":"axios","old_version":"1.16.0","new_version":"1.16.1","repository_url":"https://github.com/axios/axios"},{"name":"eslint-config-next","old_version":"16.2.4","new_version":"16.2.6","repository_url":"https://github.com/vercel/next.js"},{"name":"fumadocs-core","old_version":"16.5.0","new_version":"16.8.11","repository_url":"https://github.com/fuma-nama/fumadocs"},{"name":"fumadocs-mdx","old_version":"14.2.6","new_version":"15.0.5","repository_url":"https://github.com/fuma-nama/fumadocs"},{"name":"fumadocs-ui","old_version":"16.5.0","new_version":"16.8.11","repository_url":"https://github.com/fuma-nama/fumadocs"},{"name":"lucide-react","old_version":"0.469.0","new_version":"1.16.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"mermaid","old_version":"11.14.0","new_version":"11.15.0","repository_url":"https://github.com/mermaid-js/mermaid"},{"name":"@commitlint/cli","old_version":"20.5.3","new_version":"21.0.1","repository_url":"https://github.com/conventional-changelog/commitlint"},{"name":"@commitlint/config-conventional","old_version":"20.5.3","new_version":"21.0.1","repository_url":"https://github.com/conventional-changelog/commitlint"},{"name":"@middy/core","old_version":"7.5.0","new_version":"7.6.4","repository_url":"https://github.com/middyjs/middy"},{"name":"@middy/http-cors","old_version":"7.5.0","new_version":"7.6.4","repository_url":"https://github.com/middyjs/middy"},{"name":"@middy/http-security-headers","old_version":"7.5.0","new_version":"7.6.4","repository_url":"https://github.com/middyjs/middy"},{"name":"@middy/validator","old_version":"7.5.0","new_version":"7.6.4","repository_url":"https://github.com/middyjs/middy"},{"name":"@nestjs/common","old_version":"11.1.19","new_version":"11.1.21","repository_url":"https://github.com/nestjs/nest"},{"name":"@types/node","old_version":"22.19.7","new_version":"25.8.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"ai","old_version":"6.0.177","new_version":"6.0.184","repository_url":"https://github.com/vercel/ai"},{"name":"baseline-browser-mapping","old_version":"2.10.29","new_version":"2.10.30","repository_url":"https://github.com/web-platform-dx/baseline-browser-mapping"},{"name":"enhanced-resolve","old_version":"5.21.2","new_version":"5.21.3","repository_url":"https://github.com/webpack/enhanced-resolve"},{"name":"eslint","old_version":"8.57.1","new_version":"10.4.0","repository_url":"https://github.com/eslint/eslint"},{"name":"eslint-plugin-oxlint","old_version":"1.62.0","new_version":"1.65.0","repository_url":"https://github.com/oxc-project/eslint-plugin-oxlint"},{"name":"eslint-plugin-unicorn","old_version":"62.0.0","new_version":"64.0.0","repository_url":"https://github.com/sindresorhus/eslint-plugin-unicorn"},{"name":"jiti","old_version":"2.6.1","new_version":"2.7.0","repository_url":"https://github.com/unjs/jiti"},{"name":"oxlint","old_version":"1.62.0","new_version":"1.65.0","repository_url":"https://github.com/oxc-project/oxc"},{"name":"storybook","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"typescript","old_version":"5.9.3","new_version":"6.0.3","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"verdaccio","old_version":"6.6.0","new_version":"6.7.1","repository_url":"https://github.com/verdaccio/verdaccio"},{"name":"@playwright/test","old_version":"1.59.1","new_version":"1.60.0","repository_url":"https://github.com/microsoft/playwright"},{"name":"@storybook/addon-a11y","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/addon-docs","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/addon-themes","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/react-vite","old_version":"10.3.6","new_version":"10.4.0","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/test-runner","old_version":"0.24.3","new_version":"0.24.4","repository_url":"https://github.com/storybookjs/test-runner"},{"name":"wait-on","old_version":"8.0.5","new_version":"9.0.10","repository_url":"https://github.com/jeffbski/wait-on"},{"name":"@ai-sdk/openai","old_version":"3.0.63","new_version":"3.0.64","repository_url":"https://github.com/vercel/ai"},{"name":"@types/vscode","old_version":"1.118.0","new_version":"1.120.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@google/genai","old_version":"1.51.0","new_version":"2.3.0","repository_url":"https://github.com/googleapis/js-genai"},{"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":"eslint-plugin-n","old_version":"17.24.0","new_version":"18.0.1","repository_url":"https://github.com/eslint-community/eslint-plugin-n"},{"name":"eslint-plugin-security","old_version":"2.1.1","new_version":"4.0.0","repository_url":"https://github.com/eslint-community/eslint-plugin-security"},{"name":"eslint-plugin-sonarjs","old_version":"3.0.7","new_version":"4.0.3","repository_url":"https://github.com/SonarSource/SonarJS"},{"name":"eslint-plugin-vue","old_version":"10.9.0","new_version":"10.9.1","repository_url":"https://github.com/vuejs/eslint-plugin-vue"},{"name":"tsx","old_version":"4.21.0","new_version":"4.22.1","repository_url":"https://github.com/privatenumber/tsx"}],"path":null,"ecosystem":"npm"},"body":"Bumps the all-packages group with 43 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.100.9` | `5.100.10` |\n| [axios](https://github.com/axios/axios) | `1.16.0` | `1.16.1` |\n| [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `16.2.4` | `16.2.6` |\n| [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.5.0` | `16.8.11` |\n| [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `14.2.6` | `15.0.5` |\n| [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.5.0` | `16.8.11` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.469.0` | `1.16.0` |\n| [mermaid](https://github.com/mermaid-js/mermaid) | `11.14.0` | `11.15.0` |\n| [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) | `20.5.3` | `21.0.1` |\n| [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) | `20.5.3` | `21.0.1` |\n| [@middy/core](https://github.com/middyjs/middy/tree/HEAD/packages/core) | `7.5.0` | `7.6.4` |\n| [@middy/http-cors](https://github.com/middyjs/middy/tree/HEAD/packages/http-cors) | `7.5.0` | `7.6.4` |\n| [@middy/http-security-headers](https://github.com/middyjs/middy/tree/HEAD/packages/http-security-headers) | `7.5.0` | `7.6.4` |\n| [@middy/validator](https://github.com/middyjs/middy/tree/HEAD/packages/validator) | `7.5.0` | `7.6.4` |\n| [@nestjs/common](https://github.com/nestjs/nest/tree/HEAD/packages/common) | `11.1.19` | `11.1.21` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `22.19.7` | `25.8.0` |\n| [ai](https://github.com/vercel/ai/tree/HEAD/packages/ai) | `6.0.177` | `6.0.184` |\n| [baseline-browser-mapping](https://github.com/web-platform-dx/baseline-browser-mapping) | `2.10.29` | `2.10.30` |\n| [enhanced-resolve](https://github.com/webpack/enhanced-resolve) | `5.21.2` | `5.21.3` |\n| [eslint](https://github.com/eslint/eslint) | `8.57.1` | `10.4.0` |\n| [eslint-plugin-oxlint](https://github.com/oxc-project/eslint-plugin-oxlint) | `1.62.0` | `1.65.0` |\n| [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) | `62.0.0` | `64.0.0` |\n| [jiti](https://github.com/unjs/jiti) | `2.6.1` | `2.7.0` |\n| [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) | `1.62.0` | `1.65.0` |\n| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/core) | `10.3.6` | `10.4.0` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `6.0.3` |\n| [verdaccio](https://github.com/verdaccio/verdaccio) | `6.6.0` | `6.7.1` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.59.1` | `1.60.0` |\n| [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `10.3.6` | `10.4.0` |\n| [@storybook/addon-docs](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/docs) | `10.3.6` | `10.4.0` |\n| [@storybook/addon-themes](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/themes) | `10.3.6` | `10.4.0` |\n| [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `10.3.6` | `10.4.0` |\n| [@storybook/test-runner](https://github.com/storybookjs/test-runner) | `0.24.3` | `0.24.4` |\n| [wait-on](https://github.com/jeffbski/wait-on) | `8.0.5` | `9.0.10` |\n| [@ai-sdk/openai](https://github.com/vercel/ai/tree/HEAD/packages/openai) | `3.0.63` | `3.0.64` |\n| [@types/vscode](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/vscode) | `1.118.0` | `1.120.0` |\n| [@google/genai](https://github.com/googleapis/js-genai) | `1.51.0` | `2.3.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| [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) | `17.24.0` | `18.0.1` |\n| [eslint-plugin-security](https://github.com/eslint-community/eslint-plugin-security) | `2.1.1` | `4.0.0` |\n| [eslint-plugin-sonarjs](https://github.com/SonarSource/SonarJS) | `3.0.7` | `4.0.3` |\n| [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) | `10.9.0` | `10.9.1` |\n| [tsx](https://github.com/privatenumber/tsx) | `4.21.0` | `4.22.1` |\n\n\nUpdates `@tanstack/react-query` from 5.100.9 to 5.100.10\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md\"\u003e@​tanstack/react-query's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.100.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.10\u003c/li\u003e\n\u003c/ul\u003e\n\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\u003eSee full diff in \u003ca href=\"https://github.com/TanStack/query/commits/HEAD/packages/react-query\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `axios` from 1.16.0 to 1.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axios/axios/releases\"\u003eaxios's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.16.1 — May 13, 2026\u003c/h2\u003e\n\u003cp\u003eThis release ships a defence-in-depth fix for prototype pollution in \u003ccode\u003eformDataToJSON\u003c/code\u003e, hardens proxy and CI workflows, restores Webpack 4 compatibility for the fetch adapter, and includes several small bug fixes and maintenance improvements.\u003c/p\u003e\n\u003ch2\u003e🔒 Security Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ePrototype Pollution Defence-in-Depth:\u003c/strong\u003e Hardened \u003ccode\u003eformDataToJSON\u003c/code\u003e against already-polluted \u003ccode\u003eObject.prototype\u003c/code\u003e by walking own properties only, so attacker-controlled keys inherited from a poisoned prototype cannot propagate through deserialization. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/7413\"\u003e#7413\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eProxy Cleartext Leak:\u003c/strong\u003e Fixed an issue where HTTPS request data could be transmitted in cleartext to an HTTP proxy under certain configurations. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10858\"\u003e#10858\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCI Cache Removal:\u003c/strong\u003e Removed all GitHub Actions caches as a defence-in-depth measure against cache poisoning vectors in the build pipeline. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10882\"\u003e#10882\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eData URI Parsing:\u003c/strong\u003e Updated the \u003ccode\u003efromDataURI\u003c/code\u003e regex to match RFC 2397 more strictly, fixing edge cases in \u003ccode\u003edata:\u003c/code\u003e URL handling. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10829\"\u003e#10829\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUnicode Headers:\u003c/strong\u003e Preserved Unicode header values when running through request interceptors, so non-ASCII header content is no longer corrupted before dispatch. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10850\"\u003e#10850\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eXHR Upload Progress:\u003c/strong\u003e Guarded against malformed \u003ccode\u003eProgressEvent\u003c/code\u003e payloads emitted by some environments during XHR upload, preventing crashes when \u003ccode\u003eloaded\u003c/code\u003e / \u003ccode\u003etotal\u003c/code\u003e are missing or invalid. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10868\"\u003e#10868\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWebpack 4 Fetch Adapter:\u003c/strong\u003e Fixed an \u0026quot;unexpected token\u0026quot; error caused by syntax in the fetch adapter that Webpack 4 could not parse, restoring compatibility for legacy bundler users. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10864\"\u003e#10864\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType Definitions:\u003c/strong\u003e Made \u003ccode\u003eparseReviver\u003c/code\u003e \u003ccode\u003econtext.source\u003c/code\u003e optional in the type definitions to align with the ES2023 specification. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10837\"\u003e#10837\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eURL Object Support Reverted:\u003c/strong\u003e Reverted the change that allowed passing a \u003ccode\u003eURL\u003c/code\u003e object as \u003ccode\u003econfig.url\u003c/code\u003e (originally \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10866\"\u003e#10866\u003c/a\u003e\u003c/strong\u003e) due to regressions; this support will be reintroduced in a later release once the underlying issues are addressed. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10874\"\u003e#10874\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔧 Maintenance \u0026amp; Chores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCycle Detection Refactor:\u003c/strong\u003e Replaced the array-based cycle tracker in \u003ccode\u003etoJSONObject\u003c/code\u003e with a \u003ccode\u003eWeakSet\u003c/code\u003e, improving performance and memory behaviour on large nested structures. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10832\"\u003e#10832\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecomposeSignals Cleanup:\u003c/strong\u003e Refactored \u003ccode\u003ecomposeSignals\u003c/code\u003e to use a clearer early-return structure, simplifying the cancellation/abort composition path. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10844\"\u003e#10844\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAI Readiness \u0026amp; Repo Docs:\u003c/strong\u003e Added \u003ccode\u003eAGENTS.md\u003c/code\u003e and related contributor-guide updates for both human and AI agents, plus post-release documentation improvements. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10835\"\u003e#10835\u003c/a\u003e\u003c/strong\u003e, \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10841\"\u003e#10841\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDocs Improvements:\u003c/strong\u003e Clarified the GET request example, fixed the interceptor \u003ccode\u003eeject\u003c/code\u003e example to reference the correct instance, and corrected the Buzzoid sponsor description in the README. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10836\"\u003e#10836\u003c/a\u003e\u003c/strong\u003e, \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10853\"\u003e#10853\u003c/a\u003e\u003c/strong\u003e, \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10856\"\u003e#10856\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSponsorship Tooling:\u003c/strong\u003e Fixed empty sponsor arrays in the sponsor processing script, added the ability to inject additional sponsors, updated the sponsorship link, and added a Twicsy advertisement entry. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10843\"\u003e#10843\u003c/a\u003e\u003c/strong\u003e, \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10859\"\u003e#10859\u003c/a\u003e\u003c/strong\u003e, \u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10869\"\u003e#10869\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDependencies:\u003c/strong\u003e Bumped \u003ccode\u003e@commitlint/cli\u003c/code\u003e from 20.5.0 to 20.5.2. (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10846\"\u003e#10846\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🌟 New Contributors\u003c/h2\u003e\n\u003cp\u003eWe are thrilled to welcome our new contributors. Thank you for helping improve axios:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/hpinmetaverse\"\u003e\u003ccode\u003e@​hpinmetaverse\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10836\"\u003e#10836\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/tommyhgunz14\"\u003e\u003ccode\u003e@​tommyhgunz14\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/7413\"\u003e#7413\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/abhu85\"\u003e\u003ccode\u003e@​abhu85\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10829\"\u003e#10829\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/divyanshuraj1095\"\u003e\u003ccode\u003e@​divyanshuraj1095\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10853\"\u003e#10853\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/sagodi97\"\u003e\u003ccode\u003e@​sagodi97\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10856\"\u003e#10856\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/rkdfx\"\u003e\u003ccode\u003e@​rkdfx\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10868\"\u003e#10868\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/Liuwei1125\"\u003e\u003ccode\u003e@​Liuwei1125\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e (\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/axios/axios/issues/10866\"\u003e#10866\u003c/a\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/axios/axios/compare/v1.16.0...v1.16.1\"\u003eFull Changelog\u003c/a\u003e\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/axios/axios/blob/v1.x/CHANGELOG.md\"\u003eaxios's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\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/axios/axios/commit/1337d6b537afb2d3f501074c8ac4ef4308221197\"\u003e\u003ccode\u003e1337d6b\u003c/code\u003e\u003c/a\u003e chore(release): prepare release 1.16.1 (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10877\"\u003e#10877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/858a790cec06054547d0d3f941916d6fb2a4d18e\"\u003e\u003ccode\u003e858a790\u003c/code\u003e\u003c/a\u003e fix: remove all caches (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10882\"\u003e#10882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/34adfd90efc9c145488399e1cf7fa96de67080fa\"\u003e\u003ccode\u003e34adfd9\u003c/code\u003e\u003c/a\u003e revert: \u0026quot;fix: support URL object as config.url input (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10866\"\u003e#10866\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10874\"\u003e#10874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/847d89b43654405d9a231e0b669832c2092b621f\"\u003e\u003ccode\u003e847d89b\u003c/code\u003e\u003c/a\u003e fix: support URL object as config.url input (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10866\"\u003e#10866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/40948863677bb793bfff0293cce7e7b4f8a1b212\"\u003e\u003ccode\u003e4094886\u003c/code\u003e\u003c/a\u003e fix(progress): guard malformed XHR upload events (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10868\"\u003e#10868\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/44f0c5bf73c45df6009365141faa394d73596bd7\"\u003e\u003ccode\u003e44f0c5b\u003c/code\u003e\u003c/a\u003e chore: change sponsorship link and add Twicsy advertisement (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10869\"\u003e#10869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/64e1095efedc64c9fecf5176bd9cf2e5e93140d6\"\u003e\u003ccode\u003e64e1095\u003c/code\u003e\u003c/a\u003e chore: update PR and issue template to use h2 (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10865\"\u003e#10865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/3e6b4e1f311b43aa1dc77d78150a601d9fe4b280\"\u003e\u003ccode\u003e3e6b4e1\u003c/code\u003e\u003c/a\u003e fix: error unexpected token in fetch JS compatibility issue with Webpack 4 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/c4453bab70f53575175903aee60810c821f72129\"\u003e\u003ccode\u003ec4453ba\u003c/code\u003e\u003c/a\u003e fix: add the ability to add additional sponsors to the process sponsors scrip...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/caa00a90b524bb67ed033474abcf4d8645ced793\"\u003e\u003ccode\u003ecaa00a9\u003c/code\u003e\u003c/a\u003e fix: https data in cleartext to proxy (\u003ca href=\"https://redirect.github.com/axios/axios/issues/10858\"\u003e#10858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axios/axios/compare/v1.16.0...v1.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `eslint-config-next` from 16.2.4 to 16.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/vercel/next.js/releases\"\u003eeslint-config-next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev16.2.6\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!NOTE]\nThis release contains security fixes and backported bug fixes. It does \u003cstrong\u003enot\u003c/strong\u003e include all pending features/changes on canary.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eSecurity Fixes\u003c/h3\u003e\n\u003cp\u003eThe following advisories have been addressed:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eHigh:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-8h8q-6873-q5fj\"\u003eGHSA-8h8q-6873-q5fj: Denial of Service with Server Components\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-267c-6grr-h53f\"\u003eGHSA-267c-6grr-h53f: Middleware / Proxy bypass in App Router applications via segment-prefetch routes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-26hh-7cqf-hhc6\"\u003eGHSA-26hh-7cqf-hhc6: Middleware / Proxy bypass in App Router applications via segment-prefetch routes - \u003cstrong\u003eIncomplete Fix Follow-Up\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-mg66-mrh9-m8jx\"\u003eGHSA-mg66-mrh9-m8jx: Denial of Service via connection exhaustion in applications using Cache Components\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-492v-c6pp-mqqv\"\u003eGHSA-492v-c6pp-mqqv: Middleware / Proxy bypass through dynamic route parameter injection\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-c4j6-fc7j-m34r\"\u003eGHSA-c4j6-fc7j-m34r: Server-side request forgery in applications using WebSocket upgrades\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-36qx-fr4f-26g5\"\u003eGHSA-36qx-fr4f-26g5: Middleware / Proxy bypass in Pages Router applications using i18n\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eModerate:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-ffhc-5mcf-pf4q\"\u003eGHSA-ffhc-5mcf-pf4q: Cross-site scripting in App Router applications using CSP nonces\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-gx5p-jg67-6x7h\"\u003eGHSA-gx5p-jg67-6x7h: Cross-site scripting in beforeInteractive scripts with untrusted input\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-h64f-5h5j-jqjh\"\u003eGHSA-h64f-5h5j-jqjh: Denial of Service in the Image Optimization API\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-wfc6-r584-vfw7\"\u003eGHSA-wfc6-r584-vfw7: Cache poisoning in React Server Component responses\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eLow:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-vfv6-92ff-j949\"\u003eGHSA-vfv6-92ff-j949: Cache poisoning via collisions in React Server Component cache-busting\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-3g8h-86w9-wvmq\"\u003eGHSA-3g8h-86w9-wvmq: Middleware / Proxy redirects can be cache-poisoned\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: preserve HTTP access fallbacks during prerender recovery (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/92231\"\u003e#92231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix fallback route params case in app-page handler (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/91737\"\u003e#91737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix invalid HTML response for route-level RSC requests in deployment adapter (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/91541\"\u003e#91541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePatch setHeader for direct route handlers (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/93101\"\u003e#93101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude deployment id in \u003ccode\u003ecacheHandlers\u003c/code\u003e keys (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/93453\"\u003e#93453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix double-encoding of URL pathname parts in client param parsing (\u003ca href=\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/93491\"\u003e#93491\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev16.2.5\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!NOTE]\nThis release contains security fixes and backported bug fixes. It does \u003cstrong\u003enot\u003c/strong\u003e include all pending features/changes on canary.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eSecurity Fixes\u003c/h3\u003e\n\u003cp\u003eThe following advisories have been addressed:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eHigh:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-8h8q-6873-q5fj\"\u003eGHSA-8h8q-6873-q5fj: Denial of Service with Server Components\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-267c-6grr-h53f\"\u003eGHSA-267c-6grr-h53f: Middleware / Proxy bypass in App Router applications via segment-prefetch routes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-mg66-mrh9-m8jx\"\u003eGHSA-mg66-mrh9-m8jx: Denial of Service via connection exhaustion in applications using Cache Components\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-492v-c6pp-mqqv\"\u003eGHSA-492v-c6pp-mqqv: Middleware / Proxy bypass through dynamic route parameter injection\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/security/advisories/GHSA-c4j6-fc7j-m34r\"\u003eGHSA-c4j6-fc7j-m34r: Server-side request forgery in applications using WebSocket upgrades\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/vercel/next.js/commit/ee6e79b1792a4d401ddf2480f40a83549fe8e722\"\u003e\u003ccode\u003eee6e79b\u003c/code\u003e\u003c/a\u003e v16.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/next.js/commit/766148f9cd48c0e218acafcd0f15defc14871bf4\"\u003e\u003ccode\u003e766148f\u003c/code\u003e\u003c/a\u003e v16.2.5\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/vercel/next.js/commits/v16.2.6/packages/eslint-config-next\"\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 eslint-config-next since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fumadocs-core` from 16.5.0 to 16.8.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fuma-nama/fumadocs/releases\"\u003efumadocs-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003efumadocs-core@16.8.11\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1dc86c7: loosen the range for waku\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-core@16.8.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e062beab: fix internal types\u003c/li\u003e\n\u003cli\u003e505cfe0: Add \u003ccode\u003eremark-block-id\u003c/code\u003e plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-core@16.8.8\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.8.7\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.8.6\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.8.5\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e79d3209: Narrow schema type for private OpenAPI properties\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-core@16.8.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e61b15e9: fix Shiki languages not loaded under lazy mode\u003c/li\u003e\n\u003cli\u003e1a5433c: Support \u003ccode\u003e$\u003c/code\u003e in locale for page tree generation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-core@16.8.3\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.8.2\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.8.1\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003efumadocs-core@16.7.16\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e9cf33e9: Improve inline code output\u003c/li\u003e\n\u003cli\u003e9cf33e9: Support async hooks in Shiki transformers\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-core@16.7.15\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ee1567e2: use local fork of Shiki rehype integration\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/fuma-nama/fumadocs/commit/99f1066de511270e8c8d3db409f09b868f89364b\"\u003e\u003ccode\u003e99f1066\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3280\"\u003e#3280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/d4c78e4aefdd5b54d853ace1b38eaab4ad4858d8\"\u003e\u003ccode\u003ed4c78e4\u003c/code\u003e\u003c/a\u003e OpenAPI: render deprecated badge for deprecated operations (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3281\"\u003e#3281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/0287f49f65b01c6fc383b162d8ac55ab6ca92b36\"\u003e\u003ccode\u003e0287f49\u003c/code\u003e\u003c/a\u003e UI: improve default OG image\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/1dc86c7dc9a771cc514a288e90d0c369bae52382\"\u003e\u003ccode\u003e1dc86c7\u003c/code\u003e\u003c/a\u003e Core: loosen the range for waku\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/b3052ac079ead8c629e7382c56db643fe2ac0285\"\u003e\u003ccode\u003eb3052ac\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3279\"\u003e#3279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/61f3a27eb5cb8330a51f7e72ea0c005fb6a218f8\"\u003e\u003ccode\u003e61f3a27\u003c/code\u003e\u003c/a\u003e UI: encode storage keys\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/1c9494986d262281492ef1fa6c9d67576f9cd659\"\u003e\u003ccode\u003e1c94949\u003c/code\u003e\u003c/a\u003e Preview: Rate limit config for AI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/8a4e1d1eda2746f353987b11a7242be58b314449\"\u003e\u003ccode\u003e8a4e1d1\u003c/code\u003e\u003c/a\u003e Previiew: Support file-sytem checks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/b160b260b45d2b485cc62da0deaab35b14bcc4a1\"\u003e\u003ccode\u003eb160b26\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3275\"\u003e#3275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/ce1d37af6ceb6491ad9f9a4a66a23c65a0565ece\"\u003e\u003ccode\u003ece1d37a\u003c/code\u003e\u003c/a\u003e Chore: re-define bin.js for fumadocs-mdx\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.5.0...fumadocs-core@16.8.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fumadocs-mdx` from 14.2.6 to 15.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fuma-nama/fumadocs/releases\"\u003efumadocs-mdx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003efumadocs-mdx@15.0.5\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1fb6a61: Support custom base directory for content sources\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@15.0.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e819b6ec: Support Rolldown integration\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@15.0.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e2569154: Pre-generate Vite config to prevent CJS compat issues\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [062beab]\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [505cfe0]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@15.0.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e298ac97: fix compatibility issues with Vite RSC\u003c/li\u003e\n\u003cli\u003eb212481: remove vitefu from inline deps\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@15.0.0\u003c/h2\u003e\n\u003ch3\u003eMajor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e3de9dfe: \u003cstrong\u003eRequire ESM for \u003ccode\u003enext.config\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eModern Node.js now supports \u003ccode\u003enext.config.mts\u003c/code\u003e format, compatibility layer is no longer needed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e3de9dfe: Raise minimum \u003ccode\u003efumadocs-core\u003c/code\u003e version to \u003ccode\u003e16.7.0\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e5745fcf: Support better Node.js loader registry\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@14.3.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e79d3209: Deprecate forwarded schemas at \u003ccode\u003efumadocs-mdx/config\u003c/code\u003e, recommend \u003ccode\u003efumadocs-core/source/schema\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [79d3209]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.5\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-mdx@14.3.0\u003c/h2\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efa9f678: \u003cstrong\u003eMake Next.js config ESM only\u003c/strong\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\u003eSee full diff in \u003ca href=\"https://github.com/fuma-nama/fumadocs/commits/fumadocs-mdx@15.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fumadocs-ui` from 16.5.0 to 16.8.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fuma-nama/fumadocs/releases\"\u003efumadocs-ui's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003efumadocs-ui@16.8.11\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [1dc86c7]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [062beab]\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [505cfe0]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.8\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eb494c8d: Support copy ID in headings\u003c/li\u003e\n\u003cli\u003e03626ba: [Search UI] show \u003ccode\u003ectrl\u003c/code\u003e for Linux machines\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e34f37f3: hotfix TOC\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.6\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1aa48d0: fix RTL layout for Clerk style\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.6\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.5\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [79d3209]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.5\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eb5ff03b: Support new OG image design for Takumi\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [61b15e9]\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [1a5433c]\n\u003cul\u003e\n\u003cli\u003efumadocs-core@16.8.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003efumadocs-ui@16.8.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e8082ef6: Add \u003ccode\u003elegacy/layout\u003c/code\u003e for versions prior to 16.2\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/fuma-nama/fumadocs/commit/99f1066de511270e8c8d3db409f09b868f89364b\"\u003e\u003ccode\u003e99f1066\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3280\"\u003e#3280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/d4c78e4aefdd5b54d853ace1b38eaab4ad4858d8\"\u003e\u003ccode\u003ed4c78e4\u003c/code\u003e\u003c/a\u003e OpenAPI: render deprecated badge for deprecated operations (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3281\"\u003e#3281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/0287f49f65b01c6fc383b162d8ac55ab6ca92b36\"\u003e\u003ccode\u003e0287f49\u003c/code\u003e\u003c/a\u003e UI: improve default OG image\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/1dc86c7dc9a771cc514a288e90d0c369bae52382\"\u003e\u003ccode\u003e1dc86c7\u003c/code\u003e\u003c/a\u003e Core: loosen the range for waku\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/b3052ac079ead8c629e7382c56db643fe2ac0285\"\u003e\u003ccode\u003eb3052ac\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3279\"\u003e#3279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/61f3a27eb5cb8330a51f7e72ea0c005fb6a218f8\"\u003e\u003ccode\u003e61f3a27\u003c/code\u003e\u003c/a\u003e UI: encode storage keys\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/1c9494986d262281492ef1fa6c9d67576f9cd659\"\u003e\u003ccode\u003e1c94949\u003c/code\u003e\u003c/a\u003e Preview: Rate limit config for AI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/8a4e1d1eda2746f353987b11a7242be58b314449\"\u003e\u003ccode\u003e8a4e1d1\u003c/code\u003e\u003c/a\u003e Previiew: Support file-sytem checks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/b160b260b45d2b485cc62da0deaab35b14bcc4a1\"\u003e\u003ccode\u003eb160b26\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3275\"\u003e#3275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/ce1d37af6ceb6491ad9f9a4a66a23c65a0565ece\"\u003e\u003ccode\u003ece1d37a\u003c/code\u003e\u003c/a\u003e Chore: re-define bin.js for fumadocs-mdx\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.5.0...fumadocs-ui@16.8.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lucide-react` from 0.469.0 to 1.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lucide-icons/lucide/releases\"\u003elucide-react's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.16.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003eblender\u003c/code\u003e icon by \u003ca href=\"https://github.com/rrod497\"\u003e\u003ccode\u003e@​rrod497\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/3884\"\u003elucide-icons/lucide#3884\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lucide-icons/lucide/compare/1.15.0...1.16.0\"\u003ehttps://github.com/lucide-icons/lucide/compare/1.15.0...1.16.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: remove 'less' from brand stopwords by \u003ca href=\"https://github.com/jguddas\"\u003e\u003ccode\u003e@​jguddas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4331\"\u003elucide-icons/lucide#4331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(\u003ccode\u003e@​lucide/vue\u003c/code\u003e): Clone slots before passing to icon by \u003ca href=\"https://github.com/axtho\"\u003e\u003ccode\u003e@​axtho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4339\"\u003elucide-icons/lucide#4339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003etext-cursor\u003c/code\u003e icon by \u003ca href=\"https://github.com/jamiemlaw\"\u003e\u003ccode\u003e@​jamiemlaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4340\"\u003elucide-icons/lucide#4340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003elandmark\u003c/code\u003e icon by \u003ca href=\"https://github.com/jamiemlaw\"\u003e\u003ccode\u003e@​jamiemlaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4334\"\u003elucide-icons/lucide#4334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump nitropack from 2.13.1 to 2.13.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4352\"\u003elucide-icons/lucide#4352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump simple-git from 3.33.0 to 3.36.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4349\"\u003elucide-icons/lucide#4349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003ecandy-cane\u003c/code\u003e icon by \u003ca href=\"https://github.com/jguddas\"\u003e\u003ccode\u003e@​jguddas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4148\"\u003elucide-icons/lucide#4148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003evolleyball\u003c/code\u003e icon by \u003ca href=\"https://github.com/jamiemlaw\"\u003e\u003ccode\u003e@​jamiemlaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4338\"\u003elucide-icons/lucide#4338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003echart-no-axes-combined\u003c/code\u003e icon by \u003ca href=\"https://github.com/jguddas\"\u003e\u003ccode\u003e@​jguddas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/3567\"\u003elucide-icons/lucide#3567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icon): added broccoli icon by \u003ca href=\"https://github.com/swastik7805\"\u003e\u003ccode\u003e@​swastik7805\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4263\"\u003elucide-icons/lucide#4263\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(site): Updates to site and updated carbon ads by \u003ca href=\"https://github.com/ericfennis\"\u003e\u003ccode\u003e@​ericfennis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4359\"\u003elucide-icons/lucide#4359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added sticky note variants by \u003ca href=\"https://github.com/Barakudum\"\u003e\u003ccode\u003e@​Barakudum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4348\"\u003elucide-icons/lucide#4348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump astro from 6.1.6 to 6.1.10 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4361\"\u003elucide-icons/lucide#4361\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/axtho\"\u003e\u003ccode\u003e@​axtho\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4339\"\u003elucide-icons/lucide#4339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Barakudum\"\u003e\u003ccode\u003e@​Barakudum\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4348\"\u003elucide-icons/lucide#4348\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lucide-icons/lucide/compare/1.14.0...1.15.0\"\u003ehttps://github.com/lucide-icons/lucide/compare/1.14.0...1.15.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003erepeat-off\u003c/code\u003e icon by \u003ca href=\"https://github.com/jguddas\"\u003e\u003ccode\u003e@​jguddas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/3102\"\u003elucide-icons/lucide#3102\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lucide-icons/lucide/compare/1.13.0...1.14.0\"\u003ehttps://github.com/lucide-icons/lucide/compare/1.13.0...1.14.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(docs): sync URL params with UI state on categories page by \u003ca href=\"https://github.com/taimar\"\u003e\u003ccode\u003e@​taimar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4111\"\u003elucide-icons/lucide#4111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): add \u003ccode\u003ewaves-vertical\u003c/code\u003e icon by \u003ca href=\"https://github.com/jamiemlaw\"\u003e\u003ccode\u003e@​jamiemlaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/3867\"\u003elucide-icons/lucide#3867\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lucide-icons/lucide/compare/1.12.0...1.13.0\"\u003ehttps://github.com/lucide-icons/lucide/compare/1.12.0...1.13.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(icon): add folder-bookmark icon by \u003ca href=\"https://github.com/swastik7805\"\u003e\u003ccode\u003e@​swastik7805\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4262\"\u003elucide-icons/lucide#4262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(readme): Update readme files by \u003ca href=\"https://github.com/ericfennis\"\u003e\u003ccode\u003e@​ericfennis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4320\"\u003elucide-icons/lucide#4320\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003eastroid\u003c/code\u003e icon by \u003ca href=\"https://github.com/whoisBugsbunny\"\u003e\u003ccode\u003e@​whoisBugsbunny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4217\"\u003elucide-icons/lucide#4217\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/lucide-icons/lucide/commit/07c885e6c1f9952965ba388b7fd2bb7c4d416a67\"\u003e\u003ccode\u003e07c885e\u003c/code\u003e\u003c/a\u003e fix(docs): fix zephyr-cloud URL in readmes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/50d8af5a1012e188f3d71ac8f1fc0fba1aab5357\"\u003e\u003ccode\u003e50d8af5\u003c/code\u003e\u003c/a\u003e docs(readme): Update readme files (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4320\"\u003e#4320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/653e44b83293567ff24dcb90ca1094a9cf0a042a\"\u003e\u003ccode\u003e653e44b\u003c/code\u003e\u003c/a\u003e feat(packages): use .mjs for ESM bundles (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4285\"\u003e#4285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/7623e23f787fe78e5075a613fd22da2cecbb9b1b\"\u003e\u003ccode\u003e7623e23\u003c/code\u003e\u003c/a\u003e feat(docs): add Zephyr Cloud to Hero Backers tier \u0026amp; rework updateSponsors scr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/dada0a82970d3733d1d716e2089591c538272a39\"\u003e\u003ccode\u003edada0a8\u003c/code\u003e\u003c/a\u003e fix(lucide-react): Fix dynamic imports (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4210\"\u003e#4210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/a6e648a66ff470c2255d3666765fd73cfcc185ff\"\u003e\u003ccode\u003ea6e648a\u003c/code\u003e\u003c/a\u003e fix(lucide-react): correct client directives in RSC files (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4189\"\u003e#4189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/1f010a357a21c7a8c5e1f92dd90f09d76a04e2dd\"\u003e\u003ccode\u003e1f010a3\u003c/code\u003e\u003c/a\u003e fix(lucide-react): Fixes provider export and RSC render issues (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4175\"\u003e#4175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/484f2c9cd377dbeb536f63d4b183ecfd26947014\"\u003e\u003ccode\u003e484f2c9\u003c/code\u003e\u003c/a\u003e docs(version-1): Version 1 website (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4142\"\u003e#4142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/a0e202d759da95c243b541f8d3c1c26eada32b2e\"\u003e\u003ccode\u003ea0e202d\u003c/code\u003e\u003c/a\u003e feat(packages/angular): add new \u003ccode\u003e@​lucide/angular\u003c/code\u003e package (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/3897\"\u003e#3897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/c5b155ec37f0217bfd85e309873029379df473ac\"\u003e\u003ccode\u003ec5b155e\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of \u003ca href=\"https://github.com/lucide-icons/lucide\"\u003ehttps://github.com/lucide-icons/lucide\u003c/a\u003e into next\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lucide-icons/lucide/commits/1.16.0/packages/lucide-react\"\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 lucide-react since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mermaid` from 11.14.0 to 11.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mermaid-js/mermaid/releases\"\u003emermaid's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emermaid@11.15.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/mermaid-js/mermaid/pull/7174\"\u003e#7174\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/0aca21739c0d1fcaaa206e04a6cd574ebc415483\"\u003e\u003ccode\u003e0aca217\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/milesspencer35\"\u003e\u003ccode\u003e@​milesspencer35\u003c/code\u003e\u003c/a\u003e! - feat(sequence): Add support for decimal start and increment values in the \u003ccode\u003eautonumber\u003c/code\u003e directive\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7512\"\u003e#7512\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/8e17492f7365ba50896382feb69a23efd9d8a22d\"\u003e\u003ccode\u003e8e17492\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/aruncveli\"\u003e\u003ccode\u003e@​aruncveli\u003c/code\u003e\u003c/a\u003e! - feat(flowchart): add datastore shape\u003c/p\u003e\n\u003cp\u003eIn Data flow diagrams, a datastore/warehouse/file/database is used to represent data persistence. It is denoted by a rectangle with only top and bottom borders, and can be used in flowcharts with \u003ccode\u003eA@{ shape: datastore, label: \u0026quot;Datastore\u0026quot; }\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/6440\"\u003e#6440\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/9ad8dde6d049adde85d8ed2d476c09b5820f3f4b\"\u003e\u003ccode\u003e9ad8dde\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/yordis\"\u003e\u003ccode\u003e@​yordis\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/lgazo\"\u003e\u003ccode\u003e@​lgazo\u003c/code\u003e\u003c/a\u003e! - feat: add Event Modeling diagram\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7707\"\u003e#7707\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/27db774627be1cee881961dfd0d2cb21cd01b79d\"\u003e\u003ccode\u003e27db774\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/txmxthy\"\u003e\u003ccode\u003e@​txmxthy\u003c/code\u003e\u003c/a\u003e! - feat(architecture): expose four fcose layout knobs for \u003ccode\u003earchitecture-beta\u003c/code\u003e diagrams (\u003ccode\u003enodeSeparation\u003c/code\u003e, \u003ccode\u003eidealEdgeLengthMultiplier\u003c/code\u003e, \u003ccode\u003eedgeElasticity\u003c/code\u003e, \u003ccode\u003enumIter\u003c/code\u003e) so authors can tune layout density and spread overlapping siblings without changing diagram source\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7604\"\u003e#7604\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/bf9502fb6012a4b724679b401ac928f5ee55161c\"\u003e\u003ccode\u003ebf9502f\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/M-a-c\"\u003e\u003ccode\u003e@​M-a-c\u003c/code\u003e\u003c/a\u003e! - feat(class): add nested namespace support for class diagrams via dot notation and syntactic nesting\u003c/p\u003e\n\u003cp\u003eIf you have namespaces in class diagrams that use \u003ccode\u003e.\u003c/code\u003es already and want to render them without nesting (≤v11.14.0 behaviour), you can use set \u003ccode\u003eclass.hierarchicalNamespaces=false\u003c/code\u003e in your mermaid config:\u003c/p\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003econfig:\n  class:\n    hierarchicalNamespaces: false\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7272\"\u003e#7272\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/88cdd3dc0aab9577174561b04e14760c565a232b\"\u003e\u003ccode\u003e88cdd3d\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/xinbenlv\"\u003e\u003ccode\u003e@​xinbenlv\u003c/code\u003e\u003c/a\u003e! - feat(sankey): add outlined label style, configurable nodeWidth/nodePadding, and custom node colors\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/e9b0f34d8d82a6260077764ee45e1d7d90957a0f\"\u003e\u003ccode\u003ee9b0f34\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix: prevent unbalanced CSS styles in classDefs\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/37ff937f1da2e19f882fd1db01235db4d01f4056\"\u003e\u003ccode\u003e37ff937\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix: create CSS styles using the CSSOM\u003c/p\u003e\n\u003cp\u003eThis removes some invalid CSS and normalizes some CSS formatting.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7508\"\u003e#7508\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/bfe60cc67b9a6dec64f9161f58e4d24a06c42b65\"\u003e\u003ccode\u003ebfe60cc\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/biiab\"\u003e\u003ccode\u003e@​biiab\u003c/code\u003e\u003c/a\u003e! - fix(stateDiagram): \u003ccode\u003eend note\u003c/code\u003e now only closes a note when used on a new line\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/faafb5d49106dd32c367f3882505f2dd625aa30e\"\u003e\u003ccode\u003efaafb5d\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix(gantt): add iteration limit for \u003ccode\u003eexcludes\u003c/code\u003e field\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7737\"\u003e#7737\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/65f8be2a42faf869b811469571983cba7eeeca99\"\u003e\u003ccode\u003e65f8be2\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ashishjain0512\"\u003e\u003ccode\u003e@​ashishjain0512\u003c/code\u003e\u003c/a\u003e! - fix: disallow some CSS at-rules in custom CSS\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7726\"\u003e#7726\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/1502f32f3c5fb944925b0c527fbbde3c4f041824\"\u003e\u003ccode\u003e1502f32\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/aloisklink\"\u003e\u003ccode\u003e@​aloisklink\u003c/code\u003e\u003c/a\u003e! - fix(wardley): fix unnecessary sanitization of text\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7578\"\u003e#7578\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/1f98db8e326299ac97a2fa60abfd509d8f5f16e2\"\u003e\u003ccode\u003e1f98db8\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/Gaston202\"\u003e\u003ccode\u003e@​Gaston202\u003c/code\u003e\u003c/a\u003e! - fix(class): self-referential class multiplicity labels no longer rendered multiple times\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7560\"\u003e#7560\u003c/a\u003e. Resolves an issue where cardinality labels on self-referential class relationships were rendered three times due to edge splitting in the dagre layout. The fix ensures that each sub-edge only carries its relevant label positions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7592\"\u003e#7592\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/2343e38498a3b31f8ce5e79f1f009e0b56fbe086\"\u003e\u003ccode\u003e2343e38\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/knsv-bot\"\u003e\u003ccode\u003e@​knsv-bot\u003c/code\u003e\u003c/a\u003e! - fix(sequence): add background box behind alt/else section title labels in sequence diagrams\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7589\"\u003e#7589\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/7fb9509b8b5cb1dc48519dc60cf6cdc6afba0462\"\u003e\u003ccode\u003e7fb9509\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/NYCU-Chung\"\u003e\u003ccode\u003e@​NYCU-Chung\u003c/code\u003e\u003c/a\u003e! - fix(block): prevent column widths from shrinking when mixing different column spans\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/pull/7632\"\u003e#7632\u003c/a\u003e \u003ca href=\"https://github.com/mermaid-js/mermaid/commit/3f9e0f15bedc1e2c71ddb6b34192d1a21124cfc2\"\u003e\u003ccode\u003e3f9e0f1\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ekiauhce\"\u003e\u003ccode\u003e@​ekiauhce\u003c/code\u003e\u003c/a\u003e! - fix(sequence): correct messageAlign label position for right-to-left arrows in sequence diagrams\u003c/p\u003e\n\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/mermaid-js/mermaid/commit/41646dfd43ac83f001b03c70605feb036afae46d\"\u003e\u003ccode\u003e41646df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7739\"\u003e#7739\u003c/a\u003e from aloisklink/ci/fix-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/2671f5c44a1515960ebc41c09a365c41860f95ee\"\u003e\u003ccode\u003e2671f5c\u003c/code\u003e\u003c/a\u003e docs: fix v11.15.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/f4bf04b5db8bed603e40ed3d5ce5228d6b07754e\"\u003e\u003ccode\u003ef4bf04b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7738\"\u003e#7738\u003c/a\u003e from mermaid-js/changeset-release/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/abfb563e1dcbd46d617f44a6361bd6d926dc6289\"\u003e\u003ccode\u003eabfb563\u003c/code\u003e\u003c/a\u003e Version Packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/60b289f428d0a0832ad95ed4e1fb326344e23532\"\u003e\u003ccode\u003e60b289f\u003c/code\u003e\u003c/a\u003e Release Candidate 11.15.0 (\u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7737\"\u003e#7737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/d37c0db39ca2405b4473361063df2c47109dc2c9\"\u003e\u003ccode\u003ed37c0db\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7730\"\u003e#7730\u003c/a\u003e from aloisklink/fix/fix-edgeLabelRightLeft-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/5ab5a2895fa8b7e90de85b43a4b99aa50b39b0f1\"\u003e\u003ccode\u003e5ab5a28\u003c/code\u003e\u003c/a\u003e docs: improve nested namespace changeset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/18f8b4c5bf67aface3485272b48042f2fdd6fad2\"\u003e\u003ccode\u003e18f8b4c\u003c/code\u003e\u003c/a\u003e fix: revert endEdgeLabelLeft/endEdgeLabelRight change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/504b2eb73d4d827baa817efd47ab6f44ae769b5a\"\u003e\u003ccode\u003e504b2eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mermaid-js/mermaid/issues/7726\"\u003e#7726\u003c/a\u003e from aloisklink/fix/correct-unnecessary-html-escapes...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mermaid-js/mermaid/commit/1502f32f3c5fb944925b0c527fbbde3c4f041824\"\u003e\u003ccode\u003e1502f32\u003c/code\u003e\u003c/a\u003e fix(wardley): fix unnecessary sanitization of text\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mermaid-js/mermaid/compare/mermaid@11.14.0...mermaid@11.15.0\"\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.5.3 to 21.0.1\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@​commitlint/cli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\"\u003e21.0.1\u003c/a\u003e (2026-05-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(load): only resolve relative formatter paths 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/4761\"\u003econventional-changelog/commitlint#4761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(types): add presetConfig to ParserPreset interface by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4749\"\u003econventional-changelog/commitlint#4749\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCI\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: stop spawning schedule jobs on contributors' forks by \u003ca href=\"https://github.com/knocte\"\u003e\u003ccode\u003e@​knocte\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4753\"\u003econventional-changelog/commitlint#4753\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add weekly non-blocking pnpm audit 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/4766\"\u003econventional-changelog/commitlint#4766\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/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4749\"\u003econventional-changelog/commitlint#4749\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/v21.0.0...v21.0.1\"\u003ehttps://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev21.0.0\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003eHeads-up: --legacy-output is a transitional escape hatch. It will be removed in a future major release. Plan to migrate your parsers / snapshots to the new format during the v21 lifecycle.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.5.3...v21.0.0\"\u003e21.0.0\u003c/a\u003e (2026-05-08)\u003c/h2\u003e\n\u003ch3\u003eBreaking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore!: minimum node version v22 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4679\"\u003e#4679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat!: show input from a new line by \u003ca href=\"https://github.com/knocte\"\u003e\u003ccode\u003e@​knocte\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4727\"\u003e#4727\u003c/a\u003e (adds --legacy-output flag)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: widen cz-commitlint inquirer peer dep to support v9–v12 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4682\"\u003e#4682\u003c/a\u003e — closes \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4554\"\u003e#4554\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternals (Node 22 cleanup)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: replace dependencies with Node 22 built-ins by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4681\"\u003e#4681\u003c/a\u003e — drops glob, fast-glob, import-meta-resolve, minimist, fs-extra\u003c/li\u003e\n\u003cli\u003erefactor: replace read-pkg with native fs.readFile + JSON.parse by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4742\"\u003e#4742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dependency yargs to v18 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4686\"\u003e#4686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove cross-env, move env vars to vitest config by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4684\"\u003e#4684\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependency updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: update dependency \u003ccode\u003e@​types/node\u003c/code\u003e to v22.19.17 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4739\"\u003e#4739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dependency \u003ccode\u003e@​swc/core\u003c/code\u003e to v1.15.33 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4743\"\u003e#4743\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@​commitlint/cli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\"\u003e21.0.1\u003c/a\u003e (2026-05-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\u003ch1\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.5.3...v21.0.0\"\u003e21.0.0\u003c/a\u003e (2026-05-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003echore!: minimum node version v22 (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4679\"\u003e#4679\u003c/a\u003e) (\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/ac2b3f4a947670e46af9a738881ba14158f0987a\"\u003eac2b3f4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/issues/4679\"\u003e#4679\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop node v18 and v20 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eBump engines to \u0026gt;=v22 in all 39 package.json files\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003e@​types/node\u003c/code\u003e to ^22.0.0\u003c/li\u003e\n\u003cli\u003eUpdate CI matrix to [22, 24]\u003c/li\u003e\n\u003cli\u003eUpdate Ubuntu baseline job to ubuntu:26.04\u003c/li\u003e\n\u003cli\u003eUpdate Dockerfile.ci, .mise.toml, .codesandbox/ci.json\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit hook to use --ignore-engines\u003c/li\u003e\n\u003cli\u003eUpdate README and docs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCo-authored-by: Claude Opus 4.6 (1M context) \u003ca href=\"mailto:noreply@anthropic.com\"\u003enoreply@anthropic.com\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/conventional-changelog/commitlint/commit/db8d7d6461d721fe2561ce4307e4069eaf6dcc8c\"\u003e\u003ccode\u003edb8d7d6\u003c/code\u003e\u003c/a\u003e v21.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/1329a25fd6f13b993fdf4e8c1b5a25ff2bf7ee07\"\u003e\u003ccode\u003e1329a25\u003c/code\u003e\u003c/a\u003e chore: migrate to pnpm (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4762\"\u003e#4762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/db39968cdcf7b655e5951d2f550edadc4f0768ef\"\u003e\u003ccode\u003edb39968\u003c/code\u003e\u003c/a\u003e chore: pre pnpm cleanup (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4759\"\u003e#4759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/6099ae50aa71fe7f99d75af1b8d9537aa7685747\"\u003e\u003ccode\u003e6099ae5\u003c/code\u003e\u003c/a\u003e chore: replace eslint with oxlint (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4756\"\u003e#4756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/f081a8ef93019bb8b07f39c756f6d4a052020d3b\"\u003e\u003ccode\u003ef081a8e\u003c/code\u003e\u003c/a\u003e v21.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/40d7e36ffac0986ad0988fedd39a7ebcfde93d3c\"\u003e\u003ccode\u003e40d7e36\u003c/code\u003e\u003c/a\u003e feat!: show input from a new line (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4727\"\u003e#4727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/44c31743ded411d949e935247e8079e5085d8239\"\u003e\u003ccode\u003e44c3174\u003c/code\u003e\u003c/a\u003e chore: update dependency yargs to v18 \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4432\"\u003e#4432\u003c/a\u003e (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4686\"\u003e#4686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/ac01464b453a818e01f2f232a307b61a66167920\"\u003e\u003ccode\u003eac01464\u003c/code\u003e\u003c/a\u003e chore: replace dependencies with Node 22 built-ins (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4681\"\u003e#4681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/ac2b3f4a947670e46af9a738881ba14158f0987a\"\u003e\u003ccode\u003eac2b3f4\u003c/code\u003e\u003c/a\u003e chore!: minimum node version v22 (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli/issues/4679\"\u003e#4679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/conventional-changelog/commitlint/commits/v21.0.1/@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.5.3 to 21.0.1\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@​commitlint/config-conventional's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev21.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\"\u003e21.0.1\u003c/a\u003e (2026-05-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(load): only resolve relative formatter paths 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/4761\"\u003econventional-changelog/commitlint#4761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(types): add presetConfig to ParserPreset interface by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4749\"\u003econventional-changelog/commitlint#4749\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCI\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: stop spawning schedule jobs on contributors' forks by \u003ca href=\"https://github.com/knocte\"\u003e\u003ccode\u003e@​knocte\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4753\"\u003econventional-changelog/commitlint#4753\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add weekly non-blocking pnpm audit 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/4766\"\u003econventional-changelog/commitlint#4766\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/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/pull/4749\"\u003econventional-changelog/commitlint#4749\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/v21.0.0...v21.0.1\"\u003ehttps://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev21.0.0\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003eHeads-up: --legacy-output is a transitional escape hatch. It will be removed in a future major release. Plan to migrate your parsers / snapshots to the new format during the v21 lifecycle.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.5.3...v21.0.0\"\u003e21.0.0\u003c/a\u003e (2026-05-08)\u003c/h2\u003e\n\u003ch3\u003eBreaking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore!: minimum node version v22 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4679\"\u003e#4679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat!: show input from a new line by \u003ca href=\"https://github.com/knocte\"\u003e\u003ccode\u003e@​knocte\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4727\"\u003e#4727\u003c/a\u003e (adds --legacy-output flag)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: widen cz-commitlint inquirer peer dep to support v9–v12 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4682\"\u003e#4682\u003c/a\u003e — closes \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4554\"\u003e#4554\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternals (Node 22 cleanup)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: replace dependencies with Node 22 built-ins by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4681\"\u003e#4681\u003c/a\u003e — drops glob, fast-glob, import-meta-resolve, minimist, fs-extra\u003c/li\u003e\n\u003cli\u003erefactor: replace read-pkg with native fs.readFile + JSON.parse by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4742\"\u003e#4742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dependency yargs to v18 by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4686\"\u003e#4686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove cross-env, move env vars to vitest config by \u003ca href=\"https://github.com/escapedcat\"\u003e\u003ccode\u003e@​escapedcat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4684\"\u003e#4684\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependency updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: update dependency \u003ccode\u003e@​types/node\u003c/code\u003e to v22.19.17 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4739\"\u003e#4739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dependency \u003ccode\u003e@​swc/core\u003c/code\u003e to v1.15.33 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4743\"\u003e#4743\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@​commitlint/config-conventional's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1\"\u003e21.0.1\u003c/a\u003e (2026-05-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\u003ch1\u003e\u003ca href=\"https://github.com/conventional-changelog/commitlint/compare/v20.5.3...v21.0.0\"\u003e21.0.0\u003c/a\u003e (2026-05-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003echore!: minimum node version v22 (\u003ca href=\"https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional/issues/4679\"\u003e#4679\u003c/a\u003e) (\u003ca href=\"https://github.com/conventional-changelog/commitlint/commit/ac2b3f4a947670e46af9a738881ba14158f0987a\"\u003eac2b3f4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/conventional-changelog/commitlint/issues/4679\"\u003e#4679\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop node v18 and v20 su...\n\n_Description has been truncated_","html_url":"https://github.com/ofri-peretz/eslint/pull/102","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ofri-peretz%2Feslint/issues/102","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/102/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":"13.0.1","new_version":"21.3.1","update_type":"major","path":null,"pr_created_at":"2026-05-04T15:53:45.000Z","version_change":"13.0.1 → 21.3.1","issue":{"uuid":"4377888612","node_id":"PR_kwDOSTgCzs7YE2Wk","number":3,"state":"open","title":"build(deps-dev): bump @angular-eslint/eslint-plugin from 13.0.1 to 21.3.1","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-04T15:53:45.000Z","updated_at":"2026-05-04T15:54:21.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"@angular-eslint/eslint-plugin","old_version":"13.0.1","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":null,"ecosystem":"npm"},"body":"Bumps [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) from 13.0.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@​angular-eslint/eslint-plugin'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/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.3.1 (2026-03-17)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\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\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\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\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\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\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\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\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:\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\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\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-implicit-takeuntil-destroyed] add rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2803\"\u003e#2803\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGabriel J. \u003ca href=\"https://github.com/rznn7\"\u003e\u003ccode\u003e@​rznn7\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.1.0 (2025-12-08)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e add prefer-signal-model rule to encourage using model() for two-way bindings (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2818\"\u003e#2818\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/1000391b2041c3bae7a4687273291959a9289fd9\"\u003e\u003ccode\u003e1000391\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-uncalled-signals] properly handle statements with una...\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/eslint-plugin/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/ffcc447713c47e0ebca1886e3a2216222f99966a\"\u003e\u003ccode\u003effcc447\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-uncalled-signals] detect \u003ccode\u003eSignal\u003c/code\u003e type correctly (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/65f2540c19820548b4e61dbbb9fddedf2e2031be\"\u003e\u003ccode\u003e65f2540\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): [no-uncalled-signals] detect Signal member access (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2848\"\u003e#2848\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/eslint-plugin/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/d86425178e40e8b628c45d848dc122403c0859bb\"\u003e\u003ccode\u003ed864251\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): add computed-must-return rule (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2882\"\u003e#2882\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/eslint-plugin\"\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/eslint-plugin\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/eslint-plugin\u0026package-manager=npm_and_yarn\u0026previous-version=13.0.1\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/skygenesisenterprise/zapper-icon/pull/3","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/skygenesisenterprise%2Fzapper-icon/issues/3","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3/packages"}},{"old_version":"21.3.0","new_version":"21.3.1","update_type":"patch","path":null,"pr_created_at":"2026-04-30T02:12:32.000Z","version_change":"21.3.0 → 21.3.1","issue":{"uuid":"4354855277","node_id":"PR_kwDORlHGQM7W7z2R","number":25,"state":"open","title":"chore(deps): bump the console group across 1 directory with 18 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-04-30T02:12:32.000Z","updated_at":"2026-04-30T02:12:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"console","update_count":18,"packages":[{"name":"@bufbuild/protobuf","old_version":"2.11.0","new_version":"2.12.0","repository_url":"https://github.com/bufbuild/protobuf-es"},{"name":"@connectrpc/connect","old_version":"2.0.4","new_version":"2.1.1","repository_url":"https://github.com/connectrpc/connect-es"},{"name":"@connectrpc/connect-web","old_version":"2.0.4","new_version":"2.1.1","repository_url":"https://github.com/connectrpc/connect-es"},{"name":"@netlify/build-info","old_version":"10.3.0","new_version":"10.5.1","repository_url":"https://github.com/netlify/build"},{"name":"@tanstack/angular-query-experimental","old_version":"5.90.24","new_version":"5.100.6","repository_url":"https://github.com/TanStack/query"},{"name":"libphonenumber-js","old_version":"1.12.35","new_version":"1.12.42"},{"name":"opentype.js","old_version":"1.3.4","new_version":"1.3.5","repository_url":"https://github.com/opentypejs/opentype.js"},{"name":"posthog-js","old_version":"1.336.1","new_version":"1.372.5","repository_url":"https://github.com/PostHog/posthog-js"},{"name":"zone.js","old_version":"0.15.1","new_version":"0.16.1","repository_url":"https://github.com/angular/angular"},{"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/template-parser","old_version":"21.3.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@typescript-eslint/eslint-plugin","old_version":"8.57.0","new_version":"8.59.1","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"@typescript-eslint/parser","old_version":"8.57.0","new_version":"8.59.1","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"eslint","old_version":"10.0.0","new_version":"10.2.1","repository_url":"https://github.com/eslint/eslint"},{"name":"globals","old_version":"17.3.0","new_version":"17.5.0","repository_url":"https://github.com/sindresorhus/globals"},{"name":"karma-jasmine-html-reporter","old_version":"2.1.0","new_version":"2.2.0","repository_url":"https://github.com/dfederm/karma-jasmine-html-reporter"},{"name":"prettier","old_version":"3.8.1","new_version":"3.8.3","repository_url":"https://github.com/prettier/prettier"}],"path":null,"ecosystem":"npm"},"body":"Bumps the console group with 18 updates in the /console directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@bufbuild/protobuf](https://github.com/bufbuild/protobuf-es/tree/HEAD/packages/protobuf) | `2.11.0` | `2.12.0` |\n| [@connectrpc/connect](https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect) | `2.0.4` | `2.1.1` |\n| [@connectrpc/connect-web](https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web) | `2.0.4` | `2.1.1` |\n| [@netlify/build-info](https://github.com/netlify/build/tree/HEAD/packages/build-info) | `10.3.0` | `10.5.1` |\n| [@tanstack/angular-query-experimental](https://github.com/TanStack/query/tree/HEAD/packages/angular-query-experimental) | `5.90.24` | `5.100.6` |\n| [libphonenumber-js](https://gitlab.com/catamphetamine/libphonenumber-js) | `1.12.35` | `1.12.42` |\n| [opentype.js](https://github.com/opentypejs/opentype.js) | `1.3.4` | `1.3.5` |\n| [posthog-js](https://github.com/PostHog/posthog-js) | `1.336.1` | `1.372.5` |\n| [zone.js](https://github.com/angular/angular/tree/HEAD/packages/zone.js) | `0.15.1` | `0.16.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/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `21.3.0` | `21.3.1` |\n| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.57.0` | `8.59.1` |\n| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.57.0` | `8.59.1` |\n| [eslint](https://github.com/eslint/eslint) | `10.0.0` | `10.2.1` |\n| [globals](https://github.com/sindresorhus/globals) | `17.3.0` | `17.5.0` |\n| [karma-jasmine-html-reporter](https://github.com/dfederm/karma-jasmine-html-reporter) | `2.1.0` | `2.2.0` |\n| [prettier](https://github.com/prettier/prettier) | `3.8.1` | `3.8.3` |\n\n\nUpdates `@bufbuild/protobuf` from 2.11.0 to 2.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bufbuild/protobuf-es/releases\"\u003e\u003ccode\u003e@​bufbuild/protobuf\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGracefully handle Number for BigInt fields by \u003ca href=\"https://github.com/timostamm\"\u003e\u003ccode\u003e@​timostamm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bufbuild/protobuf-es/pull/1346\"\u003ebufbuild/protobuf-es#1346\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eexactOptionalPropertyTypes\u003c/code\u003e by \u003ca href=\"https://github.com/haines\"\u003e\u003ccode\u003e@​haines\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bufbuild/protobuf-es/pull/1371\"\u003ebufbuild/protobuf-es#1371\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix UTF-8 validation for proto3 and edition feature \u003ccode\u003eutf8_validation\u003c/code\u003e by \u003ca href=\"https://github.com/emcfarlane\"\u003e\u003ccode\u003e@​emcfarlane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bufbuild/protobuf-es/pull/1386\"\u003ebufbuild/protobuf-es#1386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix binary tag parse validation to reject overlong values by \u003ca href=\"https://github.com/emcfarlane\"\u003e\u003ccode\u003e@​emcfarlane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bufbuild/protobuf-es/pull/1387\"\u003ebufbuild/protobuf-es#1387\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Any JSON encoding for messages without a custom JSON representation by \u003ca href=\"https://github.com/emcfarlane\"\u003e\u003ccode\u003e@​emcfarlane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bufbuild/protobuf-es/pull/1388\"\u003ebufbuild/protobuf-es#1388\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate to protocolbuffers/protobuf v34.0 by \u003ca href=\"https://github.com/emcfarlane\"\u003e\u003ccode\u003e@​emcfarlane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bufbuild/protobuf-es/pull/1385\"\u003ebufbuild/protobuf-es#1385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate conformance tests to protocolbuffers/protobuf v34.0 by \u003ca href=\"https://github.com/emcfarlane\"\u003e\u003ccode\u003e@​emcfarlane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bufbuild/protobuf-es/pull/1391\"\u003ebufbuild/protobuf-es#1391\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/emcfarlane\"\u003e\u003ccode\u003e@​emcfarlane\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bufbuild/protobuf-es/pull/1386\"\u003ebufbuild/protobuf-es#1386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/bufbuild/protobuf-es/compare/v2.11.0...v2.12.0\"\u003ehttps://github.com/bufbuild/protobuf-es/compare/v2.11.0...v2.12.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/bufbuild/protobuf-es/commit/63a85470d21154c4ed069b2bc196b294327830f3\"\u003e\u003ccode\u003e63a8547\u003c/code\u003e\u003c/a\u003e Release 2.12.0 (\u003ca href=\"https://github.com/bufbuild/protobuf-es/tree/HEAD/packages/protobuf/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bufbuild/protobuf-es/commit/859013cd4dfb49061da35bd279817dd4fa84c666\"\u003e\u003ccode\u003e859013c\u003c/code\u003e\u003c/a\u003e Update to protocolbuffers/protobuf v34.0 (\u003ca href=\"https://github.com/bufbuild/protobuf-es/tree/HEAD/packages/protobuf/issues/1385\"\u003e#1385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bufbuild/protobuf-es/commit/58c72f76f538369406d427b0e5b60d35e6cba195\"\u003e\u003ccode\u003e58c72f7\u003c/code\u003e\u003c/a\u003e Fix Any JSON encoding for messages without a custom JSON representation (\u003ca href=\"https://github.com/bufbuild/protobuf-es/tree/HEAD/packages/protobuf/issues/1388\"\u003e#1388\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bufbuild/protobuf-es/commit/32a1435070dd3d7422239eaf4d4695be4057cc4f\"\u003e\u003ccode\u003e32a1435\u003c/code\u003e\u003c/a\u003e Reject overlong varints and malformed wire-format tags (\u003ca href=\"https://github.com/bufbuild/protobuf-es/tree/HEAD/packages/protobuf/issues/1387\"\u003e#1387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bufbuild/protobuf-es/commit/e0df1ba7fe83654170eda2fa8008940ae06340e6\"\u003e\u003ccode\u003ee0df1ba\u003c/code\u003e\u003c/a\u003e Resolve utf8_validation feature and validate UTF-8 on binary input (\u003ca href=\"https://github.com/bufbuild/protobuf-es/tree/HEAD/packages/protobuf/issues/1386\"\u003e#1386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bufbuild/protobuf-es/commit/6be44080e8c3808818c61a5eb3fc75ecb847ee61\"\u003e\u003ccode\u003e6be4408\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003eexactOptionalPropertyTypes\u003c/code\u003e (\u003ca href=\"https://github.com/bufbuild/protobuf-es/tree/HEAD/packages/protobuf/issues/1371\"\u003e#1371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bufbuild/protobuf-es/commit/2ca7058cff818d3b3df0f245b6359880959e9992\"\u003e\u003ccode\u003e2ca7058\u003c/code\u003e\u003c/a\u003e Fix minor JSDoc issues (\u003ca href=\"https://github.com/bufbuild/protobuf-es/tree/HEAD/packages/protobuf/issues/1373\"\u003e#1373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bufbuild/protobuf-es/commit/b9e4d8b45bbbe5a8fe1e1d44fd330df333135aac\"\u003e\u003ccode\u003eb9e4d8b\u003c/code\u003e\u003c/a\u003e Gracefully handle Number for BigInt fields (\u003ca href=\"https://github.com/bufbuild/protobuf-es/tree/HEAD/packages/protobuf/issues/1346\"\u003e#1346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/bufbuild/protobuf-es/commits/v2.12.0/packages/protobuf\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@connectrpc/connect` from 2.0.4 to 2.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/connectrpc/connect-es/releases\"\u003e\u003ccode\u003e@​connectrpc/connect\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDo not hold on to HTTP/2 connections after receiving GOAWAY without open streams by \u003ca href=\"https://github.com/timostamm\"\u003e\u003ccode\u003e@​timostamm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1566\"\u003econnectrpc/connect-es#1566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Protovalidate (\u003ccode\u003e@​connectrpc/validate\u003c/code\u003e) to README by \u003ca href=\"https://github.com/jrinehart-buf\"\u003e\u003ccode\u003e@​jrinehart-buf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1595\"\u003econnectrpc/connect-es#1595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix memory leak in Http2SessionManager's verify step by \u003ca href=\"https://github.com/ttyniwa\"\u003e\u003ccode\u003e@​ttyniwa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1616\"\u003econnectrpc/connect-es#1616\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/jrinehart-buf\"\u003e\u003ccode\u003e@​jrinehart-buf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1595\"\u003econnectrpc/connect-es#1595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ttyniwa\"\u003e\u003ccode\u003e@​ttyniwa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1616\"\u003econnectrpc/connect-es#1616\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/connectrpc/connect-es/compare/v2.1.0...v2.1.1\"\u003ehttps://github.com/connectrpc/connect-es/compare/v2.1.0...v2.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003c/p\u003e\n\u003cp\u003eTypeScript 5.9 includes breaking changes to lib.d.ts, forcing us to change return types for some functions from \u003ccode\u003eUint8Array\u003c/code\u003e to \u003ccode\u003eUint8Array\u0026lt;ArrayBuffer\u0026gt;\u003c/code\u003e. This is unlikely to affect you, but if it does, see \u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect/issues/1560\"\u003e#1560\u003c/a\u003e for details.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to TypeScript 5.9 and change return types from \u003ccode\u003eUint8Array\u003c/code\u003e to \u003ccode\u003eUint8Array\u0026lt;ArrayBuffer\u0026gt;\u003c/code\u003e by \u003ca href=\"https://github.com/timostamm\"\u003e\u003ccode\u003e@​timostamm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1560\"\u003econnectrpc/connect-es#1560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for Node.js 18 by \u003ca href=\"https://github.com/timostamm\"\u003e\u003ccode\u003e@​timostamm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1559\"\u003econnectrpc/connect-es#1559\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/connectrpc/connect-es/compare/v2.0.4...v2.1.0\"\u003ehttps://github.com/connectrpc/connect-es/compare/v2.0.4...v2.1.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/connectrpc/connect-es/commit/bf6b19103f110b4bf61d5d326c2f1443fc2eb155\"\u003e\u003ccode\u003ebf6b191\u003c/code\u003e\u003c/a\u003e Release 2.1.1 (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect/issues/1618\"\u003e#1618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/6585c9e5d42e0f667b09ed28f7443996dc50b288\"\u003e\u003ccode\u003e6585c9e\u003c/code\u003e\u003c/a\u003e Bump the bench group across 1 directory with 4 updates (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect/issues/1584\"\u003e#1584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/f27d8bf86b964dead42f1d3f9d136dd1053d691a\"\u003e\u003ccode\u003ef27d8bf\u003c/code\u003e\u003c/a\u003e Bump jasmine and \u003ccode\u003e@​types/jasmine\u003c/code\u003e (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect/issues/1611\"\u003e#1611\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/54f492b0d7d9b5774974e645f55ff9ed57fd943e\"\u003e\u003ccode\u003e54f492b\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003e@​bufbuild/buf\u003c/code\u003e from 1.57.2 to 1.59.0 (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect/issues/1613\"\u003e#1613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/5a9d53cebbf1f76edf63470ed5e0edd6c4951300\"\u003e\u003ccode\u003e5a9d53c\u003c/code\u003e\u003c/a\u003e Minor improvement for docs (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect/issues/1602\"\u003e#1602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/9168232adae5545827e138292fa5fe93774c9461\"\u003e\u003ccode\u003e9168232\u003c/code\u003e\u003c/a\u003e Add Protovalidate (\u003ccode\u003e@​connectrpc/validate\u003c/code\u003e) to README (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect/issues/1595\"\u003e#1595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/332f9b5503a80ad59c309482c0364015947c635e\"\u003e\u003ccode\u003e332f9b5\u003c/code\u003e\u003c/a\u003e Bump jasmine from 5.10.0 to 5.11.0 (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect/issues/1590\"\u003e#1590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/1e0eb151a7c01e324787e6efb40639117fb76b82\"\u003e\u003ccode\u003e1e0eb15\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003e@​bufbuild/buf\u003c/code\u003e from 1.57.0 to 1.57.2 (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect/issues/1586\"\u003e#1586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/78b40abd3ecd2f4fa2dda6382e371be8e9de3f6d\"\u003e\u003ccode\u003e78b40ab\u003c/code\u003e\u003c/a\u003e Bump jasmine and \u003ccode\u003e@​types/jasmine\u003c/code\u003e (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect/issues/1572\"\u003e#1572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/cedb07dcf83da91dc152b3788b18b752a3c2a281\"\u003e\u003ccode\u003ecedb07d\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003e@​bufbuild/buf\u003c/code\u003e from 1.56.0 to 1.57.0 (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/connectrpc/connect-es/commits/v2.1.1/packages/connect\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@connectrpc/connect-web` from 2.0.4 to 2.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/connectrpc/connect-es/releases\"\u003e\u003ccode\u003e@​connectrpc/connect-web\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDo not hold on to HTTP/2 connections after receiving GOAWAY without open streams by \u003ca href=\"https://github.com/timostamm\"\u003e\u003ccode\u003e@​timostamm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1566\"\u003econnectrpc/connect-es#1566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Protovalidate (\u003ccode\u003e@​connectrpc/validate\u003c/code\u003e) to README by \u003ca href=\"https://github.com/jrinehart-buf\"\u003e\u003ccode\u003e@​jrinehart-buf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1595\"\u003econnectrpc/connect-es#1595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix memory leak in Http2SessionManager's verify step by \u003ca href=\"https://github.com/ttyniwa\"\u003e\u003ccode\u003e@​ttyniwa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1616\"\u003econnectrpc/connect-es#1616\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/jrinehart-buf\"\u003e\u003ccode\u003e@​jrinehart-buf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1595\"\u003econnectrpc/connect-es#1595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ttyniwa\"\u003e\u003ccode\u003e@​ttyniwa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1616\"\u003econnectrpc/connect-es#1616\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/connectrpc/connect-es/compare/v2.1.0...v2.1.1\"\u003ehttps://github.com/connectrpc/connect-es/compare/v2.1.0...v2.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003c/p\u003e\n\u003cp\u003eTypeScript 5.9 includes breaking changes to lib.d.ts, forcing us to change return types for some functions from \u003ccode\u003eUint8Array\u003c/code\u003e to \u003ccode\u003eUint8Array\u0026lt;ArrayBuffer\u0026gt;\u003c/code\u003e. This is unlikely to affect you, but if it does, see \u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web/issues/1560\"\u003e#1560\u003c/a\u003e for details.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to TypeScript 5.9 and change return types from \u003ccode\u003eUint8Array\u003c/code\u003e to \u003ccode\u003eUint8Array\u0026lt;ArrayBuffer\u0026gt;\u003c/code\u003e by \u003ca href=\"https://github.com/timostamm\"\u003e\u003ccode\u003e@​timostamm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1560\"\u003econnectrpc/connect-es#1560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for Node.js 18 by \u003ca href=\"https://github.com/timostamm\"\u003e\u003ccode\u003e@​timostamm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/connectrpc/connect-es/pull/1559\"\u003econnectrpc/connect-es#1559\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/connectrpc/connect-es/compare/v2.0.4...v2.1.0\"\u003ehttps://github.com/connectrpc/connect-es/compare/v2.0.4...v2.1.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/connectrpc/connect-es/commit/bf6b19103f110b4bf61d5d326c2f1443fc2eb155\"\u003e\u003ccode\u003ebf6b191\u003c/code\u003e\u003c/a\u003e Release 2.1.1 (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web/issues/1618\"\u003e#1618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/6585c9e5d42e0f667b09ed28f7443996dc50b288\"\u003e\u003ccode\u003e6585c9e\u003c/code\u003e\u003c/a\u003e Bump the bench group across 1 directory with 4 updates (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web/issues/1584\"\u003e#1584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/f27d8bf86b964dead42f1d3f9d136dd1053d691a\"\u003e\u003ccode\u003ef27d8bf\u003c/code\u003e\u003c/a\u003e Bump jasmine and \u003ccode\u003e@​types/jasmine\u003c/code\u003e (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web/issues/1611\"\u003e#1611\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/54f492b0d7d9b5774974e645f55ff9ed57fd943e\"\u003e\u003ccode\u003e54f492b\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003e@​bufbuild/buf\u003c/code\u003e from 1.57.2 to 1.59.0 (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web/issues/1613\"\u003e#1613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/332f9b5503a80ad59c309482c0364015947c635e\"\u003e\u003ccode\u003e332f9b5\u003c/code\u003e\u003c/a\u003e Bump jasmine from 5.10.0 to 5.11.0 (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web/issues/1590\"\u003e#1590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/1e0eb151a7c01e324787e6efb40639117fb76b82\"\u003e\u003ccode\u003e1e0eb15\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003e@​bufbuild/buf\u003c/code\u003e from 1.57.0 to 1.57.2 (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web/issues/1586\"\u003e#1586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/78b40abd3ecd2f4fa2dda6382e371be8e9de3f6d\"\u003e\u003ccode\u003e78b40ab\u003c/code\u003e\u003c/a\u003e Bump jasmine and \u003ccode\u003e@​types/jasmine\u003c/code\u003e (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web/issues/1572\"\u003e#1572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/cedb07dcf83da91dc152b3788b18b752a3c2a281\"\u003e\u003ccode\u003ecedb07d\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003e@​bufbuild/buf\u003c/code\u003e from 1.56.0 to 1.57.0 (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/26ce5447eac4ef40c7de0d91d2ea5c29b6d558ee\"\u003e\u003ccode\u003e26ce544\u003c/code\u003e\u003c/a\u003e Bump the webdriver group with 5 updates (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web/issues/1570\"\u003e#1570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/connectrpc/connect-es/commit/85666751a75d61441f32883429d7fc622f110ace\"\u003e\u003ccode\u003e8566675\u003c/code\u003e\u003c/a\u003e Release 2.1.0 (\u003ca href=\"https://github.com/connectrpc/connect-es/tree/HEAD/packages/connect-web/issues/1564\"\u003e#1564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/connectrpc/connect-es/commits/v2.1.1/packages/connect-web\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@netlify/build-info` from 10.3.0 to 10.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/netlify/build/releases\"\u003e\u003ccode\u003e@​netlify/build-info\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ebuild-info: v10.5.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/netlify/build/compare/build-info-v10.5.0...build-info-v10.5.1\"\u003e10.5.1\u003c/a\u003e (2026-04-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure that React Router is not detected as part of Hydrogen projects (\u003ca href=\"https://redirect.github.com/netlify/build/issues/7020\"\u003e#7020\u003c/a\u003e) (\u003ca href=\"https://github.com/netlify/build/commit/24d58863de012eb2022848ed090b87b00f331baf\"\u003e24d5886\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebuild-info: v10.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/netlify/build/compare/build-info-v10.4.0...build-info-v10.5.0\"\u003e10.5.0\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd vitepress (\u003ca href=\"https://redirect.github.com/netlify/build/issues/6866\"\u003e#6866\u003c/a\u003e) (\u003ca href=\"https://github.com/netlify/build/commit/99b64c439dc1cf16c27670f81c544263d31fb56a\"\u003e99b64c4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebuild-info: v10.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/netlify/build/compare/build-info-v10.3.1...build-info-v10.4.0\"\u003e10.4.0\u003c/a\u003e (2026-03-10)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuild-info:\u003c/strong\u003e add Mastra (\u003ca href=\"https://redirect.github.com/netlify/build/issues/6929\"\u003e#6929\u003c/a\u003e) (\u003ca href=\"https://github.com/netlify/build/commit/989db155cbe19b5f3febdb3f1b6fefead75eada2\"\u003e989db15\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e upgrade to minimatch 10 (\u003ca href=\"https://redirect.github.com/netlify/build/issues/6954\"\u003e#6954\u003c/a\u003e) (\u003ca href=\"https://github.com/netlify/build/commit/d89024d5ce4a7b2d6a7d51d6fcc3a9e90b41e290\"\u003ed89024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebuild-info: v10.3.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/netlify/build/compare/build-info-v10.3.0...build-info-v10.3.1\"\u003e10.3.1\u003c/a\u003e (2026-02-25)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e update \u003ccode\u003e@​netlify/serverless-functions-api\u003c/code\u003e to v2.10.0 for identity support (\u003ca href=\"https://redirect.github.com/netlify/build/issues/6952\"\u003e#6952\u003c/a\u003e) (\u003ca href=\"https://github.com/netlify/build/commit/15d00ddffb030be7b63dcb5c32975c7d94c4484e\"\u003e15d00dd\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/netlify/build/blob/main/packages/build-info/CHANGELOG.md\"\u003e\u003ccode\u003e@​netlify/build-info\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/netlify/build/compare/build-info-v10.5.0...build-info-v10.5.1\"\u003e10.5.1\u003c/a\u003e (2026-04-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure that React Router is not detected as part of Hydrogen projects (\u003ca href=\"https://redirect.github.com/netlify/build/issues/7020\"\u003e#7020\u003c/a\u003e) (\u003ca href=\"https://github.com/netlify/build/commit/24d58863de012eb2022848ed090b87b00f331baf\"\u003e24d5886\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/netlify/build/compare/build-info-v10.4.0...build-info-v10.5.0\"\u003e10.5.0\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd vitepress (\u003ca href=\"https://redirect.github.com/netlify/build/issues/6866\"\u003e#6866\u003c/a\u003e) (\u003ca href=\"https://github.com/netlify/build/commit/99b64c439dc1cf16c27670f81c544263d31fb56a\"\u003e99b64c4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/netlify/build/compare/build-info-v10.3.1...build-info-v10.4.0\"\u003e10.4.0\u003c/a\u003e (2026-03-10)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebuild-info:\u003c/strong\u003e add Mastra (\u003ca href=\"https://redirect.github.com/netlify/build/issues/6929\"\u003e#6929\u003c/a\u003e) (\u003ca href=\"https://github.com/netlify/build/commit/989db155cbe19b5f3febdb3f1b6fefead75eada2\"\u003e989db15\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e upgrade to minimatch 10 (\u003ca href=\"https://redirect.github.com/netlify/build/issues/6954\"\u003e#6954\u003c/a\u003e) (\u003ca href=\"https://github.com/netlify/build/commit/d89024d5ce4a7b2d6a7d51d6fcc3a9e90b41e290\"\u003ed89024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/netlify/build/compare/build-info-v10.3.0...build-info-v10.3.1\"\u003e10.3.1\u003c/a\u003e (2026-02-25)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e update \u003ccode\u003e@​netlify/serverless-functions-api\u003c/code\u003e to v2.10.0 for identity support (\u003ca href=\"https://redirect.github.com/netlify/build/issues/6952\"\u003e#6952\u003c/a\u003e) (\u003ca href=\"https://github.com/netlify/build/commit/15d00ddffb030be7b63dcb5c32975c7d94c4484e\"\u003e15d00dd\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/netlify/build/commit/d17373f5f6ab58289a5bc78d90bd0b520c9c652f\"\u003e\u003ccode\u003ed17373f\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://github.com/netlify/build/tree/HEAD/packages/build-info/issues/7035\"\u003e#7035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netlify/build/commit/24d58863de012eb2022848ed090b87b00f331baf\"\u003e\u003ccode\u003e24d5886\u003c/code\u003e\u003c/a\u003e fix: ensure that React Router is not detected as part of Hydrogen projects (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netlify/build/commit/85ec413dbce5342df01289953b91169c1f84c34b\"\u003e\u003ccode\u003e85ec413\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://github.com/netlify/build/tree/HEAD/packages/build-info/issues/7011\"\u003e#7011\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netlify/build/commit/99b64c439dc1cf16c27670f81c544263d31fb56a\"\u003e\u003ccode\u003e99b64c4\u003c/code\u003e\u003c/a\u003e feat: add vitepress (\u003ca href=\"https://github.com/netlify/build/tree/HEAD/packages/build-info/issues/6866\"\u003e#6866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netlify/build/commit/0ddf077b1055b90e13b678c3516afc0dfdb9c76d\"\u003e\u003ccode\u003e0ddf077\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://github.com/netlify/build/tree/HEAD/packages/build-info/issues/6968\"\u003e#6968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netlify/build/commit/989db155cbe19b5f3febdb3f1b6fefead75eada2\"\u003e\u003ccode\u003e989db15\u003c/code\u003e\u003c/a\u003e feat(build-info): add Mastra (\u003ca href=\"https://github.com/netlify/build/tree/HEAD/packages/build-info/issues/6929\"\u003e#6929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netlify/build/commit/d89024d5ce4a7b2d6a7d51d6fcc3a9e90b41e290\"\u003e\u003ccode\u003ed89024d\u003c/code\u003e\u003c/a\u003e fix(deps): upgrade to minimatch 10 (\u003ca href=\"https://github.com/netlify/build/tree/HEAD/packages/build-info/issues/6954\"\u003e#6954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netlify/build/commit/f0adac340a6e7a853d156b4685c66bb65d04bad5\"\u003e\u003ccode\u003ef0adac3\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://github.com/netlify/build/tree/HEAD/packages/build-info/issues/6953\"\u003e#6953\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netlify/build/commit/5de08d50fe44b45a0f7b78c3b9a87af3455402ab\"\u003e\u003ccode\u003e5de08d5\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://github.com/netlify/build/tree/HEAD/packages/build-info/issues/6851\"\u003e#6851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netlify/build/commit/66891ca2cb6b1b0cc15df41b64ee84207e8ea6bc\"\u003e\u003ccode\u003e66891ca\u003c/code\u003e\u003c/a\u003e feat: return detected framework version accuracy (\u003ca href=\"https://github.com/netlify/build/tree/HEAD/packages/build-info/issues/6852\"\u003e#6852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/netlify/build/commits/build-info-v10.5.1/packages/build-info\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@tanstack/angular-query-experimental` from 5.90.24 to 5.100.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/TanStack/query/releases\"\u003e\u003ccode\u003e@​tanstack/angular-query-experimental\u003c/code\u003e's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/angular-query-experimental\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.6\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.6\u003c/li\u003e\n\u003c/ul\u003e\n\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/TanStack/query/blob/main/packages/angular-query-experimental/CHANGELOG.md\"\u003e\u003ccode\u003e@​tanstack/angular-query-experimental\u003c/code\u003e's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.100.6\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.6\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.100.5\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/a53ef97f87decb8ea2431710f5199431d3c94c8d\"\u003e\u003ccode\u003ea53ef97\u003c/code\u003e\u003c/a\u003e]:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.5\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.100.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003efix(devtools): change onClose callback type from () =\u0026gt; unknown to () =\u0026gt; void (\u003ca href=\"https://redirect.github.com/TanStack/query/pull/10118\"\u003e#10118\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated dependencies []:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.100.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/f85d825e02efbbff02e2081528ed28f5e5382f7a\"\u003e\u003ccode\u003ef85d825\u003c/code\u003e\u003c/a\u003e]:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.100.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/ea4497e8aa00d8c1c3a36fb1e17563a889d6ab31\"\u003e\u003ccode\u003eea4497e\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/TanStack/query/commit/d6a7bf3e3e024c1a77d0536813238cc8007a5fa7\"\u003e\u003ccode\u003ed6a7bf3\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/TanStack/query/commit/645d5d130f5e8017cb1bf1a37987f7b980aed705\"\u003e\u003ccode\u003e645d5d1\u003c/code\u003e\u003c/a\u003e]:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.100.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/1bb0d234280fd4ae1725c439088426a20593a8df\"\u003e\u003ccode\u003e1bb0d23\u003c/code\u003e\u003c/a\u003e]:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.100.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/6540a4126b1c087d86d64525e78f32d9920dcd31\"\u003e\u003ccode\u003e6540a41\u003c/code\u003e\u003c/a\u003e]:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.0\u003c/li\u003e\n\u003c/ul\u003e\n\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/TanStack/query/commit/87f7ccf580d7c12c527ce922a43977c9c653f897\"\u003e\u003ccode\u003e87f7ccf\u003c/code\u003e\u003c/a\u003e ci: Version Packages (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/angular-query-experimental/issues/10604\"\u003e#10604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/f88a608c590038882399cfe996565c8e9477a3a4\"\u003e\u003ccode\u003ef88a608\u003c/code\u003e\u003c/a\u003e test(angular-query-experimental/injectIsRestoring): add test for resolving 'p...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/dd901aef9803226a791f3f858114171ddeae7d70\"\u003e\u003ccode\u003edd901ae\u003c/code\u003e\u003c/a\u003e test(angular-query-experimental/injectQueries): add test for error state when...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/3547f86e13419771cf7aee7d76a64c84fe10c53c\"\u003e\u003ccode\u003e3547f86\u003c/code\u003e\u003c/a\u003e test(angular-query-experimental/injectIsRestoring): add test for reactively r...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/c9755be3edc28bce37d10e2a8caaac12428e7646\"\u003e\u003ccode\u003ec9755be\u003c/code\u003e\u003c/a\u003e test(angular-query-experimental/injectIsMutating): add filter test by 'mutati...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/7a5b53c4ea6e912a53ddc5cb0059155f5ff3f8be\"\u003e\u003ccode\u003e7a5b53c\u003c/code\u003e\u003c/a\u003e test(angular-query-experimental/injectIsFetching): add filter test by 'queryK...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/51ef23f46b23f9f7fd858386e42bfbb3adb5e49d\"\u003e\u003ccode\u003e51ef23f\u003c/code\u003e\u003c/a\u003e test(angular-query-experimental/injectMutation): add test for 'mutateAsync' r...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/72a15ae4d9f6fe262cb1bd72107f9862291c1e9d\"\u003e\u003ccode\u003e72a15ae\u003c/code\u003e\u003c/a\u003e test(angular-query-experimental/injectMutation): switch 'pending' test to '\u003ca href=\"https://github.com/C\"\u003e\u003ccode\u003e@​C\u003c/code\u003e\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/e69e5d2a07cc8ac661b1a2d926b8409b155a2e22\"\u003e\u003ccode\u003ee69e5d2\u003c/code\u003e\u003c/a\u003e test(angular-query-experimental/injectMutation): switch 'error' test to '\u003ca href=\"https://github.com/Com\"\u003e\u003ccode\u003e@​Com\u003c/code\u003e\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/d78883bff0a0b950fa1385588def01db99397aaa\"\u003e\u003ccode\u003ed78883b\u003c/code\u003e\u003c/a\u003e test(angular-query-experimental/injectQuery): remove duplicate error test alr...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/TanStack/query/commits/@tanstack/angular-query-experimental@5.100.6/packages/angular-query-experimental\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `libphonenumber-js` from 1.12.35 to 1.12.42\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/CHANGELOG.md\"\u003elibphonenumber-js's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.12.42 / 23.4.2026\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated metadata to version 9.0.29:\n\u003cul\u003e\n\u003cli\u003eUpdated phone metadata for region code(s):\nBI, BL, GP, MF, MY, SK, TH, TR, TW\u003c/li\u003e\n\u003cli\u003eUpdated short number metadata for region code(s): CH\u003c/li\u003e\n\u003cli\u003eNew geocoding data for country calling code(s): 7 (kk)\u003c/li\u003e\n\u003cli\u003eUpdated carrier data for country calling code(s):\n7 (en, ru), 31 (en), 32 (en), 90 (en), 257 (en), 590 (en), 593 (en)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.12.42 / 11.4.2026\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated metadata to version 9.0.28:\n\u003cul\u003e\n\u003cli\u003eUpdated phone metadata for region code(s): BW, IL, MN, RE, SR, YT\u003c/li\u003e\n\u003cli\u003eUpdated carrier data for country calling code(s):\n34 (en), 267 (en), 359 (en), 972 (en), 976 (en)\u003c/li\u003e\n\u003cli\u003eUpdated / refreshed time zone meta data.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.12.41 / 28.3.2026\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated metadata to version 9.0.27:\n\u003cul\u003e\n\u003cli\u003eUpdated phone metadata for region code(s):\nBF, BL, CM, GF, GH, GP, GU, KE, MF, MQ, MY, SX, TD, TJ, US\u003c/li\u003e\n\u003cli\u003eNew geocoding data for country calling code(s): 1738 (en)\u003c/li\u003e\n\u003cli\u003eNew carrier data for country calling code(s): 1721 (en)\u003c/li\u003e\n\u003cli\u003eUpdated carrier data for country calling code(s):\n60 (en), 599 (en), 992 (en)\u003c/li\u003e\n\u003cli\u003eUpdated / refreshed time zone meta data.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.12.40 / 13.3.2026\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated metadata to version 9.0.26:\n\u003cul\u003e\n\u003cli\u003eUpdated phone metadata for region code(s):\nBL, GF, GP, GY, KY, MF, PL, PM, VU\u003c/li\u003e\n\u003cli\u003eUpdated short number metadata for region code(s): BL, GF, GP, GY, MF, PM\u003c/li\u003e\n\u003cli\u003eUpdated geocoding data for country calling code(s): 48 (en)\u003c/li\u003e\n\u003cli\u003eUpdated carrier data for country calling code(s):\n33 (en), 44 (en), 229 (en), 591 (en), 1345 (en)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.12.39 / 9.3.2026\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated metadata to version 9.0.25:\n\u003cul\u003e\n\u003cli\u003eUpdated alternate formatting data for country calling code(s): 90\u003c/li\u003e\n\u003cli\u003eUpdated phone metadata for region code(s): 882, HK, MY, PA, SL, TG, TR\u003c/li\u003e\n\u003cli\u003eUpdated short number metadata for region code(s): KR\u003c/li\u003e\n\u003c/ul\u003e\n\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://gitlab.com/catamphetamine/libphonenumber-js/commit/9129b6102f64c28e7608a85c5f2fffa67bc8de46\"\u003e\u003ccode\u003e9129b61\u003c/code\u003e\u003c/a\u003e 1.12.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/commit/953e1c38bd7dc10ad5bf1e6a83517becd2ae35cc\"\u003e\u003ccode\u003e953e1c3\u003c/code\u003e\u003c/a\u003e Updated metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/commit/19f2ec9460a35759e06d61257bb15d799cb02163\"\u003e\u003ccode\u003e19f2ec9\u003c/code\u003e\u003c/a\u003e Updated metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/commit/aa91fea8036e07231118e9d7db3a3f906229d820\"\u003e\u003ccode\u003eaa91fea\u003c/code\u003e\u003c/a\u003e 1.12.41\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/commit/4619cb37b2b6c9115c4ffd28b274fb690848a9a9\"\u003e\u003ccode\u003e4619cb3\u003c/code\u003e\u003c/a\u003e Updated metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/commit/2669ac8ee5247497c646645f38a72606e6c4aa39\"\u003e\u003ccode\u003e2669ac8\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/issues/207\"\u003e#207\u003c/a\u003e. .npmignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/commit/e147d4c3f6f230756049a1fe51e631b2acb803e4\"\u003e\u003ccode\u003ee147d4c\u003c/code\u003e\u003c/a\u003e 1.12.40\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/commit/53609468802947c274e8ce4c7c048ca96346057e\"\u003e\u003ccode\u003e5360946\u003c/code\u003e\u003c/a\u003e Updated metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/commit/35e49728a203c91d2cba1ed6afc55c25d4da2f49\"\u003e\u003ccode\u003e35e4972\u003c/code\u003e\u003c/a\u003e Updated \u003ccode\u003elibphonenumber-metadata-generator\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/commit/4d6d0b2f3ea5ad3f2bdf9b39317ac3b2404f0753\"\u003e\u003ccode\u003e4d6d0b2\u003c/code\u003e\u003c/a\u003e 1.12.39\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://gitlab.com/catamphetamine/libphonenumber-js/compare/v1.12.35...v1.12.42\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentype.js` from 1.3.4 to 1.3.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/opentypejs/opentype.js/releases\"\u003eopentype.js's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd COLRv0 + CPALv0 support by \u003ca href=\"https://github.com/yne\"\u003e\u003ccode\u003e@​yne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/490\"\u003eopentypejs/opentype.js#490\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix cpal arguments by \u003ca href=\"https://github.com/yne\"\u003e\u003ccode\u003e@​yne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/508\"\u003eopentypejs/opentype.js#508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate to use Buffer.alloc in place of deprecated new Buffer() by \u003ca href=\"https://github.com/pwagland\"\u003e\u003ccode\u003e@​pwagland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/474\"\u003eopentypejs/opentype.js#474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRedefine \u003ccode\u003edeltaGlyphId\u003c/code\u003e from \u003ccode\u003eUSHORT\u003c/code\u003e to \u003ccode\u003eSHORT\u003c/code\u003e according to spec in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/456\"\u003eopentypejs/opentype.js#456\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd tests for parsing lookup type 6 formats 1 and 3 by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/454\"\u003eopentypejs/opentype.js#454\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd option for leftSideBearing in new Glyph by \u003ca href=\"https://github.com/adri326\"\u003e\u003ccode\u003e@​adri326\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/510\"\u003eopentypejs/opentype.js#510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplaced concat with push for performance by \u003ca href=\"https://github.com/Balearica\"\u003e\u003ccode\u003e@​Balearica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/513\"\u003eopentypejs/opentype.js#513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't attempt to parse meta table tags \u0026quot;appl\u0026quot; and \u0026quot;bild\u0026quot;. Fixes \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/issues/522\"\u003e#522\u003c/a\u003e by \u003ca href=\"https://github.com/graphicore\"\u003e\u003ccode\u003e@​graphicore\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/523\"\u003eopentypejs/opentype.js#523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGracefully handle unsupported WOFF2 parsing by \u003ca href=\"https://github.com/yne\"\u003e\u003ccode\u003e@​yne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/518\"\u003eopentypejs/opentype.js#518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump json5 from 2.2.0 to 2.2.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/537\"\u003eopentypejs/opentype.js#537\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump minimist and rollup-plugin-license by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/543\"\u003eopentypejs/opentype.js#543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efont inspector: fix headline floating when table section with \u0026quot;Undefined\u0026quot; is expanded by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/545\"\u003eopentypejs/opentype.js#545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve platform specific names in fonts. by \u003ca href=\"https://github.com/ILOVEPIE\"\u003e\u003ccode\u003e@​ILOVEPIE\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/542\"\u003eopentypejs/opentype.js#542\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emake jshint and jscs ignore the /.git folder by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/549\"\u003eopentypejs/opentype.js#549\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump dependencies by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/550\"\u003eopentypejs/opentype.js#550\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecreate post table from existing data if available by \u003ca href=\"https://github.com/cthorner\"\u003e\u003ccode\u003e@​cthorner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/530\"\u003eopentypejs/opentype.js#530\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003elog warning instead of throwing an error when encountering an unknown ClassDef format by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/548\"\u003eopentypejs/opentype.js#548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed code style issue. by \u003ca href=\"https://github.com/ILOVEPIE\"\u003e\u003ccode\u003e@​ILOVEPIE\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/555\"\u003eopentypejs/opentype.js#555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emark as side effect free by \u003ca href=\"https://github.com/hipstersmoothie\"\u003e\u003ccode\u003e@​hipstersmoothie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/531\"\u003eopentypejs/opentype.js#531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emake cffEncoding.charset fall back to CIDs instead of undefined by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/562\"\u003eopentypejs/opentype.js#562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet correctly unicode 0 to \u0026quot;.null\u0026quot; glyph by \u003ca href=\"https://github.com/puria\"\u003e\u003ccode\u003e@​puria\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/461\"\u003eopentypejs/opentype.js#461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGSUB writing support for lookup type 5 by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/566\"\u003eopentypejs/opentype.js#566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadding stringToGlyphIndexes() by \u003ca href=\"https://github.com/axkibe\"\u003e\u003ccode\u003e@​axkibe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/575\"\u003eopentypejs/opentype.js#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eoptimize performance by replacing modulus with bitwise operator by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/572\"\u003eopentypejs/opentype.js#572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAuto test + deploy using Github Action by \u003ca href=\"https://github.com/yne\"\u003e\u003ccode\u003e@​yne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/567\"\u003eopentypejs/opentype.js#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Illegal Invocation in \u003ccode\u003enpm start\u003c/code\u003e Hot Reload by \u003ca href=\"https://github.com/yne\"\u003e\u003ccode\u003e@​yne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/578\"\u003eopentypejs/opentype.js#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGSUB lookup table type 7 subtable format 1 by \u003ca href=\"https://github.com/CTOStone\"\u003e\u003ccode\u003e@​CTOStone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/486\"\u003eopentypejs/opentype.js#486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing and writing support for variable font tables fvar, STAT and avar by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/576\"\u003eopentypejs/opentype.js#576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd missing import file extensions, add \u003ca href=\"https://github.com/TODO\"\u003e\u003ccode\u003e@​TODO\u003c/code\u003e\u003c/a\u003e comments for refactoring by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/582\"\u003eopentypejs/opentype.js#582\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eimplement CFF2 parsing by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/580\"\u003eopentypejs/opentype.js#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParse cmap table format 14 and handle Unicode Variation Sequences (UVSes) by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/581\"\u003eopentypejs/opentype.js#581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSVG-related improvements and fixes by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/569\"\u003eopentypejs/opentype.js#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Added a thai context to the bidi and substitution features by \u003ca href=\"https://github.com/rafallyczkowskiadylic\"\u003e\u003ccode\u003e@​rafallyczkowskiadylic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/535\"\u003eopentypejs/opentype.js#535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echeck if command exists in subpath before comparing values by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/585\"\u003eopentypejs/opentype.js#585\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded local rule for banning forEach(), replace forEach() with for() by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/584\"\u003eopentypejs/opentype.js#584\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd WOFF2 loading support to demo pages by \u003ca href=\"https://github.com/yne\"\u003e\u003ccode\u003e@​yne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/591\"\u003eopentypejs/opentype.js#591\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egasp table by \u003ca href=\"https://github.com/ollimeier\"\u003e\u003ccode\u003e@​ollimeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/595\"\u003eopentypejs/opentype.js#595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(glyph): Resolve the problem of invalid unicodes input parameters by \u003ca href=\"https://github.com/sammyfeng0530\"\u003e\u003ccode\u003e@​sammyfeng0530\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/608\"\u003eopentypejs/opentype.js#608\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate README.md by \u003ca href=\"https://github.com/Zearin\"\u003e\u003ccode\u003e@​Zearin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/600\"\u003eopentypejs/opentype.js#600\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd tests for and fix \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/issues/613\"\u003e#613\u003c/a\u003e, test toDOMElement() via mocked elements by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/621\"\u003eopentypejs/opentype.js#621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echange npm start command to output module version by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/625\"\u003eopentypejs/opentype.js#625\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebump all dependency versions except mocha by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/629\"\u003eopentypejs/opentype.js#629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd tests for LONGDATETIME parsing/encoding by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/631\"\u003eopentypejs/opentype.js#631\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Create dependabot.yml by \u003ca href=\"https://github.com/Jolg42\"\u003e\u003ccode\u003e@​Jolg42\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/636\"\u003eopentypejs/opentype.js#636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump eslint from 8.52.0 to 8.53.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/637\"\u003eopentypejs/opentype.js#637\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Update README.md by \u003ca href=\"https://github.com/Jolg42\"\u003e\u003ccode\u003e@​Jolg42\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/639\"\u003eopentypejs/opentype.js#639\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ehandle endchar command with seac parameters (standard encoding accented characters) by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/633\"\u003eopentypejs/opentype.js#633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix hasChar() for CMAP fonts and add tests (fix \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/issues/330\"\u003e#330\u003c/a\u003e) by \u003ca href=\"https://github.com/Connum\"\u003e\u003ccode\u003e@​Connum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/pull/632\"\u003eopentypejs/opentype.js#632\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/opentypejs/opentype.js/commit/e2eaedebfa6187c1b435a87e6b7b02e6f1ba1b48\"\u003e\u003ccode\u003ee2eaede\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/issues/833\"\u003e#833\u003c/a\u003e from opentypejs/cursor/use-trusted-npm-publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/opentypejs/opentype.js/commit/44e9523570ca32c73cae5d8baa37413ead8a3ea6\"\u003e\u003ccode\u003e44e9523\u003c/code\u003e\u003c/a\u003e Use Node 24 for npm releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/opentypejs/opentype.js/commit/c500ded9c66ef80cae7241213e123c29d9034c05\"\u003e\u003ccode\u003ec500ded\u003c/code\u003e\u003c/a\u003e Use trusted npm publishing for releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/opentypejs/opentype.js/commit/f2cb527408108f0e8759ee93ff611c0d94d0d412\"\u003e\u003ccode\u003ef2cb527\u003c/code\u003e\u003c/a\u003e Bump GitHub Actions JavaScript actions to v5.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/opentypejs/opentype.js/commit/bd60958213f37279a09cf528ba7f39b0690d9f68\"\u003e\u003ccode\u003ebd60958\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/issues/832\"\u003e#832\u003c/a\u003e from opentypejs/cursor/harden-release-workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/opentypejs/opentype.js/commit/c2c6bafc55f33febac565ef7ffe2df21fe91243c\"\u003e\u003ccode\u003ec2c6baf\u003c/code\u003e\u003c/a\u003e Harden release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/opentypejs/opentype.js/commit/cf02e12bc209dfc3b85d4af4fba1dd33909b0556\"\u003e\u003ccode\u003ecf02e12\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/opentypejs/opentype.js/issues/824\"\u003e#824\u003c/a\u003e from fjobeir/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/opentypejs/opentype.js/commit/7b85ca371ae7e15dcf445da6d912c074132c2167\"\u003e\u003ccode\u003e7b85ca3\u003c/code\u003e\u003c/a\u003e reverse changes on package-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/opentypejs/opentype.js/commit/658d9c3f8b19791e30dfea1b1e8831c3e7650c1f\"\u003e\u003ccode\u003e658d9c3\u003c/code\u003e\u003c/a\u003e Remove version from package-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/opentypejs/opentype.js/commit/478a12a1fba388736e60ee05c662bde2123068ff\"\u003e\u003ccode\u003e478a12a\u003c/code\u003e\u003c/a\u003e fix: remove version from PR\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/opentypejs/opentype.js/compare/1.3.4...1.3.5\"\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 opentype.js since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `posthog-js` from 1.336.1 to 1.372.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PostHog/posthog-js/releases\"\u003eposthog-js's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eposthog-js@1.372.5\u003c/h2\u003e\n\u003ch2\u003e1.372.5\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/PostHog/posthog-js/pull/3448\"\u003e#3448\u003c/a\u003e \u003ca href=\"https://github.com/PostHog/posthog-js/commit/c726aaea62483509469317870e6c3a3bedee3f18\"\u003e\u003ccode\u003ec726aae\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/apps/posthog\"\u003e\u003ccode\u003e@​posthog\u003c/code\u003e\u003c/a\u003e! - fix(exceptions): avoid cross-origin property access when calling the previous \u003ccode\u003ewindow.onunhandledrejection\u003c/code\u003e handler\n(2026-04-29)\u003c/li\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​posthog/types\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.372.5\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​posthog/core\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.27.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eposthog-js@1.372.4\u003c/h2\u003e\n\u003ch2\u003e1.372.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/PostHog/posthog-js/pull/3495\"\u003e#3495\u003c/a\u003e \u003ca href=\"https://github.com/PostHog/posthog-js/commit/5a6b2a55c015345909f93f744ebddd618e1fc85d\"\u003e\u003ccode\u003e5a6b2a5\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/apps/posthog\"\u003e\u003ccode\u003e@​posthog\u003c/code\u003e\u003c/a\u003e! - Fix copy autocapture when copying or cutting text from Shadow DOM or document fragment contexts.\n(2026-04-29)\u003c/li\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​posthog/types\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.372.4\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​posthog/core\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.27.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eposthog-js@1.372.3\u003c/h2\u003e\n\u003ch2\u003e1.372.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/PostHog/posthog-js/pull/3488\"\u003e#3488\u003c/a\u003e \u003ca href=\"https://github.com/PostHog/posthog-js/commit/5b8efc35d9acf77db2d6979ffa4b655b5f279721\"\u003e\u003ccode\u003e5b8efc3\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/lucasheriques\"\u003e\u003ccode\u003e@​lucasheriques\u003c/code\u003e\u003c/a\u003e! - Add browser survey translation rendering and language tracking.\n(2026-04-27)\u003c/li\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​posthog/types\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.372.3\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​posthog/core\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.27.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eposthog-js@1.372.2\u003c/h2\u003e\n\u003ch2\u003e1.372.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/PostHog/posthog-js/pull/3484\"\u003e#3484\u003c/a\u003e \u003ca href=\"https://github.com/PostHog/posthog-js/commit/cba25700dca2e8d8e138ea6034bd42dc9d002596\"\u003e\u003ccode\u003ecba2570\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/veryayskiy\"\u003e\u003ccode\u003e@​veryayskiy\u003c/code\u003e\u003c/a\u003e! - Fix autofocus\n(2026-04-27)\u003c/li\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​posthog/types\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.372.2\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​posthog/core\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.27.6\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eposthog-js@1.372.1\u003c/h2\u003e\n\u003ch2\u003e1.372.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/PostHog/posthog-js/pull/3464\"\u003e#3464\u003c/a\u003e \u003ca href=\"https://github.com/PostHog/posthog-js/commit/70508dfd7dd1201dd9c61c126a3c27ad39311c6a\"\u003e\u003ccode\u003e70508df\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/dustinbyrne\"\u003e\u003ccode\u003e@​dustinbyrne\u003c/code\u003e\u003c/a\u003e! - Avoid using \u003ccode\u003eBlob.stream()\u003c/code\u003e for native async gzip compression to prevent Safari \u003ccode\u003eNotReadableError\u003c/code\u003e stream failures.\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/PostHog/posthog-js/commit/d0db43d2a011681316c99e768fe10338bad40c95\"\u003e\u003ccode\u003ed0db43d\u003c/code\u003e\u003c/a\u003e chore: update versions and lockfile [version bump]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-js/commit/c726aaea62483509469317870e6c3a3bedee3f18\"\u003e\u003ccode\u003ec726aae\u003c/code\u003e\u003c/a\u003e fix(exceptions): avoid cross-origin access in wrapUnhandledRejection (\u003ca href=\"https://redirect.github.com/PostHog/posthog-js/issues/3448\"\u003e#3448\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-js/commit/983118fa5655ce31f70682f982fcb9777ab78030\"\u003e\u003ccode\u003e983118f\u003c/code\u003e\u003c/a\u003e chore: update versions and lockfile [version bump]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-js/commit/5a6b2a55c015345909f93f744ebddd618e1fc85d\"\u003e\u003ccode\u003e5a6b2a5\u003c/code\u003e\u003c/a\u003e fix(autocapture): guard copy/cut handler against shadow DOM and document frag...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-js/commit/fe1874d3f1f1abea11b5058be2c54670fe12f542\"\u003e\u003ccode\u003efe1874d\u003c/code\u003e\u003c/a\u003e ci: avoid shell injection from github.base_ref in changeset check (\u003ca href=\"https://redirect.github.com/PostHog/posthog-js/issues/3494\"\u003e#3494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-js/commit/a9028a568fee45afdbbc2d943d7e0d52b4e78b12\"\u003e\u003ccode\u003ea9028a5\u003c/code\u003e\u003c/a\u003e chore: update versions and lockfile [version bump]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-js/commit/eae94077cd577323b4ccd5fc3f4238f98194b3f6\"\u003e\u003ccode\u003eeae9407\u003c/code\u003e\u003c/a\u003e fix(react-native): include survey responses on dismiss (\u003ca href=\"https://redirect.github.com/PostHog/posthog-js/issues/3468\"\u003e#3468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-js/commit/1816007d3d405046b54fc5c9cda1242ddf8ce73d\"\u003e\u003ccode\u003e1816007\u003c/code\u003e\u003c/a\u003e chore: update versions and lockfile [version bump]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-js/commit/5b8efc35d9acf77db2d6979ffa4b655b5f279721\"\u003e\u003ccode\u003e5b8efc3\u003c/code\u003e\u003c/a\u003e feat(surveys): render translated survey copy (\u003ca href=\"https://redirect.github.com/PostHog/posthog-js/issues/3488\"\u003e#3488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-js/commit/24848fcb47032b3d55df9fbf29116250a16dee94\"\u003e\u003ccode\u003e24848fc\u003c/code\u003e\u003c/a\u003e feat(logs): storage (\u003ca href=\"https://redirect.github.com/PostHog/posthog-js/issues/3462\"\u003e#3462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PostHog/posthog-js/compare/posthog-js@1.336.1...posthog-js@1.372.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zone.js` from 0.15.1 to 0.16.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/angular/angular/blob/main/packages/zone.js/CHANGELOG.md\"\u003ezone.js's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003c!-- raw HTML omitted --\u003e0.16.1 (2026-02-18)\u003c!-- raw HTML omitted --\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(zone.js): support passthrough of Promise.try API (\u003ca href=\"https://github.com/angular/angular/commit/fc557f0\"\u003efc557f0\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/angular/angular/issues/67057\"\u003e#67057\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003c!-- raw HTML omitted --\u003e0.16.0 (2025-11-19)\u003c!-- raw HTML omitted --\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(zone.js): Support jasmine v6 (\u003ca href=\"https://github.com/angular/angular/commit/48abe00\"\u003e48abe00\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(zone.js): waitForAsync should pass args to the test function (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/zone.js/issues/61755\"\u003e#61755\u003c/a\u003e) (\u003ca href=\"https://github.com/angular/angular/commit/3c216c1\"\u003e3c216c1\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/angular/angular/issues/61755\"\u003e#61755\u003c/a\u003e \u003ca href=\"https://redirect.github.com/angular/angular/issues/61717\"\u003e#61717\u003c/a\u003e \u003ca href=\"https://redirect.github.com/angular/angular/issues/61755\"\u003e#61755\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor(zone.js): Add internal implementation for auto ticking fakeAsync (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/zone.js/issues/62135\"\u003e#62135\u003c/a\u003e) (\u003ca href=\"https://github.com/angular/angular/commit/0a827f9\"\u003e0a827f9\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/angular/angular/issues/62135\"\u003e#62135\u003c/a\u003e \u003ca href=\"https://redirect.github.com/angular/angular/issues/62135\"\u003e#62135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor(zone.js): Improve missing proxy zone error for jest imported (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/zone.js/issues/64497\"\u003e#64497\u003c/a\u003e) (\u003ca href=\"https://github.com/angular/angular/commit/ced2fa5\"\u003eced2fa5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/angular/angular/issues/64497\"\u003e#64497\u003c/a\u003e \u003ca href=\"https://redirect.github.com/angular/angular/issues/47603\"\u003e#47603\u003c/a\u003e \u003ca href=\"https://redirect.github.com/angular/angular/issues/64497\"\u003e#64497\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor(zone.js): remove legacy browser support (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/zone.js/issues/63511\"\u003e#63511\u003c/a\u003e) (\u003ca href=\"https://github.com/angular/angular/commit/2e46596\"\u003e2e46596\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/angular/angular/issues/63511\"\u003e#63511\u003c/a\u003e \u003ca href=\"https://redirect.github.com/angular/angular/issues/63511\"\u003e#63511\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor(zone.js): remove unused jasmine globalerror monkey patching. (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/zone.js/issues/63077\"\u003e#63077\u003c/a\u003e) (\u003ca href=\"https://github.com/angular/angular/commit/9aef481\"\u003e9aef481\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/angular/angular/issues/63077\"\u003e#63077\u003c/a\u003e \u003ca href=\"https://redirect.github.com/angular/angular/issues/63072\"\u003e#63072\u003c/a\u003e \u003ca href=\"https://redirect.github.com/angular/angular/issues/63077\"\u003e#63077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest(zone.js): refactor tests to remove usage of shelljs (\u003ca href=\"https://github.com/angular/angular/tree/HEAD/packages/zone.js/issues/64042\"\u003e#64042\u003c/a\u003e) (\u003ca href=\"https://github.com/angular/angular/commit/422a3b9\"\u003e422a3b9\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/angular/angular/issues/64042\"\u003e#64042\u003c/a\u003e \u003ca href=\"https://redirect.github.com/angular/angular/issues/64042\"\u003e#64042\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGE\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIE/Non-Chromium Edge are not supported anymore.\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/angular/commit/ac8b5ff9382ee92761c414098a3295cd8d1cd519\"\u003e\u003ccode\u003eac8b5ff\u003c/code\u003e\u003c/a\u003e release: cut the zone.js-0.16.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/98610aabaf88654863f863addece1c67d6429095\"\u003e\u003ccode\u003e98610aa\u003c/code\u003e\u003c/a\u003e docs(zone.js): update release and publish commands in DEVELOPER.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/d99e336a034d597aa93d2042123174e7acbfc520\"\u003e\u003ccode\u003ed99e336\u003c/code\u003e\u003c/a\u003e docs(zone.js): update build command in DEVELOPER.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/c2f7eaa833bc8cfaa331bfed370b4b83bf628c2e\"\u003e\u003ccode\u003ec2f7eaa\u003c/code\u003e\u003c/a\u003e docs(zone.js): update instructions to use pnpm\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/fc557f0276aefe523e328cad984eddb3ba7fecdb\"\u003e\u003ccode\u003efc557f0\u003c/code\u003e\u003c/a\u003e fix(zone.js): support passthrough of Promise.try API\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/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/0c6604f47858d6bea566db4a8a68fe72870022f3\"\u003e\u003ccode\u003e0c6604f\u003c/code\u003e\u003c/a\u003e refactor(common): update copyright to Google LLC\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/df3258cfc471f4061f7db8b135cf4d84fe6cbf3b\"\u003e\u003ccode\u003edf3258c\u003c/code\u003e\u003c/a\u003e build: update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular/angular/commit/9989c5fb7814fe19c782bebcf9355b3bf4fde526\"\u003e\u003ccode\u003e9989c5f\u003c/code\u003e\u003c/a\u003e build: update dependency \u003ccode\u003e@​csstools/css-color-parser\u003c/code\u003e to v4\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular/angular/commits/zone.js-0.16.1/packages/zone.js\"\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.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/eslint-plugin\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/eslint-plugin/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/eslint-plugin\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\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\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\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\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/1000391b2041c3bae7a4687273291959a9289fd9\"\u003e\u003ccode\u003e1000391\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-uncalled-signals] properly handle statements with una...\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/eslint-plugin/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...\n\n_Description has been truncated_","html_url":"https://github.com/riffcc/zitadel/pull/25","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/riffcc%2Fzitadel/issues/25","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/25/packages"}},{"old_version":"21.3.0","new_version":"21.3.1","update_type":"patch","path":null,"pr_created_at":"2026-04-13T17:28:12.000Z","version_change":"21.3.0 → 21.3.1","issue":{"uuid":"4256708155","node_id":"PR_kwDOQu-3B87SD7cP","number":638,"state":"open","title":"deps: bump the angular group with 14 updates","user":"dependabot[bot]","labels":["dependencies","area-build"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T17:28:12.000Z","updated_at":"2026-04-13T17:28:56.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"angular","update_count":14,"packages":[{"name":"@angular/cdk","old_version":"21.2.1","new_version":"21.2.6","repository_url":"https://github.com/angular/components"},{"name":"@angular/common","old_version":"21.2.2","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/compiler","old_version":"21.2.2","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/core","old_version":"21.2.2","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/forms","old_version":"21.2.2","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/platform-browser","old_version":"21.2.2","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@angular/router","old_version":"21.2.2","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@ngrx/effects","old_version":"21.0.1","new_version":"21.1.0","repository_url":"https://github.com/ngrx/platform"},{"name":"@ngrx/store","old_version":"21.0.1","new_version":"21.1.0","repository_url":"https://github.com/ngrx/platform"},{"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/template-parser","old_version":"21.3.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"},{"name":"@angular/compiler-cli","old_version":"21.2.2","new_version":"21.2.8","repository_url":"https://github.com/angular/angular"},{"name":"@ngtools/webpack","old_version":"21.2.1","new_version":"21.2.7","repository_url":"https://github.com/angular/angular-cli"}],"path":null,"ecosystem":"npm"},"body":"Bumps the angular group with 14 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@angular/cdk](https://github.com/angular/components) | `21.2.1` | `21.2.6` |\n| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `21.2.2` | `21.2.8` |\n| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `21.2.2` | `21.2.8` |\n| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `21.2.2` | `21.2.8` |\n| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `21.2.2` | `21.2.8` |\n| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `21.2.2` | `21.2.8` |\n| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `21.2.2` | `21.2.8` |\n| [@ngrx/effects](https://github.com/ngrx/platform) | `21.0.1` | `21.1.0` |\n| [@ngrx/store](https://github.com/ngrx/platform) | `21.0.1` | `21.1.0` |\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/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `21.3.0` | `21.3.1` |\n| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `21.2.2` | `21.2.8` |\n| [@ngtools/webpack](https://github.com/angular/angular-cli) | `21.2.1` | `21.2.7` |\n\nUpdates `@angular/cdk` from 21.2.1 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\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\u003ch2\u003e21.2.2\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/345c543dcb8cf5869930ffdec37a3101483eddd8\"\u003e\u003cimg src=\"https://img.shields.io/badge/345c543dcb-fix-green\" alt=\"fix - 345c543dcb\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003egrid:\u003c/strong\u003e unit tests and small fixes for grid directives (\u003ca href=\"https://redirect.github.com/angular/components/issues/32841\"\u003e#32841\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\u003ch1\u003e21.2.4 \u0026quot;hassium-halfpipe\u0026quot; (2026-03-25)\u003c/h1\u003e\n\u003ch3\u003ematerial\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/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.1...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.2 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\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\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.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\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\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.2 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\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\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.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\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\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.2 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\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\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.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.2 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\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\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.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\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\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/platform-browser` from 21.2.2 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/platform-browser\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/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 emp...\n\n_Description has been truncated_","html_url":"https://github.com/Pix-Elated/ravenquest-companion/pull/638","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pix-Elated%2Fravenquest-companion/issues/638","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/638/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":"13.5.0","new_version":"21.3.1","update_type":"major","path":null,"pr_created_at":"2026-04-06T17:25:57.000Z","version_change":"13.5.0 → 21.3.1","issue":{"uuid":"4213049290","node_id":"PR_kwDOA7BWOs7QRGuB","number":537,"state":"open","title":"Bump @angular-eslint/eslint-plugin from 13.5.0 to 21.3.1","user":"dependabot[bot]","labels":["dependencies","Stale","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-06T17:25:57.000Z","updated_at":"2026-05-12T04:54:41.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"@angular-eslint/eslint-plugin","old_version":"13.5.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":null,"ecosystem":"npm"},"body":"Bumps [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) from 13.5.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/eslint-plugin\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/eslint-plugin/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/eslint-plugin\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\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\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\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\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\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\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\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\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:\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\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\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-implicit-takeuntil-destroyed] add rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2803\"\u003e#2803\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGabriel J. \u003ca href=\"https://github.com/rznn7\"\u003e\u003ccode\u003e@​rznn7\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.1.0 (2025-12-08)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e add prefer-signal-model rule to encourage using model() for two-way bindings (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2818\"\u003e#2818\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/1000391b2041c3bae7a4687273291959a9289fd9\"\u003e\u003ccode\u003e1000391\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-uncalled-signals] properly handle statements with una...\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/eslint-plugin/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/ffcc447713c47e0ebca1886e3a2216222f99966a\"\u003e\u003ccode\u003effcc447\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-uncalled-signals] detect \u003ccode\u003eSignal\u003c/code\u003e type correctly (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/65f2540c19820548b4e61dbbb9fddedf2e2031be\"\u003e\u003ccode\u003e65f2540\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): [no-uncalled-signals] detect Signal member access (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2848\"\u003e#2848\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/eslint-plugin/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/d86425178e40e8b628c45d848dc122403c0859bb\"\u003e\u003ccode\u003ed864251\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): add computed-must-return rule (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2882\"\u003e#2882\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/eslint-plugin\"\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/eslint-plugin\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/eslint-plugin\u0026package-manager=npm_and_yarn\u0026previous-version=13.5.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/devsecopsmaturitymodel/DevSecOps-MaturityModel/pull/537","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/devsecopsmaturitymodel%2FDevSecOps-MaturityModel/issues/537","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/537/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":"20.7.0","new_version":"21.3.1","update_type":"major","path":"/client","pr_created_at":"2026-04-01T21:56:50.000Z","version_change":"20.7.0 → 21.3.1","issue":{"uuid":"4190123456","node_id":"PR_kwDORvwnNM7PZANB","number":39,"state":"closed","title":"Bump @angular-eslint/eslint-plugin from 20.7.0 to 21.3.1 in /client","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-02T22:12:48.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-01T21:56:50.000Z","updated_at":"2026-04-02T22:12:56.000Z","time_to_close":87358,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"@angular-eslint/eslint-plugin","old_version":"20.7.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":"/client","ecosystem":"npm"},"body":"Bumps [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) from 20.7.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/eslint-plugin\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/eslint-plugin/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/eslint-plugin\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\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\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\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\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\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\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\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\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:\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\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\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-implicit-takeuntil-destroyed] add rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2803\"\u003e#2803\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGabriel J. \u003ca href=\"https://github.com/rznn7\"\u003e\u003ccode\u003e@​rznn7\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.1.0 (2025-12-08)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e add prefer-signal-model rule to encourage using model() for two-way bindings (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2818\"\u003e#2818\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/1000391b2041c3bae7a4687273291959a9289fd9\"\u003e\u003ccode\u003e1000391\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-uncalled-signals] properly handle statements with una...\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/eslint-plugin/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/ffcc447713c47e0ebca1886e3a2216222f99966a\"\u003e\u003ccode\u003effcc447\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-uncalled-signals] detect \u003ccode\u003eSignal\u003c/code\u003e type correctly (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/65f2540c19820548b4e61dbbb9fddedf2e2031be\"\u003e\u003ccode\u003e65f2540\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): [no-uncalled-signals] detect Signal member access (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2848\"\u003e#2848\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/eslint-plugin/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/d86425178e40e8b628c45d848dc122403c0859bb\"\u003e\u003ccode\u003ed864251\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): add computed-must-return rule (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2882\"\u003e#2882\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/eslint-plugin\"\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/eslint-plugin\u0026package-manager=npm_and_yarn\u0026previous-version=20.7.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/UMM-CSci-3601-S26/it-2-cameron-guadalupe-max-pierce/pull/39","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/UMM-CSci-3601-S26%2Fit-2-cameron-guadalupe-max-pierce/issues/39","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/39/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"}},{"old_version":"20.1.1","new_version":"21.3.1","update_type":"major","path":null,"pr_created_at":"2026-03-28T01:08:41.000Z","version_change":"20.1.1 → 21.3.1","issue":{"uuid":"4156801050","node_id":"PR_kwDOBiCNks7OMrNC","number":1397,"state":"open","title":"Bump the angular group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-28T01:08:41.000Z","updated_at":"2026-04-04T15:01:09.416Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"angular","update_count":5,"packages":[{"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"}],"path":null,"ecosystem":"npm"},"body":"Bumps the angular group with 5 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) | `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\n\nUpdates `@angular-eslint/builder` from 20.1.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\n\nUpdates `@angular-eslint/eslint-plugin` from 20.1.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/eslint-plugin\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/eslint-plugin/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/eslint-plugin\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\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\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\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\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\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\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\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\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:\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\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\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-implicit-takeuntil-destroyed] add rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2803\"\u003e#2803\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGabriel J. \u003ca href=\"https://github.com/rznn7\"\u003e\u003ccode\u003e@​rznn7\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.1.0 (2025-12-08)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e add prefer-signal-model rule to encourage using model() for two-way bindings (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2818\"\u003e#2818\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/1000391b2041c3bae7a4687273291959a9289fd9\"\u003e\u003ccode\u003e1000391\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-uncalled-signals] properly handle statements with una...\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/eslint-plugin/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/ffcc447713c47e0ebca1886e3a2216222f99966a\"\u003e\u003ccode\u003effcc447\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-uncalled-signals] detect \u003ccode\u003eSignal\u003c/code\u003e type correctly (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/65f2540c19820548b4e61dbbb9fddedf2e2031be\"\u003e\u003ccode\u003e65f2540\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): [no-uncalled-signals] detect Signal member access (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2848\"\u003e#2848\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/eslint-plugin/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/d86425178e40e8b628c45d848dc122403c0859bb\"\u003e\u003ccode\u003ed864251\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): add computed-must-return rule (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2882\"\u003e#2882\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/eslint-plugin\"\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/eslint-plugin\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-eslint/eslint-plugin-template` from 20.1.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/eslint-plugin-template\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/eslint-plugin-template/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/eslint-plugin-template\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\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\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\u003ebjarketrux\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\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\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\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e support ignore attributes for prefer-static-string-properties rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2852\"\u003e#2852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e add prefer-class-binding rule to enforce class binding over ngClass (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2827\"\u003e#2827\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.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2862\"\u003e#2862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin-template:\u003c/strong\u003e allow autofocus on dialog elements for improved accessibility (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2851\"\u003e#2851\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKaran Mistry \u003ca href=\"https://github.com/mistrykaran91\"\u003e\u003ccode\u003e@​mistrykaran91\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.1.0 (2025-12-08)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for eslint-plugin-template 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/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/a3fb6cceddc3a498f59e57a020d76efb78e57968\"\u003e\u003ccode\u003ea3fb6cc\u003c/code\u003e\u003c/a\u003e fix(prefer-self-closing-tags): add selectedcontent nonAriaElements (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template/issues/2939\"\u003e#2939\u003c/a\u003e)\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/eslint-plugin-template/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/4425fec25a860f2578c64e222e136e729ff8cf17\"\u003e\u003ccode\u003e4425fec\u003c/code\u003e\u003c/a\u003e docs(no-nested-tags): use backticks for HTML tags (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template/issues/2935\"\u003e#2935\u003c/a\u003e)\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/253da820cb5f263e113024068308ffd55e89bad0\"\u003e\u003ccode\u003e253da82\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin-template): [prefer-template-literal] preserve nested non st...\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/eslint-plugin-template/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/218a8afff65dd506b4cd5452df82fc86f572f020\"\u003e\u003ccode\u003e218a8af\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin-template): add \u003ccode\u003eno-non-null-assertion\u003c/code\u003e rule (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template/issues/2885\"\u003e#2885\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/eslint-plugin-template\"\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/eslint-plugin-template\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-eslint/schematics` from 20.1.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/schematics\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/schematics/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/schematics\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\u003cp\u003eThis was a version bump only for schematics to align it with other projects, there were no code changes.\u003c/p\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 schematics 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 schematics 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🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eschematics:\u003c/strong\u003e generate new projects using eslint defineConfig (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/5aa8171b\"\u003e5aa8171b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e⚠️ update Angular dependencies to v21 (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/6a6b671e\"\u003e6a6b671e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e⚠️ Breaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ update Angular dependencies to v21 (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/6a6b671e\"\u003e6a6b671e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJamesHenry \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\u003e20.7.0 (2025-11-22)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for schematics 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/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/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/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/schematics/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/schematics/issues/2820\"\u003e#2820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/b19b1f627d3ff20f583f10caf005ed7bc147b7ab\"\u003e\u003ccode\u003eb19b1f6\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/9ae353f71d8135399f9e3cb776963a98f4cc4f08\"\u003e\u003ccode\u003e9ae353f\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/5aa8171b510021a6d3bc167d5cf041da8ba56484\"\u003e\u003ccode\u003e5aa8171\u003c/code\u003e\u003c/a\u003e feat(schematics): generate new projects using eslint defineConfig\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/6a6b671ec8597f9a04edb9993c410593e5700d18\"\u003e\u003ccode\u003e6a6b671\u003c/code\u003e\u003c/a\u003e feat!: update Angular dependencies to v21\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.3.1/packages/schematics\"\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/schematics\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@angular-eslint/template-parser` from 20.1.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/template-parser\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/template-parser/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/template-parser\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\u003cp\u003eThis was a version bump only for template-parser to align it with other projects, there were no code changes.\u003c/p\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-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.2.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGuillaume DROUARD\u003c/li\u003e\n\u003cli\u003eJason Weinzierl\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.2.0 (2026-01-29)\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.1.0 (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2862\"\u003e#2862\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.1.0 (2025-12-08)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for template-parser to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch2\u003e21.0.1 (2025-11-23)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for template-parser 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\u003cp\u003eThis was a version bump only for template-parser to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch2\u003e20.7.0 (2025-11-22)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for template-parser to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch2\u003e20.6.0 (2025-11-09)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for template-parser to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch2\u003e20.5.2 (2025-11-08)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\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-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/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/f78af866b48ae63bb437d422d4d29170a55e5611\"\u003e\u003ccode\u003ef78af86\u003c/code\u003e\u003c/a\u003e fix: update dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.2.0 (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser/issues/2915\"\u003e#2915\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/template-parser/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/218a8afff65dd506b4cd5452df82fc86f572f020\"\u003e\u003ccode\u003e218a8af\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin-template): add \u003ccode\u003eno-non-null-assertion\u003c/code\u003e rule (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser/issues/2885\"\u003e#2885\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/d49bbe0ba374ab85f521b5f35e90fd3223031984\"\u003e\u003ccode\u003ed49bbe0\u003c/code\u003e\u003c/a\u003e fix: update dependency \u003ccode\u003e@​angular/compiler\u003c/code\u003e to v21.1.0 (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser/issues/2862\"\u003e#2862\u003c/a\u003e)\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/b19b1f627d3ff20f583f10caf005ed7bc147b7ab\"\u003e\u003ccode\u003eb19b1f6\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/9ae353f71d8135399f9e3cb776963a98f4cc4f08\"\u003e\u003ccode\u003e9ae353f\u003c/code\u003e\u003c/a\u003e chore(release): publish 21.0.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/angular-eslint/angular-eslint/commits/v21.3.1/packages/template-parser\"\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/template-parser\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\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 \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/SubJunk/TimelineTools/pull/1397","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SubJunk%2FTimelineTools/issues/1397","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1397/packages"}},{"old_version":"20.7.0","new_version":"21.3.1","update_type":"major","path":"/nifi-frontend/src/main/frontend","pr_created_at":"2026-03-26T20:07:55.000Z","version_change":"20.7.0 → 21.3.1","issue":{"uuid":"4147018825","node_id":"PR_kwDOJ4r_ws7N2L1w","number":689,"state":"open","title":"Bump @angular-eslint/eslint-plugin from 20.7.0 to 21.3.1 in /nifi-frontend/src/main/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-26T20:07:55.000Z","updated_at":"2026-04-01T22:34:18.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"@angular-eslint/eslint-plugin","old_version":"20.7.0","new_version":"21.3.1","repository_url":"https://github.com/angular-eslint/angular-eslint"}],"path":"/nifi-frontend/src/main/frontend","ecosystem":"npm"},"body":"Bumps [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) from 20.7.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/eslint-plugin\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/eslint-plugin/CHANGELOG.md\"\u003e\u003ccode\u003e@​angular-eslint/eslint-plugin\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\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\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\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\u003e21.3.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\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\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\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\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:\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\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\u003e21.2.0 (2026-01-29)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-implicit-takeuntil-destroyed] add rule (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2803\"\u003e#2803\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGabriel J. \u003ca href=\"https://github.com/rznn7\"\u003e\u003ccode\u003e@​rznn7\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e21.1.0 (2025-12-08)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e add prefer-signal-model rule to encourage using model() for two-way bindings (\u003ca href=\"https://redirect.github.com/angular-eslint/angular-eslint/pull/2818\"\u003e#2818\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/1000391b2041c3bae7a4687273291959a9289fd9\"\u003e\u003ccode\u003e1000391\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-uncalled-signals] properly handle statements with una...\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/eslint-plugin/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/ffcc447713c47e0ebca1886e3a2216222f99966a\"\u003e\u003ccode\u003effcc447\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-uncalled-signals] detect \u003ccode\u003eSignal\u003c/code\u003e type correctly (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/65f2540c19820548b4e61dbbb9fddedf2e2031be\"\u003e\u003ccode\u003e65f2540\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): [no-uncalled-signals] detect Signal member access (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2848\"\u003e#2848\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/eslint-plugin/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/angular-eslint/angular-eslint/commit/d86425178e40e8b628c45d848dc122403c0859bb\"\u003e\u003ccode\u003ed864251\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): add computed-must-return rule (\u003ca href=\"https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin/issues/2882\"\u003e#2882\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/eslint-plugin\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/Eng-Anetac/nifi/pull/689","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eng-Anetac%2Fnifi/issues/689","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/689/packages"}}]}