npm / @angular/compiler-cli
@angular/compiler-cli
What changed in @angular/compiler-cli 19 to 22, from its official release notes, upgrade guides and advisories. Also covers @angular/language-service, @angular/platform-server. Sources checked 2026-10-18.
6 breaking39 security1 new APIs and options23 tooling20 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@angular/compiler-cli 2233 changes
Security 15
Angular Server-Side Rendering (SSR): Denial of Service via Numeric URL Matrix Parameters
Angular SSR: Denial of Service (DoS) via Infinite Loop on Malformed DOCTYPE
Angular SSR: XSS via Unescaped Processing Instruction (<?...?>) Nodes in Fallback Raw-Content Elements
Angular: SSR XSS via Unescaped <template> Content Across DocumentFragment Boundaries in Fallback Raw-Content Elements
Angular: SSRF and Cross-Origin Credential Disclosure via URL Resolution Discrepancy in SSR
Angular: Information Leak via
HttpTransferCacheBypass When UsingwithRequestsMadeViaParentAngular: Sanitization bypass via directive host bindings on concrete host elements in @angular/core and @angular/compiler
Angular SSR: Missing Fallback Raw-Content Serialization Escaping leads to Cross-Site Scripting (XSS)
Angular: Cache-Key Ambiguity in HttpTransferCache Leading to Cross-Request Response Reuse and State Poisoning
Angular Client Hydration DOM Clobbering & Response-Cache Poisoning
@angular/common: Denial of Service (DoS) via OOM in Date Formatting (formatDate)
@angular/common: Weak 32-Bit Cache Key Hashing in
HttpTransferCacheLeading to Cross-Request Data Leakage and State Poisoning@angular/compiler: Two-Way Property Binding Sanitization Bypass (XSS)
Angular i18n: Cross-Site Scripting (XSS) via event-handler attributes
@angular/service-worker: Sensitive Header Leakage on Cross-Origin Redirects in Angular Service Worker
New APIs and options 1
Adds strictUnclaimedEventNames to the angularCompilerOptions schema so it is recognized by the language service.
Tooling 12
The language service supports @boundary blocks in templates.
Generated imports now honor the quote style preference.
The language service typechecks templates that require inline typecheck blocks.
The language service compiles non-exported classes when they are standalone.
The language service now accounts for strictTemplates being enabled by default.
Safe function calls in type-checking blocks now use a regular optional chaining expression, affecting template type-checking results.
Uninvoked signals in bound expressions using a ternary are now detected, improving template diagnostics.
The possible event handler check is restricted to property names longer than 2 characters.
Adds inlay hints support for Angular templates in the language service.
Adds Document Symbols support for Angular templates in the language service.
Adds language-service support for idle timeouts in defer blocks.
Adds language-service support for @Input properties with transforms.
Fixes and other changes 5
Wraps the collection expression before appending a non-null assertion, fixing generated type-checking code for @for collections.
The uninvoked track function check no longer flags callable objects with zero parameters.
The language server now recovers the project for external templates in solution-style workspaces.
Fixes migration failure when tsconfig specifies rootDir.
External template inlay hints no longer appear in TypeScript files.
@angular/compiler-cli 2145 changes
Breaking changes 2
The compiler disallows i18n event attributes.
Renames the signal form binding from field to formField.
Security 18
@angular/platform-server: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
@angular/platform-server: Missing
<noscript>Raw-Text Serialization Escaping leads to Cross-Site Scripting (XSS) in Angular SSR@angular/common: Denial of Service (DoS) via OOM in Number Formatting (digitsInfo)
@angular/common: Information Leak via Default Caching of Credentialed Requests in HttpTransferCache
@angular/core: Angular Template and Dynamic Component Namespace Bypass leading to Cross-Site Scripting (XSS)
@angular/platform-server: URL Parser Differential leading to SSRF Allowlist Bypass
Angular Service Worker Policy-Bypass & Credential-Stripping Vulnerabilities
@angular/service-worker: Request Credential & Cache Policy Stripping
Angular: Template and Attribute Namespace Sanitization Bypass (XSS)
@angular/platform-server: SSRF via Hostname Hijacking
Angular: SSRF via protocol-relative and backslash URLs in Angular Platform-Server
Angular vulnerable to XSS in i18n attribute bindings
Translated attribute bindings with interpolations are sanitized.
Angular i18n vulnerable to Cross-Site Scripting
Angular has XSS Vulnerability via Unsanitized SVG Script Attributes
Angular Stored XSS Vulnerability via SVG Animation, SVG URL and MathML Attributes
Prevents XSS via SVG animation attributeName and MathML/SVG URLs.
Angular is Vulnerable to XSRF Token Leakage via Protocol-Relative URLs in Angular HTTP Client
Tooling 11
Quick info at local variable locations now aligns with TypeScript semantics and supports type narrowing.
Signal string representations now include debug names, making signals easier to identify.
Adds JSON schema support for angularCompilerOptions, helping developers configure compiler options with schema assistance.
Uses lightweight project warmup for Angular analysis.
Adds linked editing ranges for synchronizing HTML tags.
Adds the geolocation element to the schema, so it is recognized during template checking.
Detects the local project version when the language service is created.
The compiler now provides location information for literal map keys, improving language-service features that rely on source locations.
The compiler now produces accurate source spans for typeof and void expressions, improving language-service locations based on those spans.
The compiler now supports qualified names in typeof type references, improving language-service handling of those references.
Expanded the type for native controls with a dynamic type, affecting template type checking and language-service diagnostics.
Fixes and other changes 14
Generic types are now filled out correctly in type check blocks, improving template type checking.
Named HTML entities containing digits are now parsed correctly in templates.
Template literals are now escaped in type check blocks, fixing generated template type-checking code.
Object literals in type-check blocks are now always parenthesized, fixing generated type-check code.
Correctly caches blob responses in transfer cache.
Prevents child animation elements from being orphaned.
Prevents elements from being removed during drag and drop.
Adds transfer cache support to httpResource to fix hydration.
Ensures the control instruction comes after other bindings.
Component import diagnostics are now reported within the imports expression, improving diagnostic locations in the language service.
Avoids interpolation highlighting inside @let declarations.
Prevents the language service from crashing on suggestion diagnostic errors.
Avoids a false-positive deprecation when using InjectionToken with a factory only.
Fixes a type error in signal forms.
@angular/compiler-cli 208 changes
Breaking changes 3
Event handler attributes are disallowed in Meta.
Translations of iframe src are disallowed.
Only known HTML attributes are applied in translated ICU content; unknown attributes are dropped and not rendered.
Security 4
Prevents SSRF bypasses via protocol-relative and backslash URLs.
Translated form attributes are sanitized.
Prevents XSS via MathML/SVG URLs.
Prevents XSRF tokens from leaking to protocol-relative URLs.
Fixes and other changes 1
Prevents namespaced SVG <style> elements from being stripped.
@angular/compiler-cli 193 changes
Breaking changes 1
Event attribute bindings in host bindings are now unconditionally disallowed.
Security 2
Security-sensitive attributes in i18n bindings are now validated.
Sensitive attributes on SVG script elements are now sanitized.