PackageTrack

npm · #3838

@angular/core

22.1.4angular/angular

Angular - the core framework

Release timeline

1101 releases since 2016
20182020202220242026

Releases

  1. 20.3.1915 Apr 2026
    Release notes

    platform-server

    Commit Description
    prevent SSRF bypasses via protocol-relative and backslash URLs
    Open source →
    Additional notes

    platform-server

    Commit Type Description
    303d4cd580 fix prevent SSRF bypasses via protocol-relative and backslash URLs

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.2.9"></a>

    Open source →
  2. 20.3.1812 Mar 2026
    Release notes

    compiler

    Commit Description
    disallow translations of iframe src

    core

    Commit Description
    sanitize translated attribute bindings with interpolations
    sanitize translated form attributes
    Open source →
    Additional notes

    compiler

    Commit Type Description
    02fbf08890 fix disallow translations of iframe src

    core

    Commit Type Description
    72126f9a08 fix sanitize translated attribute bindings with interpolations
    626bc8bc20 fix sanitize translated form attributes

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.2.4"></a>

    Open source →
  3. 20.3.1725 Feb 2026
    Release notes

    core

    Commit Description
    block creation of sensitive URI attributes from ICU messages

    Breaking Changes

    core

    • Angular now only applies known attributes from HTML in translated ICU content. Unknown attributes are dropped and not rendered.

      (cherry picked from commit 03da204b6daa5e4583e0d0968c2107390bbd8235)

    Open source →
    Additional notes

    Breaking Changes

    core

    • Angular now only applies known attributes from HTML in translated ICU content. Unknown attributes are dropped and not rendered.

      (cherry picked from commit 03da204b6daa5e4583e0d0968c2107390bbd8235)

    core

    Commit Type Description
    7f9de3c118 fix block creation of sensitive URI attributes from ICU messages

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.2.0"></a>

    Open source →
  4. 20.3.167 Jan 2026
    Release notes

    core

    Commit Description
    sanitize sensitive attributes on SVG script elements
    Open source →
    Additional notes

    core

    Commit Type Description
    c2c2b4aaa8 fix sanitize sensitive attributes on SVG script elements

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="19.2.18"></a>

    Open source →
  5. 20.3.151 Dec 2025
    Release notes

    compiler

    Commit Description
    prevent XSS via SVG animation attributeName and MathML/SVG URLs
    Open source →
    Additional notes

    compiler

    Commit Type Description
    d1ca8ae043 fix prevent XSS via SVG animation attributeName and MathML/SVG URLs

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="19.2.17"></a>

    Open source →
  6. 20.3.1425 Nov 2025
    Release notes

    http

    Commit Description
    prevent XSRF token leakage to protocol-relative URLs
    Open source →
    Additional notes

    http

    Commit Type Description
    0276479e7d fix prevent XSRF token leakage to protocol-relative URLs

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.0.1"></a>

    Open source →
  7. 20.3.1319 Nov 2025
    Release notes

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.3.12"></a>

    Open source →
  8. 20.3.1214 Nov 2025
    Release notes

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.3.11"></a>

    Open source →
  9. 20.3.1112 Nov 2025
    Release notes

    common

    Commit Description
    remove placeholder image listeners once view is removed

    compiler

    Commit Description
    support arbitrary nesting in :host-context()
    support commas in :host() argument
    support complex selectors in :nth-child()
    support one additional level of nesting in :host()

    core

    Commit Description
    skip leave animations on view swaps
    Open source →
    Additional notes

    common

    Commit Type Description
    5047849a4a fix remove placeholder image listeners once view is removed

    compiler

    Commit Type Description
    f9d0818087 fix support arbitrary nesting in :host-context()
    106b9040df fix support commas in :host() argument
    9419ea348a fix support complex selectors in :nth-child()
    036c5d2a07 fix support one additional level of nesting in :host()

    core

    Commit Type Description
    dcdd1bcdbb fix skip leave animations on view swaps

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.3.10"></a>

    Open source →
  10. 20.3.105 Nov 2025
    Release notes

    compiler-cli

    Commit Description
    make required inputs diagnostic less noisy

    migrations

    Commit Description
    Prevent removal of templates referenced with preceding whitespace characters
    Open source →
    Additional notes

    compiler-cli

    Commit Type Description
    840db59dc1 fix make required inputs diagnostic less noisy

    migrations

    Commit Type Description
    a45e6b2b66 fix Prevent removal of templates referenced with preceding whitespace characters

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.3.9"></a>

    Open source →
  11. 20.3.929 Oct 2025
    Release notes

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.3.7"></a>

    Open source →
  12. 20.3.722 Oct 2025
    Release notes

    animations

    Commit Description
    account for Element.animate exceptions (#64506)

    compiler

    Commit Description
    correctly compile long numeric HTML entities (#64297)

    compiler-cli

    Commit Description
    missingStructuralDirective diagnostic produces false negatives (#64470)

    core

    Commit Description
    pass element removal property through in all locations (#64565)
    prevent duplicate nodes from being retained with fast `animate.leave`` calls (#64592)

    router

    Commit Description
    Fix outlet serialization and parsing with no primary children (#64505)
    Surface parse errors in Router.parseUrl (#64503)
    Open source →
    Additional notes

    animations

    Commit Type Description
    bd38cd45a5 fix account for Element.animate exceptions (#64506)

    compiler

    Commit Type Description
    891f180262 fix correctly compile long numeric HTML entities (#64297)

    compiler-cli

    Commit Type Description
    371274bfc6 fix missingStructuralDirective diagnostic produces false negatives (#64470)

    core

    Commit Type Description
    4c89a267c3 fix pass element removal property through in all locations (#64565)
    2fad4d4ab6 fix prevent duplicate nodes from being retained with fast `animate.leave`` calls (#64592)

    router

    Commit Type Description
    cfd8ed3fff fix Fix outlet serialization and parsing with no primary children (#64505)
    182fe78f91 fix Surface parse errors in Router.parseUrl (#64503)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.3.6"></a>

    Open source →
  13. 20.3.616 Oct 2025
    Release notes

    core

    Commit Description
    update animation scheduling (#64441)

    platform-browser

    Commit Description
    DomEventsPlugin should always be the last plugin to be called for supports(). (#50394)
    Open source →
    Additional notes

    core

    Commit Type Description
    911d6822cb fix update animation scheduling (#64441)

    platform-browser

    Commit Type Description
    2ece42866d fix DomEventsPlugin should always be the last plugin to be called for supports(). (#50394)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.3.5"></a>

    Open source →
  14. 20.3.515 Oct 2025
    Release notes

    compiler-cli

    Commit Description
    capture metadata for undecorated fields (#63957) (#64317)
    fix performance of "interpolated signal not invoked" check (#64410)

    core

    Commit Description
    fixes regression in animate.leave function bindings (#64413)
    Prevents early style pruning with leave animations (#64335)

    migrations

    Commit Description
    migrating input with more than 1 usage in a method (#64367)
    remove error for no matching files in control flow migration (#64253) (#64314)

    router

    Commit Description
    Scroll restoration should use instant scroll behavior for traversals (#64299)
    Open source →
    Additional notes

    compiler-cli

    Commit Type Description
    8dec92ff9f fix capture metadata for undecorated fields (#63957) (#64317)
    c2e817b0ef perf fix performance of "interpolated signal not invoked" check (#64410)

    core

    Commit Type Description
    f15cfa4cc4 fix fixes regression in animate.leave function bindings (#64413)
    d54dd674ca fix Prevents early style pruning with leave animations (#64335)

    migrations

    Commit Type Description
    554573e524 fix migrating input with more than 1 usage in a method (#64367)
    2c79ca0b57 fix remove error for no matching files in control flow migration (#64253) (#64314)

    router

    Commit Type Description
    6e4bcc7d22 fix Scroll restoration should use instant scroll behavior for traversals (#64299)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.3.4"></a>

    Open source →
  15. 20.3.48 Oct 2025
    Release notes

    core

    Commit Description
    ensure missing leave animations don't queue leave animations (#64226)
    Fixes animations in conjunction with content projection (#63776)
    handle undefined CSS time values in parseCssTimeUnitsToMs function (#64181)
    prevent early exit from leave animations when multiple transitions are present (#64225)

    migrations

    Commit Description
    preserve component imports when pruning NgModules in standalone migration (#64186)
    Open source →
    Additional notes

    core

    Commit Type Description
    853ed169a8 fix ensure missing leave animations don't queue leave animations (#64226)
    6fed986b7a fix Fixes animations in conjunction with content projection (#63776)
    76fe5599fe fix handle undefined CSS time values in parseCssTimeUnitsToMs function (#64181)
    3b959105be fix prevent early exit from leave animations when multiple transitions are present (#64225)

    migrations

    Commit Type Description
    65884895ff fix preserve component imports when pruning NgModules in standalone migration (#64186)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.3.3"></a>

    Open source →
  16. 20.3.32 Oct 2025
    Release notes

    compiler

    Commit Description
    recover template literals with broken expressions (#64150)

    core

    Commit Description
    do not rename ARIA property bindings to attributes (#64089)
    Fixes animations in conjunction with content projection (#63776)
    prevents unintended early termination of leave animations and hoisting (#64088)

    migrations

    Commit Description
    handle shorthand property declarations in NgModule (#64160)
    skip migration for inputs with 'this' references (#64142)
    Open source →
    Additional notes

    compiler

    Commit Type Description
    f51ab32fb3 fix recover template literals with broken expressions (#64150)

    core

    Commit Type Description
    542cd0019a fix do not rename ARIA property bindings to attributes (#64089)
    0e928fbc4a fix Fixes animations in conjunction with content projection (#63776)
    e5157bd933 fix prevents unintended early termination of leave animations and hoisting (#64088)

    migrations

    Commit Type Description
    1710cbd7d4 fix handle shorthand property declarations in NgModule (#64160)
    77b6305a4b fix skip migration for inputs with 'this' references (#64142)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.3.2"></a>

    Open source →
  17. 20.3.224 Sept 2025
    Release notes

    compiler-cli

    Commit Description
    capture metadata for undecorated fields (#63904)
    resolve import alias in defer blocks (#63966)

    core

    Commit Description
    fix narrowing of Resource.hasValue() (#63994)
    prevent animations renderer from impacting animate.leave (#63921)

    forms

    Commit Description
    Emit FormResetEvent when resetting control (#64034)

    migrations

    Commit Description
    handle import aliases to the same module name (#63934)
    handle reused templates in control flow migration (#63996)
    Open source →
    Additional notes

    compiler-cli

    Commit Type Description
    ba40153ac0 fix capture metadata for undecorated fields (#63904)
    1d4f81c8ee fix resolve import alias in defer blocks (#63966)

    core

    Commit Type Description
    9515a70933 fix fix narrowing of Resource.hasValue() (#63994)
    e78451cf8a fix prevent animations renderer from impacting animate.leave (#63921)

    forms

    Commit Type Description
    1fd8d5d446 fix Emit FormResetEvent when resetting control (#64034)

    migrations

    Commit Type Description
    16d0d43ad4 fix handle import aliases to the same module name (#63934)
    3ebaeccb46 fix handle reused templates in control flow migration (#63996)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.3.1"></a>

    Open source →
  18. 20.3.117 Sept 2025
    Release notes

    compiler

    Commit Description
    Add support for aria-invalid (#63748)

    compiler-cli

    Commit Description
    only bind inputs that are part of microsyntax to a structural directive (#52453)
    signal not invoked diagnostic not raised when input has same name in template (#63754)

    core

    Commit Description
    prevent animation events from being cleaned up on destroy (#63414)
    Prevent leave animations on a move operation (#63745)

    migrations

    Commit Description
    fix route-lazy-loading migration (#63818)
    Open source →
    Additional notes

    compiler

    Commit Type Description
    7fb5a8087e fix Add support for aria-invalid (#63748)

    compiler-cli

    Commit Type Description
    8843707919 fix only bind inputs that are part of microsyntax to a structural directive (#52453)
    38c9921ff3 fix signal not invoked diagnostic not raised when input has same name in template (#63754)

    core

    Commit Type Description
    802dbcc2a0 fix prevent animation events from being cleaned up on destroy (#63414)
    3ec8a5c753 fix Prevent leave animations on a move operation (#63745)

    migrations

    Commit Type Description
    6e54bdfdcb fix fix route-lazy-loading migration (#63818)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="18.2.14"></a>

    Open source →
  19. 20.3.010 Sept 2025
    Release notes

    Commit Description
    remove refresh button from transfer state tab (#63592)

    core

    Commit Description
    introduce BootstrapContext for improved server bootstrapping (#63636)

    Breaking Changes

    core

    • The server-side bootstrapping process has been changed to eliminate the reliance on a global platform injector.

      Before:

      const bootstrap = () => bootstrapApplication(AppComponent, config);
      

      After:

      const bootstrap = (context: BootstrapContext) =>
        bootstrapApplication(AppComponent, config, context);
      

      A schematic is provided to automatically update main.server.ts files to pass the BootstrapContext to the bootstrapApplication call.

      In addition, getPlatform() and destroyPlatform() will now return null and be a no-op respectively when running in a server environment.

    For more information please see: https://github.com/angular/angular/security/advisories/GHSA-68x2-mx4q-78m7

    Open source →
    Additional notes

    Breaking Changes

    core

    • The server-side bootstrapping process has been changed to eliminate the reliance on a global platform injector.

      Before:

      const bootstrap = () => bootstrapApplication(AppComponent, config);
      

      After:

      const bootstrap = (context: BootstrapContext) =>
        bootstrapApplication(AppComponent, config, context);
      

      A schematic is provided to automatically update main.server.ts files to pass the BootstrapContext to the bootstrapApplication call.

      In addition, getPlatform() and destroyPlatform() will now return null and be a no-op respectively when running in a server environment.

      (cherry picked from commit 8bf80c9d2314b4f2bcf3df83ae01552a6fc49834)

    Commit Type Description
    a3f808d7c8 fix remove refresh button from transfer state tab (#63592)

    core

    Commit Type Description
    6117ccee2e feat introduce BootstrapContext for improved server bootstrapping (#63636)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.2.4"></a>

    Open source →
  20. 20.3.0-rc.010 Sept 2025pre-release
    Release notes

    Commit Description
    remove refresh button from transfer state tab (#63592)

    core

    Commit Description
    introduce BootstrapContext for improved server bootstrapping (#63636)

    Breaking Changes

    core

    • The server-side bootstrapping process has been changed to eliminate the reliance on a global platform injector.

      Before:

      const bootstrap = () => bootstrapApplication(AppComponent, config);
      

      After:

      const bootstrap = (context: BootstrapContext) =>
        bootstrapApplication(AppComponent, config, context);
      

      A schematic is provided to automatically update main.server.ts files to pass the BootstrapContext to the bootstrapApplication call.

      In addition, getPlatform() and destroyPlatform() will now return null and be a no-op respectively when running in a server environment.

    For more information please see: https://github.com/angular/angular/security/advisories/GHSA-68x2-mx4q-78m7

    Open source →
  21. 20.2.43 Sept 2025
    Release notes

    core

    Commit Description
    Fixed inject migration schematics for migrate destructured properties (#62832)

    platform-server

    Commit Description
    prevent false warning for duplicate state serialization (#63525)
    Open source →
    Additional notes

    core

    Commit Type Description
    dc64f3e478 fix Fixed inject migration schematics for migrate destructured properties (#62832)

    platform-server

    Commit Type Description
    d1d32db972 fix prevent false warning for duplicate state serialization (#63525)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.2.3"></a>

    Open source →
  22. 20.2.329 Aug 2025
    Release notes

    compiler

    Commit Description
    fixes regression with event parsing and animate prefix (#63470)

    core

    Commit Description
    avoid injecting internal error handler from a destroyed injector (#62275)
    Fix cancellation of animation enter classes (#63442)
    Prevent an error on cleanup when an rxResource stream threw before returning an Observable (#63342)
    Open source →
    Additional notes

    compiler

    Commit Type Description
    479a919f42 fix fixes regression with event parsing and animate prefix (#63470)

    core

    Commit Type Description
    f87fad3fff fix avoid injecting internal error handler from a destroyed injector (#62275)
    114906d2d6 fix Fix cancellation of animation enter classes (#63442)
    596b545130 fix Prevent an error on cleanup when an rxResource stream threw before returning an Observable (#63342)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.2.2"></a>

    Open source →
  23. 20.2.227 Aug 2025
    Release notes

    compiler

    Commit Description
    fixes animations on elements with structural directives (#63390)

    core

    Commit Description
    Ensures @for loop animations never get cancelled (#63328)
    fix memory leak with leaving nodes tracking (#63328)
    Fixes animate.leave binding to a string with spaces (#63366)
    Open source →
    Additional notes

    compiler

    Commit Type Description
    d7b6045d61 fix fixes animations on elements with structural directives (#63390)

    core

    Commit Type Description
    6c421ed65d fix Ensures @for loop animations never get cancelled (#63328)
    9093e0e132 fix fix memory leak with leaving nodes tracking (#63328)
    c8f07daf8f fix Fixes animate.leave binding to a string with spaces (#63366)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.2.1"></a>

    Open source →
  24. 20.2.121 Aug 2025
    Release notes

    compiler

    Commit Description
    Keep paraenthesis in Nullish + Boolean expression. (#63292)
    Open source →
    Additional notes

    compiler

    Commit Type Description
    a28672fb70 fix Keep paraenthesis in Nullish + Boolean expression. (#63292)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.2.0"></a>

    Open source →
  25. 20.2.020 Aug 2025
    Release notes

    animations

    Commit Description
    deprecate the animations package (#62795)

    compiler

    Commit Description
    allow more characters in square-bracketed attribute names (#62742)
    fixes animation event host bindings not firing (#63217)

    compiler-cli

    Commit Description
    add diagnostic for uninvoked functions in text interpolation (#59191)
    display proper function in NG8117 message (#62842)
    Ignore diagnostics on ngTemplateContextGuard lines in TCB (#63054)
    prevent dom event assertion in TCB generation on older angular versions (#63053)

    core

    Commit Description
    add enter and leave animation instructions (#62682)
    add option to infer the tag names of components in tests (#62283)
    Promote zoneless to stable (#62699)
    render ARIA property bindings as attributes (#62630)
    support as aliases on else if blocks (#63047)
    support TypeScript 5.9 (#62541)
    checks if body exists before continuing (#62768)
    ensure animate events do not have duplicate elements (#63216)
    Fix animate.enter class removal when composing classes (#62981)
    fix support for space separated strings in leave animations (#62979)
    fixes empty animations when recalculating styles (#63007)
    fixes timing issues with enter animations (#62925)
    handle cases where classes added have no animations (#63242)
    prevents duplicate nodes when @if toggles with leave animations (#63048)
    switch check to documentElement with chaining (#62773)
    deprecate animations field on component interface (#62895)

    forms

    Commit Description
    add support for pushing an array of controls to formarray (#57102)

    http

    Commit Description
    Add redirected property to HttpResponse and HttpErrorResponse (#62675)
    add referrer & integrity support for fetch requests in httpResource (#62461)
    Add support for fetch referrer & integrity options in HttpClient (#62417)
    Add missing timeout and transferCache options to HttpClient (#62586)

    language-service

    Commit Description
    support auto-import for attribute completions (#62797)
    support to report the deprecated API in the template (#62054)
    Support to resolve the re-export component. (#62585)

    platform-browser

    Commit Description
    Warns on conflicting hydration and blocking navigation (#62963)

    router

    Commit Description
    add a currentNavigation signal to the Router service. (#62971)
    add a currentNavigation signal to the Router service. (#63011)
    ensure preloaded components are properly activated (#62502)

    service-worker

    Commit Description
    add messageerror event handling and logging (#62834)
    Adds for type in provideServiceWorker (#62831)
    Adds support for updateViaCache in provideServiceWorker (#62721)
    Improves storage full detection in data caching (#62737)
    Logs unhandled promise rejections in service worker (#63059)
    notify clients about version failures (#62718)

    Deprecations

    animations

    • @angular/animations

    core

    • @angular/animations

    router

    • The Router.getCurrentNavigation method is deprecated. Use the Router.currentNavigation signal instead.
    Open source →
    Additional notes

    Deprecations

    animations

    • @angular/animations

    core

    • @angular/animations

    router

    • The Router.getCurrentNavigation method is deprecated. Use the Router.currentNavigation signal instead.
    • The Router.getCurrentNavigation method is deprecated. Use the Router.currentNavigation signal instead.

    animations

    Commit Type Description
    9766116cea refactor deprecate the animations package (#62795)

    compiler

    Commit Type Description
    7767aa640c fix allow more characters in square-bracketed attribute names (#62742)
    7b51728813 fix fixes animation event host bindings not firing (#63217)

    compiler-cli

    Commit Type Description
    5abfe4a899 feat add diagnostic for uninvoked functions in text interpolation (#59191)
    c4917074f1 fix display proper function in NG8117 message (#62842)
    812463c563 fix Ignore diagnostics on ngTemplateContextGuard lines in TCB (#63054)
    45b030b5ce fix prevent dom event assertion in TCB generation on older angular versions (#63053)

    core

    Commit Type Description
    6b1f4b9e8b feat add enter and leave animation instructions (#62682)
    cec91c0035 feat add option to infer the tag names of components in tests (#62283)
    141bb75ff2 feat Promote zoneless to stable (#62699)
    4138aca91f feat render ARIA property bindings as attributes (#62630)
    a409534d6c feat support as aliases on else if blocks (#63047)
    745ea44394 feat support TypeScript 5.9 (#62541)
    593cc8a368 fix checks if body exists before continuing (#62768)
    bdc31675b7 fix ensure animate events do not have duplicate elements (#63216)
    de3a0c5cf3 fix Fix animate.enter class removal when composing classes (#62981)
    6597ac0af7 fix fix support for space separated strings in leave animations (#62979)
    ebd622b344 fix fixes empty animations when recalculating styles (#63007)
    455b147488 fix fixes timing issues with enter animations (#62925)
    f9d73cc687 fix handle cases where classes added have no animations (#63242)
    6a1184600c fix prevents duplicate nodes when @if toggles with leave animations (#63048)
    063b5e166f fix switch check to documentElement with chaining (#62773)
    320de4e96d refactor deprecate animations field on component interface (#62895)

    forms

    Commit Type Description
    c353497a01 feat add support for pushing an array of controls to formarray (#57102)

    http

    Commit Type Description
    0984b30388 feat Add redirected property to HttpResponse and HttpErrorResponse (#62675)
    be811fee79 feat add referrer & integrity support for fetch requests in httpResource (#62461)
    1cf9d9064c feat Add support for fetch referrer & integrity options in HttpClient (#62417)
    1408baff45 fix Add missing timeout and transferCache options to HttpClient (#62586)

    language-service

    Commit Type Description
    c81e345e72 feat support auto-import for attribute completions (#62797)
    d64dd27a02 feat support to report the deprecated API in the template (#62054)
    591c7e2ec8 fix Support to resolve the re-export component. (#62585)

    platform-browser

    Commit Type Description
    52b8e07d6e feat Warns on conflicting hydration and blocking navigation (#62963)

    router

    Commit Type Description
    d00b3fed58 feat add a currentNavigation signal to the Router service. (#62971)
    687c374826 feat add a currentNavigation signal to the Router service. (#63011)
    9c45c322d1 fix ensure preloaded components are properly activated (#62502)

    service-worker

    Commit Type Description
    8255e0cf15 feat add messageerror event handling and logging (#62834)
    5220b51e75 feat Adds for type in provideServiceWorker (#62831)
    4ac6171b09 feat Adds support for updateViaCache in provideServiceWorker (#62721)
    b65c3d5e19 feat Improves storage full detection in data caching (#62737)
    3b214d2040 feat Logs unhandled promise rejections in service worker (#63059)
    6d011687ec feat notify clients about version failures (#62718)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.1.8"></a>

    Open source →
  26. 20.2.0-rc.113 Aug 2025pre-release
    Release notes

    compiler

    Commit Description
    incorrect spans for AST inside input value with leading space (#63082)

    language-service

    Commit Description
    support auto-import for attribute completions (#62797)
    Open source →
  27. 20.2.0-rc.011 Aug 2025pre-release
    Release notes

    compiler-cli

    Commit Description
    error when type checking host bindings of generic directive (#63061)

    core

    Commit Description
    support as aliases on else if blocks (#63047)
    destroying the effect on afterRenderEffect (#63001)
    prevents duplicate nodes when @if toggles with leave animations (#63048)

    router

    Commit Description
    attempt to resolve component resources in JIT mode (#63062)

    service-worker

    Commit Description
    Logs unhandled promise rejections in service worker (#63059)
    Open source →
  28. 20.2.0-next.67 Aug 2025pre-release
    Release notes

    compiler-cli

    Commit Description
    Ignore diagnostics on ngTemplateContextGuard lines in TCB (#63054)
    prevent dom event assertion in TCB generation on older angular versions (#63053)
    Open source →
  29. 20.2.0-next.56 Aug 2025pre-release
    Release notes

    platform-browser

    Commit Description
    Add IsolatedShadowDom encapsulation method (#62723)

    router

    Commit Description
    add a currentNavigation signal to the Router service. (#63011)

    Deprecations

    router

    • The Router.getCurrentNavigation method is deprecated. Use the Router.currentNavigation signal instead.
    Open source →
  30. 20.2.0-next.46 Aug 2025pre-release
    Release notes

    compiler-cli

    Commit Description
    correctly type check host listeners to own outputs (#62965)

    core

    Commit Description
    Promote zoneless to stable (#62699)
    Fix animate.enter class removal when composing classes (#62981)
    fix support for space separated strings in leave animations (#62979)
    fixes empty animations when recalculating styles (#63007)
    fixes timing issues with enter animations (#62925)
    properly recognize failed fetch responses when loading external resources in JIT (#62992)

    forms

    Commit Description
    add support for pushing an array of controls to formarray (#57102)

    http

    Commit Description
    Reset headers, progress, and statusCode when using set() in HttpResource (#62873)

    migrations

    Commit Description
    incorrect filtering in inject migration (#62913)

    platform-browser

    Commit Description
    Warns on conflicting hydration and blocking navigation (#62963)

    router

    Commit Description
    add a currentNavigation signal to the Router service. (#62971)

    service-worker

    Commit Description
    add messageerror event handling and logging (#62834)
    Adds for type in provideServiceWorker (#62831)

    Deprecations

    router

    • The Router.getCurrentNavigation method is deprecated. Use the Router.currentNavigation signal instead.
    Open source →
  31. 20.2.0-next.331 Jul 2025pre-release
    Release notes

    animations

    Commit Description
    deprecate the animations package (#62795)

    compiler

    Commit Description
    exclude more safe reads expression from 2way-binding (#62852)

    compiler-cli

    Commit Description
    display proper function in NG8117 message (#62842)

    core

    Commit Description
    update symbols for new signals api (#62284)
    deprecate animations field on component interface (#62895)

    http

    Commit Description
    Add redirected property to HttpResponse and HttpErrorResponse (#62675)
    add missing http options allowed in fetch API (#62881)
    propagate plain errors when parsing fails (#62765)

    service-worker

    Commit Description
    Improves storage full detection in data caching (#62737)
    notify clients about version failures (#62718)

    Deprecations

    animations

    • @angular/animations

    core

    • @angular/animations
    Open source →
  32. 20.2.0-next.223 Jul 2025pre-release
    Release notes

    compiler

    Commit Description
    allow more characters in square-bracketed attribute names (#62742)
    fix detection of directive deps in JIT (#62666)

    compiler-cli

    Commit Description
    add diagnostic for uninvoked functions in text interpolation (#59191)

    core

    Commit Description
    add enter and leave animation instructions (#62682)
    add option to infer the tag names of components in tests (#62283)
    render ARIA property bindings as attributes (#62630)
    checks if body exists before continuing (#62768)
    fix change tracking for Resource#hasValue (#62595)
    switch check to documentElement with chaining (#62773)

    platform-browser

    Commit Description
    resolve component resources before bootstrapping in JIT mode (#62758)

    service-worker

    Commit Description
    Adds support for updateViaCache in provideServiceWorker (#62721)
    Open source →
  33. 20.2.0-next.116 Jul 2025pre-release
    Release notes

    compiler

    Commit Description
    incorrect spans for left side of binary operation (#62641)
    more permissive parsing of @ characters (#62644)

    compiler-cli

    Commit Description
    infer type of event target for void elements (#62648)

    core

    Commit Description
    support TypeScript 5.9 (#62541)
    Ensure application remains unstable during bootstrap (#62631)
    InputBinding marks component a dirty. (#62613)

    http

    Commit Description
    add referrer & integrity support for fetch requests in httpResource (#62461)
    Add missing timeout and transferCache options to HttpClient (#62586)
    do not display warnings Angular detected that a HttpClientrequest with thekeepalive option was sent using XHR when option is not true (#62536)

    language-service

    Commit Description
    support to report the deprecated API in the template (#62054)

    router

    Commit Description
    ensure preloaded components are properly activated (#62502)
    handle errors from view transition readiness (#62535)
    Open source →
  34. 20.2.0-next.09 Jul 2025pre-release
    Release notes

    http

    Commit Description
    Add support for fetch referrer & integrity options in HttpClient (#62417)
    Open source →
  35. 20.1.820 Aug 2025
    Release notes

    compiler

    Commit Description
    error when ng-content fallback has translated children (#63156)
    incorrect source span for expression AST inside template attribute (#63175)

    compiler-cli

    Commit Description
    account for expression with type arguments during HMR extraction (#63261)
    Open source →
    Additional notes

    compiler

    Commit Type Description
    691f5ed033 fix error when ng-content fallback has translated children (#63156)
    b1dec9bc50 fix incorrect source span for expression AST inside template attribute (#63175)

    compiler-cli

    Commit Type Description
    cda402f1d8 fix account for expression with type arguments during HMR extraction (#63261)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.1.7"></a>

    Open source →
  36. 20.1.713 Aug 2025
    Release notes

    compiler

    Commit Description
    incorrect spans for AST inside input value with leading space (#63082)

    compiler-cli

    Commit Description
    error when type checking host bindings of generic directive (#63061)

    core

    Commit Description
    destroying the effect on afterRenderEffect (#63001)

    router

    Commit Description
    attempt to resolve component resources in JIT mode (#63062)
    Open source →
    Additional notes

    compiler

    Commit Type Description
    d9e37908a5 fix incorrect spans for AST inside input value with leading space (#63082)

    compiler-cli

    Commit Type Description
    4aa120ac00 fix error when type checking host bindings of generic directive (#63061)

    core

    Commit Type Description
    322042c5b3 fix destroying the effect on afterRenderEffect (#63001)

    router

    Commit Type Description
    5fd79424e3 fix attempt to resolve component resources in JIT mode (#63062)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.1.6"></a>

    Open source →
  37. 20.1.66 Aug 2025
    Release notes

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.1.5"></a>

    Open source →
  38. 20.1.56 Aug 2025
    Release notes

    compiler-cli

    Commit Description
    correctly type check host listeners to own outputs (#62965)

    core

    Commit Description
    properly recognize failed fetch responses when loading external resources in JIT (#62992)

    http

    Commit Description
    Reset headers, progress, and statusCode when using set() in HttpResource (#62873)

    migrations

    Commit Description
    incorrect filtering in inject migration (#62913)
    Open source →
    Additional notes

    compiler-cli

    Commit Type Description
    3b2e8efcac fix correctly type check host listeners to own outputs (#62965)

    core

    Commit Type Description
    c9f3976eba fix properly recognize failed fetch responses when loading external resources in JIT (#62992)

    http

    Commit Type Description
    ae443f8eb0 fix Reset headers, progress, and statusCode when using set() in HttpResource (#62873)

    migrations

    Commit Type Description
    7a5851e4b0 fix incorrect filtering in inject migration (#62913)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.1.4"></a>

    Open source →
  39. 20.1.431 Jul 2025
    Release notes

    compiler

    Commit Description
    exclude more safe reads expression from 2way-binding (#62852)

    core

    Commit Description
    update symbols for new signals api (#62284)

    http

    Commit Description
    add missing http options allowed in fetch API (#62881)
    propagate plain errors when parsing fails (#62765)
    Open source →
    Additional notes

    compiler

    Commit Type Description
    db3c5826ee fix exclude more safe reads expression from 2way-binding (#62852)

    core

    Commit Type Description
    c633b63e56 fix update symbols for new signals api (#62284)

    http

    Commit Type Description
    ab6033979a fix add missing http options allowed in fetch API (#62881)
    15670d8417 fix propagate plain errors when parsing fails (#62765)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.1.3"></a>

    Open source →
  40. 20.1.323 Jul 2025
    Release notes

    core

    Commit Description
    fix change tracking for Resource#hasValue (#62595)

    platform-browser

    Commit Description
    resolve component resources before bootstrapping in JIT mode (#62758)
    Open source →
    Additional notes

    core

    Commit Type Description
    2c522efbe5 fix fix change tracking for Resource#hasValue (#62595)

    platform-browser

    Commit Type Description
    2fd1f7beb5 fix resolve component resources before bootstrapping in JIT mode (#62758)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.1.2"></a>

    Open source →
  41. 20.1.217 Jul 2025
    Release notes

    compiler

    Commit Description
    fix detection of directive deps in JIT (#62666)
    Open source →
    Additional notes

    compiler

    Commit Type Description
    8ad10fd63b fix fix detection of directive deps in JIT (#62666)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.1.1"></a>

    Open source →
  42. 20.1.116 Jul 2025
    Release notes

    compiler

    Commit Description
    incorrect spans for left side of binary operation (#62641)
    more permissive parsing of @ characters (#62644)

    compiler-cli

    Commit Description
    infer type of event target for void elements (#62648)

    core

    Commit Description
    Ensure application remains unstable during bootstrap (#62631)
    InputBinding marks component a dirty. (#62613)

    http

    Commit Description
    do not display warnings Angular detected that a HttpClientrequest with thekeepalive option was sent using XHR when option is not true (#62536)

    router

    Commit Description
    handle errors from view transition readiness (#62535)
    Open source →
    Additional notes

    compiler

    Commit Type Description
    75d2a349b4 fix incorrect spans for left side of binary operation (#62641)
    70c8780c54 fix more permissive parsing of @ characters (#62644)

    compiler-cli

    Commit Type Description
    9506cdfaad fix infer type of event target for void elements (#62648)

    core

    Commit Type Description
    26ade4a337 fix Ensure application remains unstable during bootstrap (#62631)
    a81f0faa1a fix InputBinding marks component a dirty. (#62613)

    http

    Commit Type Description
    276836ee73 fix do not display warnings Angular detected that a HttpClientrequest with thekeepalive option was sent using XHR when option is not true (#62536)

    router

    Commit Type Description
    5949373692 fix handle errors from view transition readiness (#62535)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.1.0"></a>

    Open source →
  43. 20.1.09 Jul 2025
    Release notes

    common

    Commit Description
    add support for a custom EnvironmentInjector to NgComponentOutlet directive (#54764)
    support decoding in NgOptimizedImage (#61905)

    compiler

    Commit Description
    add support for new binary assignment operators (#62064)
    only report parser errors on invalid expression (#61793)
    produce more accurate errors for interpolations (#62258)
    remove TypeScript from linker (#61618)

    compiler-cli

    Commit Description
    add experimental support for fast type declaration emission (#61334)
    support host directives with direct external references in fast type declaration emission (#61469)
    add signal checks to handle negated calls (#59970)
    rename flag for enabling fast type declaration emission (#61353)
    symbol builder duplicating host directives (#61240)
    typo in NG2026 message (#61325)

    core

    Commit Description
    Add destroyed property on DestroyRef (#61849)
    Add destroyed property to EnvironmentInjector (#61951)
    support bindings in TestBed (#62040)
    fakeAsync should not depend on module import order (#61375)
    Fixes template outlet hydration (#61989)
    missing useExisting providers throwing for optional calls (#61137)
    update min Node.js support to 20.19, 22.12, and 24.0 (#61499)
    avoid intermediate arrays in definition (#61445)
    move property remapping for dom properties to compiler (#62421)

    forms

    Commit Description
    Allow ControlState as reset arguments for FormGroup/FormRecord (#55860)
    improve select performance (#61949)

    http

    Commit Description
    add cache & priority support for fetch requests in httpResource (#62301)
    add credentials support for fetch requests in httpResource (#62390)
    add keepalive support for fetch requests in httpResource (#61833)
    add mode & redirect for fetch request in httpResource (#62337)
    Add support for fetch credentials options in HttpClient (#62354)
    add support for fetch mode and redirect options in HttpClient (#62315)
    Add support for fetch request cache and priority options (#61766)
    add timeout option on httpResource. (#62326)
    Add timeout option to HTTP requests (#57194)
    add warning when withCredentials overrides explicit credentials (#62383)

    language-service

    Commit Description
    add semantic tokens for templates (#60260)
    Support importing the external module's export about the angular metadata. (#61122)
    support to fix missing required inputs diagnostic (#50911)

    router

    Commit Description
    Run loadComponent and loadChildren functions in the route's injection context (#62133)

    service-worker

    Commit Description
    support notification closes (#61442)
    support push subscription changes (#61856)
    Open source →
    Additional notes

    common

    Commit Type Description
    58aedc37d1 feat add support for a custom EnvironmentInjector to NgComponentOutlet directive (#54764)
    ef10aa4005 feat support decoding in NgOptimizedImage (#61905)

    compiler

    Commit Type Description
    0dcf230d52 feat add support for new binary assignment operators (#62064)
    5a76826d26 fix only report parser errors on invalid expression (#61793)
    089ad0ee15 fix produce more accurate errors for interpolations (#62258)
    e9fcbb8af1 fix remove TypeScript from linker (#61618)

    compiler-cli

    Commit Type Description
    e62fb359d6 feat add experimental support for fast type declaration emission (#61334)
    0cf1001715 feat support host directives with direct external references in fast type declaration emission (#61469)
    b7ab5fa256 fix add signal checks to handle negated calls (#59970)
    77fa204ad1 fix rename flag for enabling fast type declaration emission (#61353)
    c439d6938d fix symbol builder duplicating host directives (#61240)
    3e1baa5a95 fix typo in NG2026 message (#61325)

    core

    Commit Type Description
    8163a8995e feat Add destroyed property on DestroyRef (#61849)
    737b35b684 feat Add destroyed property to EnvironmentInjector (#61951)
    2e0c98bd3f feat support bindings in TestBed (#62040)
    4356e85456 fix fakeAsync should not depend on module import order (#61375)
    8424b3bcd5 fix Fixes template outlet hydration (#61989)
    583b9a7be5 fix missing useExisting providers throwing for optional calls (#61137)
    8f65223bd8 fix update min Node.js support to 20.19, 22.12, and 24.0 (#61499)
    b785256b9e perf avoid intermediate arrays in definition (#61445)
    56769de4d8 perf move property remapping for dom properties to compiler (#62421)

    forms

    Commit Type Description
    610bebfce9 fix Allow ControlState as reset arguments for FormGroup/FormRecord (#55860)
    4f0221e193 fix improve select performance (#61949)

    http

    Commit Type Description
    55fa38a1e5 feat add cache & priority support for fetch requests in httpResource (#62301)
    b6ef42843c feat add credentials support for fetch requests in httpResource (#62390)
    73269cf5ce feat add keepalive support for fetch requests in httpResource (#61833)
    27b7ec0a62 feat add mode & redirect for fetch request in httpResource (#62337)
    f0965c7acd feat Add support for fetch credentials options in HttpClient (#62354)
    87322449a3 feat add support for fetch mode and redirect options in HttpClient (#62315)
    9791ab1b6f feat Add support for fetch request cache and priority options (#61766)
    aa861c42ff feat add timeout option on httpResource. (#62326)
    c4cffe2063 feat Add timeout option to HTTP requests (#57194)
    cfbbb08437 feat add warning when withCredentials overrides explicit credentials (#62383)

    language-service

    Commit Type Description
    20c1f991e6 feat add semantic tokens for templates (#60260)
    cf55d1bdd4 feat Support importing the external module's export about the angular metadata. (#61122)
    5d2e85920e feat support to fix missing required inputs diagnostic (#50911)

    router

    Commit Type Description
    9833d9ea47 feat Run loadComponent and loadChildren functions in the route's injection context (#62133)

    service-worker

    Commit Type Description
    c67dbda8ff feat support notification closes (#61442)
    6e1df54799 feat support push subscription changes (#61856)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.0.6"></a>

    Open source →
  44. 20.1.0-rc.01 Jul 2025pre-release
    Release notes

    common

    Commit Description
    add support for a custom EnvironmentInjector to NgComponentOutlet directive (#54764)

    compiler

    Commit Description
    produce more accurate errors for interpolations (#62258)

    http

    Commit Description
    add cache & priority support for fetch requests in httpResource (#62301)
    add credentials support for fetch requests in httpResource (#62390)
    add mode & redirect for fetch request in httpResource (#62337)
    Add support for fetch credentials options in HttpClient (#62354)
    add support for fetch mode and redirect options in HttpClient (#62315)
    add timeout option on httpResource. (#62326)
    Add timeout option to HTTP requests (#57194)
    add warning when withCredentials overrides explicit credentials (#62383)
    Open source →
  45. 20.1.0-next.325 Jun 2025pre-release
    Release notes

    compiler

    Commit Description
    add support for new binary assignment operators (#62064)

    compiler-cli

    Commit Description
    add suggestion when pipe is missing (#62146)
    handle initializer APIs wrapped in type casts (#62203)

    core

    Commit Description
    Add destroyed property to EnvironmentInjector (#61951)
    allow to set a resource in an error state (#62253)
    avoid injecting ErrorHandler from a destroyed injector (#61886)
    unable to retrieve defer blocks in tests when component injects ViewContainerRef (#62156)

    http

    Commit Description
    add keepalive support for fetch requests in httpResource (#61833)
    Add support for fetch request cache and priority options (#61766)

    language-service

    Commit Description
    add semantic tokens for templates (#60260)
    support to fix missing required inputs diagnostic (#50911)

    router

    Commit Description
    Run loadComponent and loadChildren functions in the route's injection context (#62133)
    handle scrollRestoration error in restricted environments (#62186)

    upgrade

    Commit Description
    Make zoneless work with hybrid apps (#61660)
    Open source →
  46. 20.1.0-next.218 Jun 2025pre-release
    Release notes

    core

    Commit Description
    support bindings in TestBed (#62040)
    Fixes template outlet hydration (#61989)
    inject APP_ID before injector is destroyed (#61885)
    Wrap ErrorEvent with no error property (#62081)

    migrations

    Commit Description
    more robust trailing comma removal in unused imports migration (#62118)
    Open source →
  47. 20.1.0-next.111 Jun 2025pre-release
    Release notes

    common

    Commit Description
    support decoding in NgOptimizedImage (#61905)

    compiler-cli

    Commit Description
    add signal checks to handle negated calls (#59970)

    core

    Commit Description
    components marked for traversal resets reactive context (#61663)
    unregister onDestroy in outputToObservable (#61882)

    forms

    Commit Description
    improve select performance (#61949)
    Open source →
  48. 20.1.0-next.04 Jun 2025pre-release
    Release notes

    compiler

    Commit Description
    only report parser errors on invalid expression (#61793)
    remove TypeScript from linker (#61618)

    compiler-cli

    Commit Description
    add experimental support for fast type declaration emission (#61334)
    support host directives with direct external references in fast type declaration emission (#61469)
    rename flag for enabling fast type declaration emission (#61353)
    symbol builder duplicating host directives (#61240)
    typo in NG2026 message (#61325)

    core

    Commit Description
    Add destroyed property on DestroyRef (#61849)
    fakeAsync should not depend on module import order (#61375)
    missing useExisting providers throwing for optional calls (#61137)
    update min Node.js support to 20.19, 22.12, and 24.0 (#61499)
    avoid intermediate arrays in definition (#61445)

    forms

    Commit Description
    Allow ControlState as reset arguments for FormGroup/FormRecord (#55860)

    language-service

    Commit Description
    Support importing the external module's export about the angular metadata. (#61122)

    service-worker

    Commit Description
    support notification closes (#61442)
    support push subscription changes (#61856)
    Open source →
  49. 20.0.79 Jul 2025
    Release notes

    compiler-cli

    Commit Description
    use proper name for diagnostic type (#62479)
    Open source →
  50. 20.0.61 Jul 2025
    Release notes

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.0.5"></a>

    Open source →
  51. 20.0.525 Jun 2025
    Release notes

    compiler-cli

    Commit Description
    add suggestion when pipe is missing (#62146)
    handle initializer APIs wrapped in type casts (#62203)

    core

    Commit Description
    allow to set a resource in an error state (#62253)
    avoid injecting ErrorHandler from a destroyed injector (#61886)
    unable to retrieve defer blocks in tests when component injects ViewContainerRef (#62156)

    router

    Commit Description
    handle scrollRestoration error in restricted environments (#62186)

    upgrade

    Commit Description
    Make zoneless work with hybrid apps (#61660)
    Open source →
    Additional notes

    compiler-cli

    Commit Type Description
    de0d525ad7 fix add suggestion when pipe is missing (#62146)
    3eb5a79a83 fix handle initializer APIs wrapped in type casts (#62203)

    core

    Commit Type Description
    a2e6f317a7 fix allow to set a resource in an error state (#62253)
    4c00238a69 fix avoid injecting ErrorHandler from a destroyed injector (#61886)
    369f03ad7f fix unable to retrieve defer blocks in tests when component injects ViewContainerRef (#62156)

    router

    Commit Type Description
    65c59dd796 fix handle scrollRestoration error in restricted environments (#62186)

    upgrade

    Commit Type Description
    144c429230 fix Make zoneless work with hybrid apps (#61660)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.0.4"></a>

    Open source →
  52. 20.0.418 Jun 2025
    Release notes

    core

    Commit Description
    Fixes template outlet hydration (#62012)
    inject APP_ID before injector is destroyed (#61885)
    Wrap ErrorEvent with no error property (#62081)

    migrations

    Commit Description
    more robust trailing comma removal in unused imports migration (#62118)
    Open source →
    Additional notes

    core

    Commit Type Description
    e343cdfb86 fix Fixes template outlet hydration (#62012)
    67f657e4a3 fix inject APP_ID before injector is destroyed (#61885)
    ae212b51ee fix Wrap ErrorEvent with no error property (#62081)

    migrations

    Commit Type Description
    82bf9848a1 fix more robust trailing comma removal in unused imports migration (#62118)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.0.3"></a>

    Open source →
  53. 20.0.311 Jun 2025
    Release notes

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.0.2"></a>

    Open source →
  54. 20.0.26 Jun 2025
    Release notes

    core

    Commit Description
    components marked for traversal resets reactive context (#61663)
    unregister onDestroy in outputToObservable (#61882)
    Open source →
    Additional notes

    core

    Commit Type Description
    1e8158baee fix components marked for traversal resets reactive context (#61663)
    1cd23be57e fix unregister onDestroy in outputToObservable (#61882)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.0.1"></a>

    Open source →
  55. 20.0.14 Jun 2025
    Release notes

    compiler

    Commit Description
    move defer trigger assertions out of parser (#61747)
    recover invalid parenthesized expressions (#61815)

    core

    Commit Description
    takeUntilDestroyed completes immediately if DestroyRef already destroyed (#61847)
    produce an error when incremental hydration is expected, but not configured (#61741)
    properly handle the case where getSignalGraph is called on a componentless NodeInjector (#60772)
    unregister onDestroy in ResourceImpl when destroy() is called (#61870)
    unregister onDestroy when observable errors in toSignal (#61596)

    migrations

    Commit Description
    avoid trailing whitespaces in unused imports migration (#61698)

    service-worker

    Commit Description
    prevent duplicate fetches during concurrent update checks (#61443)
    update service worker to handle seeking better for videos (#60029)
    Open source →
    Additional notes

    compiler

    Commit Type Description
    66a0ec6510 fix move defer trigger assertions out of parser (#61747)
    8ecb1ba027 fix recover invalid parenthesized expressions (#61815)

    core

    Commit Type Description
    8c60cbfd1c fix takeUntilDestroyed completes immediately if DestroyRef already destroyed (#61847)
    b1d960d082 fix produce an error when incremental hydration is expected, but not configured (#61741)
    b4ed62ddf6 fix properly handle the case where getSignalGraph is called on a componentless NodeInjector (#60772)
    ddd22bea48 fix unregister onDestroy in ResourceImpl when destroy() is called (#61870)
    5c31e7e28d fix unregister onDestroy when observable errors in toSignal (#61596)

    migrations

    Commit Type Description
    e9820a6d48 fix avoid trailing whitespaces in unused imports migration (#61698)

    service-worker

    Commit Type Description
    b93fa22f25 fix prevent duplicate fetches during concurrent update checks (#61443)
    9743bd1317 fix update service worker to handle seeking better for videos (#60029)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.0.0"></a>

    Open source →
  56. 20.0.028 May 2025
    Release notes

    Blog post: https://blog.angular.dev/announcing-angular-v20-b5c9c06cf301

    common

    Commit Description
    accept undefined inputs in NgTemplateOutlet (#61404)
    Allow passing ScrollOptions to ViewportScroller (#61002)
    throw error for suspicious date patterns (#59798)
    cleanup updateLatestValue if view is destroyed before promise resolves (#58041)
    Handle errors in async pipe subscriptions (#60057)
    issue a warning instead of an error when NgOptimizedImage exceeds the preload limit (#60879)
    rename httpResource function in factory (#60022)
    resolve host binding type issues (#60481)

    compiler

    Commit Description
    add extended diagnostic for uninvoked track function on @for blocks (#60495)
    support exponentiation operator in templates (#59894)
    support tagged template literals in expressions (#59947)
    support the in keyword in Binary expression (#58432)
    support void operator in templates (#59894)
    error if rawText isn't estimated correctly (#60529)
    exponentiation should be right-to-left associative (#60101)
    incorrect spans for template literals (#60323)
    incorrectly handling let declarations inside i18n (#60512)
    proper handling of typeof, void in RecursiveAstVisitor (#60101)
    remove TypeScript from linker (#61635)
    reduce allocations for let declarations only used in the same view (#60512)

    compiler-cli

    Commit Description
    add extended diagnostic for invalid nullish coalescing (#60279)
    detect missing structural directive imports (#59443)
    support type checking of host bindings (#60267)
    avoid fatal diagnostics for invalid module schemas (#61220)
    avoid fatal diagnostics for missing template files (#58673)
    correctly parse event name in HostListener (#60561)
    preserve required parens for nullish coalescing (#60060)
    preserve required parens in exponentiation expressions (#60101)
    set correct target when type checking events (#60561)
    wrong event name for host listener decorators (#60460)

    core

    Commit Description
    add hook for producer creation side effects (#60333)
    add input binding support to dynamically-created components (#60137)
    Add provider which reports unhandled errors on window to ErrorHandler (#60704)
    add support for two-way bindings on dynamically-created components (#60342)
    add the ability to apply directives to dynamically-created components (#60137)
    drop support for TypeScript older than 5.8 (#60197)
    emit template function for template related profiler hooks (#60174)
    export signalGetFn from signal primitives (#60497)
    Expose Injector.destroy on Injector created with Injector.create (#60054)
    expose performance data in Chrome DevTools (#60789)
    introduce new DI profiling event (#60158)
    introduce TestBed.tick() (#60993)
    mark toObservable as stable (#60449)
    mark linkedSignal API as public (#60865)
    mark the toSignal API as stable (#60442)
    move provideExperimentalCheckNoChangesForDebug to provideCheckNoChangesConfig (#60906)
    move DOCUMENT token into core (#60663)
    Move zoneless change detection to dev preview (#60748)
    remove InjectFlags from public API (#60318)
    remove TestBed.get (#60414)
    rename afterRender to afterEveryRender and stabilize (#60999)
    stabilize incremental hydration api (#60888)
    stabilize linkedSignal API (#60741)
    Stabilize PendingTasks Injectable (#60716)
    stabilize withI18nSupport() api (#60889)
    support listening to outputs on dynamically-created components (#60137)
    update Node.js version support (#60545)
    add migration away from InjectFlags (#60318)
    added @angular/compiler as a peer dependency (#55610)
    call DestroyRef on destroy callback if view is destroyed (#58008)
    Catch and report rejections in async function of PendingTasks.run (#60044)
    defer block render failures should report to application error handler (#60149)
    do not allow setInput to be used with inputBinding (#60137)
    do not run change detection on global error events (#60944)
    enable stashing only when withEventReplay() is invoked (#61077)
    Ensure ComponentFixture does not duplicate error reporting from FakeAsync (#60104)
    Ensure errors in listeners report to the application error handler (#60251)
    fix typing on injector.get to omit 'any' (#60202)
    fixes timing of hydration cleanup on control flow (#60425)
    Flush animations when no component has been checked (#58089)
    getting resource value throws an error instead of returning undefined (#61441)
    handle different DI token types in Chrome DevTools integration (#61333)
    inject migration should treat @Attribute as optional (#60916)
    input targeting not checking if input exists on host (#60137)
    mark zone.js as an optional peer dependency (#61616)
    move reload method from Resource to WritableResource (#61441)
    narrow error type for resources API (#61441)
    prevent stash listener conflicts (#59635)
    properly handle app stabilization with defer blocks (#61040)
    reading resource value after reload in the error state (#61441)
    reduce total memory usage of various migration schematics (#60774)
    release hasPendingTasks observers (#59723)
    remove forceRoot flag for effects (#60535)
    remove rejectErrors option encourages uncaught exceptions (#60397)
    Remove duplicate reporting of errors in CDR.detectChanges (#60056)
    remove unused parameter from listener instruction (#60406)
    run ApplicationRef.prototype.bootstrap in NgZone (#60720)
    run root effects in creation order (#60534)
    Surface errors from ApplicationRef.tick to callsite (#60102)
    TestBed.tick should ensure test components are synchronized (#61382)
    Testing should not throw when Zone does not patch test FW APIs (#61628)
    update min Node.js support to 20.19, 22.12, and 24.0 (#61500)
    Deprecate the structural directives ngIf/ngFor/ngSwitch. (#60492)
    stop producing ng-reflect attributes by default (#60973)

    forms

    Commit Description
    add markAllAsDirty to AbstractControl (#58663)
    Allow to reset a form without emitting events (#60354)
    Make sure statusChanges is emitted (#57098)
    resolve host binding type issues (#60481)

    http

    Commit Description
    add keepalive support for fetch requests (#60621)
    Delay stabilization until next app synchronization (#60656)

    platform-browser

    Commit Description
    Deprecate the platform-browser-dynamic package (#61043)
    Deprecate the HammerJS integration (#60257)

    platform-server

    Commit Description
    deprecate the testing entry point (#60915)

    router

    Commit Description
    Add ability to directly abort a navigation (#60380)
    add asynchronous redirects (#60863)
    Allow resolvers to read resolved data from ancestors (#59860)
    support custom elements for RouterLink (#60290)
    Prevent dangling promise rejections from internal navigations (#60162)
    relax required types on router commands to readonly array (#60345)
    Remove 'any' type from route guards (#60378)
    Scroller should scroll as soon as change detection completes (#60086)

    Breaking Changes

    common

    • Using the Y formatter (week-numbering year) without also including w (week number) is now detected as suspicious date pattern, as y is typically intended.
    • AsyncPipe now directly catches unhandled errors in subscriptions and promises and reports them to the application's ErrorHandler. For Zone-based applications, these errors would have been caught by ZoneJS and reported to ErrorHandler so the result is generally the same. The change to the exact mechanism for reporting can result in differences in test environments that will require test updates.

    compiler

    • 'in' in an expression now refers to the operator

    • void in an expression now refers to the operator

      Previously an expression in the template like {{void}} referred to a property on the component class. After this change it now refers to the void operator, which would make the above example invalid. If you have existing expressions that need to refer to a property named void, change the expression to use this.void instead: {{this.void}}.

    core

      • TypeScript versions less than 5.8 are no longer supported.
    • the TestBed.flushEffects() was removed - use the TestBed.tick() instead.

    • provideExperimentalCheckNoChangesForDebug has several breaking changes:

      • It is renamed to provideCheckNoChangesConfig
      • The behavior applies to all checkNoChanges runs
      • The useNgZoneOnStable option is removed. This wasn't found to be generally more useful than interval
    • provideExperimentalZonelessChangeDetection is renamed to provideZonelessChangeDetection as it is now "Developer Preview" rather than "Experimental".

      • InjectFlags has been removed.
      • inject no longer accepts InjectFlags.
      • Injector.get no longer accepts InjectFlags.
      • EnvironmentInjector.get no longer accepts InjectFlags.
      • TestBed.get no longer accepts InjectFlags.
      • TestBed.inject no longer accepts InjectFlags.
      • TestBed.get has been removed. Use TestBed.inject instead.
    • afterRender was renamed to afterEveryRender.

      • Angular no longer supports Node.js v18.
      • Node.js versions 22.0 to 22.10 are also no longer supported.

      Before upgrading to Angular v20, ensure the Node.js version is at least 20.11.1. For the full list of supported versions, visit: https://angular.dev/reference/versions

    • PendingTasks.run no longer returns the result of the async function. If this behavior is desired, it can be re-implemented manually with the PendingTasks.add. Be aware, however, that promise rejections will need to be handled or they can cause the node process to shut down when using SSR.

    • Uncaught errors in listeners which were previously only reported to ErrorHandler are now also reported to Angular's internal error handling machinery. For tests, this means that the error will be rethrown by default rather than only logging the error. Developers should fix these errors, catch them in the test if the test is intentionally covering an error case, or use rethrowApplicationErrors: false in configureTestingModule as a last resort.

    • The any overload has been removed from injector.get. It now only supports ProviderToken<T> and (deprecated since v4) string.

    • Animations are guaranteed to be flushed when Angular runs automatic change detection or manual calls to ApplicationRef.tick. Prior to this change, animations would not be flushed in some situations if change detection did not run on any views attached to the application. This change can affect tests which may rely on the old behavior, often by making assertions on DOM elements that should have been removed but weren't because DOM removal is delayed until animations are flushed.

    • ApplicationRef.tick will no longer catch and report errors to the appplication ErrorHandler. Errors will instead be thrown out of the method and will allow callers to determine how to handle these errors, such as aborting follow-up work or reporting the error and continuing.

    • This commit deprecates ng-reflect-* attributes and updates the runtime to stop producing them by default. Please refactor application and test code to avoid relying on ng-reflect-* attributes.

      To enable a more seamless upgrade to v20, we've added the provideNgReflectAttributes() function (can be imported from the @angular/core package), which enables the mode in which Angular would be producing those attribites (in dev mode only). You can add the provideNgReflectAttributes() function to the list of providers within the bootstrap call.

    router

    • The RedirectFn can now return Observable or Promise. Any code that directly calls functions returning this type may need to be adjusted to account for this.
    • Several methods in the public API of the Router which required writable arrays have now been updated to accept readonly arrays when no mutations are done.
    • The guards arrays on Route no longer include any in the type union. The union includes functions for the functional guards as well as a type matching Injector.get: ProviderToken<T>|string. Note that string is still deprecated on both the route guards and Injector.get.

    Deprecations

    core

    • ngIf/ngFor/ngSwitch are deprecated. Use the control flow blocks instead (@for/@if/@switch).

    platform-browser

    • All entries of the @angular/platform-browser-dynamic
    • HammerJS support is deprecated and will be removed in a future major version.

    platform-server

    • @angular/platform-server/testing

      Use e2e tests to verify SSR behavior instead.

    Open source →
    Additional notes

    Blog post: https://blog.angular.dev/announcing-angular-v20-b5c9c06cf301

    Breaking Changes

    common

    • Using the Y formatter (week-numbering year) without also including w (week number) is now detected as suspicious date pattern, as y is typically intended.
    • AsyncPipe now directly catches unhandled errors in subscriptions and promises and reports them to the application's ErrorHandler. For Zone-based applications, these errors would have been caught by ZoneJS and reported to ErrorHandler so the result is generally the same. The change to the exact mechanism for reporting can result in differences in test environments that will require test updates.

    compiler

    • 'in' in an expression now refers to the operator

    • void in an expression now refers to the operator

      Previously an expression in the template like {{void}} referred to a property on the component class. After this change it now refers to the void operator, which would make the above example invalid. If you have existing expressions that need to refer to a property named void, change the expression to use this.void instead: {{this.void}}.

    • Parenthesis are always respected.

      This can lead to runtime breakages when a nullish coalescing operator is nested within parentheses. eg. {{ (foo?.bar).baz }} will throw if foo is nullish. This is the same behavior as native JavaScript.

    core

    • TypeScript versions less than 5.8 are no longer supported.

    • the TestBed.flushEffects() was removed - use the TestBed.tick() instead.

    • provideExperimentalCheckNoChangesForDebug has several breaking changes:

      • It is renamed to provideCheckNoChangesConfig
      • The behavior applies to all checkNoChanges runs
      • The useNgZoneOnStable option is removed. This wasn't found to be generally more useful than interval
    • provideExperimentalZonelessChangeDetection is renamed to provideZonelessChangeDetection as it is now "Developer Preview" rather than "Experimental".

      • InjectFlags has been removed.
      • inject no longer accepts InjectFlags.
      • Injector.get no longer accepts InjectFlags.
      • EnvironmentInjector.get no longer accepts InjectFlags.
      • TestBed.get no longer accepts InjectFlags.
      • TestBed.inject no longer accepts InjectFlags.
      • TestBed.get has been removed. Use TestBed.inject instead.
    • afterRender was renamed to afterEveryRender.

      • Angular no longer supports Node.js v18.
      • Node.js versions 22.0 to 22.10 are also no longer supported.

      Before upgrading to Angular v20, ensure the Node.js version is at least 20.11.1. For the full list of supported versions, visit: https://angular.dev/reference/versions

    • PendingTasks.run no longer returns the result of the async function. If this behavior is desired, it can be re-implemented manually with the PendingTasks.add. Be aware, however, that promise rejections will need to be handled or they can cause the node process to shut down when using SSR.

    • Uncaught errors in listeners which were previously only reported to ErrorHandler are now also reported to Angular's internal error handling machinery. For tests, this means that the error will be rethrown by default rather than only logging the error. Developers should fix these errors, catch them in the test if the test is intentionally covering an error case, or use rethrowApplicationErrors: false in configureTestingModule as a last resort.

    • The any overload has been removed from injector.get. It now only supports ProviderToken<T> and (deprecated since v4) string.

    • Animations are guaranteed to be flushed when Angular runs automatic change detection or manual calls to ApplicationRef.tick. Prior to this change, animations would not be flushed in some situations if change detection did not run on any views attached to the application. This change can affect tests which may rely on the old behavior, often by making assertions on DOM elements that should have been removed but weren't because DOM removal is delayed until animations are flushed.

    • ApplicationRef.tick will no longer catch and report errors to the application ErrorHandler. Errors will instead be thrown out of the method and will allow callers to determine how to handle these errors, such as aborting follow-up work or reporting the error and continuing.

    • This commit deprecates ng-reflect-* attributes and updates the runtime to stop producing them by default. Please refactor application and test code to avoid relying on ng-reflect-* attributes.

      To enable a more seamless upgrade to v20, we've added the provideNgReflectAttributes() function (can be imported from the @angular/core package), which enables the mode in which Angular would be producing those attribites (in dev mode only). You can add the provideNgReflectAttributes() function to the list of providers within the bootstrap call.

    router

    • The RedirectFn can now return Observable or Promise. Any code that directly calls functions returning this type may need to be adjusted to account for this.
    • Several methods in the public API of the Router which required writable arrays have now been updated to accept readonly arrays when no mutations are done.
    • The guards arrays on Route no longer include any in the type union. The union includes functions for the functional guards as well as a type matching Injector.get: ProviderToken<T>|string. Note that string is still deprecated on both the route guards and Injector.get.

    Deprecations

    core

    • ngIf/ngFor/ngSwitch are deprecated. Use the control flow blocks instead (@for/@if/@switch).

    platform-browser

    • All entries of the @angular/platform-browser-dynamic
    • HammerJS support is deprecated and will be removed in a future major version.

    platform-server

    • @angular/platform-server/testing

      Use e2e tests to verify SSR behavior instead.

    common

    Commit Type Description
    2e5362a469 feat accept undefined inputs in NgTemplateOutlet (#61404)
    b7d3f3dbfc feat Allow passing ScrollOptions to ViewportScroller (#61002)
    74cceba587 feat throw error for suspicious date patterns (#59798)
    255c79e048 fix cleanup updateLatestValue if view is destroyed before promise resolves (#58041)
    739cadae62 fix Handle errors in async pipe subscriptions (#60057)
    cbbea70fa3 fix issue a warning instead of an error when NgOptimizedImage exceeds the preload limit (#60879)
    fc4a56d5c5 fix rename httpResource function in factory (#60022)
    785a1110e6 fix resolve host binding type issues (#60481)

    compiler

    Commit Type Description
    7a971766dc feat add extended diagnostic for uninvoked track function on @for blocks (#60495)
    f2d5cf7edd feat support exponentiation operator in templates (#59894)
    51b8ff23ce feat support tagged template literals in expressions (#59947)
    1b8e7ab9fe feat support the in keyword in Binary expression (#58432)
    0361c2d81f feat support void operator in templates (#59894)
    8b990a31c3 fix error if rawText isn't estimated correctly (#60529)
    4fe489f1b4 fix exponentiation should be right-to-left associative (#60101)
    ef1fd137a9 fix incorrect spans for template literals (#60323)
    e0d378d20e fix incorrectly handling let declarations inside i18n (#60512)
    b70ad3c4e6 fix proper handling of typeof, void in RecursiveAstVisitor (#60101)
    e25e6c95a2 fix remove TypeScript from linker (#61635)
    768239a89c perf reduce allocations for let declarations only used in the same view (#60512)

    compiler-cli

    Commit Type Description
    bec1610da2 feat add extended diagnostic for invalid nullish coalescing (#60279)
    c889382a20 feat detect missing structural directive imports (#59443)
    1971e57a45 feat support type checking of host bindings (#60267)
    9ec9c7e1b8 fix avoid fatal diagnostics for invalid module schemas (#61220)
    a1cacc5b17 fix avoid fatal diagnostics for missing template files (#58673)
    1e6faad479 fix correctly parse event name in HostListener (#60561)
    ffb19e64f1 fix preserve required parens for nullish coalescing (#60060)
    7c9b4892e9 fix preserve required parens in exponentiation expressions (#60101)
    7e03af898e fix set correct target when type checking events (#60561)
    2d51a203dc fix wrong event name for host listener decorators (#60460)

    core

    Commit Type Description
    22d3f0562c feat add hook for producer creation side effects (#60333)
    fe57332fc5 feat add input binding support to dynamically-created components (#60137)
    65adb3024d feat Add provider which reports unhandled errors on window to ErrorHandler (#60704)
    b154fb3911 feat add support for two-way bindings on dynamically-created components (#60342)
    82aa2c1a52 feat add the ability to apply directives to dynamically-created components (#60137)
    326d48afb4 feat drop support for TypeScript older than 5.8 (#60197)
    d260ca3091 feat emit template function for template related profiler hooks (#60174)
    a4bad8d361 feat export signalGetFn from signal primitives (#60497)
    4812215a7b feat Expose Injector.destroy on Injector created with Injector.create (#60054)
    c1bcae91dd feat expose performance data in Chrome DevTools (#60789)
    809b5b4596 feat introduce new DI profiling event (#60158)
    d5fd7349fb feat introduce TestBed.tick() (#60993)
    4e88e18a8e feat mark toObservable as stable (#60449)
    727cda3856 feat mark linkedSignal API as public (#60865)
    644d9f3bbd feat mark the toSignal API as stable (#60442)
    e711f99d81 feat move provideExperimentalCheckNoChangesForDebug to provideCheckNoChangesConfig (#60906)
    7ccec1494f feat move DOCUMENT token into core (#60663)
    953c4b2580 feat Move zoneless change detection to dev preview (#60748)
    611baaf069 feat remove InjectFlags from public API (#60318)
    5e209cb560 feat remove TestBed.get (#60414)
    d8fbb909ce feat rename afterRender to afterEveryRender and stabilize (#60999)
    567522398f feat stabilize incremental hydration api (#60888)
    8d050b5bfc feat stabilize linkedSignal API (#60741)
    866cea9a05 feat Stabilize PendingTasks Injectable (#60716)
    bf8492b871 feat stabilize withI18nSupport() api (#60889)
    be44cc8f40 feat support listening to outputs on dynamically-created components (#60137)
    fe9b79b615 feat update Node.js version support (#60545)
    e170d24240 fix add migration away from InjectFlags (#60318)
    7eb59d3887 fix added @angular/compiler as a peer dependency (#55610)
    7232ce5b17 fix Catch and report rejections in async function of PendingTasks.run (#60044)
    fd12220a35 fix defer block render failures should report to application error handler (#60149)
    3459faadbf fix do not allow setInput to be used with inputBinding (#60137)
    0ac949c266 fix do not run change detection on global error events (#60944)
    4fe34f4cfe fix enable stashing only when withEventReplay() is invoked (#61077)
    962b59b14e fix Ensure ComponentFixture does not duplicate error reporting from FakeAsync (#60104)
    7b819be83f fix Ensure errors in listeners report to the application error handler (#60251)
    ff772d7800 fix fix typing on injector.get to omit 'any' (#60202)
    13d1c8ab38 fix fixes timing of hydration cleanup on control flow (#60425)
    0b69b61929 fix Flush animations when no component has been checked (#58089)
    3ba39bc28f fix getting resource value throws an error instead of returning undefined (#61441)
    ca6295e90b fix handle different DI token types in Chrome DevTools integration (#61333)
    0162ceb427 fix inject migration should treat @Attribute as optional (#60916)
    ea5eb28865 fix input targeting not checking if input exists on host (#60137)
    c8951159ac fix mark zone.js as an optional peer dependency (#61616)
    d62379bb13 fix move reload method from Resource to WritableResource (#61441)
    a89f1cff24 fix narrow error type for resources API (#61441)
    624be2ef0c fix prevent stash listener conflicts (#59635)
    017cc0a37c fix properly handle app stabilization with defer blocks (#61040)
    6e79eaf739 fix reading resource value after reload in the error state (#61441)
    3d85d9363c fix reduce total memory usage of various migration schematics (#60774)
    1c7b356625 fix release hasPendingTasks observers (#59723)
    43cbc58254 fix remove forceRoot flag for effects (#60535)
    48974c3cf8 fix remove rejectErrors option encourages uncaught exceptions (#60397)
    491b0a4ead fix Remove duplicate reporting of errors in CDR.detectChanges (#60056)
    04d963c0a5 fix remove unused parameter from listener instruction (#60406)
    0ae1889560 fix run ApplicationRef.prototype.bootstrap in NgZone (#60720)
    a611b234d7 fix run root effects in creation order (#60534)
    338818ce89 fix Surface errors from ApplicationRef.tick to callsite (#60102)
    350776b412 fix TestBed.tick should ensure test components are synchronized (#61382)
    3d4ddd2247 fix Testing should not throw when Zone does not patch test FW APIs (#61628)
    30e081287d fix update min Node.js support to 20.19, 22.12, and 24.0 (#61500)
    b407157ee8 refactor Deprecate the structural directives ngIf/ngFor/ngSwitch. (#60492)
    c2987d8402 refactor stop producing ng-reflect attributes by default (#60973)

    forms

    Commit Type Description
    a07ee60989 feat add markAllAsDirty to AbstractControl (#58663)
    bdfbd54932 feat Allow to reset a form without emitting events (#60354)
    81fe0536fd fix Make sure statusChanges is emitted (#57098)
    bdd5e20423 fix resolve host binding type issues (#60481)

    http

    Commit Type Description
    ccc5cc068f feat add keepalive support for fetch requests (#60621)
    5795e03cdf fix Delay stabilization until next app synchronization (#60656)

    platform-browser

    Commit Type Description
    bc2cab747f refactor Deprecate the platform-browser-dynamic package (#61043)
    a980ac9a6a refactor Deprecate the HammerJS integration (#60257)

    platform-server

    Commit Type Description
    2240a21c97 refactor deprecate the testing entry point (#60915)

    router

    Commit Type Description
    0bb4bd661e feat Add ability to directly abort a navigation (#60380)
    62de7d930a feat add asynchronous redirects (#60863)
    7c12cb1df9 feat Allow resolvers to read resolved data from ancestors (#59860)
    ff98ccb193 feat support custom elements for RouterLink (#60290)
    219f41d049 fix Prevent dangling promise rejections from internal navigations (#60162)
    2419060fef fix relax required types on router commands to readonly array (#60345)
    c57951d58f fix Remove 'any' type from route guards (#60378)
    db2f2d99c8 fix Scroller should scroll as soon as change detection completes (#60086)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="19.2.14"></a>

    Open source →
  57. 20.0.0-rc.327 May 2025pre-release
    Release notes

    common

    Commit Description
    accept undefined inputs in NgTemplateOutlet (#61404)
    avoid injecting ApplicationRef in FetchBackend (#61649)

    compiler

    Commit Description
    lexer support for template literals in object literals (#61601)
    remove TypeScript from linker (#61635)

    core

    Commit Description
    mark zone.js as an optional peer dependency (#61616)
    Testing should not throw when Zone does not patch test FW APIs (#61628)

    migrations

    Commit Description
    preserve comments when removing unused imports (#61674)

    service-worker

    Commit Description
    do not register service worker if app is destroyed before it is ready to register (#61101)
    Open source →
  58. 20.0.0-rc.221 May 2025pre-release
    Release notes

    common

    Commit Description
    cancel reader when app is destroyed (#61528)
    prevent reading chunks if app is destroyed (#61354)

    compiler

    Commit Description
    avoid conflicts between HMR code and local symbols (#61550)

    compiler-cli

    Commit Description
    Always retain prior results for all files (#61487)
    avoid ECMAScript private field metadata emit (#61227)

    core

    Commit Description
    cleanup rxResource abort listener (#58306)
    cleanup testability subscriptions (#61261)
    getting resource value throws an error instead of returning undefined (#61441)
    handle different DI token types in Chrome DevTools integration (#61333)
    move reload method from Resource to WritableResource (#61441)
    narrow error type for resources API (#61441)
    reading resource value after reload in the error state (#61441)
    TestBed.tick should ensure test components are synchronized (#61382)
    Testing should not throw when Zone does not patch test FW APIs (#61376)
    unregister onDestroy in toSignal. (#61514)
    update min Node.js support to 20.19, 22.12, and 24.0 (#61500)

    platform-browser

    Commit Description
    Deprecate the platform-browser-dynamic package (#61043)

    platform-server

    Commit Description
    speed up resolution of base (#61392)

    Deprecations

    platform-browser

    • All entries of the @angular/platform-browser-dynamic
    Open source →
  59. 20.0.0-rc.115 May 2025pre-release
    Release notes

    compiler

    Commit Description
    incorrectly handling let declarations inside i18n (#60512)
    reduce allocations for let declarations only used in the same view (#60512)

    compiler-cli

    Commit Description
    avoid fatal diagnostics for invalid module schemas (#61220)

    core

    Commit Description
    enable stashing only when withEventReplay() is invoked (#61077)
    Open source →
  60. 20.0.0-rc.07 May 2025pre-release
    Release notes

    common

    Commit Description
    cleanup updateLatestValue if view is destroyed before promise resolves (#58041)

    core

    Commit Description
    properly handle app stabilization with defer blocks (#61040)

    platform-server

    Commit Description
    less aggressive ngServerMode cleanup (#61106)
    Open source →