This PR contains the following updates:
Release Notes
angular/angular (@angular/animations)
Compare Source
core
localize
platform-browser
| Commit |
Type |
Description |
| 8e8ccc79279 |
fix |
ensure platformBrowserTesting includes platformBrowser providers (#60480) |
Compare Source
compiler-cli
| Commit |
Type |
Description |
| aa8ea7a5b2 |
fix |
report more accurate diagnostic for invalid import (#60455) |
core
platform-browser-dynamic
| Commit |
Type |
Description |
| 1e06c8e8b6 |
fix |
ensure compiler is loaded before @angular/common (#60458) |
upgrade
| Commit |
Type |
Description |
| 9e1a1030c8 |
fix |
handle output emitters when downgrading a component (#60369) |
Compare Source
common
| Commit |
Type |
Description |
| 90a16a1088 |
fix |
support equality function in httpResource (#60026) |
compiler
compiler-cli
| Commit |
Type |
Description |
| 23ca88522b |
fix |
handle transformed classes when generating HMR code (#60298) |
core
| Commit |
Type |
Description |
| 6dc41265fd |
fix |
check whether application is destroyed before initializing event replay (#59789) |
| bb12b30d52 |
fix |
ensures immediate trigger fires properly with lazy loaded routes (#60203) |
| b144dd946e |
fix |
fix removal of a container reference used in the component file (#60210) |
platform-server
| Commit |
Type |
Description |
| 15c42969fc |
fix |
add missing peer dependency for rxjs (#60308) |
router
Compare Source
common
| Commit |
Type |
Description |
| c2de5f68b3 |
fix |
clean up onUrlChange listener when root scope is destroyed (#60004) |
compiler-cli
| Commit |
Type |
Description |
| 1dd94476b3 |
fix |
ensure template IDs are not reused if a source file changes (#60152) |
core
language-service
| Commit |
Type |
Description |
| 3f0116607d |
fix |
Forward the tags for quick info from the type definition (#59524) |
Compare Source
common
| Commit |
Type |
Description |
| 3e39da593a |
feat |
introduce experimental httpResource (#59876) |
compiler
compiler-cli
| Commit |
Type |
Description |
| ed705a856a |
feat |
detect missing structural directive imports (#59443) |
core
forms
| Commit |
Type |
Description |
| fa0c3e3210 |
feat |
support type set in form validators (#45793) |
migrations
| Commit |
Type |
Description |
| 1cd3a7db83 |
feat |
add migration to convert templates to use self-closing tags (#57342) |
platform-browser
| Commit |
Type |
Description |
| e6cb411e43 |
fix |
automatically disable animations on the server (#59762) |
platform-server
| Commit |
Type |
Description |
| fc5d187da5 |
fix |
decouple server from animations module (#59762) |
Compare Source
benchpress
| Commit |
Type |
Description |
| f0990c67e6 |
fix |
Ensure future-proof correct initialization order (#60025) |
common
| Commit |
Type |
Description |
| 1fbaeab37d |
fix |
make types for HttpClient more readable (#59901) |
core
language-service
| Commit |
Type |
Description |
| 4c9d09c643 |
fix |
provide correct rename info for elements (#60088) |
Compare Source
common
| Commit |
Type |
Description |
| e9f10eb4c9 |
fix |
clean up urlChanges subscribers when root scope is destroyed (#59703) |
compiler-cli
| Commit |
Type |
Description |
| 16fc074689 |
fix |
avoid crash in isolated transform operations (#59869) |
forms
Compare Source
compiler
| Commit |
Type |
Description |
| 01f669a274 |
fix |
handle tracking expressions requiring temporary variables (#58520) |
compiler-cli
| Commit |
Type |
Description |
| dcfb9f1959 |
fix |
handle deferred blocks with shared dependencies correctly (#59926) |
core
| Commit |
Type |
Description |
| cab7a9b69c |
fix |
invalidate HMR component if replacement throws an error (#59854) |
migrations
| Commit |
Type |
Description |
| 710759ddcc |
fix |
account for let declarations in control flow migration (#59861) |
| 46f36a58bf |
fix |
count used dependencies inside existing control flow (#59861) |
Compare Source
compiler-cli
Compare Source
core
elements
| Commit |
Type |
Description |
| 44180645992 |
fix |
not setting initial value on signal-based input (#59773) |
platform-browser
| Commit |
Type |
Description |
| 1828a840620 |
fix |
prepend baseHref to sourceMappingURL in CSS content (#59730) |
| 1c84cbca30e |
fix |
Update pseudoevent created by createMouseSpecialEvent to populate _originalEvent property (#59690) |
| 12256574626 |
fix |
Update pseudoevent created by createMouseSpecialEvent to populate _originalEvent property (#59690) |
| 3f4d5f636aa |
fix |
Update pseudoevent created by createMouseSpecialEvent to populate _originalEvent property (#59690) |
router
| Commit |
Type |
Description |
| e3da35ec749 |
fix |
prevent error handling when injector is destroyed (#59457) |
service-worker
Compare Source
compiler
| Commit |
Type |
Description |
| ecfb74d287 |
fix |
handle :host-context with comma-separated child selector (#59276) |
compiler-cli
| Commit |
Type |
Description |
| 53160e504d |
fix |
extract parenthesized dependencies during HMR (#59644) |
| 39690969af |
fix |
handle conditional expressions when extracting dependencies (#59637) |
| 78af7a5059 |
fix |
handle new expressions when extracting dependencies (#59637) |
core
migrations
| Commit |
Type |
Description |
| a62c84bc18 |
fix |
avoid applying the same replacements twice when cleaning up unused imports (#59656) |
platform-browser
| Commit |
Type |
Description |
| b2b3816cb1 |
fix |
clear renderer cache during HMR when using async animations (#59644) |
Compare Source
compiler
| Commit |
Type |
Description |
| 8dcd889987 |
fix |
update @ng/component URL to be relative (#59620) |
compiler-cli
core
Compare Source
core
platform-browser
Compare Source
common
| Commit |
Type |
Description |
| e4c50b3bea |
feat |
expose component instance in NgComponentOutlet (#58698) |
compiler
compiler-cli
| Commit |
Type |
Description |
| c5c20e9d86 |
fix |
check event side of two-way bindings (#59002) |
core
migrations
platform-browser
| Commit |
Type |
Description |
| 8c5db3cfb7 |
fix |
avoid circular DI error in async renderer (#59256) |
router
Compare Source
compiler-cli
| Commit |
Type |
Description |
| 2b4b7c3ebf |
fix |
handle more node types when extracting dependencies (#59445) |
core
| Commit |
Type |
Description |
| f893d07232 |
fix |
destroy renderer when replacing styles during HMR (#59514) |
migrations
| Commit |
Type |
Description |
| eb2fcd1896 |
fix |
incorrect stats when migrating queries with best effort mode (#59463) |
Compare Source
compiler-cli
| Commit |
Type |
Description |
| 06a55e9817 |
fix |
account for more expression types when determining HMR dependencies (#59323) |
| 17fb20f85d |
fix |
preserve defer block dependencies during HMR when class metadata is disabled (#59313) |
core
| Commit |
Type |
Description |
| 07afce81b8 |
fix |
Ensure that a destroyed effect never run. (#59415) |
platform-browser
| Commit |
Type |
Description |
| dbb8980d03 |
fix |
avoid circular DI error in async renderer (#59271) |
| 6d00efde95 |
fix |
styles not replaced during HMR when using animations renderer (#59393) |
router
| Commit |
Type |
Description |
| 144bccb687 |
fix |
avoid component ID collisions with user code (#59300) |
Compare Source
core
platform-server
| Commit |
Type |
Description |
| 9085a8fbd8 |
fix |
Warn user when transfer state happens more than once (#58935) |
Compare Source
compiler-cli
| Commit |
Type |
Description |
| 7e612171709 |
fix |
consider pre-release versions when detecting feature support (#59061) |
| cd764a31152 |
fix |
error in unused standalone imports diagnostic (#59064) |
core
| Commit |
Type |
Description |
| 34ded10fa60 |
fix |
Fix a bug where snapshotted functions are being run twice if they return a nullish/falsey value. (#59073) |
platform-browser
| Commit |
Type |
Description |
| ae0802d63c5 |
fix |
collect external component styles from server rendering (#59031) |
Compare Source
Compare Source
compiler-cli
| Commit |
Type |
Description |
| 9f99196d23 |
fix |
account for multiple generated namespace imports in HMR (#58924) |
core
| Commit |
Type |
Description |
| 4792db9a6d |
fix |
Explicitly manage TracingSnapshot lifecycle and dispose of it once it's been used. (#58929) |
migrations
| Commit |
Type |
Description |
| 7b5bacc228 |
fix |
class content being deleted in some edge cases (#58959) |
| d1cbdd6acb |
fix |
correctly strip away parameters surrounded by comments in inject migration (#58959) |
| e17ff71c31 |
fix |
don't migrate classes with parameters that can't be injected (#58959) |
| 7c5f990001 |
fix |
inject migration aggressively removing imports (#58959) |
| 4392ccedf9 |
fix |
inject migration dropping code if everything except super is removed (#58959) |
| 9cbebc6dda |
fix |
preserve type literals and tuples in inject migrations (#58959) |
platform-server
| Commit |
Type |
Description |
| f3c388ecda |
fix |
remove peer dependency on animations (#58997) |
Compare Source
compiler-cli
| Commit |
Type |
Description |
| fb1fa8b0fc |
fix |
more accurate diagnostics for host binding parser errors (#58870) |
core
| Commit |
Type |
Description |
| 502ee0e722 |
fix |
correctly clear template HMR internal renderer cache (#58724) |
| 99715104a1 |
fix |
correctly perform lazy routes migration for components with additional decorators (#58796) |
| 118803035f |
fix |
Ensure _tick is always run within the TracingSnapshot. (#58881) |
| 08b9452f01 |
fix |
Ensure resource sets an error (#58855) |
| 84f45ea3ff |
fix |
make component id generation more stable between client and server builds (#58813) |
| d3491c7cee |
fix |
Prevents race condition of cleanup for incremental hydration (#58722) |
forms
language-service
migrations
| Commit |
Type |
Description |
| 5ce10264a4 |
fix |
fix provide-initializer migration when using useFactory (#58518) |
| d4f5c85f60 |
fix |
handle parameters with initializers in inject migration (#58769) |
| a6d2d2dc10 |
fix |
Mark hoisted properties as removed in inject migration (#58804) |
Compare Source
Blog post: https://blog.angular.dev/meet-angular-v19-7b29dfd05b84
Breaking Changes
compiler
this.foo property reads no longer refer to template context variables. If you intended to read the template variable, do not use this..
- changes to CSS selectors parsing where introduced, mainly to: pseudo selectors
:where() and :is(),
parsing of :host and host-context, parsing selectors within pseudo selector arguments (for instance comma separated selectors).
These changes could lead to a different specificity of the resulting selectors and/or previously broken selectors being applied now,
for example :where(:host) used to transform to :where()[ng-host] and is being :where([ng-host]) now. Unlike the previous outcome,
the new result can target elements and therefore could lead to breakages.
core
-
Angular directives, components and pipes are now standalone by default.
- Specify
standalone: false for declarations that are currently declared in @NgModules.
ng update for v19 will take care of this automatically.
-
TypeScript versions less than 5.5 are no longer supported.
-
Timing changes for effect API (in developer preview):
-
effects which are triggered outside of change detection run as part of
the change detection process instead of as a microtask. Depending on the
specifics of application/test setup, this can result in them executing
earlier or later (or requiring additional test steps to trigger; see below
examples).
-
effects which are triggered during change detection (e.g. by input
signals) run earlier, before the component's template.
-
ExperimentalPendingTasks has been renamed to PendingTasks.
-
The autoDetect feature of ComponentFixture will now
attach the fixture to the ApplicationRef. As a result, errors during
automatic change detection of the fixture be reported to the ErrorHandler.
This change may cause custom error handlers to observe new failures that were previously unreported.
-
createComponent will now render default fallback with empty projectableNodes.
- When passing an empty array to
projectableNodes in the createComponent API, the default fallback content
of the ng-content will be rendered if present. To prevent rendering the default content, pass document.createTextNode('') as a projectableNode.
// The first ng-content will render the default fallback content if present
createComponent(MyComponent. { projectableNodes: [[], [secondNode]] });
// To prevent projecting the default fallback content:
createComponent(MyComponent. { projectableNodes: [[document.createTextNode('')], [secondNode]] });
-
Errors that are thrown during ApplicationRef.tick
will now be rethrown when using TestBed. These errors should be
resolved by ensuring the test environment is set up correctly to
complete change detection successfully. There are two alternatives to
catch the errors:
- Instead of waiting for automatic change detection to happen, trigger
it synchronously and expect the error. For example, a jasmine test
could write
expect(() => TestBed.inject(ApplicationRef).tick()).toThrow()
TestBed will reject any outstanding ComponentFixture.whenStable promises. A jasmine test,
for example, could write expectAsync(fixture.whenStable()).toBeRejected().
As a last resort, you can configure errors to not be rethrown by
setting rethrowApplicationErrors to false in TestBed.configureTestingModule.
-
The timers that are used for zone coalescing and hybrid
mode scheduling (which schedules an application state synchronization
when changes happen outside the Angular zone) will now run in the zone
above Angular rather than the root zone. This will mostly affect tests
which use fakeAsync: these timers will now be visible to fakeAsync
and can be affected by tick or flush.
-
The deprecated factories property in KeyValueDiffers has been removed.
elements
- as part of switching away from custom CD behavior to the
hybrid scheduler, timing of change detection around custom elements has
changed subtly. These changes make elements more efficient, but can cause
tests which encoded assumptions about how or when elements would be checked
to require updating.
localize
- The
name option in the ng add @localize`` schematic has been removed in favor of the project option.
platform-browser
- The deprecated
BrowserModule.withServerTransition method has been removed. Please use the APP_ID DI token to set the application id instead.
router
- The
Router.errorHandler property has been removed.
Adding an error handler should be configured in either
withNavigationErrorHandler with provideRouter or the errorHandler
property in the extra options of RouterModule.forRoot. In addition,
the error handler cannot be used to change the return value of the
router navigation promise or prevent it from rejecting. Instead, if you
want to prevent the promise from rejecting, use resolveNavigationPromiseOnError.
- The return type of the
Resolve interface now includes
RedirectCommand.
common
| Commit |
Type |
Description |
| 24c6373820 |
feat |
add optional rounded transform support in cloudinary image loader (#55364) |
| 50f08e6c4b |
feat |
automatically use sizes auto in NgOptimizedImage (#57479) |
| 13c13067bc |
feat |
disable keyvalue sorting using null compareFn (#57487) |
compiler
| Commit |
Type |
Description |
| a2e4ee0cb3 |
feat |
add diagnostic for unused standalone imports (#57605) |
| 0c9d721ac1 |
feat |
add support for the typeof keyword in template expressions. (#58183) |
| 09f589f000 |
fix |
this.a should always refer to class property a (#55183) |
| 98804fd4be |
fix |
add more specific matcher for hydrate never block (#58360) |
| b25121ee4a |
fix |
avoid having to duplicate core environment ([#58444](https://redirect.github.com/angula |
Configuration
📅 Schedule: Branch creation - "after 10pm every weekday,before 4am every weekday,every weekend" in timezone UTC, Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
- [ ] If you want to rebase/retry this PR, check this box
This PR was generated by Mend Renovate. View the repository job log.