38441 Commits

Author SHA1 Message Date
Kristiyan Kostadinov 8630319f74 fix(core): sanitize translated attribute bindings with interpolations
Fixes that we weren't sanitizing attribute bindings with interpolations if they're marked for translation, for example: `<a href="{{evilLink}}" i18n-href></a>`.

Also adds a bit more test coverage for our sanitization.
2026-03-10 11:13:49 -07:00
Kristiyan Kostadinov f80ac30875 build: include localize in dev app
Includes `$localize` in the dev app so it's easier to test some code paths.
2026-03-10 11:13:49 -07:00
Kristiyan Kostadinov 1866bf5d61 refactor(compiler-cli): remove more unused code
Cleans up some more usages of TS factory APIs and some unused functions.
2026-03-10 10:57:30 -07:00
Jon Snow 196933863b docs(core): clarify provideZoneChangeDetection usage in v21+
Clarify that provideZoneChangeDetection() is used to opt applications into NgZone/ZoneJS-based change detection and to configure NgZone options such as eventCoalescing.

Fixes #67498
2026-03-10 10:21:07 -07:00
Andrew Scott ba1508886d refactor(compiler-cli): Export hybrid_analysis symbols
Export symbols from hybrid_analysis from entrypoint
2026-03-10 10:18:36 -07:00
hawkgs 55c57d4af1 refactor(devtools): make signal graph visualizer reusable
Make the signal visualizer reusable by detaching it from the signal graph manager.
2026-03-10 10:14:55 -07:00
Guseyn 9794e756f9 docs: fix first-app code getHousingLocationById housing.service.ts
1. Get location by Id work with `${this.url}/${id}`
2. Method getHousingLocationById returned empty object, api return object type, locationJson[0] ?? {} - give in result empty object.
2026-03-10 10:02:37 -07:00
Guseyn 7bc7c57636 docs: fix first-app 13 step docs code row numbers
Fix docs code row numbers.
2026-03-10 09:59:04 -07:00
Kristiyan Kostadinov f9ede9ec98 fix(core): ensure definitions compile
Includes the following changes to make sure the definitions for injectable compiler:
1. The types for the `factory` function now include the `parent` parameter.
2. `ɵɵFactoryDeclaration` is now defined as a function. We need this since the provider definition gets passed into the inejctable definition by reference.
3. `ɵɵdefineInjectable`, `ɵɵdefineNgModule` and `ɵɵdefinePipe` now return the typed definition, rather than `unknown`. This aligns with what we do for components and directives.
2026-03-10 09:58:18 -07:00
Eugene Serkin 20496988b1 docs: Update migration docs for vitest
This update fixes minor grammar mistakes
2026-03-10 09:23:49 -07:00
SkyZeroZx 6073493c5b docs: Adds @see links and update defer reference 2026-03-09 16:59:39 -07:00
Andrew Scott 6bd2e7f703 refactor(compiler-cli): Export more things needed by external TCB generation
There are more things needed by external TCB generation tools
2026-03-09 16:58:48 -07:00
Sonu Kapoor 71b8159b37 test(forms): cover transformedValue without FormField context
Adds a test verifying that `transformedValue` exposes parse errors via
the returned signal's `parseErrors()` property when no FormField
context is present.

This ensures that:
- parse errors are still observable without DI-based field propagation
- the model is not updated when `parse` omits `value`
- valid input clears parse errors and updates the model

This test protects the documented contract that DI-based error
propagation is expected for FormValueControl usage, while standalone
usage relies on explicit consumption of `parseErrors()`.
2026-03-09 16:41:48 -07:00
Jessica Janiuk 8c17721333 docs: Update animation docs for element removal order
This update the docs to be clear that descendent node animations will happen before the parent node is removed.

