NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4458 most downloaded on npm
Angular - the compiler CLI for Node.js
Last release 4 days ago
30 Sep 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
10 years old
1110 releases · first in 2016
stop suppressing non-iterable values in @for expression
| Commit | Description |
|---|---|
stop suppressing non-iterable values in @for expression |
| Commit | Description |
|---|---|
| resolve base class defined via intermediate variable in dts | |
| validate unknown element tags even when matched by attribute directives |
| Commit | Description |
|---|---|
| support increment/decrement operators in expressions |
| Commit | Type | Description |
|---|---|---|
| 0ee0a16c4a | fix | stop suppressing non-iterable values in @for expression |
| Commit | Type | Description |
|---|---|---|
| a614bd23cd | fix | resolve base class defined via intermediate variable in dts |
| 91b8391b3d | fix | validate unknown element tags even when matched by attribute directives |
| Commit | Type | Description |
|---|---|---|
| 6ea13efc20 | feat | support increment/decrement operators in expressions |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.2.1"></a>
One column per quarter.
let NgOptimizedImage pass a [srcset] binding through when srcset optimization is disabled
| Commit | Description |
|---|---|
| let NgOptimizedImage pass a [srcset] binding through when srcset optimization is disabled |
| Commit | Description |
|---|---|
| add explicit return types to generated functions | |
| avoid incorrectly stripping parentheses in template pipeline | |
| avoid stripping parentheses from some expressions |
| Commit | Description |
|---|---|
| support extendedConfigCache in readConfiguration |
| Commit | Description |
|---|---|
forward reportProgress of httpResource as reportDownloadProgress |
| Commit | Description |
|---|---|
| reject protocol-relative paths in resolveUrl |
| Commit | Type | Description |
|---|---|---|
| ad2f291ba0 | fix | let NgOptimizedImage pass a [srcset] binding through when srcset optimization is disabled |
| Commit | Type | Description |
|---|---|---|
| 0ecaf8e7ab | fix | add explicit return types to generated functions |
| c451a3b98d | fix | avoid incorrectly stripping parentheses in template pipeline |
| bbc556daa9 | fix | avoid stripping parentheses from some expressions |
| Commit | Type | Description |
|---|---|---|
| fe9ebf5bf5 | fix | support extendedConfigCache in readConfiguration |
| Commit | Type | Description |
|---|---|---|
| 21851fc3a3 | fix | add debugName on afterRenderEffect |
| 7c634ecec4 | fix | block dangerous data: and vbscript: URLs in URL sanitizer |
| 9aeef8df6f | fix | extend data: URL allowlist for non-executable MIME types |
| f5e8edc5a6 | fix | include signal and component name in NG0600 error message |
| 88614a5407 | fix | render error boundary fallbacks after HMR |
| Commit | Type | Description |
|---|---|---|
| 6dee7fe91c | fix | forward reportProgress of httpResource as reportDownloadProgress |
| Commit | Type | Description |
|---|---|---|
| 928dcfd258 | fix | reject protocol-relative paths in resolveUrl |
| Commit | Type | Description |
|---|---|---|
| 568d6a83a2 | fix | do not copy URL-sized objects into every route snapshot |
| a6e6097b3d | fix | fall back when serializing protocol-relative URLs |
| 8b6dd5e947 | fix | limit absolute redirects from redirect functions |
| 3b6796f1ab | fix | reject duplicate outlets in production builds |
| e9bf52aa03 | fix | require outlets to match a route before processing child segments |
| d23932f2fd | fix | set initial blocking resource input synchronously on activation |
| 14793bfe4b | perf | do not retain UrlTree instances in RouterLink |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.25"></a>
allow template to access private props
| Commit | Description |
|---|---|
| allow template to access private props | |
| do not encapsulate nested selectors if parent contains ::ng-deep | |
| scope nested CSS rules |
| Commit | Description |
|---|---|
| add strictUnclaimedEventNames option to catch misspelled output bindings | |
| scope type-checking of keyed defer blocks | |
| deduplicate deferred imports across multiple blocks |
| Commit | Description |
|---|---|
| add ErrorBoundary programmatic APIs (#70463) | |
| add utility for testing directives | |
allow reading Injector from a view or content query |
|
| support annotations in WebMCP tool declarations | |
| cancel leave animations in nested views during list reordering | |
| support function and signal bindings in animate.enter and animate.leave | |
| update FakeNavigation to match WHATWG HTML spec |
| Commit | Description |
|---|---|
| allow permanent hidden fields in signal forms | |
hard-code readOnlyHint and untrustedContentHint for WebMCP implicit signal forms |
| Commit | Description |
|---|---|
add support for @boundary blocks (#70463) |
| Commit | Type | Description |
|---|---|---|
| 48a0fd6e8a | feat | allow template to access private props |
| a4f1a94948 | fix | do not encapsulate nested selectors if parent contains ::ng-deep |
| d0d7f57e08 | fix | scope nested CSS rules |
| Commit | Type | Description |
|---|---|---|
| 312e1d8089 | feat | add strictUnclaimedEventNames option to catch misspelled output bindings |
| 7d9f55da11 | feat | scope type-checking of keyed defer blocks |
| 2e2c426e76 | fix | deduplicate deferred imports across multiple blocks |
| Commit | Type | Description |
|---|---|---|
| f6afb807c1 | feat | add ErrorBoundary programmatic APIs (#70463) |
| 05c4d5a835 | feat | add utility for testing directives |
| bd9b45b5cc | feat | allow reading Injector from a view or content query |
| 91a2bf8425 | feat | support annotations in WebMCP tool declarations |
| af2c7e386d | fix | cancel leave animations in nested views during list reordering |
| de5889ec4f | fix | support function and signal bindings in animate.enter and animate.leave |
| a8233232f5 | fix | update FakeNavigation to match WHATWG HTML spec |
| Commit | Type | Description |
|---|---|---|
| d5e8b1ef7a | feat | allow permanent hidden fields in signal forms |
| 6e299da8cf | feat | hard-code readOnlyHint and untrustedContentHint for WebMCP implicit signal forms |
| Commit | Type | Description |
|---|---|---|
| f4a5650ed9 | feat | add support for @boundary blocks (#70463) |
| Commit | Type | Description |
|---|---|---|
| 2720362818 | feat | add containsTree as public API |
| b65dea4f03 | feat | allow throwing RedirectCommand to trigger redirects |
| 3064f3f1dc | feat | expose router resources in public API |
| 7137a41223 | feat | stabilize auto cleanup injectors feature |
| 094bce9e3d | fix | determine blocking state solely by resource loading status |
| 6f5a4a06c2 | fix | expose reload method on ActivatedRoute resources |
| 2c6c67bee6 | fix | maintain frozen state on rollback until resource loading completes |
| 2dcdf9aae6 | fix | mark router_resource module-level symbols as side-effect free |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.24"></a>
wrap @for collection expression before appending non-null assertion
| Commit | Description |
|---|---|
wrap @for collection expression before appending non-null assertion |
| Commit | Description |
|---|---|
| add strictUnclaimedEventNames option to catch misspelled output bindings |
| Commit | Description |
|---|---|
| return null when getDirectiveMetadata is called with null or undefined | |
| update FakeNavigation to match WHATWG HTML spec |
| Commit | Description |
|---|---|
| mark control as dirty before setting its value in FVC interop |
| Commit | Description |
|---|---|
| maintain frozen state on rollback until resource loading completes | |
| mark router_resource module-level symbols as side-effect free |
| Commit | Type | Description |
|---|---|---|
| 14dbbf9b68 | fix | wrap @for collection expression before appending non-null assertion |
| Commit | Type | Description |
|---|---|---|
| 312e1d8089 | feat | add strictUnclaimedEventNames option to catch misspelled output bindings |
| Commit | Type | Description |
|---|---|---|
| cea6896a0f | fix | return null when getDirectiveMetadata is called with null or undefined |
| a8233232f5 | fix | update FakeNavigation to match WHATWG HTML spec |
| Commit | Type | Description |
|---|---|---|
| 15bfc1a4be | fix | mark control as dirty before setting its value in FVC interop |
| Commit | Type | Description |
|---|---|---|
| 2c6c67bee6 | fix | maintain frozen state on rollback until resource loading completes |
| 2dcdf9aae6 | fix | mark router_resource module-level symbols as side-effect free |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.7"></a>
No user facing changes in this release
No user facing changes in this release
namespace @property declarations
| Commit | Description |
|---|---|
namespace @property declarations |
| Commit | Description |
|---|---|
| do not flag callable objects with zero parameters in uninvoked track function check |
| Commit | Description |
|---|---|
| add ErrorBoundary programmatic APIs (#70463) | |
allow reading Injector from a view or content query |
|
| apply SkipSelf to only the starting node in embedded views |
| Commit | Description |
|---|---|
add support for @boundary blocks (#70463) |
| Commit | Description |
|---|---|
| avoid sourcemap corruption during domino path substitution |
| Commit | Description |
|---|---|
| expose router resources in public API | |
| determine blocking state solely by resource loading status | |
| keep detached route subtree contexts isolated and intact |
| Commit | Type | Description |
|---|---|---|
| 9b80d4ce9e | fix | namespace @property declarations |
| Commit | Type | Description |
|---|---|---|
| f0a271c7bd | fix | do not flag callable objects with zero parameters in uninvoked track function check |
| Commit | Type | Description |
|---|---|---|
| f6afb807c1 | feat | add ErrorBoundary programmatic APIs (#70463) |
| bd9b45b5cc | feat | allow reading Injector from a view or content query |
| 70756b506c | fix | apply SkipSelf to only the starting node in embedded views |
| Commit | Type | Description |
|---|---|---|
| f4a5650ed9 | feat | add support for @boundary blocks (#70463) |
| Commit | Type | Description |
|---|---|---|
| bc3a6cda5d | fix | avoid sourcemap corruption during domino path substitution |
| Commit | Type | Description |
|---|---|---|
| 3064f3f1dc | feat | expose router resources in public API |
| 094bce9e3d | fix | determine blocking state solely by resource loading status |
| 8227e5cf6d | fix | keep detached route subtree contexts isolated and intact |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.6"></a>
check uninvoked signal aliases in extended diagnostic
| Commit | Description |
|---|---|
| check uninvoked signal aliases in extended diagnostic |
| Commit | Description |
|---|---|
hard-code readOnlyHint and untrustedContentHint for WebMCP implicit signal forms |
|
avoid writing to name input on ControlValueAccessor |
| Commit | Description |
|---|---|
| skip tsconfig files of non-Angular projects |
| Commit | Description |
|---|---|
| resolve HTTP(S) URLs without authority as relative during SSR |
| Commit | Description |
|---|---|
| stabilize auto cleanup injectors feature | |
| avoid view transitions when the user agent provides one |
| Commit | Type | Description |
|---|---|---|
| faafd18a4c | fix | check uninvoked signal aliases in extended diagnostic |
| Commit | Type | Description |
|---|---|---|
| 05c4d5a835 | feat | add utility for testing directives |
| 91a2bf8425 | feat | support annotations in WebMCP tool declarations |
| 0904f90b13 | fix | cancel stale debounce timers to prevent timer leaks |
| 58d536bc83 | fix | don't fail NgModule checks for a pipe that extends a base class |
| 7168bed663 | fix | validate SVG animation attributes outside the SVG namespace |
| Commit | Type | Description |
|---|---|---|
| 6e299da8cf | feat | hard-code readOnlyHint and untrustedContentHint for WebMCP implicit signal forms |
| 38861ac41b | fix | avoid writing to name input on ControlValueAccessor |
| Commit | Type | Description |
|---|---|---|
| f72600eadd | fix | skip tsconfig files of non-Angular projects |
| Commit | Type | Description |
|---|---|---|
| b3bb36ad87 | fix | resolve HTTP(S) URLs without authority as relative during SSR |
| Commit | Type | Description |
|---|---|---|
| 7137a41223 | feat | stabilize auto cleanup injectors feature |
| af26a8c521 | fix | avoid view transitions when the user agent provides one |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.5"></a>
avoid prototype member collisions
| Commit | Description |
|---|---|
| avoid prototype member collisions | |
| use locale NaN symbol in number formatting |
| Commit | Description |
|---|---|
| scope animations declared in minified nested rules |
| Commit | Description |
|---|---|
| use dot-access for readonly rule configuration |
| Commit | Description |
|---|---|
| honor quote style preference when generating imports |
| Commit | Description |
|---|---|
| preserve registerLocaleData calls in standalone bootstrap migration |
| Commit | Description |
|---|---|
| avoid stripping unicode whitespace during url resolution |
| Commit | Type | Description |
|---|---|---|
| 862a0c8ab3 | fix | avoid prototype member collisions |
| 7596548e9b | fix | use locale NaN symbol in number formatting |
| Commit | Type | Description |
|---|---|---|
| 58b0cb4735 | fix | scope animations declared in minified nested rules |
| Commit | Type | Description |
|---|---|---|
| 7d9f55da11 | feat | scope type-checking of keyed defer blocks |
| 2e2c426e76 | fix | deduplicate deferred imports across multiple blocks |
| a46292af26 | fix | default template diagnostic related message source file to template |
| e9ba39d671 | fix | Produce correct tcb expression for optional chaining |
| 74b294cd51 | fix | retain metadata for strict standalone errors |
| Commit | Type | Description |
|---|---|---|
| 7ba082e08e | fix | avoid prototype member collisions |
| 915a03ae85 | fix | explicitly reject foreign components in JIT mode |
| 2ab5ff56de | fix | preserve namespace for dynamic component hosts |
| 168a324cce | fix | prevent TransferState prototype pollution |
| 83f7695b2e | fix | throw coded RuntimeErrors instead of crashing when hydration/rendering can't find an expected DOM node |
| Commit | Type | Description |
|---|---|---|
| 1e35de536d | fix | use dot-access for readonly rule configuration |
| Commit | Type | Description |
|---|---|---|
| 0f0d52e9c1 | fix | honor quote style preference when generating imports |
| Commit | Type | Description |
|---|---|---|
| bdc09e8183 | fix | preserve registerLocaleData calls in standalone bootstrap migration |
| Commit | Type | Description |
|---|---|---|
| 3e924cc8db | fix | avoid stripping unicode whitespace during url resolution |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.4"></a>
detect object trigger values with Object.hasOwn
| Commit | Description |
|---|---|
| detect object trigger values with Object.hasOwn |
| Commit | Description |
|---|---|
| preserve literal key union in KeyValuePipe.transform() |
| Commit | Description |
|---|---|
| allow template to access private props | |
| preserve &ngsp; between sibling control flow blocks |
| Commit | Description |
|---|---|
report forbidden 2way bindings on when FormField is applied |
|
| warn in dev mode when ngModel cannot reach parent NgForm across component boundary |
| Commit | Description |
|---|---|
| cancel oversized fetch response bodies |
| Commit | Description |
|---|---|
| recover project for external templates in solution-style workspaces |
| Commit | Description |
|---|---|
| disallow event handler attributes in Meta | |
| throw a descriptive error when insertBefore reference node is missing |
| Commit | Description |
|---|---|
| add containsTree as public API | |
| pass correct component to canDeactivate for named outlets in componentless parent routes |
| Commit | Type | Description |
|---|---|---|
| c73a001fbf | fix | detect object trigger values with Object.hasOwn |
| Commit | Type | Description |
|---|---|---|
| 46d2cb7ff0 | fix | preserve literal key union in KeyValuePipe.transform() |
| Commit | Type | Description |
|---|---|---|
| 48a0fd6e8a | feat | allow template to access private props |
| Commit | Type | Description |
|---|---|---|
| dc65e3656f | fix | accept readonly arrays for setClassMetadata decorators |
| eee9ef4d09 | fix | allow readonly arrays in RawScopeInfoFromDecorator |
| 0ddbc47e7f | fix | expose debuggableFn for non-computed signal graph nodes |
| c2b14b7ab4 | fix | prevent orphaned requestIdleCallback handle from re-entrant scheduling |
| 732e505018 | fix | replace all hasOwnProperty usages with Object.hasOwn |
| c658d73210 | fix | stop running further effects once one destroys the view mid-flush |
| c6e4a36be1 | fix | throw a descriptive error instead of crashing when a hydration node is missing |
| 4560f4fdcd | fix | throw NG0500 instead of a raw TypeError on element hydration mismatch |
| Commit | Type | Description |
|---|---|---|
| c819880b91 | fix | report forbidden 2way bindings on when FormField is applied |
| 38d093232c | fix | warn in dev mode when ngModel cannot reach parent NgForm across component boundary |
| Commit | Type | Description |
|---|---|---|
| 1a006a8f97 | fix | cancel oversized fetch response bodies |
| Commit | Type | Description |
|---|---|---|
| 3f8d9d6ea6 | fix | recover project for external templates in solution-style workspaces |
| Commit | Type | Description |
|---|---|---|
| 6f9a6bea50 | fix | disallow event handler attributes in Meta |
| 1cb3d606bf | fix | throw a descriptive error when insertBefore reference node is missing |
| Commit | Type | Description |
|---|---|---|
| 2720362818 | feat | add containsTree as public API |
| f1a4c85212 | fix | pass correct component to canDeactivate for named outlets in componentless parent routes |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.3"></a>
|  | do not encapsulate nested selectors if par
| Commit | Description |
|---|---|
| do not encapsulate nested selectors if parent contains ::ng-deep | |
| Generate correct expression for optional chaning. | |
| remove namespaced MathML script elements | |
| scope nested CSS rules |
| Commit | Description |
|---|---|
| correctly resolve symbol for SafePropertyRead in chained optional navigation | |
| record class extends clause references in DeferredSymbolTracker |
| Commit | Description |
|---|---|
| ensure i18n_util hasOwnProperty checks are safe for property renaming | |
| incorrect loop in defer blocks | |
| reject prefixed SVG script hosts |
| Commit | Description |
|---|---|
| keep radio inputs in sync when values change |
| Commit | Description |
|---|---|
| always decode JSON responses as UTF-8 |
| Commit | Description |
|---|---|
| allow throwing RedirectCommand to trigger redirects | |
| limit protocol-relative URL handling to serialization |
| Commit | Type | Description |
|---|---|---|
| a4f1a94948 | fix | do not encapsulate nested selectors if parent contains ::ng-deep |
| d7b03f5523 | fix | Generate correct expression for optional chaning. |
| 107f6fa49d | fix | remove namespaced MathML script elements |
| d0d7f57e08 | fix | scope nested CSS rules |
| Commit | Type | Description |
|---|---|---|
| e8aa222e7d | fix | correctly resolve symbol for SafePropertyRead in chained optional navigation |
| 8d6c925392 | fix | record class extends clause references in DeferredSymbolTracker |
| Commit | Type | Description |
|---|---|---|
| 8925a4ee49 | fix | ensure i18n_util hasOwnProperty checks are safe for property renaming |
| 565dbb2fe5 | fix | incorrect loop in defer blocks |
| 9f8e32616b | fix | reject prefixed SVG script hosts |
| Commit | Type | Description |
|---|---|---|
| 9e37a58e14 | fix | keep radio inputs in sync when values change |
| Commit | Type | Description |
|---|---|---|
| 09bc90003e | fix | always decode JSON responses as UTF-8 |
| Commit | Type | Description |
|---|---|---|
| b65dea4f03 | feat | allow throwing RedirectCommand to trigger redirects |
| 435f8b2b8b | fix | limit protocol-relative URL handling to serialization |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.28"></a>
|  | initialize hydration triggers after late r
| Commit | Description |
|---|---|
| initialize hydration triggers after late runtime activation | |
| warn when style property bindings receive invalid values |
| Commit | Type | Description |
|---|---|---|
| cfe2cda110 | fix | initialize hydration triggers after late runtime activation |
| e43eb96341 | fix | warn when style property bindings receive invalid values |
| Commit | Type | Description |
|---|---|---|
| ef4dfead83 | fix | avoid aborting completed requests in FetchBackend |
| 6a0789dc7f | fix | respect content-type charset in fetch backend text decoder |
| bb78286e5e | fix | run root interceptors in the terminal request chain |
| 280d09b160 | fix | strip RFC 6265 DQUOTE characters and handle URIError in parseCookieValue |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.1"></a>
|  | allow permanent hidden fields in signal f
| Commit | Type | Description |
|---|---|---|
| d5e8b1ef7a | feat | allow permanent hidden fields in signal forms |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.19"></a>
remove abort listener on the abort path too in httpResource
| Commit | Description |
|---|---|
| remove abort listener on the abort path too in httpResource |
| Commit | Description |
|---|---|
| output function return types in linker |
| Commit | Description |
|---|---|
| create controls before listeners |
| Commit | Description |
|---|---|
| preserve Unicode whitespace in ServerXhr URLs |
| Commit | Description |
|---|---|
| avoid dense elements allocation for numeric URL keys |
| Commit | Type | Description |
|---|---|---|
| 850db9d999 | fix | remove abort listener on the abort path too in httpResource |
| Commit | Type | Description |
|---|---|---|
| 4e5f4c38a7 | fix | add return type to pure functions |
| 02e83dc288 | fix | avoid hitting TypeScript limits if template has many translations |
| 024ebe668c | fix | do not copy expression type into output AST variables |
| b3c5824bd6 | fix | guard unverified ctor parameter types in class metadata |
| Commit | Type | Description |
|---|---|---|
| fe671d9024 | fix | output function return types in linker |
| Commit | Type | Description |
|---|---|---|
| d7d5401cd5 | fix | don't use plain objects as maps for jsaction data |
| c3e8f29b3f | fix | ensure references are cleared from idle scheduler |
| 9b854f6e76 | fix | loosen return types for arrow functions in generated code |
| cfa8967683 | fix | wait for app stability before cleaning up dehydrated views |
| Commit | Type | Description |
|---|---|---|
| 78c7ab3926 | fix | create controls before listeners |
| Commit | Type | Description |
|---|---|---|
| 330083f250 | fix | preserve Unicode whitespace in ServerXhr URLs |
| Commit | Type | Description |
|---|---|---|
| 2cab6f5964 | fix | avoid dense elements allocation for numeric URL keys |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.7"></a>
wrap @for collection expression before appending non-null assertion
| Commit | Type | Description |
|---|---|---|
| 5e632b639f | fix | wrap @for collection expression before appending non-null assertion |
| Commit | Type | Description |
|---|---|---|
| ec48c8305c | fix | return null when getDirectiveMetadata is called with null or undefined |
| Commit | Type | Description |
|---|---|---|
| 6555c4ee1e | fix | mark control as dirty before setting its value in FVC interop |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.6"></a>
namespace @property declarations
| Commit | Description |
|---|---|
namespace @property declarations |
| Commit | Description |
|---|---|
| do not flag callable objects with zero parameters in uninvoked track function check |
| Commit | Description |
|---|---|
| apply SkipSelf to only the starting node in embedded views |
| Commit | Description |
|---|---|
| avoid sourcemap corruption during domino path substitution |
| Commit | Description |
|---|---|
| keep detached route subtree contexts isolated and intact |
| Commit | Type | Description |
|---|---|---|
| cbb8702143 | fix | namespace @property declarations |
| Commit | Type | Description |
|---|---|---|
| aea121e532 | fix | do not flag callable objects with zero parameters in uninvoked track function check |
| Commit | Type | Description |
|---|---|---|
| c19b948ef8 | fix | apply SkipSelf to only the starting node in embedded views |
| Commit | Type | Description |
|---|---|---|
| d20a379583 | fix | avoid sourcemap corruption during domino path substitution |
| Commit | Type | Description |
|---|---|---|
| 95c01e9cde | fix | keep detached route subtree contexts isolated and intact |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.31"></a>
check uninvoked signal aliases in extended diagnostic
| Commit | Description |
|---|---|
| check uninvoked signal aliases in extended diagnostic |
| Commit | Description |
|---|---|
| cancel stale debounce timers to prevent timer leaks | |
| don't fail NgModule checks for a pipe that extends a base class | |
| validate SVG animation attributes outside the SVG namespace |
| Commit | Description |
|---|---|
avoid writing to name input on ControlValueAccessor |
| Commit | Description |
|---|---|
| skip tsconfig files of non-Angular projects |
| Commit | Description |
|---|---|
| resolve HTTP(S) URLs without authority as relative during SSR |
| Commit | Description |
|---|---|
| avoid view transitions when the user agent provides one |
| Commit | Type | Description |
|---|---|---|
| d90698dae7 | fix | check uninvoked signal aliases in extended diagnostic |
| Commit | Type | Description |
|---|---|---|
| 2ceeb27078 | fix | cancel stale debounce timers to prevent timer leaks |
| ed2e401d2d | fix | don't fail NgModule checks for a pipe that extends a base class |
| c65d378bb4 | fix | validate SVG animation attributes outside the SVG namespace |
| Commit | Type | Description |
|---|---|---|
| 43aaeaec29 | fix | avoid writing to name input on ControlValueAccessor |
| Commit | Type | Description |
|---|---|---|
| d85288d75f | fix | skip tsconfig files of non-Angular projects |
| Commit | Type | Description |
|---|---|---|
| 3b8723ce3d | fix | resolve HTTP(S) URLs without authority as relative during SSR |
| Commit | Type | Description |
|---|---|---|
| 4340a63c52 | fix | avoid view transitions when the user agent provides one |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.4"></a>
avoid prototype member collisions
| Commit | Description |
|---|---|
| avoid prototype member collisions | |
| use locale NaN symbol in number formatting |
| Commit | Description |
|---|---|
| scope animations declared in minified nested rules |
| Commit | Description |
|---|---|
| default template diagnostic related message source file to template | |
| Produce correct tcb expression for optional chaining | |
| retain metadata for strict standalone errors |
| Commit | Description |
|---|---|
| use dot-access for readonly rule configuration |
| Commit | Description |
|---|---|
| honor quote style preference when generating imports |
| Commit | Description |
|---|---|
| preserve registerLocaleData calls in standalone bootstrap migration |
| Commit | Description |
|---|---|
| avoid stripping unicode whitespace during url resolution |
| Commit | Type | Description |
|---|---|---|
| 60a874c3fb | fix | avoid prototype member collisions |
| e8378dfeab | fix | use locale NaN symbol in number formatting |
| Commit | Type | Description |
|---|---|---|
| 05c7c725a5 | fix | scope animations declared in minified nested rules |
| Commit | Type | Description |
|---|---|---|
| afe8499a14 | fix | default template diagnostic related message source file to template |
| 079a846263 | fix | Produce correct tcb expression for optional chaining |
| 55eeb46418 | fix | retain metadata for strict standalone errors |
| Commit | Type | Description |
|---|---|---|
| 3da35cbab9 | fix | avoid prototype member collisions |
| b199bdfa2a | fix | explicitly reject foreign components in JIT mode |
| 9a8e4826b9 | fix | preserve namespace for dynamic component hosts |
| 7c752d4815 | fix | prevent TransferState prototype pollution |
| 7546b7a805 | fix | throw coded RuntimeErrors instead of crashing when hydration/rendering can't find an expected DOM node |
| Commit | Type | Description |
|---|---|---|
| c8eb7f0056 | fix | use dot-access for readonly rule configuration |
| Commit | Type | Description |
|---|---|---|
| 93d7f718d2 | fix | honor quote style preference when generating imports |
| Commit | Type | Description |
|---|---|---|
| 85c8829ac1 | fix | preserve registerLocaleData calls in standalone bootstrap migration |
| Commit | Type | Description |
|---|---|---|
| 71e52d1396 | fix | avoid stripping unicode whitespace during url resolution |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.22"></a>
detect object trigger values with Object.hasOwn
| Commit | Description |
|---|---|
| detect object trigger values with Object.hasOwn |
| Commit | Description |
|---|---|
| preserve literal key union in KeyValuePipe.transform() |
| Commit | Description |
|---|---|
| preserve &ngsp; between sibling control flow blocks |
| Commit | Description |
|---|---|
report forbidden 2way bindings on when FormField is applied |
|
| warn in dev mode when ngModel cannot reach parent NgForm across component boundary |
| Commit | Description |
|---|---|
| cancel oversized fetch response bodies |
| Commit | Description |
|---|---|
| recover project for external templates in solution-style workspaces |
| Commit | Description |
|---|---|
| disallow event handler attributes in Meta | |
| throw a descriptive error when insertBefore reference node is missing |
| Commit | Description |
|---|---|
| pass correct component to canDeactivate for named outlets in componentless parent routes |
| Commit | Type | Description |
|---|---|---|
| d9620e0f1b | fix | detect object trigger values with Object.hasOwn |
| Commit | Type | Description |
|---|---|---|
| b3c78a5081 | fix | preserve literal key union in KeyValuePipe.transform() |
| Commit | Type | Description |
|---|---|---|
| 94f0b9a371 | fix | preserve &ngsp; between sibling control flow blocks |
| Commit | Type | Description |
|---|---|---|
| afe529cb2d | fix | accept readonly arrays for setClassMetadata decorators |
| 2c72fe3797 | fix | allow readonly arrays in RawScopeInfoFromDecorator |
| ef2ce9a098 | fix | expose debuggableFn for non-computed signal graph nodes |
| 7bcce260f5 | fix | prevent orphaned requestIdleCallback handle from re-entrant scheduling |
| 44137117b3 | fix | replace all hasOwnProperty usages with Object.hasOwn |
| 85f12a5a13 | fix | stop running further effects once one destroys the view mid-flush |
| c04931c88b | fix | throw a descriptive error instead of crashing when a hydration node is missing |
| 601d1f6576 | fix | throw NG0500 instead of a raw TypeError on element hydration mismatch |
| Commit | Type | Description |
|---|---|---|
| 83450d2924 | fix | report forbidden 2way bindings on when FormField is applied |
| 5cb4ea7e35 | fix | warn in dev mode when ngModel cannot reach parent NgForm across component boundary |
| Commit | Type | Description |
|---|---|---|
| 0cd635e9e2 | fix | cancel oversized fetch response bodies |
| Commit | Type | Description |
|---|---|---|
| 14fbe04612 | fix | recover project for external templates in solution-style workspaces |
| Commit | Type | Description |
|---|---|---|
| 3ddcb1a101 | fix | disallow event handler attributes in Meta |
| 640460d606 | fix | throw a descriptive error when insertBefore reference node is missing |
| Commit | Type | Description |
|---|---|---|
| abe019d505 | fix | pass correct component to canDeactivate for named outlets in componentless parent routes |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.29"></a>
|  | Generate correct expression for optional c
| Commit | Description |
|---|---|
| Generate correct expression for optional chaning. | |
| remove namespaced MathML script elements |
| Commit | Description |
|---|---|
| correctly resolve symbol for SafePropertyRead in chained optional navigation | |
| record class extends clause references in DeferredSymbolTracker |
| Commit | Description |
|---|---|
| ensure i18n_util hasOwnProperty checks are safe for property renaming | |
| incorrect loop in defer blocks | |
| reject prefixed SVG script hosts |
| Commit | Description |
|---|---|
| keep radio inputs in sync when values change |
| Commit | Description |
|---|---|
| always decode JSON responses as UTF-8 |
| Commit | Description |
|---|---|
| limit protocol-relative URL handling to serialization |
| Commit | Type | Description |
|---|---|---|
| 76dff307b4 | fix | Generate correct expression for optional chaning. |
| 6f9a64e6f5 | fix | remove namespaced MathML script elements |
| Commit | Type | Description |
|---|---|---|
| e9660b1801 | fix | correctly resolve symbol for SafePropertyRead in chained optional navigation |
| ec6deea513 | fix | record class extends clause references in DeferredSymbolTracker |
| Commit | Type | Description |
|---|---|---|
| 0df9d5eb65 | fix | ensure i18n_util hasOwnProperty checks are safe for property renaming |
| 4d985a179e | fix | incorrect loop in defer blocks |
| 7b40456792 | fix | reject prefixed SVG script hosts |
| Commit | Type | Description |
|---|---|---|
| 3b5c798072 | fix | keep radio inputs in sync when values change |
| Commit | Type | Description |
|---|---|---|
| 4f7e9987fa | fix | always decode JSON responses as UTF-8 |
| Commit | Type | Description |
|---|---|---|
| 2f82601662 | fix | limit protocol-relative URL handling to serialization |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.28"></a>
|  | initialize hydration triggers after late r
| Commit | Description |
|---|---|
| initialize hydration triggers after late runtime activation | |
| warn when style property bindings receive invalid values |
| Commit | Type | Description |
|---|---|---|
| aa6d3189c1 | fix | initialize hydration triggers after late runtime activation |
| deecb301c8 | fix | warn when style property bindings receive invalid values |
| Commit | Type | Description |
|---|---|---|
| ac3728e79f | fix | avoid aborting completed requests in FetchBackend |
| 688a0a7118 | fix | respect content-type charset in fetch backend text decoder |
| a13b968451 | fix | run root interceptors in the terminal request chain |
| 32af9b525e | fix | strip RFC 6265 DQUOTE characters and handle URIError in parseCookieValue |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.19"></a>
|  | deprecate jsonp support |
| Commit | Description |
|---|---|
| skip transfer cache for uncacheable HTTP traffic (#69017) |
| Commit | Description |
|---|---|
| allow passing uninvoked signals as foreign component props | |
| support import aliases in foreignImports (#68674) |
| Commit | Description |
|---|---|
| add utility to assert that value is a field tree |
| Commit | Description |
|---|---|
| compile non-exported classes if standalone (#68454) | |
| Typecheck templates which would require inline typecheck blocks (#68454) | |
| account for strictTemplates being enabled by default |
| Commit | Description |
|---|---|
| add migration from injectable to service | |
correctly detect then/else keywords in control flow migration |
| Commit | Description |
|---|---|
| harden platform location origin validation during SSR (#69184) |
| Commit | Description |
|---|---|
| handle null and undefined inputs in RouterLinkActive |
HttpClient.jsonp, HttpClientJsonpModule, and related JSONP classes/functions are deprecated. Use standard HTTP requests instead.HttpClient.jsonp, HttpClientJsonpModule, and related JSONP classes/functions are deprecated. Use standard HTTP requests instead.| Commit | Type | Description |
|---|---|---|
| 1ad6824d0d | fix | skip transfer cache for uncacheable HTTP traffic (#69017) |
| Commit | Type | Description |
|---|---|---|
| af5e4e1131 | feat | Add an error for --global-foo cases (#68846) |
| d579ecaf73 | feat | Disable '--global-' error outside of g3 (#68846) |
| f98547675c | feat | Namespace CSS variables to the app (#68846) |
| 8c8b2f7783 | feat | Support css var namespacing in properties (#68846) |
| 292199aa4d | fix | permissive whitespace parsing in default never blocks |
| 25c744c4d0 | fix | support foreign components defined outside top-level scope |
| 5bd00add07 | fix | support foreign components inside control flow blocks (#69674) |
| 2e442f7876 | perf | do not emit tag name when control flow root is foreign component (#69674) |
| Commit | Type | Description |
|---|---|---|
| aeb55c8bc1 | fix | allow passing uninvoked signals as foreign component props |
| 7c60a98b3c | fix | support import aliases in foreignImports (#68674) |
| Commit | Type | Description |
|---|---|---|
| 124ba10ead | feat | add custom set option to linkedSignal |
| eab4847a8b | feat | Adds deep linking from Performance panel to DevTools |
| 091456a214 | fix | account for namespaces in host binding sanitization (#69558) |
| b3748e9fe4 | fix | correct container anchor collection order to match DOM layout |
| 11b206b919 | fix | introduce disposal mechanism for Angular views in foreign @content |
| 56607967db | fix | introduce logical-only containers for foreign content |
| 23cf1a828b | fix | sanitize host bindings on concrete hosts (#69558) |
| 0c07356c5c | fix | set current tnode in foreign component instruction on reuse |
| Commit | Type | Description |
|---|---|---|
| bbbd357bd2 | fix | add utility to assert that value is a field tree |
| Commit | Type | Description |
|---|---|---|
| e3630c23c5 | feat | add options to allow caching of credentialed and non-cacheable HTTP requests |
| ec16a3d6c6 | fix | enable xsrf for root-provided HttpClient |
| 39e362eea5 | fix | match header values exactly when deleting |
| be46ca8696 | fix | preserve immutability of materialized clones |
| c0cbd46bd7 | fix | skip transfer cache for fetch credentialed requests (#69017) |
| af04e266cc | refactor | deprecate jsonp support |
| Commit | Type | Description |
|---|---|---|
| 7f0265e43a | feat | compile non-exported classes if standalone (#68454) |
| 4f9c824dd9 | feat | Typecheck templates which would require inline typecheck blocks (#68454) |
| a99fb915c0 | fix | account for strictTemplates being enabled by default |
| Commit | Type | Description |
|---|---|---|
| c75ff0255c | feat | add migration from injectable to service |
| 5d5b2ea72d | fix | correctly detect then/else keywords in control flow migration |
| Commit | Type | Description |
|---|---|---|
| cf9d7fa0f8 | fix | harden platform location origin validation during SSR (#69184) |
| Commit | Type | Description |
|---|---|---|
| 97a3fd6a55 | feat | handle null and undefined inputs in RouterLinkActive |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.27"></a>
|  | preserve crossorigin on image preloads |
| Commit | Description |
|---|---|
| preserve crossorigin on image preloads |
| Commit | Description |
|---|---|
| ensure SVG animation attributeName is checked case-insensitively |
| Commit | Description |
|---|---|
ensure pending status propagates to the root form in signal forms |
| Commit | Description |
|---|---|
| prevent transfer cache key collisions |
| Commit | Description |
|---|---|
| correctly migrate ngClass with mixed space-separated keys | |
| preserve NgClass import on partial migration |
|  | avoid prototype lookups in date format cac
| Commit | Description |
|---|---|
| avoid prototype lookups in date format caches |
| Commit | Description |
|---|---|
| re-tag SourceFiles after TsCreateProgramDriver.updateFiles() |
| Commit | Description |
|---|---|
| allow static attributes for explicit input transforms | |
| ignore processing instruction syntax in templates | |
| preserve explicit input transform write type |
| Commit | Description |
|---|---|
| allow multiple async validators | |
| preserve intermediate number values in signal forms | |
| prevent stale CVA writeback during debounce |
| Commit | Description |
|---|---|
| prevent interceptor signal reads from leaking into calling reactive contexts |
| Commit | Description |
|---|---|
| build runtime translations map with a null prototype | |
| use Object.hasOwn for placeholder lookup in translate |
| Commit | Description |
|---|---|
| prevent ReDoS in SOURCEMAP_URL_REGEXP |
|  | Add an error for --global-foo cases (#688
| Commit | Description |
|---|---|
| apply debugName transform to required signal queries | |
| detect uninvoked signals in bound expressions using ternary |
| Commit | Description |
|---|---|
| Adds deep linking from Performance panel to DevTools |
| Commit | Description |
|---|---|
| allow multiple async validators |
| Commit | Description |
|---|---|
| make extractValue reactive for compat AbstractControl values |
| Commit | Description |
|---|---|
| add options to allow caching of credentialed and non-cacheable HTTP requests |
| Commit | Description |
|---|---|
| preserve transitive NgModule references when pruning | |
| remove stale model import in model-output migration |
| Commit | Description |
|---|---|
| handle outlet named proto in segment group maps | |
| use safe hasOwnProperty when parsing query params |
|  | use Object.hasOwn in I18nSelectPipe to han
| Commit | Description |
|---|---|
| use Object.hasOwn in I18nSelectPipe to handle null-prototype and shadowed mappings |
| Commit | Description |
|---|---|
| permissive whitespace parsing in default never blocks |
| Commit | Description |
|---|---|
| include toSignal in debugName transform |
| Commit | Description |
|---|---|
| improve input writes migration in best effort mode | |
| reject dynamic script host elements |
| Commit | Description |
|---|---|
| fix malformed jsdoc comment for RouterLinkWithHref export |
|  | resolve migration failure when tsconfig sp
|  | account for NgModule dependencies in JIT-c
| Commit | Description |
|---|---|
| account for NgModule dependencies in JIT-compiled partial declarations |
| Commit | Description |
|---|---|
| report diagnostic instead of crashing on malformed host binding |
| Commit | Description |
|---|---|
| avoid uncaught promise errors in injectAsync prefetching |
| Commit | Description |
|---|---|
| prevent caching of responses with Set-Cookie headers |
| Commit | Description |
|---|---|
| add migration from injectable to service |
| Commit | Description |
|---|---|
| handle null and undefined inputs in RouterLinkActive |
| Commit | Description |
|---|---|
| preserve referrer in asset requests | |
| preserve referrer policy in asset requests |
| Commit | Description |
|---|---|
| support model() signals in downgradeComponent |
|  | escape anchor fragment in shadow DOM name
| Commit | Description |
|---|---|
| escape anchor fragment in shadow DOM name selector |
| Commit | Description |
|---|---|
| restrict possible event handler check to property names longer than 2 characters |
| Commit | Description |
|---|---|
| distinguish repeated transfer cache params |
| Commit | Description |
|---|---|
| migration skip any target are not build or test |
|  | deprecate jsonp support |
| Commit | Description |
|---|---|
| skip transfer cache for uncacheable HTTP traffic (#69017) |
| Commit | Description |
|---|---|
| support foreign components defined outside top-level scope |
| Commit | Description |
|---|---|
| allow passing uninvoked signals as foreign component props | |
| support import aliases in foreignImports (#68674) |
| Commit | Description |
|---|---|
| skip transfer cache for fetch credentialed requests (#69017) | |
| deprecate jsonp support |
| Commit | Description |
|---|---|
| compile non-exported classes if standalone (#68454) | |
| Typecheck templates which would require inline typecheck blocks (#68454) |
| Commit | Description |
|---|---|
| harden platform location origin validation during SSR (#69184) |
HttpClient.jsonp, HttpClientJsonpModule, and related JSONP classes/functions are deprecated. Use standard HTTP requests instead.|  | preserve crossorigin on image preloads |
| Commit | Description |
|---|---|
| preserve crossorigin on image preloads |
| Commit | Description |
|---|---|
| ensure SVG animation attributeName is checked case-insensitively |
| Commit | Description |
|---|---|
ensure pending status propagates to the root form in signal forms |
| Commit | Description |
|---|---|
| prevent transfer cache key collisions |
| Commit | Description |
|---|---|
| correctly migrate ngClass with mixed space-separated keys | |
| preserve NgClass import on partial migration |
| Commit | Type | Description |
|---|---|---|
| c0368f2278 | fix | preserve crossorigin on image preloads |
| Commit | Type | Description |
|---|---|---|
| 8616ba9db6 | fix | ensure SVG animation attributeName is checked case-insensitively |
| Commit | Type | Description |
|---|---|---|
| d302c7ab83 | fix | ensure pending status propagates to the root form in signal forms |
| Commit | Type | Description |
|---|---|---|
| 9d40f8aefe | fix | prevent transfer cache key collisions |
| Commit | Type | Description |
|---|---|---|
| 388daea2fc | fix | correctly migrate ngClass with mixed space-separated keys |
| bb39cda648 | fix | preserve NgClass import on partial migration |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.0.7"></a>
|  | avoid prototype lookups in date format cac
| Commit | Description |
|---|---|
| avoid prototype lookups in date format caches |
| Commit | Description |
|---|---|
| parsing of an empty template literal interpolation |
| Commit | Description |
|---|---|
| re-tag SourceFiles after TsCreateProgramDriver.updateFiles() |
| Commit | Description |
|---|---|
| allow static attributes for explicit input transforms | |
| ignore processing instruction syntax in templates | |
| preserve explicit input transform write type |
| Commit | Description |
|---|---|
| allow multiple async validators | |
| preserve intermediate number values in signal forms | |
| prevent stale CVA writeback during debounce |
| Commit | Description |
|---|---|
| prevent interceptor signal reads from leaking into calling reactive contexts |
| Commit | Description |
|---|---|
| build runtime translations map with a null prototype | |
| use Object.hasOwn for placeholder lookup in translate |
| Commit | Description |
|---|---|
| prevent ReDoS in SOURCEMAP_URL_REGEXP |
| Commit | Type | Description |
|---|---|---|
| 91e33aa1de | fix | avoid prototype lookups in date format caches |
| Commit | Type | Description |
|---|---|---|
| 5b516e3a58 | fix | parsing of an empty template literal interpolation |
| Commit | Type | Description |
|---|---|---|
| c88ddde1c9 | fix | re-tag SourceFiles after TsCreateProgramDriver.updateFiles() |
| Commit | Type | Description |
|---|---|---|
| 94d9591b51 | fix | allow static attributes for explicit input transforms |
| c89f71a74c | fix | ignore processing instruction syntax in templates |
| 70500e4067 | fix | preserve explicit input transform write type |
| Commit | Type | Description |
|---|---|---|
| 1b9964675f | fix | allow multiple async validators |
| 64d6d47a0c | fix | preserve intermediate number values in signal forms |
| 6cf7446afa | fix | prevent stale CVA writeback during debounce |
| Commit | Type | Description |
|---|---|---|
| 20b7dc3023 | fix | prevent interceptor signal reads from leaking into calling reactive contexts |
| Commit | Type | Description |
|---|---|---|
| 22d5a091d1 | fix | build runtime translations map with a null prototype |
| 8ce1fcf7fa | fix | use Object.hasOwn for placeholder lookup in translate |
| Commit | Type | Description |
|---|---|---|
| b34bf0dce8 | fix | prevent ReDoS in SOURCEMAP_URL_REGEXP |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.26"></a>
|  | use regular optional chaining expression f
| Commit | Description |
|---|---|
| use regular optional chaining expression for safe function calls in TCBs |
| Commit | Description |
|---|---|
| apply debugName transform to required signal queries | |
| detect uninvoked signals in bound expressions using ternary |
| Commit | Description |
|---|---|
| make extractValue reactive for compat AbstractControl values |
| Commit | Description |
|---|---|
| preserve transitive NgModule references when pruning | |
| remove stale model import in model-output migration |
| Commit | Description |
|---|---|
| handle outlet named proto in segment group maps | |
| use safe hasOwnProperty when parsing query params |
| Commit | Type | Description |
|---|---|---|
| fd4ddcafed | fix | use regular optional chaining expression for safe function calls in TCBs |
| Commit | Type | Description |
|---|---|---|
| 534fe81a89 | fix | apply debugName transform to required signal queries |
| 3b08201bfb | fix | detect uninvoked signals in bound expressions using ternary |
| Commit | Type | Description |
|---|---|---|
| 171669f7b2 | fix | make extractValue reactive for compat AbstractControl values |
| Commit | Type | Description |
|---|---|---|
| 0a6af1496b | fix | preserve transitive NgModule references when pruning |
| d4a926a762 | fix | remove stale model import in model-output migration |
| Commit | Type | Description |
|---|---|---|
| c238bd2ad7 | fix | handle outlet named proto in segment group maps |
| 8e6d7f7190 | fix | use safe hasOwnProperty when parsing query params |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.0.5"></a>
|  | use Object.hasOwn in I18nSelectPipe to han
| Commit | Description |
|---|---|
| use Object.hasOwn in I18nSelectPipe to handle null-prototype and shadowed mappings |
| Commit | Description |
|---|---|
| include toSignal in debugName transform |
| Commit | Description |
|---|---|
| improve input writes migration in best effort mode | |
| reject dynamic script host elements |
| Commit | Description |
|---|---|
| fix malformed jsdoc comment for RouterLinkWithHref export |
| Commit | Type | Description |
|---|---|---|
| eb8fb9fe58 | fix | use Object.hasOwn in I18nSelectPipe to handle null-prototype and shadowed mappings |
| Commit | Type | Description |
|---|---|---|
| baf09a9939 | fix | include toSignal in debugName transform |
| Commit | Type | Description |
|---|---|---|
| e598dc843f | fix | improve input writes migration in best effort mode |
| ced0180b06 | fix | reject dynamic script host elements |
| Commit | Type | Description |
|---|---|---|
| ca13b42e7c | fix | fix malformed jsdoc comment for RouterLinkWithHref export |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.0.4"></a>
|  | resolve migration failure when tsconfig sp
| Commit | Type | Description |
|---|---|---|
| fd37f09f37 | fix | resolve migration failure when tsconfig specifies rootDir |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.0.3"></a>
|  | account for NgModule dependencies in JIT-c
| Commit | Description |
|---|---|
| account for NgModule dependencies in JIT-compiled partial declarations | |
| remove unused import breaking CI in 22.0.x |
| Commit | Description |
|---|---|
| report diagnostic instead of crashing on malformed host binding |
| Commit | Description |
|---|---|
| avoid uncaught promise errors in injectAsync prefetching |
| Commit | Description |
|---|---|
| prevent caching of responses with Set-Cookie headers |
| Commit | Description |
|---|---|
| preserve referrer in asset requests | |
| preserve referrer policy in asset requests |
| Commit | Description |
|---|---|
| support model() signals in downgradeComponent |
| Commit | Type | Description |
|---|---|---|
| f90c20df40 | fix | account for NgModule dependencies in JIT-compiled partial declarations |
| f4f7f3755c | fix | remove unused import breaking CI in 22.0.x |
| Commit | Type | Description |
|---|---|---|
| 06d854929c | fix | report diagnostic instead of crashing on malformed host binding |
| Commit | Type | Description |
|---|---|---|
| 2799304259 | fix | avoid uncaught promise errors in injectAsync prefetching |
| Commit | Type | Description |
|---|---|---|
| 8cdc202dfc | fix | prevent caching of responses with Set-Cookie headers |
| Commit | Type | Description |
|---|---|---|
| b4a5a2fb4e | fix | preserve referrer in asset requests |
| a16f9b2263 | fix | preserve referrer policy in asset requests |
| Commit | Type | Description |
|---|---|---|
| bcc648f4b6 | fix | support model() signals in downgradeComponent |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.0.2"></a>
|  | escape anchor fragment in shadow DOM name
| Commit | Description |
|---|---|
| escape anchor fragment in shadow DOM name selector | |
| skip transfer cache for uncacheable HTTP traffic (#69316) |
| Commit | Description |
|---|---|
| restrict possible event handler check to property names longer than 2 characters |
| Commit | Description |
|---|---|
| distinguish repeated transfer cache params | |
| skip transfer cache for fetch credentialed requests (#69316) |
| Commit | Description |
|---|---|
| migration skip any target are not build or test |
| Commit | Type | Description |
|---|---|---|
| 94ea403563 | fix | escape anchor fragment in shadow DOM name selector |
| 6c1f3e9d49 | fix | skip transfer cache for uncacheable HTTP traffic (#69316) |
| Commit | Type | Description |
|---|---|---|
| 6f1171991a | fix | restrict possible event handler check to property names longer than 2 characters |
| Commit | Type | Description |
|---|---|---|
| 528a34f766 | fix | avoid caching missing locale data |
| e17e8d5422 | fix | escape overlapping comment delimiters in escapeCommentText |
| 59dea13f80 | fix | guard against DOM clobbering in declareExperimentalWebMcpTool |
| 3a48abc15c | fix | preserve leave animation for sibling instances sharing a TNode |
| 93d0a5f95c | fix | prevent unsubscribe during emit from throwing off other listeners |
| b32ee7ceb3 | fix | treat iframe credentialless as security-sensitive |
| f902d1d35e | perf | detect existing signal dependency without checking all producer links |
| Commit | Type | Description |
|---|---|---|
| 6867f77ec7 | fix | distinguish repeated transfer cache params |
| 7ef1399068 | fix | skip transfer cache for fetch credentialed requests (#69316) |
| Commit | Type | Description |
|---|---|---|
| 15314c1736 | fix | migration skip any target are not build or test |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.0.1"></a>
|  | deprecate ServerXhr |
| Commit | Description |
|---|---|
| bind switch exhaustive check expressions |
| Commit | Description |
|---|---|
| prevent external template inlay hints from appearing in TS files |
| Commit | Description |
|---|---|
| harden platform location origin validation during SSR | |
| deprecate ServerXhr |
| Commit | Description |
|---|---|
| use native URL object for navigation boundary and comparison |
| Commit | Description |
|---|---|
| Strips sensitive headers on cross-origin redirects |
@angular/platform-server is deprecated. Use standard fetch APIs instead.
(cherry picked from commit 8446e46f8bc33bd4419fa7f6106b8d117ca2e099)@angular/platform-server is deprecated. Use standard fetch APIs instead.
(cherry picked from commit 8446e46f8bc33bd4419fa7f6106b8d117ca2e099)| Commit | Type | Description |
|---|---|---|
| c4b5fa3c92 | fix | escape CSS string-terminating characters in escapeCssUrl |
| dfff57ede9 | fix | Limits date format string length |
| 3c2892c8df | fix | prevent prototype pollution in formatDateTime |
| 1d87c49f6e | fix | use cryptographically secure SHA-256 for transfer cache key generation |
| Commit | Type | Description |
|---|---|---|
| 1ee224ca30 | fix | disallow i18n event attributes |
| a56f1cdf8f | fix | more robust logic to check if regex can be optimized |
| 5946c18275 | fix | sanitize href/xlink:href attributes of any element of the MathML namespace |
| 393b84caf8 | fix | sanitize two-way properties |
| Commit | Type | Description |
|---|---|---|
| 3d9ca2f173 | fix | bind switch exhaustive check expressions |
| Commit | Type | Description |
|---|---|---|
| 669146b0e7 | fix | disable WebMCP during SSR |
| 562a566ead | fix | Handle synchronous errors in PendingTasks.run function |
| fa546f382d | fix | harden TransferState restoration against DOM clobbering |
| 29fdb98684 | fix | prevent dangling prevConsumer reference from leaking destroyed views (#68681) |
| cdcea80327 | fix | require WebMCP tool descriptions |
| 4289c4c840 | fix | update comment for Default change detection |
| 3dd433b39a | fix | use Object.hasOwn to handle null-prototype objects in toStylingKeyValueArray |
| 045bb736b3 | fix | validate lowercase SVG animation attribute names |
| Commit | Type | Description |
|---|---|---|
| 11836a670a | fix | delay mcp reading the form model by a tick |
| 85d2d100e3 | fix | harden FormGroup control lookups against prototype shadowing |
| e51ad374ea | fix | remove animationstart listener on component destroy to prevent memory leak |
| 55b7b5a6b6 | fix | set additionalProperties: false on generated WebMCP form |
| Commit | Type | Description |
|---|---|---|
| ffb06c0514 | fix | ensure query parameters are inserted before URL fragments |
| 2dd65d21e6 | fix | pass down the reportUploadProgress and reportDownloadProgress on post/patch requests |
| 4254eb416c | fix | preserve empty referrer option in HttpRequest |
| 167bd4c162 | fix | Rejects non-HTTP(S) URLs in JSONP requests |
| Commit | Type | Description |
|---|---|---|
| 43a0e28729 | fix | prevent external template inlay hints from appearing in TS files |
| Commit | Type | Description |
|---|---|---|
| ed48ca7f51 | fix | harden platform location origin validation during SSR |
| 1881ede3a7 | refactor | deprecate ServerXhr |
| Commit | Type | Description |
|---|---|---|
| 43edc8410f | fix | use native URL object for navigation boundary and comparison |
| Commit | Type | Description |
|---|---|---|
| cf97b1f828 | fix | Strips sensitive headers on cross-origin redirects |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.17"></a>
|  | remove deprecated shadow CSS encapsulation…
| Commit | Description |
|---|---|
| add angular template inlay hints support | |
| add Document Symbols support for Angular templates | |
| Add support for idle timeout in defer blocks | |
Add support for @Input with transforms |
| Commit | Description |
|---|---|
| make incremental hydration default behavior | |
remove unused styles when associated host is dropped |
|
| remove Hammer integration |
| Commit | Description |
|---|---|
| resolve TS 6.0 compatibility for messageerror listener |
| Commit | Description |
|---|---|
remove getAngularLib/setAngularLib |
nullishCoalescingNotNullable and optionalChainNotNullable diagnostics on exisiting projects.
You might want to disable those 2 diagnotiscs in your tsconfig temporarily.in variables will throw in template expressions.any anymore. Make sure the element you pass is not nullable.changeDetection property are now OnPush by default. Specify changeDetection: ChangeDetectionStrategy.Eager to keep the previous behavior.ChangeDetectorRef.checkNoChanges was removed. In tests use fixture.detectChanges() instead.createNgModuleRef was removed, use createNgModule insteadComponentFactoryResolver and ComponentFactory are no longer available. Pass the component class directly to APIs that previously required a factory, such as ViewContainerRef.createComponent or use the standalone createComponentFunction.ComponentFactoryResolver and ComponentFactory are no longer available. Pass the component class directly to APIs that previously required a factory, such as ViewContainerRef.createComponent or use the standalone createComponent function.stream Resource (which includes rxResource) are now resolving the value synchronously if the stream/observable returns a value sychronously. This can break some tests that assumed an asynchronous resolution of the value.min and max validation rules no longer support
string values. Bound values must be numbers or null.HttpXhrBackend with provideHttpClient(withXhr) if you want to keep supporting upload progress reports.host. However other DOM on the page may still be affected by those styles if not leveraging ViewEncapsulation.Emulated or if those styles are used by elements outside of Angular, potentially causing other DOM to appear unstyled.The return type for TitleStrategy.getResolvedTitleForRoute
was previously 'any' while the actual return type could only be either string
or undefined. The return type now reflects the possible values correctly.
Code that reads the value may need to be adjusted.
(cherry picked from commit ad37f52c1212164c51ffcc533067af05c2c33c89)
The currentSnapshot parameter in CanMatchFn and the canMatch method of the CanMatch interface is now required. While this was already the behavior of the Router at runtime, existing class implementations of CanMatch must now include the third argument to satisfy the interface.
paramsInheritanceStrategy now defaults to 'always'
The default value of paramsInheritanceStrategy has been changed from 'emptyOnly' to 'always'. This means that route parameters are inherited from all parent routes by default. To restore the previous behavior, set paramsInheritanceStrategy to 'emptyOnly' in your router configuration.
provideRoutes() has been removed. Use provideRouter() or ROUTES as multi token if necessary.
getAngularLib/setAngularLib have been removed use getAngularJSGlobal/setAngularJSGlobal instead.withFetch is now deprecated, it can be safely removed.reportProgress option is deprecated please use reportUploadProgress & reportDownloadProgress instead.Blog post "Announcing Angular v22".
nullishCoalescingNotNullable and optionalChainNotNullable diagnostics on exisiting projects.
You might want to disable those 2 diagnotiscs in your tsconfig temporarily.in variables will throw in template expressions.any anymore. Make sure the element you pass is not nullable.changeDetection property are now OnPush by default. Specify changeDetection: ChangeDetectionStrategy.Eager to keep the previous behavior.ChangeDetectorRef.checkNoChanges was removed. In tests use fixture.detectChanges() instead.createNgModuleRef was removed, use createNgModule insteadComponentFactoryResolver and ComponentFactory are no longer available. Pass the component class directly to APIs that previously required a factory, such as ViewContainerRef.createComponent or use the standalone createComponentFunction.ComponentFactoryResolver and ComponentFactory are no longer available. Pass the component class directly to APIs that previously required a factory, such as ViewContainerRef.createComponent or use the standalone createComponent function.min and max validation rules no longer support
string values. Bound values must be numbers or null.HttpXhrBackend with provideHttpClient(withXhr) if you want to keep supporting upload progress reports.host. However other DOM on the page may still be affected by those styles if not leveraging ViewEncapsulation.Emulated or if those styles are used by elements outside of Angular, potentially causing other DOM to appear unstyled.The return type for TitleStrategy.getResolvedTitleForRoute
was previously 'any' while the actual return type could only be either string
or undefined. The return type now reflects the possible values correctly.
Code that reads the value may need to be adjusted.
(cherry picked from commit ad37f52c1212164c51ffcc533067af05c2c33c89)
The currentSnapshot parameter in CanMatchFn and the canMatch method of the CanMatch interface is now required. While this was already the behavior of the Router at runtime, existing class implementations of CanMatch must now include the third argument to satisfy the interface.
paramsInheritanceStrategy now defaults to 'always'
The default value of paramsInheritanceStrategy has been changed from 'emptyOnly' to 'always'. This means that route parameters are inherited from all parent routes by default. To restore the previous behavior, set paramsInheritanceStrategy to 'emptyOnly' in your router configuration.
provideRoutes() has been removed. Use provideRouter() or ROUTES as multi token if necessary.
getAngularLib/setAngularLib have been removed use getAngularJSGlobal/setAngularJSGlobal instead.withFetch is now deprecated, it can be safely removed.reportProgress option is deprecated please use reportUploadProgress & reportDownloadProgress instead.| Commit | Type | Description |
|---|---|---|
| 47fcbc4704 | feat | allow safe navigation to correctly narrow down nullables |
| 2896c93cc1 | feat | Angular expressions with optional chaining returns undefined |
| e850643b1b | feat | Support comments in html element. |
| 96be4f429b | fix | abstract emitter producing incorrect code for dynamic imports |
| 488d962bc7 | fix | Don't bind inputs/outputs for data- attributes |
| 2c5aabb9da | fix | don't escape dollar sign in literal expression |
| c7aef8ec5d | fix | enforce parentheses containing arguments for :host-context |
| b225a5d902 | fix | invalid type checking code if field name needs to be quoted |
| ab9154ab75 | fix | normalize tag names with custom namespaces in DomElementSchemaRegistry (#68868) |
| 8a1533c9ad | fix | preserve leading commas in animation definitions |
| 194f723f66 | fix | remove dedicated support for legacy shadow DOM selectors |
| 4c25a42e98 | fix | remove deprecated shadow CSS encapsulation polyfills |
| 6ff620a033 | fix | sanitize dynamic href and xlink:href bindings on SVG a elements (#68868) |
| 7dc1017e51 | fix | simplify handling of colon host with a selector list |
| d99ab0e040 | fix | stop generating unused field |
| 03db2aefaa | fix | throw on duplicate input/outputs |
| 786ef8261f | fix | throw on invalid in expressions |
| ccb7d427e4 | fix | type check invalid for loops |
| Commit | Type | Description |
|---|---|---|
| b8d3f36ed9 | feat | add support for Node.js 26.0.0 |
| 7f9450219f | feat | Adds warning for prefetch without main defer trigger |
| 2eae497a04 | feat | support external TCBs with copied content in specific mode |
| e5f96c2d88 | fix | animation events not type checked properly when bound through HostListener decorator |
| 9218140348 | fix | resolve TCB mapping failure for safe property reads with as any |
| 7a0d6b8df2 | fix | transform dropping exclamationToken from properties |
| ca67828ee2 | refactor | introduce NG8023 compile-time diagnostic for duplicate selectors |
| Commit | Type | Description |
|---|---|---|
| 17d3ea44e2 | feat | add IdleRequestOptions support to IdleService |
| 3b0ae5fef0 | feat | add provideWebMcpTools |
| 444b024d49 | feat | Add a injectAsync helper function |
| 3bc095d508 | feat | Add a schematics to migrate provideHttpClient to keep using the HttpXhrBackend implementation. |
| 5a7c1e62dc | feat | add ability to cache resources for SSR |
| cb4cb77053 | feat | Add migration to add ChangeDetectionStrategy.Eager where applicable |
| 2206efa55f | feat | add special return statuses for resource params |
| 246a984a5d | feat | add TestBed.getFixture |
| b918beda32 | feat | allow debouncing signals |
| 8bc31a515f | feat | Allow other expression for exhaustive typechecking |
| 4e331062e8 | feat | allow synchronous values for stream Resources |
| a0aa8304cd | feat | bootstrap via ApplicationRef with config |
| 9c55fcb3e6 | feat | de-duplicate host directives |
| 8fe025f514 | feat | drop support for TypeScript 5.9 |
| 2f5ab541ea | feat | enhance profiling with documentation URLs |
| ef1810197b | feat | export experimental declareWebMcpTool support |
| 75f2cb8f56 | feat | implement Angular DI graph in-page AI tool |
| 8f3d0b9d97 | feat | introduce @Service decorator |
| df659b8d0c | feat | re-introduce nested leave animations scoped to component boundaries |
| 8ce9cc4f6b | feat | register AI runtime debugging tools |
| eae8f7e30b | feat | Set default Component changeDetection strategy to OnPush |
| cdda51a3b2 | feat | support bootstrapping Angular applications underneath shadow roots |
| a5981b83a6 | feat | support customization of @defer's on idle behavior |
| 98eb24cea0 | feat | Support optional timeout for idle deferred triggers |
| dc3131c639 | feat | TestBed.getFixture -> TestBed.getLastFixture and update implementation |
| 9f479ae964 | feat | Update Testability to use PendingTasks for stability indicator |
| 8ebae1de33 | fix | allow service with factory on abstract classes |
| f9d8da6924 | fix | bind global context to idle callback shims in @defer's idle service |
| 61a48e99aa | fix | do not register dom triggers when defer blocks are in manual mode |
| 49748b5c79 | fix | enforce return type for service factory |
| 16adbbf423 | fix | ensure custom controls resolve transitive host directives |
| 50e599e73e | fix | lazy-initialize debounced state to prevent computation cycle |
| 7aad302c3e | fix | mark service decorator as stable |
| a08e4fb93c | fix | normalize tag names in runtime i18n attribute security context lookup (#68868) |
| b20f0fe078 | fix | prevent rxResource from leaking a subscription |
| 22f8b0a500 | fix | resolver function not matching expected type |
| 88d138ccc8 | fix | support prefix-insensitive DOM schema lookups and compile-time i18n attribute validation |
| bfe6f6c2a5 | fix | synchronize core sanitization schema with compiler |
| 5e99ae9f00 | fix | widen type for directive inputs/outputs |
| b9b5c279b4 | refactor | enhance AnimationCallbackEvent.animationComplete signature |
| 69fb1614ef | refactor | remove checkNoChanges from the public API. |
| 36936872c9 | refactor | remove createNgModuleRef |
| 9d76ac8229 | refactor | remove ComponentFactoryResolver & ComponentFactory from the api surface |
| b1f5181ffd | refactor | remove ComponentFactoryResolver & ComponentFactory from the api surface"" |
| Commit | Type | Description |
|---|---|---|
| 74f76d8075 | feat | add reloadValidation to Signal Forms to manually trigger async validation |
| 24e52d450d | feat | add debounce option to validateAsync and validateHttp |
| 709f5a390c | feat | add FieldState.getError() |
| 7745365910 | feat | graduate signal forms APIs to public API |
| f9f24fc669 | feat | shim legacy NG_VALIDATORS into parseErrors for CVA mode (#67943) |
| 41b1410cb8 | feat | support binding `number |
| 3983080236 | feat | support ngNoCva as an opt-out for ControlValueAccessors |
| c4ce3f345f | feat | template & reactive support for FVC |
| 3524de29f3 | fix | Add support for range type with outside of native bounds |
| de56d74da3 | fix | align FormField CVA selection priority with standard forms |
| 0eeb1b5f03 | fix | allow FormRoot to be used without submission options (#67727) |
| 394ad0c2a2 | fix | allow late-bound input types for signals forms |
| ee8d2098cb | fix | change FieldState optional properties to non-optional |
| df8b020299 | fix | clear native date inputs correctly in signal forms when changed via native UI |
| 2e9aeea0fe | fix | deduplicate writeValue calls in CVA interop |
| 0ea50ffe5a | fix | ensure debounced async validators produce pending status during debounce |
| 3c44d7c90b | fix | fix orphan field error on blur during array removal |
| 849dba6c65 | fix | implement custom control reset propagation |
| 5835a5e3a7 | fix | prevent orphan field crashes in debounceSync and async validation |
| 3e7ce0dafc | fix | restrict SignalFormsConfig to a readonly API |
| fb166772d2 | fix | split the touched model into an input and touch output |
| 83032e3605 | fix | support generic unions in signal form schemas |
| 68c3abbe09 | fix | synchronize controls with the model on reset |
| 2061fd8253 | fix | Untrack setValue in reactive forms |
| 72d3ace03c | fix | use controlValue in NgControl for CVA interop (#67943) |
| 3b4ef1e2ff | perf | avoid redundant invalidations in parser errors signal |
| 07a9358157 | perf | avoid spurious recomputation in FormField.parseErrors |
| 98c5afdb02 | perf | lazily instantiate signal form fields |
| e0536091f5 | perf | optimize reactivity by using shallow array equality |
| 9b9769479b | perf | shortcut deepSignal writes if value is unchanged |
| 592a12d6c9 | refactor | remove string support from min and max validation rules (#68001) |
| Commit | Type | Description |
|---|---|---|
| 5c432fb8bb | feat | Use FetchBackend as default for the HttpBackend implementation |
| f7b3ed8db2 | fix | Introduce a max buffer size for fetch requests on SSR |
| e6cfaf5672 | fix | prevent httpResource from leaking a subscription |
| 7c8c3347ef | refactor | Add reportUploadProgress & reportDownloadProgress options |
| Commit | Type | Description |
|---|---|---|
| 5a6d88626b | feat | add angular template inlay hints support |
| cfd0f9950c | feat | add Document Symbols support for Angular templates |
| c6f98c723c | feat | Add support for idle timeout in defer blocks |
| dc9c72da9b | fix | Add support for @Input with transforms |
| Commit | Type | Description |
|---|---|---|
| 8216d34976 | feat | Add migration for CanMatchFn snapshot parameter (#67452) |
| 682aaf943f | feat | add strictTemplates to tsconfig during ng update |
| 6a435658e2 | feat | Disabling nullishCoalescingNotNullable & optionalChainNotNullable on ng update |
| 8f8972b0fd | feat | model + output migrations |
| f01901d766 | fix | avoid generating invalid code in ChangeDetectionStrategy.Eager migration |
| 1415d86980 | fix | Fix typo for strict-template migration |
| 9d9855a415 | fix | Make the safe optional chaining idempotent |
| 0f2160c410 | fix | remove compiler import from safe optional chaining migration |
| Commit | Type | Description |
|---|---|---|
| 68628dd45b | feat | make incremental hydration default behavior |
| d45b7a91f9 | fix | remove unused styles when associated host is dropped |
| f99e7ed20f | refactor | remove Hammer integration |
| Commit | Type | Description |
|---|---|---|
| 89c9a4de30 | feat | Add options optional parameter for withComponentInputBinding |
| c84642ac16 | feat | add unmatchedInputBehavior option to componentInputBinding |
| 3683902234 | feat | adds browserUrl input support to router links |
| 3e7117d690 | fix | Add strict typing on 'getResolvedTitleForRoute' |
| 579440170b | fix | make currentSnapshot required in CanMatchFn (#67452) |
| 17d10f7a99 | fix | set default paramsInheritanceStrategy to 'always' |
| bdb6ae9dbc | refactor | remove deprecated provideRoutes function. |
| Commit | Type | Description |
|---|---|---|
| 836094c072 | fix | resolve TS 6.0 compatibility for messageerror listener |
| Commit | Type | Description |
|---|---|---|
| 01a179577b | refactor | remove getAngularLib/setAngularLib |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.16"></a>
|  | only strip a literal /index.html suffix fr
| Commit | Description |
|---|---|
| only strip a literal /index.html suffix from URLs |
| Commit | Description |
|---|---|
| move projection attributes into constants |
| Commit | Description |
|---|---|
| use Object.create(null) for LOCALE_DATA as a hardening measure |
| Commit | Description |
|---|---|
| Make the safe optional chaining idempotent |
| Commit | Description |
|---|---|
| throw on suspicious URLs and restrict protocol-relative URLs |
|  | add upper bounds for digitsInfo |
| Commit | Description |
|---|---|
| add upper bounds for digitsInfo | |
| sanitize placeholder |
| Commit | Description |
|---|---|
| avoid redundant invalidations in parser errors signal |
| Commit | Description |
|---|---|
| prevent SSRF bypasses via backslash URLs in HttpClient | |
| secure location and document initialization against SSRF and path hijack |
| Commit | Description |
|---|---|
| Preserves explicit 'credentials: omit' in asset requests | |
| Preserves HTTP cache mode in asset group requests |
|  | strip namespaced SVG script elements durin
| Commit | Description |
|---|---|
| strip namespaced SVG script elements during template compilation |
| Commit | Description |
|---|---|
| avoid spurious recomputation in FormField.parseErrors |
| Commit | Description |
|---|---|
| Add strict typing on 'getResolvedTitleForRoute' | |
| skip scroll-to-top on initial navigation when hydrating |
The return type for TitleStrategy.getResolvedTitleForRoute
was previously 'any' while the actual return type could only be either string
or undefined. The return type now reflects the possible values correctly.
Code that reads the value may need to be adjusted.
(cherry picked from commit ad37f52c1212164c51ffcc533067af05c2c33c89)
|  | remove deprecated shadow CSS encapsulation…
| Commit | Description |
|---|---|
| forward BEFORE_APP_SERIALIZED errors to ErrorHandler |
|  | allow service with factory on abstract cla
| Commit | Description |
|---|---|
| allow service with factory on abstract classes | |
| disallow event attribute bindings in host bindings unconditionally |
| Commit | Description |
|---|---|
| remove compiler import from safe optional chaining migration |
| Commit | Description |
|---|---|
add allowedHosts option to renderModule and renderApplication |
The reportProgress option is deprecated please use reportUploadProgress & reportDownloadProgress instead.
| Commit | Description |
|---|---|
| invalid type checking code if field name needs to be quoted |
| Commit | Description |
|---|---|
| add support for Node.js 26.0.0 | |
| support external TCBs with copied content in specific mode |
| Commit | Description |
|---|---|
Add reportUploadProgress & reportDownloadProgress options |
| Commit | Description |
|---|---|
Add support for @Input with transforms |
| Commit | Description |
|---|---|
| add unmatchedInputBehavior option to componentInputBinding |
min and max validation rules no longer support
string values. Bound values must be numbers or null.reportProgress option is deprecated please use reportUploadProgress & reportDownloadProgress instead.|  | prevent focus from scrollToAnchor |
| Commit | Description |
|---|---|
| prevent focus from scrollToAnchor |
| Commit | Description |
|---|---|
Angular expressions with optional chaining returns undefined |
|
| let declaration span not including end character |
| Commit | Description |
|---|---|
| model + output migrations |
| Commit | Description |
|---|---|
| ensure origin has a trailing slash when parsing url |
|  | introduce @Service decorator |
| Commit | Description |
|---|---|
introduce @Service decorator |
|
| Update Testability to use PendingTasks for stability indicator |
| Commit | Description |
|---|---|
| link formatting in "Animating your Application with CSS" |
| Commit | Description |
|---|---|
| fix NgClass leaving trailing comma after removal |
| Commit | Description |
|---|---|
restore internal URL on popstate when browserUrl is used |
|
| set default paramsInheritanceStrategy to 'always' |
paramsInheritanceStrategy now defaults to 'always'
The default value of paramsInheritanceStrategy has been changed from 'emptyOnly' to 'always'. This means that route parameters are inherited from all parent routes by default. To restore the previous behavior, set paramsInheritanceStrategy to 'emptyOnly' in your router configuration.
|  | allow safe navigation to correctly narrow
| Commit | Description |
|---|---|
| allow safe navigation to correctly narrow down nullables | |
| don't escape dollar sign in literal expression |
| Commit | Description |
|---|---|
| animation events not type checked properly when bound through HostListener decorator |
| Commit | Description |
|---|---|
| shim legacy NG_VALIDATORS into parseErrors for CVA mode (#67943) | |
| use controlValue in NgControl for CVA interop (#67943) |
| Commit | Description |
|---|---|
| add CSP nonce support to JsonpClientBackend | |
| Don't on Passthru outside of reactive context |
| Commit | Description |
|---|---|
| Disabling nullishCoalescingNotNullable & optionalChainNotNullable on ng update | |
| Fix typo for strict-template migration |
| Commit | Description |
|---|---|
| make incremental hydration default behavior |
| Commit | Description |
|---|---|
| prevent SSRF bypasses via protocol-relative and backslash URLs |
| Commit | Description |
|---|---|
| normalize multiple leading slashes in URL parser |
| Commit | Description |
|---|---|
| resolve TS 6.0 compatibility for messageerror listener |
nullishCoalescingNotNullable and optionalChainNotNullable diagnostics on exisiting projects.
You might want to disable those 2 diagnotiscs in your tsconfig temporarily.|  | handle nested brackets in host object bind
| Commit | Description |
|---|---|
| handle nested brackets in host object bindings |
| Commit | Description |
|---|---|
| Adds warning for prefetch without main defer trigger | |
| error for type parameter declarations | |
| resolve TCB mapping failure for safe property reads with as any |
| Commit | Description |
|---|---|
| align FormField CVA selection priority with standard forms | |
| allow late-bound input types for signals forms | |
| deduplicate writeValue calls in CVA interop |
| Commit | Description |
|---|---|
| get quick info at local var location to align with TS semantics and support type narrowing |
| Commit | Description |
|---|---|
| Add migration for CanMatchFn snapshot parameter (#67452) |
| Commit | Description |
|---|---|
remove unused styles when associated host is dropped |
| Commit | Description |
|---|---|
| make currentSnapshot required in CanMatchFn (#67452) |
any anymore. Make sure the element you pass is not nullable.ComponentFactoryResolver and ComponentFactory are no longer available. Pass the component class directly to APIs that previously required a factory, such as ViewContainerRef.createComponent or use the standalone createComponentFunction.ComponentFactoryResolver and ComponentFactory are no longer available. Pass the component class directly to APIs that previously required a factory, such as ViewContainerRef.createComponent or use the standalone createComponent function.host. However other DOM on the page may still be affected by those styles if not leveraging ViewEncapsulation.Emulated or if those styles are used by elements outside of Angular, potentially causing other DOM to appear unstyled.currentSnapshot parameter in CanMatchFn and the canMatch method of the CanMatch interface is now required. While this was already the behavior of the Router at runtime, existing class implementations of CanMatch must now include the third argument to satisfy the interface.|  | register SVG animation attributes in URL s
| Commit | Description |
|---|---|
| register SVG animation attributes in URL security context (#67797) |
| Commit | Description |
|---|---|
| prevent recursive scope checks for invalid NgModule imports |
| Commit | Description |
|---|---|
| validate locale in getOutputPathFn to prevent path traversal |
| Commit | Description |
|---|---|
| add strictTemplates to tsconfig during ng update |
| Commit | Description |
|---|---|
| pass outlet context to split to fix empty path named outlets |
|  | avoid redundant image fetch on destroy wit
| Commit | Description |
|---|---|
| avoid redundant image fetch on destroy with auto sizes |
| Commit | Description |
|---|---|
| Support comments in html element. | |
| abstract emitter producing incorrect code for dynamic imports | |
| prevent shimCssText from adding extra blank lines per CSS comment |
| Commit | Description |
|---|---|
| introduce NG8023 compile-time diagnostic for duplicate selectors |
| Commit | Description |
|---|---|
| inject migration not work in multi-project workspace with option path |
| Commit | Description |
|---|---|
| remove Hammer integration |
changeDetection property are now OnPush by default. Specify changeDetection: ChangeDetectionStrategy.Eager to keep the previous behavior.|  | ensure generated code compiles |
| Commit | Description |
|---|---|
| ensure generated code compiles | |
| parse named HTML entities containing digits | |
| stop generating unused field |
| Commit | Description |
|---|---|
| escape template literal in TCB | |
| generic types not filled out correctly in type check block | |
| transform dropping exclamationToken from properties |
| Commit | Description |
|---|---|
| support ngNoCva as an opt-out for ControlValueAccessors | |
| template & reactive support for FVC | |
| support generic unions in signal form schemas |
| Commit | Description |
|---|---|
| add Document Symbols support for Angular templates |
| Commit | Description |
|---|---|
| prevent trailing comma syntax errors after removing NgStyle |
| Commit | Description |
|---|---|
Add options optional parameter for withComponentInputBinding |
| Commit | Description |
|---|---|
| preserve redirect policy on reconstructed asset requests |
ChangeDetectorRef.checkNoChanges was removed. In tests use fixture.detectChanges() instead.|  | disallow translations of iframe src |
|  | allow debouncing signals |
| Commit | Description |
|---|---|
restrict SignalFormsConfig to a readonly API |
| Commit | Description |
|---|---|
| add angular template inlay hints support |
createNgModuleRef was removed, use createNgModule instead|  | prevent mutation of children array in Recu
| Commit | Description |
|---|---|
| prevent mutation of children array in RecursiveVisitor |
| Commit | Description |
|---|---|
| ignore generated ngDevMode signal branch for code coverage |
| Commit | Description |
|---|---|
| add 'blur' option to debounce rule |
| Commit | Description |
|---|---|
| avoid generating invalid code in ChangeDetectionStrategy.Eager migration |
|  | remove deprecated provideRoutes funct…
| Commit | Description |
|---|---|
| update minimum supported Node.js versions |
| Commit | Description |
|---|---|
Don't bind inputs/outputs for data- attributes |
|
| throw on duplicate input/outputs | |
| throw on invalid in expressions |
| Commit | Description |
|---|---|
| always parenthesize object literals in TCB |
| Commit | Description |
|---|---|
split the touched model into an input and touch output |
|
Untrack setValue in reactive forms |
| Commit | Description |
|---|---|
Use FetchBackend as default for the HttpBackend implementation |
| Commit | Description |
|---|---|
| Add support for idle timeout in defer blocks |
| Commit | Description |
|---|---|
| adds browserUrl input support to router links | |
remove deprecated provideRoutes function. |
| Commit | Description |
|---|---|
remove getAngularLib/setAngularLib |
in variables will throw in template expressions.HttpXhrBackend with provideHttpClient(withXhr) if you want to keep supporting upload progress reports.provideRoutes() has been removed. Use provideRouter() or ROUTES as multi token if necessary.getAngularLib/setAngularLib have been removed use getAngularJSGlobal/setAngularJSGlobal instead.withFetch is now deprecated, it can be safely removed.reject protocol-relative paths in resolveUrl
| Commit | Description |
|---|---|
| reject protocol-relative paths in resolveUrl |
| Commit | Type | Description |
|---|---|---|
| 450af9c813 | fix | reject protocol-relative paths in resolveUrl |
| Commit | Type | Description |
|---|---|---|
| 4bc11a546b | fix | do not copy URL-sized objects into every route snapshot |
| 6489ca5d84 | fix | reject duplicate outlets in production builds |
| a83f8119ac | fix | require outlets to match a route before processing child segments |
| a131f77d92 | perf | do not retain UrlTree instances in RouterLink |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.33"></a>
avoid dense elements allocation for numeric URL keys
| Commit | Type | Description |
|---|---|---|
| 03872a80bc | fix | avoid dense elements allocation for numeric URL keys |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.32"></a>
update domino to latest version
| Commit | Type | Description |
|---|---|---|
| fc2e8fbc0b | fix | update domino to latest version |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.5"></a>
avoid stripping unicode whitespace during url resolution
| Commit | Type | Description |
|---|---|---|
| 5aa6d97deb | fix | avoid stripping unicode whitespace during url resolution |
| 73d8bbd27c | fix | update domino to latest version |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.30"></a>
disallow event handler attributes in Meta
| Commit | Type | Description |
|---|---|---|
| c19a36c2fb | fix | disallow event handler attributes in Meta |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.2"></a>
Your coding agent can read these notes before it upgrades. Set up the MCP server →