33397 Commits

Author SHA1 Message Date
Paul Gschwendtner 5d35288148 refactor(migrations): gracefully proceed if reference cannot be resolved (#61426)
A runtime error can surface when TypeScript internally fails to resolve
a reference that is named similar to an input, but no `.d.ts` is
available for it.

See example error:
https://github.com/microsoft/TypeScript/issues/61473#issuecomment-2746537781.

PR Close #61426
2025-05-19 11:04:55 +00:00
Angular Robot 62900005af build: update dependency google-closure-compiler to v20250514 (#61440)
See associated pull request for more information.

PR Close #61440
2025-05-19 10:21:16 +00:00
Angular Robot bc2bb61c8f build: update all non-major dependencies (#61463)
See associated pull request for more information.

PR Close #61463
2025-05-19 10:09:58 +00:00
Alan Agius 74be701d82 build: remove @types/diff (#61448)
The latest diff package includes the TS types.

PR Close #61448
2025-05-19 09:18:21 +00:00
Andrew Scott 34eb15d93c refactor(core): Deprecate fixture.autoDetectChanges(true/false) (#61429)
After nearly a decade of existence, there are 0 uses of
`autoDetectChanges(false)` internally. All uses of
`autoDetectChanges(true)` can be migrated directly to
`autoDetectChanges()` instead.

PR Close #61429
2025-05-19 08:31:38 +00:00
arturovt bc830cec64 refactor(animations): mark non-default new expressions as pure (#61452)
Adds `__PURE__` annotations to non-default `new` expressions to enable tree-shaking, even if they are not referenced. These variables are not dropped when Angular is imported from a module that has `sideEffects` set to `true`.

PR Close #61452
2025-05-19 08:26:58 +00:00
Pawel Kozlowski b294e29d53 refactor(core): move the data store operation out of instructions (#61425)
The view data store operation is not an instruction and shouldn't be
located in the instructions folder.

PR Close #61425
2025-05-19 08:24:48 +00:00
Pawel Kozlowski d78605e1a7 refactor(core): move i18n logic into its dedicated package (#61425)
Move the i18n-related logic out of the instructions folder into
the i18n-dedicated folder / package.

PR Close #61425
2025-05-19 08:24:48 +00:00
Ben Hong 810b3efec0 docs: add intro to new ssr guide and refactor information architecture (#61377)
PR Close #61377
2025-05-19 08:18:49 +00:00
Angular Robot 41ded3dbc8 build: update cross-repo angular dependencies (#61436)
See associated pull request for more information.

PR Close #61436
2025-05-19 08:06:27 +00:00
Matthieu Riegler 4282dc3a54 docs: replace references to platform-brower-dynamic with platform-brower (#61428)
PR Close #61428
2025-05-19 08:04:51 +00:00
Matthieu Riegler cf92f0d703 docs(docs-infra): only show clear button of textfield when there is a text (#61427)
PR Close #61427
2025-05-16 15:57:37 +00:00
Paul Gschwendtner ed70a2136e Revert "fix(migrations): avoid applying the same replacements twice when cleaning up unused imports (#59656)" (#61421)
This reverts commit d66881d172.

PR Close #61421
2025-05-16 15:56:45 +00:00
Paul Gschwendtner 1d68113836 refactor: clean-up deduplication workaround from migrations (#61421)
Since the duplication root-cause was solved by the previous commit, we
can revert/drop the logic that was added back then to overcome this
problem with Tsurge.

PR Close #61421
2025-05-16 15:56:44 +00:00
Paul Gschwendtner 648aad264a refactor: ensure tsurge migrations have clear ownership of files (#61421)
Currently there can be cases, exlusively in 3P, where multiple tsconfig
projects have overlap of source files. This is the default setup of new
CLI applications as well.

When this is the case, Tsurge will treat each tsconfig as an isolated
compilation unit (given the concepts and mental model to support
scalable batching). This is wrong though, and the same `.ts` source file
can appear in two migration invocations; resulting in duplicate
replacements or analysis (depending on the migration).

We've worked around this problem in the past by deduplicating
replacements, or migrating to an ID-based approach with natural
deduplication. This worked, but it's just working around the root cause.

This commit attempts to fix the root cause by adjusting Tsurge to ensure
that no source file ever appears in two compilation units. This is
naively achieved by not adding a source file to a migration unit, if it
was part of a previous one. This is expected to be fine given the nature
of Tsurge migrations that are built to operate on isolated pieces
anyway— so it shouldn't be problematic if e.g. `app.component.ts` ends
up being part of the test tsconfig compilation unit (we avoid this order
though by visiting build targets first).

PR Close #61421
2025-05-16 15:56:44 +00:00
Angular Robot e409d94b92 build: update cross-repo angular dependencies to 4d867b5 (#61423)
See associated pull request for more information.

PR Close #61423
2025-05-16 15:51:33 +00:00
Angular Robot 670b83c1de build: update dependency diff to v8 (#61422)
See associated pull request for more information.

Closes #61399 as a pr takeover

PR Close #61422
2025-05-16 15:49:29 +00:00
Angular Robot e17ba18fd6 build: lock file maintenance (#61267)
See associated pull request for more information.

PR Close #61267
2025-05-16 15:47:50 +00:00
Paul Gschwendtner 49166757d0 build: migrate packages/core/schematics to ts_project (#61414)
Migrates `packages/core/schematics` to `ts_project`. As part of this,
this commit cleans up some of the mixed module types and tsconfigs in
the folder. A single tsconfig (and it's test variant) are now used.

For the shipped schematics, we explicitly use the `.cjs` extension, so
that the bundles are properly recognized as CommonJS; even if they are
part of the `type: module` `@angular/core` package.

The `package.json` with `type: commonjs` is removed from
`packages/core/schematics` as it's no longer needed given the explicit
extension & caused issues as schematics are compiled with ESM but are
only later bundled for shipping & some tests as ESM.

PR Close #61414
2025-05-16 14:51:24 +00:00
Paul Gschwendtner c582292d0b build: update legacy ESM interop rules to support explicit .js entrypoints (#61414)
As we migrate more and more code to `ts_project`, we are ending up with
`.js` file extensions (ts_library did generate `.mjs` magically).

Since we don't want to get into the business of migrating
`nodejs_binary` targets at this point (in some cases we might)— we
should support pointing to such files.

PR Close #61414
2025-05-16 14:51:24 +00:00
Paul Gschwendtner 31d5ae93a0 build: migrate more targets of @angular/core to ts_project (#61414)
Migrates more targets of `@angular/core` to `ts_project`. Remaining are:

 - tests
 - schematics

PR Close #61414
2025-05-16 14:51:24 +00:00
Angular Robot 78931b1d94 build: update github/codeql-action action to v3.28.18 (#61417)
See associated pull request for more information.

PR Close #61417
2025-05-16 14:38:52 +00:00
Matthieu Riegler 6ffdfc5a31 docs(docs-infra): llms-full.txt (#61356)
This includes a basic script to generate the file from the list of markdown files `llms-list.md`

PR Close #61356
2025-05-16 14:38:05 +00:00
Alan Agius 1d6d8a3ff7 build: update cross-repo angular dependencies (#61416)
See associated pull request for more information.

Closes #61402 as a pr takeover

PR Close #61416
2025-05-16 14:33:35 +00:00
Kristiyan Kostadinov 494d32a7e2 build: fix golden approval script (#61407)
Fixes the `update_all_goldens` script which was throwing, because the query command was also capturing the call into yarn and Bazel which in turn caused it to throw an error. I've also added some validation for the number of targets.

PR Close #61407
2025-05-16 13:59:12 +00:00
Kristiyan Kostadinov 47edecd76e build: fix symbol extractor script (#61407)
* Fixes that the symbol extractor approval script was broken after some recent build changes.
* Fixes the `run_all_symbol_extractor_tests` script which wasn't resolving any targets, because the rule name changed.

PR Close #61407
2025-05-16 13:59:12 +00:00
Paul Gschwendtner e13d6a31e1 build: update dev-infra for latest RBE changes (#61412)
Updates dev-infra for the latest RBE changes.

PR Close #61412
2025-05-16 13:47:32 +00:00
Vlad Boisa a90c7204f5 docs: fix typos (#61257)
Change grammar and fix typos in docs

Fixes #61244

PR Close #61257
2025-05-16 10:20:37 +00:00
Matthieu Riegler f0e961cde2 docs: fix note formatting about optionam chaining (#61251)
PR Close #61251
2025-05-16 10:09:37 +00:00
Angular Robot 0cdce06a6f build: update dependency google-closure-compiler to v20250407 (#61401)
See associated pull request for more information.

PR Close #61401
2025-05-16 10:08:54 +00:00
Matthieu Riegler 095fa2f4b8 docs(docs-infra): fix API query filtering. (#61300)
On `19.2`  we pass an undefined value to the text-field.
But more generaly, the CVA should protect itself if it doesn't recieve an `undefined` value.

fixes #61299

PR Close #61300
2025-05-16 09:57:06 +00:00
Vlad Boisa 378606ea3e docs: fix incomplete sentence (#61391)
Fix insufficient sentence.


Fixes #61350
PR Close #61391
2025-05-16 09:35:46 +00:00
Matthieu Riegler 25f1c425bc refactor(core): cleanup after* option types (#61216)
The `phase` property of `AfterRenderOptions`  was removed in #60641.

PR Close #61216
2025-05-16 09:35:09 +00:00
Matthieu Riegler c0fb34b4c9 docs: fix Routed components example (#61278)
fixes #61277

PR Close #61278
2025-05-16 09:14:41 +00:00
Kristiyan Kostadinov 6d8e57d131 perf(platform-server): speed up resolution of base (#61392)
The `getBaseHref` method is called several times per request and currently queries through the entire document. We can speed it up by taking advantage of the fact that the `<base>` can only be a direct child of the `<head>` and is usually defined towards the beginning. Below are some benchmarks for a "Hello world" app before and after this change.

### Before:
```
Running 60s test @ http://localhost:4202
100 connections with 10 pipelining factor

┌─────────┬────────┬────────┬────────┬────────┬───────────┬──────────┬─────────┐
│ Stat    │ 2.5%   │ 50%    │ 97.5%  │ 99%    │ Avg       │ Stdev    │ Max     │
├─────────┼────────┼────────┼────────┼────────┼───────────┼──────────┼─────────┤
│ Latency │ 568 ms │ 853 ms │ 901 ms │ 904 ms │ 866.58 ms │ 437.6 ms │ 9915 ms │
└─────────┴────────┴────────┴────────┴────────┴───────────┴──────────┴─────────┘
┌───────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐
│ Stat      │ 1%      │ 2.5%    │ 50%     │ 97.5%   │ Avg     │ Stdev   │ Min     │
├───────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Req/Sec   │ 490     │ 826     │ 1,006   │ 1,643   │ 1,129.3 │ 234.69  │ 490     │
├───────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Bytes/Sec │ 10.4 MB │ 17.4 MB │ 21.3 MB │ 34.7 MB │ 23.9 MB │ 4.96 MB │ 10.3 MB │
└───────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘

Req/Bytes counts sampled once per second.
# of samples: 60

69k requests in 60.04s, 1.43 GB read
90 errors (90 timeouts)
```

### After

```
Running 60s test @ http://localhost:4202
100 connections with 10 pipelining factor

┌─────────┬────────┬────────┬────────┬─────────┬───────────┬───────────┬─────────┐
│ Stat    │ 2.5%   │ 50%    │ 97.5%  │ 99%     │ Avg       │ Stdev     │ Max     │
├─────────┼────────┼────────┼────────┼─────────┼───────────┼───────────┼─────────┤
│ Latency │ 471 ms │ 831 ms │ 889 ms │ 1668 ms │ 835.91 ms │ 467.89 ms │ 9720 ms │
└─────────┴────────┴────────┴────────┴─────────┴───────────┴───────────┴─────────┘
┌───────────┬─────────┬─────────┬─────────┬─────────┬──────────┬────────┬─────────┐
│ Stat      │ 1%      │ 2.5%    │ 50%     │ 97.5%   │ Avg      │ Stdev  │ Min     │
├───────────┼─────────┼─────────┼─────────┼─────────┼──────────┼────────┼─────────┤
│ Req/Sec   │ 390     │ 860     │ 1,145   │ 1,572   │ 1,156.77 │ 222.65 │ 390     │
├───────────┼─────────┼─────────┼─────────┼─────────┼──────────┼────────┼─────────┤
│ Bytes/Sec │ 8.24 MB │ 18.2 MB │ 24.2 MB │ 33.2 MB │ 24.4 MB  │ 4.7 MB │ 8.24 MB │
└───────────┴─────────┴─────────┴─────────┴─────────┴──────────┴────────┴─────────┘

Req/Bytes counts sampled once per second.
# of samples: 60

71k requests in 60.03s, 1.47 GB read
140 errors (140 timeouts)
```

PR Close #61392
2025-05-16 09:03:40 +00:00
Angular Robot a9d0ed6dfe build: update cross-repo angular dependencies (#61343)
See associated pull request for more information.

PR Close #61343
2025-05-16 08:59:04 +00:00
Alan Agius 337c7b8955 ci: update step name in workflow (#61393)
This was named incorrectly.

PR Close #61393
2025-05-16 08:32:29 +00:00
Andrew Scott 648d42fe65 fix(core): Testing should not throw when Zone does not patch test FW APIs (#61376)
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 #61376
2025-05-16 07:53:42 +00:00
Jan Martin ee1146ee1f docs: call out the available variables in track expressions (#61252)
At least to me it was surprising that values from the surrounding
"lexical-ish" scope weren't available in `track <expr>`.

PR Close #61252
2025-05-16 07:51:12 +00:00
Andrew Scott cabca2d93f fix(docs-infra): Correctly support the CLI tutorial type (#61246)
There were a myriad of problems when using the type: 'cli' for a
tutorial:

* Editor component would flicker the non-cli version first since that
  was the default value. Fixed by not showing anything until type is
  available
* Editor component still rendered a split screen when there was no
  preview. Fixed
* Project initialization was incorrect because the terminal would appear
  to be available but really didn't work until dependencies were done
  installing. Fixed by sharing initialization with regular project init
  and piping the install output to the interactive terminal
* Terminals would not work when going from type: 'cli' to another or
  vice versa. This is because the element instance of a terminal cannot
  change once it is opened. Fixed by dispoing and recreating terminals
  when the element changes

PR Close #61246
2025-05-16 07:50:24 +00:00
Angular Robot 02088d5c14 build: update dependency @bazel/runfiles to v6 (#61324)
See associated pull request for more information.

PR Close #61324
2025-05-16 07:49:28 +00:00
Alan Agius 15dcb2b8b9 ci: use current branch as base for pull request (#61390)
Avoid creating new branches since peter-evans/create-pull-request uses the currently checked-out branch as the base.

PR Close #61390
2025-05-16 07:42:18 +00:00
Angular Robot a1807e5bea docs: update Angular CDK apis [20.0.x] (#61348)
Updated Angular CDK api files.

PR Close #61348
2025-05-16 07:40:59 +00:00
Andrew Seguin c5a83a444b docs: make drag and drop examples preview (#59737)
PR Close #59737
2025-05-16 07:38:06 +00:00
Miles Malerba 3666b6e48b docs: fix embedded preview (#59737)
update the embeddable examples glob to captrue the drag & drop examples,
and fix the current build issues in the drag & drop examples

PR Close #59737
2025-05-16 07:38:06 +00:00
Andrew Seguin 354cdd90e6 docs: add preview to an example to test (#59737)
PR Close #59737
2025-05-16 07:38:06 +00:00
Miles Malerba 46ee5bc832 ci: fix build (#59737)
Deletes the BUILD.bazel in examples/drag-drop so the files can be
collected in examples/BUILD.bazel instead

PR Close #59737
2025-05-16 07:38:06 +00:00
Amy Sorto 5a196e89f8 docs: add code examples for drag and drop guide (#59737)
# Conflicts:
#	adev/src/content/guide/BUILD.bazel

PR Close #59737
2025-05-16 07:38:06 +00:00
Amy Sorto 5a332f19e6 docs: add drag and drop guide (#59737)
PR Close #59737
2025-05-16 07:38:06 +00:00
Will 保哥 e864461d60 docs: update Traditional Chinese footer link (#61280)
update Traditional Chinese footer link from angular.tw to dev.angular.tw to direct users to the new Traditional Chinese dev site.

PR Close #61280
2025-05-16 07:36:21 +00:00