Skip to content

Releases: angular/angular

v18.0.0-next.6

25 Apr 15:34
Compare
Choose a tag to compare
v18.0.0-next.6 Pre-release
Pre-release

18.0.0-next.6 (2024-04-25)

animations

Commit Description
refactor - bcce85af72 remove deprecated matchesElement from AnimationDriver (#55479)

common

Commit Description
refactor - d34c033902 Deprecate Local Data API functions (#54483)

compiler-cli

Commit Description
fix - 7a16d7e969 don't type check the bodies of control flow nodes in basic mode (#55360)

core

Commit Description
feat - a730f09ae9 Add a public API to establish events to be replayed and an attribute to mark an element with an event handler. (#55356)
feat - 5f06ca8f55 add HOST_TAG_NAME token (#54751)
feat - ac863ded48 provide ExperimentalPendingTasks API (#55487)
fix - 5a10f405d3 complete the removal of deprecation async function (#55491)
fix - c175bca364 DeferBlockFixture.render should not wait for stability (#55271)
fix - 9894278e71 make ActivatedRoute inject correct instance inside @defer blocks (#55374)
fix - 5948193e13 skip defer timers on the server (#55480)

http

Commit Description
feat - 6f88d80758 allow caching requests with different origins between server and client (#55274)
feat - 8eacb6e4b9 exclude caching for authenticated HTTP requests (#55034)
refactor - ef665a40a5 Deprecate HttpClientModule & related modules (#54020)

migrations

Commit Description
feat - f914f6a362 Migration schematics for HttpClientModule (#54020)

platform-browser

Commit Description
refactor - cba336d4f1 remove deprecated transfer state APIs (#55474)

platform-server

Commit Description
fix - 5674c644ab add nonce attribute to event record script (#55495)

router

Commit Description
feat - 4a42961393 withNavigationErrorHandler can convert errors to redirects (#55370)

Breaking Changes

animations

  • Deprecated matchesElement method has been removed from AnimationDriver as it is unused.

core

  • async has been removed, use waitForAsync instead.

http

  • By default we now prevent caching of HTTP requests that require authorization . To opt-out from this behaviour use the includeRequestsWithAuthHeaders option in withHttpTransferCache.

    Example:

    withHttpTransferCache({
      includeRequestsWithAuthHeaders: true,
    })

platform-browser

  • Deprecated StateKey, TransferState and makeStateKey have been removed from @angular/platform-browser, use the same APIs from @angular/core.

Deprecations

common

  • getCurrencySymbol, getLocaleCurrencyCode, getLocaleCurrencyName, getLocaleCurrencySymbol, getLocaleDateFormat, getLocaleDateTimeFormat, getLocaleDayNames, getLocaleDayPeriods, getLocaleDirection, getLocaleEraNames, getLocaleExtraDayPeriodRules, getLocaleExtraDayPeriods, getLocaleFirstDayOfWeek, getLocaleId, getLocaleMonthNames, getLocaleNumberFormat, getLocaleNumberSymbol, getLocalePluralCase, getLocaleTimeFormat, getLocaleWeekEndRange, getNumberOfCurrencyDigits

http

  • HttpClientModule, HttpClientXsrfModule and HttpClientJsonpModule

    As mentionned, those modules can be replaced by provider function only.

v17.3.6

25 Apr 15:25
Compare
Choose a tag to compare

17.3.6 (2024-04-25)

core

Commit Description
fix - 826861b1fa DeferBlockFixture.render should not wait for stability (#55271)
fix - 5cf14da35c make ActivatedRoute inject correct instance inside @defer blocks (#55374)
fix - 8979fba2c5 skip defer timers on the server (#55480)

v18.0.0-next.5

17 Apr 15:55
Compare
Choose a tag to compare
v18.0.0-next.5 Pre-release
Pre-release

18.0.0-next.5 (2024-04-17)

common

Commit Description
refactor - 3b0de30b37 remove deprecated isPlatformWorkerApp and isPlatformWorkerUi API (#55302)

compiler

Commit Description
fix - 7d5bc1c628 remove container index from conditional instruction (#55190)
fix - 4eb0165750 remove support for unassignable expressions in two-way bindings (#55342)

core

Commit Description
feat - fdd560ea14 Add ability to configure zone change detection to use zoneless scheduler (#55252)
feat - bce5e2344f Add build target for jsaction contract binary. (#55319)
feat - f09c5a7bc4 Add zoneless change detection provider as experimental (#55329)
feat - d28614b90e Modify EventType from an enum to an object. (#55323)
feat - 1ee9f32621 Synchronize changes from internal JSAction codebase. (#55182)
fix - de7447d15e Angular should not ignore changes that happen outside the zone (#55102)
fix - 0cec9e4f9a Fix null dereference error addEvent (#55353)
fix - 6534c035c0 Remove deprecated Testability methods (#53768)

service-worker

Commit Description
fix - 3bc63eaaf3 avoid running CDs on controllerchange (#54222)

Breaking Changes

common

  • The deprecated isPlatformWorkerUi and isPlatformWorkerApp have been removed without replacement, as they serve no purpose since the removal of the WebWorker platform.

compiler

  • Angular only supports writable expressions inside of two-way bindings.

core

  • Angular will ensure change detection runs, even when the state update originates from
    outside the zone, tests may observe additional rounds of change
    detection compared to the previous behavior.

    This change will be more likely to impact existing unit tests.
    This should usually be seen as more correct and the test should be updated,
    but in cases where it is too much effort to debug, the test can revert to the old behavior by adding
    provideZoneChangeDetection({schedulingMode: NgZoneSchedulingMode.NgZoneOnly})
    to the TestBed providers.

    Similarly, applications which may want to update state outside the zone
    and not trigger change detection can add
    provideZoneChangeDetection({schedulingMode: NgZoneSchedulingMode.NgZoneOnly})
    to the providers in bootstrapApplication or add
    schedulingMode: NgZoneSchedulingMode.NgZoneOnly to the
    BootstrapOptions of bootstrapModule.

  • Testability methods increasePendingRequestCount,
    decreasePendingRequestCount and getPendingRequestCount have been
    removed. This information is tracked with zones.

v17.3.5

17 Apr 15:43
Compare
Choose a tag to compare

17.3.5 (2024-04-17)

v18.0.0-next.4

10 Apr 23:18
Compare
Choose a tag to compare
v18.0.0-next.4 Pre-release
Pre-release

18.0.0-next.4 (2024-04-10)

common

Commit Description
fix - 2a6f809507 invalid ImageKit quality parameter (#55193)
fix - 11705f58a7 skip transfer cache on client (#55012)

compiler

Commit Description
fix - 39624c6b12 output input flags as a literal (#55215)

core

Commit Description
fix - e9a0c86766 TestBed should not override NgZone from initTestEnvironment (#55226)

language-service

Commit Description
fix - bd236cc150 implement getDefinitionAtPosition for Angular templates (#55269)

v17.3.4

10 Apr 22:13
Compare
Choose a tag to compare

17.3.4 (2024-04-10)

common

Commit Description
fix - 53427d875d invalid ImageKit quality parameter (#55193)
fix - 766548c3ec skip transfer cache on client (#55012)

v18.0.0-next.3

03 Apr 22:28
Compare
Choose a tag to compare
v18.0.0-next.3 Pre-release
Pre-release

18.0.0-next.3 (2024-04-03)

compiler

Commit Description
fix - f824911510 For FatalDiagnosticError, hide the message field without affecting the emit (#55160)

compiler-cli

Commit Description
fix - c04ffb1fa6 use switch statements to narrow Angular switch blocks (#55168)

core

Commit Description
feat - 666d646575 Add event delegation library to queue up events and replay them when the application is ready (#55121)
feat - 146306a141 add support for i18n hydration (#54823)
fix - 840c375255 do not save point-in-time setTimeout and rAF references (#55124)
fix - 231e0a3528 handle ChainedInjectors in injector debug utils (#55144)
fix - a5fa279b6e prevent i18n hydration from cleaning projected nodes (#54823)
fix - f44a5e4604 support content projection and VCRs in i18n (#54823)
fix - 914e4530b0 test cleanup should not throw if Zone is not present (#55096)
fix - a99cb7ce5b zoneless scheduler should check if Zone is defined before accessing it (#55118)

forms

Commit Description
feat - 1c736dc3b2 Unified Control State Change Events (#54579)

language-service

Commit Description
fix - a48afe0d94 avoid generating TS syntactic diagnostics for templates (#55091)

migrations

Commit Description
fix - 0c20c4075a avoid conflicts with some greek letters in control flow migration (#55113)

platform-browser

Commit Description
feat - 45ae7a6b60 add withI18nSupport() in developer preview (#55130)

router

Commit Description
feat - 87f3f27f90 Allow resolvers to return RedirectCommand (#54556)
fix - 3839cfbb18 Routed components never inherit RouterOutlet EnvironmentInjector (#54265)

Breaking Changes

router

  • Providers available to the routed components always
    come from the injector heirarchy of the routes and never inherit from
    the RouterOutlet. This means that providers available only to the
    component that defines the RouterOutlet will no longer be available to
    route components in any circumstances. This was already the case
    whenever routes defined providers, either through lazy loading an
    NgModule or through explicit providers on the route config.

v17.3.3

03 Apr 20:39
Compare
Choose a tag to compare

17.3.3 (2024-04-03)

core

Commit Description
fix - 158ceaf062 handle ChainedInjectors in injector debug utils (#55144)
fix - 4d043992e5 test cleanup should not throw if Zone is not present (#55096)

migrations

Commit Description
fix - 949dec26b8 avoid conflicts with some greek letters in control flow migration (#55113)

v18.0.0-next.2

28 Mar 17:05
Compare
Choose a tag to compare
v18.0.0-next.2 Pre-release
Pre-release

18.0.0-next.2 (2024-03-28)

compiler

Commit Description
fix - 7fc7f3f05f capture all control flow branches for content projection in if blocks (#54921)
fix - a369f43fbd capture switch block cases for content projection (#54921)
fix - eb625d3783 declare for loop aliases in addition to new name (#54942)
fix - bfd0bd574e invoke method-based tracking function with context (#54960)
fix - e1650e3b13 throw error if item name and context variables conflict (#55045)

compiler-cli

Commit Description
feat - 5bd188a394 add partial compilation support for deferred blocks (#54908)
feat - b02b31a915 drop support for TypeScript older than 5.4 (#54961)
fix - 78188e877a add diagnostic if initializer API is used outside of an initializer (#54993)
fix - 694ba79cbf report cases where initializer APIs are used in a non-directive class (#54993)
fix - 6219341d26 report errors when initializer APIs are used on private fields (#54981)

core

Commit Description
feat - a600a39d0c add support for fallback content in ng-content (#54854)
fix - 658cf8c384 ComponentFixture stability should match ApplicationRef (#54949)
fix - 2fc11eae9e account for re-projected ng-content elements with fallback content (#54854)
fix - 1c0ec56c46 correctly project single-root content inside control flow (#54921)
fix - 86a359b399 establish proper injector resolution order for @defer blocks (#55079)
fix - e02bcf89cf Fix clearing of pending task in zoneless cleanup implementation (#55074)

http

Commit Description
fix - cf73983fdc include transferCache when cloning HttpRequest (#54939)
fix - 13554f9637 manage different body types for caching POST requests (#54980)

language-service

Commit Description
fix - 6d1b82df32 allow external projects to use provided compiler options (#55035)
fix - 4166dfc1b6 prevent underlying TS Service from handling template files (#55003)

migrations

Commit Description
fix - 63688714ae account for variables in imports initializer (#55081)

router

Commit Description
fix - 60f1d681e0 preserve replaceUrl when returning a urlTree from CanActivate (#54042)
fix - eae75ff3f9 RouterLinkActive will always remove active classes when links are not active (#54982)

Breaking Changes

compiler-cli

    • Angular no longer supports TypeScript versions older than 5.4.

core

  • ComponentFixture.whenStable now matches the
    ApplicationRef.isStable observable. Prior to this change, stability
    of the fixture did not include everything that was considered in
    ApplicationRef. whenStable of the fixture will now include unfinished
    router navigations and unfinished HttpClient requests. This will cause
    tests that await the whenStable promise to time out when there are
    incomplete requests. To fix this, remove the whenStable,
    instead wait for another condition, or ensure HttpTestingController
    mocks responses for all requests. Try adding HttpTestingController.verify()
    before your await fixture.whenStable to identify the open requests.
    Also, make sure your tests wait for the stability promise. We found many
    examples of tests that did not, meaning the expectations did not execute
    within the test body.

    In addition, ComponentFixture.isStable would synchronously switch to
    true in some scenarios but will now always be asynchronous.

router

  • When a a guard returns a UrlTree as a redirect, the
    redirecting navigation will now use replaceUrl if the initial
    navigation was also using the replaceUrl option. If this is not
    desirable, the redirect can configure new NavigationBehaviorOptions by
    returning a RedirectCommand with the desired options instead of UrlTree.

v17.3.2

28 Mar 16:56
Compare
Choose a tag to compare

17.3.2 (2024-03-28)

compiler

Commit Description
fix - 2b7bad5151 invoke method-based tracking function with context (#54960)

compiler-cli

Commit Description
fix - b478dfbfda report errors when initializer APIs are used on private fields (#55070)

core

Commit Description
fix - 708ba8115f establish proper injector resolution order for @defer blocks (#55079)

http

Commit Description
fix - cb433af0e1 include transferCache when cloning HttpRequest (#54939)
fix - 64f202cab9 manage different body types for caching POST requests (#54980)

migrations

Commit Description
fix - 2f9d94bc4a account for variables in imports initializer (#55081)

router

Commit Description
fix - 365fd50407 RouterLinkActive will always remove active classes when links are not active (#54982)