33459 Commits

Author SHA1 Message Date
Angular Robot 6498629752 build: update dependency google-closure-compiler to v20250520 (#61673)
See associated pull request for more information.

PR Close #61673
2025-05-26 09:14:22 +00:00
Alan Agius f355fbc446 build: disable esbuild metadata file generation (#61636)
Disables creation of the esbuild meta.json file, which is not utilized in the build process. This streamlines the output and avoids generating unused artifacts.

PR Close #61636
2025-05-26 08:57:44 +00:00
Alan Agius 49bac6bb66 build: exclude esbuild metadata files from distributable packages (#61636)
Prevents esbuild generated metadata files from being included in build artifacts. This reduces package size and avoids shipping unnecessary internal build data.

PR Close #61636
2025-05-26 08:57:44 +00:00
Joey Perrott 9eefc5dcd4 build: migrate localize package to use rules_js (#61613)
Use ts_project to build localize package

PR Close #61613
2025-05-26 08:53:55 +00:00
Alan Agius e25e6c95a2 fix(compiler): remove TypeScript from linker (#61635)
This commit removes the direct dependency on TypeScript within the linker, addressing a performance overhead that was adding between 500ms to 1s to compilation times for applications.

The primary cause of this overhead was the linker's direct reliance on TypeScript's which was caused by importing from barrel files. While convenient, barrel files are detrimental to code splitting and code motion. They force the bundling of all exported modules, even if only a subset is actually used.

By removing the usage of this barrel file and restructuring the imports to be more granular, we can avoid unnecessary TypeScript imports.
 Furthermore, TypeScript has now been changed to an optional peer dependency as using only the linker does not require TypeScript.

(cherry picked from commit 7cf2425fb5)

PR Close #61635
2025-05-26 08:48:24 +00:00
Rafal Slawik 2e5362a469 feat(common): accept undefined inputs in NgTemplateOutlet (#61404)
Extend types of inputs to include `undefined` to avoid `?? null` when using singals (e.g. `viewChild`).

Fixes #51225

PR Close #61404
2025-05-25 14:26:44 -07:00
Charles Lyding f1568efcbe docs: add initial experimental vitest testing guide (#61483)
An initial guide to use the experimental unit testing system with the
vitest runner has been added. This includes setup instructions for switching
from the karma/jasmine based system.
Additional content for configuration and potential migration of existing
projects may be added in future changes.

PR Close #61483
2025-05-23 15:39:38 -07:00
Joey Perrott 968bbe9609 build: migrate platform-browser and platform-browser-dynamic package to use rules_js (#61623)
Use ts_project and ng_project to build platform-browser and platform-browser-dynamic package

PR Close #61623
2025-05-23 15:14:02 -07:00
Andrew Scott aa7190d972 fix(common): avoid injecting ApplicationRef in FetchBackend (#61649)
fixes a circular dependency caused by injecting applicationRef

fixes #61644

PR Close #61649
2025-05-23 10:04:13 -07:00
Jessica Janiuk 5bdd29121b Revert "fix(core): Testing should not throw when Zone does not patch test FW APIs (#61628)" (#61637)
This reverts commit 3d4ddd2247.

PR Close #61637
2025-05-23 07:38:18 +00:00
Andrew Scott f400e9c156 release: cut the zone.js-0.15.1 release (#61632)
PR Close #61632
2025-05-22 14:53:20 -07:00
Andrew Scott eb4abc2ddb refactor(zone.js): Add a withProxyZone helper that might be used for unpatched test frameworks (#61626)
As an alternative to monkey patching vitest, this change adds a method that could be used
for manually running functions inside a shared proxy zone. If used inocrrectly,
this would mean that
the `fakeAsync` closure may not capture all timers and microtasks if it
invokes things created in a zone that was already forked (e.g. creating
a component in a beforeEach:
https://github.com/angular/angular/blob/2699dd65558d70fadeac1e9b420841f3dfc3a059/packages/zone.js/lib/jasmine/jasmine.ts#L363-L371)

PR Close #61626
2025-05-22 13:39:32 -07:00
Angular Robot 7e5abb3942 build: update dependency node to v22.16.0 (#61603)
See associated pull request for more information.

PR Close #61603
2025-05-22 13:08:11 -07:00
Alan Agius 8f52f0b5b0 build: update all esbuild target to node20 (#61606)
This is the min supported node.js version

PR Close #61606
2025-05-22 13:02:04 -07:00
michael-small 2ee9cb03f7 docs: remove dev preview banner from RXJS interop (#61598)
Disclaimer: I made this PR directly from the MD editor in GH since I can't run the docs locally at the moment.
PR Close #61598
2025-05-22 13:00:24 -07:00
Andrew Scott 3d4ddd2247 fix(core): Testing should not throw when Zone does not patch test FW APIs (#61628)
This prevents `core/testing` from throwing an error if ZoneJS is present
but does not patch the test FW APIs such that `fakeAsync` works
automatically. For example, there is currently no patching of the vitest
APIs, so if you try to use Vitest with Zone on the page, it will throw.

PR Close #61628
2025-05-22 12:56:57 -07:00
Alan Agius c8951159ac fix(core): mark zone.js as an optional peer dependency (#61616)
`zone.js` is no longer mandatory.

PR Close #61616
2025-05-22 12:14:07 -07:00
Matthieu Riegler cee40cf778 docs: remove top level heading which (#61593)
It interferes with `docs-decorative-header`

PR Close #61593
2025-05-22 12:12:34 -07:00
Joey Perrott 14f2648302 build: migrate platform-server to rules_js (#61589)
Migrate platform-server to use ts_project and ng_project.

PR Close #61589
2025-05-22 11:35:56 -07:00
Doug Parker 114253ea02 release: bump Angular DevTools to version 1.0.32 (#61620)
PR Close #61620
2025-05-22 10:52:20 -07:00
arturovt 959258d8dd fix(service-worker): do not register service worker if app is destroyed before it is ready to register (#61101)
In this commit, we check whether the application is destroyed before calling `serviceWorker.register(...)`. We should not register the worker because other resources will not be available.

PR Close #61101
2025-05-22 10:02:42 -07:00
Andrew Scott 1a3313a08c fix(zone.js): classes that extend Error should retain cause property (#61599)
ZoneAwareError previously did not copy the cause property over to the
`this` object when an error extends the native error class.

PR Close #61599
2025-05-21 20:43:11 -07:00
Hakeem e7cb313823 docs(docs-infra): fix nav items active status is shown for multiple items (#61597)
PR Close #61597
2025-05-21 16:04:30 -07:00
Angular Robot 6b7c8d1d6f build: update cross-repo angular dependencies to v20.0.0-rc.2 (#61588)
See associated pull request for more information.

PR Close #61588
2025-05-21 15:31:35 -07:00
Andrew Scott 09f79e0a46 release: cut the v20.0.0-rc.2 release 20.0.0-rc.2 2025-05-21 13:05:34 -07:00
Maciej Sawicki 6e79eaf739 fix(core): reading resource value after reload in the error state (#61441)
When the resource is loading after reloading from the error state reading `Resource.value()` would return the default value instead of throwing an error.
This change prevents `Resource.hasValue()` from throwing an error in such a case.

PR Close #61441
2025-05-21 12:06:42 -07:00
Maciej Sawicki 3ba39bc28f fix(core): getting resource value throws an error instead of returning undefined (#61441)
When there is an underlying error state it would not be possible to swallow the error with:
`computed(() => res.value()?.inner);`

PR Close #61441
2025-05-21 12:06:42 -07:00
Maciej Sawicki a89f1cff24 fix(core): narrow error type for resources API (#61441)
`Resource.error` used to return `unknown`. Now it's `Error | undefined`.
For non-`Error` types they are encapsulated with the `Error` type.

PR Close #61441
2025-05-21 12:06:42 -07:00
Maciej Sawicki d62379bb13 fix(core): move reload method from Resource to WritableResource (#61441)
Now only mutable resources can be reloaded.

PR Close #61441
2025-05-21 12:06:42 -07:00
Maciej Sawicki 36af9213ac build: use es2022 lib (#61441)
It was set to es2022 for build tsconfig in https://github.com/angular/angular/pull/60066/files#diff-7ec658aedc62a693cc513accc8f360938d90bcbdb09aa79c1401e56fe84f5fd3, but was missed for the main one.

PR Close #61441
2025-05-21 12:06:42 -07:00
Joey Perrott 0503362d4b build: remove the "restamping" substitutions from adev shared-docs package (#61585)
Remove the substitutions as they are not actually needed

PR Close #61585
2025-05-21 17:37:54 +00:00
Steven Nguyendoan 10c1b8236a refactor(migrations): update references for dom_trigger functions onInteract, onHover, onViewport to point to new location in core/primitives/defer (#61342)
Moves the onInteract, onHover, onViewport dom_trigger functions to /packages/core/primitives/defer to be used as a shared library

PR Close #61342
2025-05-21 17:30:11 +00:00
Steven Nguyendoan 387199098e refactor(migrations): moved onInteraction, onHover (#61342)
, onViewport to core/primitives

PR Close #61342
2025-05-21 17:30:11 +00:00
Joey Perrott 3db2927b6f build: add comment explaining path maps (#61584)
Add a commend explaning why the path mappings are in place.

PR Close #61584
2025-05-21 17:27:20 +00:00
marktechson c0f27a5d56 docs: add new ai setcion to adev (#61583)
This new sections outlines guides, code samples and best practices for building AI apps with Angular.

PR Close #61583
2025-05-21 17:04:17 +00:00
cexbrayat c9b7a0bde5 docs: fix descendants default explanation for contentChild (#61580)
See #61534

PR Close #61580
2025-05-21 16:15:07 +00:00
Joey Perrott 43c208c7ab build: remove unnecessary export from @angular/compiler/schematics (#61579)
Remove the unused export to match how this is done in the main branch

PR Close #61579
2025-05-21 16:12:52 +00:00
hirowf d97892aec5 docs: include bun in packageManager value types (#60907)
PR Close #60907
2025-05-21 15:19:41 +00:00
arturovt 7efb3384a7 fix(core): cleanup rxResource abort listener (#58306)
The observable terminates immediately when `error` is called, and no further emissions or completion notifications occur. Thus, we have to remove the `abort` listener in both the `error` and `complete` notifications.

PR Close #58306
2025-05-21 15:17:25 +00:00
Kristiyan Kostadinov 33a432cb21 refactor(core): handle NO_CHANGE in bindingUpdated (#61557)
Updates the `bindingUpdated` function to handle `NO_CHANGE` instead of throwing. This will allow us to reuse instructions across more cases.

PR Close #61557
2025-05-21 15:13:48 +00:00
Kristiyan Kostadinov 180b92d02e refactor(core): remove attribute interpolation instructions (#61557)
The attribute interpolation instructions aren't used anymore so we can remove them.

PR Close #61557
2025-05-21 15:13:48 +00:00
Kristiyan Kostadinov 68af4586b1 refactor(compiler): replace attribute interpolation instructions (#61557)
Replaces the attribute interpolation instructions with `attribute` plus the new `interpolateX` instruction. This allows to reduce our overall instruction footprint.

PR Close #61557
2025-05-21 15:13:47 +00:00
Kristiyan Kostadinov a25ecad561 refactor(core): add instructions for interpolating values (#61557)
Adds the new `interpolate*` instructions that can be passed into other instructions and used to replace our existing flavors of interpolations.

PR Close #61557
2025-05-21 15:13:47 +00:00
Jan Martin 8ba6562ad1 refactor(core): expose Binding for easier use of inputBinding (#61351)
When passing bindings as arguments or storing them before use in
`createComponent`, it's handy to be able to reference this type.

The current workaround is to use `ReturnType<typeof inputBinding>`.

PR Close #61351
2025-05-21 15:11:47 +00:00
arturovt af7881abac fix(common): cancel reader when app is destroyed (#61528)
Streams left in a pending state (due to `break` without cancel) may continue consuming or holding onto data behind the scenes. Calling `reader.cancel()` allows the browser or the underlying system to release any network or memory resources associated with the stream.

PR Close #61528
2025-05-21 15:07:20 +00:00
Andrew Scott 350776b412 fix(core): TestBed.tick should ensure test components are synchronized (#61382)
This ensures that `TestBed.tick` updates any components created with
`TestBed.createComponent`, regardless of whether autoDetectChanges is
on.

PR Close #61382
2025-05-21 15:02:53 +00:00
Angular Robot 9d8a778b28 build: update cross-repo angular dependencies (#61577)
See associated pull request for more information.

PR Close #61577
2025-05-21 15:01:11 +00:00
Joey Perrott 6187b5b0b3 build: migrate language service to use rules_js (#61575)
Migrate language service to build using ts_project

PR Close #61575
2025-05-21 14:58:21 +00:00
arturovt abdade95e0 refactor(common): drop httpResource error message (#61570)
Drops `httpResource` error message in production and replaces with an error code.

PR Close #61570
2025-05-21 14:16:54 +00:00
Matthieu Riegler 88c70ebc7b refactor(platform-browser): replace platform-browser-dynamic with platform-browser (#61498)
The former isn't needed anymore and is now deprecated.

PR Close #61498
2025-05-21 14:01:50 +00:00