fixes: #67526
2026-03-09 16:40:45 -07:00
Matthieu Riegler bf93ff83d8 ci: fix exclusion of manual_api_docs
On top of #67253, dev-infra should be required for docs files
2026-03-09 16:27:43 -07:00
Angular Robot af40009d42 build: update all non-major dependencies
See associated pull request for more information.
2026-03-09 16:25:30 -07:00
Miles Malerba b918beda32 feat(core): allow debouncing signals
Adds a utility `debounced` to create a debounced version of a signal,
represented as a `Resource`. The resource's value contained the
debounced value of the signal, while its status (`resolved`, `loading`,
or `error`) indicates if the value is settled, if there is a value
currently pending debounce, or if the source signal threw an error.
2026-03-09 13:21:52 -07:00
Kristiyan Kostadinov 82b758e934 refactor(compiler-cli): replace typescript usage in type reference emits
Replaces our usage of TypeScript APIs in several places that emit references to type nodes. Also deletes some unused code.
2026-03-09 11:22:53 -07:00
Matthieu Riegler 0afe3c00ae refactor(core): remove private export of getDebugNode
This is a public api
2026-03-09 11:21:19 -07:00
Angular Robot e121e25567 build: update pnpm to v10.31.0
See associated pull request for more information.
2026-03-09 11:18:08 -07:00
Andrew Scott e97f5139ec refactor(core): update componentDeclaration to include isSignal
This is in DirectiveDeclaration and in the golden files with ComponentDeclaration
so I assume it was an accidental omission.
2026-03-09 11:17:38 -07:00
Andrew Scott f81eb26e23 docs: release notes for the v21.2.2 release 2026-03-09 11:14:37 -07:00
Matthieu Riegler 263b819a75 refactor(devtools): prevent spamming the message bus
This commit adds some state on the bus to prevent sending unecessary messages to the main window.
2026-03-09 10:45:58 -07:00
Kam 03465360bd docs: add Turkish community translation of Angular documentation
add a link to the community-driven Turkish translation of Angular
documentation to make it easier for Turkish-speaking developers to
discover localized docs.

The translation project is maintained by the community and hosted at:
https://github.com/erkamyaman/angular-tr

Providing documentation in developers' native languages helps lower
the barrier to entry and supports wider Angular adoption in the
Turkish-speaking developer community.
2026-03-09 10:29:16 -07:00
Kristiyan Kostadinov 1ad2318775 build: update to the TypeScript 6 RC
Updates the repo to the TypeScript 6 release candidate.
2026-03-09 10:25:21 -07:00
hawkgs ed3dc10fea refactor(devtools): fix browser-specific styles infra
Fix browser-specific styles infrastructure. PR #62786 cleans up part of the code, but there are still services that attempt to load these stylesheets on `main`.
2026-03-09 10:21:51 -07:00
Alan Agius 786ea441e9 build: force external sourcemaps for esbuild targets
Update the `esbuild` macro in devtools to use
`external` sourcemaps by default and remove the ability to override the `sourcemap` and `sources_content` options.
This change is necessary to ensure that the build is deterministic and 100% reproducible as otherwise Firefox will not publish the build.
2026-03-06 12:13:18 -08:00
Andrew Scott 4f5c075d92 refactor(compiler-cli): export classpropertymapping from private
ClassPropertyMapping is used by the tcb_adapter so would be needed by external
TCB generation tools
2026-03-06 12:12:45 -08:00
Angular Robot 759ee22800 build: update all github actions to v7
See associated pull request for more information.
2026-03-06 10:58:35 -08:00
kbrilla cc64def294 test(language-service): add inlay hint regression and integration coverage
test(language-service): add inlay hint regression and integration coverage
2026-03-06 10:18:28 -08:00
kbrilla 5a6d88626b feat(language-service): add angular template inlay hints support
Add Angular template inlay hints end-to-end across language-service and VS Code extension server/client wiring, including inlay-specific configuration mapping, request guards, and refresh behavior.
2026-03-06 10:18:28 -08:00
kbrilla aaf6e3e079 refactor(vscode-extension): harden workspace config lifecycle
This refactoring improves the lifecycle management and configuration handling within the VS Code extension's language client.

Key changes include:
- Introduced sessionDisposables to manage resources tied to the lifespan of an LSP client session, ensuring they are properly cleaned up when the client stops without affecting global extension resources.
- Added a configuration change listener to clear the fileToIsInAngularProjectMap cache, ensuring project state is re-evaluated when settings change.
- Enhanced registerNotificationHandlers to clear the project state cache when project loading begins or completes, providing more accurate "is in Angular project" checks.
- Modified isInAngularProject to only cache positive results, allowing for recovery if a file was initially incorrectly identified as being outside an Angular project.
2026-03-06 10:18:28 -08:00
kbrilla d6e8a3c37a refactor(vscode-extension): add workspace configuration helpers and settings grouping
Add shared workspace configuration helper utilities and move extension settings to grouped configuration sections, without inlay-hint feature options yet.
2026-03-06 10:18:28 -08:00
Kristiyan Kostadinov c19066c741 refactor(core): add tracing for component creation
Adds tracing support for component creations.
2026-03-06 09:48:23 -08:00
Kristiyan Kostadinov e433ba9a80 refactor(core): track the tracing service in the LView environment
Adds the `TracingService` to the `LView[ENVIRONMENT]` so we don't have to inject it everywhere.
2026-03-06 09:48:23 -08:00
Anushka Geeta Singh 418cb61f2f docs(router): Add example of relative navigation and multiple array values
Adds an example to docs with relative navigation and multiple values in
the commands array.
2026-03-06 09:47:41 -08:00
Angular Robot d69c468bf2 build: update all github actions
See associated pull request for more information.
2026-03-05 15:02:28 -08:00
Andrew Scott ac8418d728 refactor(compiler-cli): export TCB types and methods
exports methods and types required for TCB generation. This would allow external
tools to generate TCBs using their own analysis pipelines, separate from the
compiler-cli implementations.
2026-03-05 14:35:47 -08:00
SkyZeroZx 7b27d4ff11 refactor(core): remove redundant providedIn: 'root' from IDLE_SERVICE
Remove the `providedIn: 'root'` configuration from the `IDLE_SERVICE` token
since it is redundant and does not change the default injection behavior
2026-03-05 14:31:15 -08:00
SkyZeroZx 9705ec0386 docs: add docs for IdleService and customization for the @defer idle trigger 2026-03-05 14:31:15 -08:00
Angular Robot 44b7c92faa docs: update cross-repo adev docs
Updated Angular adev cross repo docs files.
2026-03-05 14:30:55 -08:00
Alan Agius dd464e586d ci: remove redundant actions/checkout steps from dev-infra workflows
Checking out the repo is not needed for these actions.
2026-03-05 14:19:10 -08:00
Andrew Scott 8217ef9b24 refactor(compiler-cli): abstract type check block metadata to be AST-free
This commit refactors the template type checking metadata interfaces to use detached, serializable metadata rather than retaining direct references to ts.Node or ts.Declaration instances.

A new tcb_adapter translates traditional TypeScript AST-bound metadata into these decoupled structures. This abstraction lays the groundwork for supporting native preprocessors (such as Rust or ts-go) which serialize metadata over JSON rather than passing live TypeScript objects.

Key changes:
- Introduced TcbDirectiveMetadata, TcbComponentMetadata, TcbReferenceMetadata, and TcbPipeMetadata to replace TypeCheckableDirectiveMeta where appropriate.
- Substituted deep TS compilation AST references with string module names and source spans to preserve out-of-band diagnostic capabilities.
- Detached generic typeParameters and transformType properties into synthesized, standalone TS mappings.
- Updated generateTypeCheckBlock and corresponding Operations to consume the new metadata.
2026-03-05 13:31:36 -08:00
Matthieu Riegler 36936872c9 refactor(core): remove createNgModuleRef
`createNgModuleRef` was aliased to `createNgModule`

BREAKING CHANGE: `createNgModuleRef` was removed, use `createNgModule` instead
2026-03-05 12:02:27 -08:00
Angular Robot 9fe820d335 build: update cross-repo angular dependencies
See associated pull request for more information.
2026-03-05 11:43:25 -08:00
Andrew Scott 0964b2ca9f release: cut the v22.0.0-next.1 release v22.0.0-next.1 2026-03-05 10:20:16 -08:00
Alan Agius e5f99edda5 docs: add a new section on nonces and caching considerations to the security guide. 2026-03-05 10:03:31 -08:00
SkyZeroZx 9ab80f4016 docs: update http client for withXhr 2026-03-05 10:00:05 -08:00
Leon Senft c767d678cf feat(forms): add 'blur' option to debounce rule
Expands the `debounce` rule configuration to accept `'blur'`. When this option
is provided, the rule will delay model synchronization until the field loses
focus (is touched). This introduces a debouncer that defers resolution
until the framework automatically aborts pending debounces upon touch events.
2026-03-05 09:55:14 -08:00
Kristiyan Kostadinov f01901d766 fix(migrations): avoid generating invalid code in ChangeDetectionStrategy.Eager migration
Currently the migration that add `ChangeDetectionStrategy.Eager` to components tries to add the properties as last in the object literal. This can be tricky, because TS doesn't reflect the commas in the AST so we need have to do brittle string lookups to know where to insert it.

These changes switch to inserting the property before the last pre-existing property which should be a bit more robust.
2026-03-05 09:34:03 -08:00