@angular/core 20.0.4 → 20.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/{api.d-B0vztftH.d.ts → api.d.d.ts} +2 -2
  2. package/{chrome_dev_tools_performance.d-DvzAxqBc.d.ts → chrome_dev_tools_performance.d.d.ts} +3 -3
  3. package/{discovery.d-C5dkZ8lJ.d.ts → discovery.d.d.ts} +6 -5
  4. package/{event_dispatcher.d-BReQpZfC.d.ts → event_dispatcher.d.d.ts} +1 -1
  5. package/fesm2022/{attribute-BWp59EjE.mjs → attribute.mjs} +2 -2
  6. package/fesm2022/attribute.mjs.map +1 -0
  7. package/fesm2022/core.mjs +22 -14
  8. package/fesm2022/core.mjs.map +1 -1
  9. package/fesm2022/{debug_node-DTOmNMDH.mjs → debug_node.mjs} +28 -12
  10. package/fesm2022/debug_node.mjs.map +1 -0
  11. package/fesm2022/primitives/di.mjs +1 -1
  12. package/fesm2022/primitives/di.mjs.map +1 -1
  13. package/fesm2022/primitives/event-dispatch.mjs +2 -2
  14. package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
  15. package/fesm2022/primitives/signals.mjs +5 -5
  16. package/fesm2022/primitives/signals.mjs.map +1 -1
  17. package/fesm2022/{resource-DalzMB4W.mjs → resource.mjs} +12 -8
  18. package/fesm2022/resource.mjs.map +1 -0
  19. package/fesm2022/{root_effect_scheduler-CWV89N3_.mjs → root_effect_scheduler.mjs} +13 -6
  20. package/fesm2022/root_effect_scheduler.mjs.map +1 -0
  21. package/fesm2022/rxjs-interop.mjs +5 -5
  22. package/fesm2022/rxjs-interop.mjs.map +1 -1
  23. package/fesm2022/{signal-nCiHhWf6.mjs → signal.mjs} +2 -2
  24. package/fesm2022/signal.mjs.map +1 -0
  25. package/fesm2022/testing.mjs +142 -53
  26. package/fesm2022/testing.mjs.map +1 -1
  27. package/fesm2022/{untracked-DmD_2MlC.mjs → untracked.mjs} +3 -3
  28. package/fesm2022/untracked.mjs.map +1 -0
  29. package/fesm2022/{weak_ref-BaIq-pgY.mjs → weak_ref.mjs} +2 -2
  30. package/fesm2022/weak_ref.mjs.map +1 -0
  31. package/{graph.d-BcIOep_B.d.ts → graph.d.d.ts} +1 -1
  32. package/index.d.ts +16 -17
  33. package/package.json +2 -2
  34. package/primitives/di/index.d.ts +1 -1
  35. package/primitives/event-dispatch/index.d.ts +3 -3
  36. package/primitives/signals/index.d.ts +6 -6
  37. package/rxjs-interop/index.d.ts +5 -5
  38. package/schematics/bundles/{apply_import_manager-DT15wSJs.cjs → apply_import_manager-mlmcgZ0v.cjs} +3 -3
  39. package/schematics/bundles/{checker-Bu1Wu4f7.cjs → checker-a0VNmSrQ.cjs} +117 -93
  40. package/schematics/bundles/cleanup-unused-imports.cjs +5 -5
  41. package/schematics/bundles/{compiler_host-C_4Iw5UD.cjs → compiler_host-CwrMDc6k.cjs} +2 -2
  42. package/schematics/bundles/control-flow-migration.cjs +3 -3
  43. package/schematics/bundles/document-core.cjs +5 -5
  44. package/schematics/bundles/imports-CIX-JgAN.cjs +1 -1
  45. package/schematics/bundles/{index-CAM7Xiu7.cjs → index-DAP9ZmeX.cjs} +4 -4
  46. package/schematics/bundles/{index-CCX_cTPD.cjs → index-jMQgXbRg.cjs} +12 -12
  47. package/schematics/bundles/inject-flags.cjs +5 -5
  48. package/schematics/bundles/inject-migration.cjs +3 -3
  49. package/schematics/bundles/leading_space-D9nQ8UQC.cjs +1 -1
  50. package/schematics/bundles/{migrate_ts_type_references-DSqmdRpG.cjs → migrate_ts_type_references-CX0snBqz.cjs} +5 -5
  51. package/schematics/bundles/ng_decorators-B5HCqr20.cjs +1 -1
  52. package/schematics/bundles/nodes-B16H9JUd.cjs +1 -1
  53. package/schematics/bundles/output-migration.cjs +6 -6
  54. package/schematics/bundles/{project_paths-BjQra9mv.cjs → project_paths-C4WM31v5.cjs} +3 -3
  55. package/schematics/bundles/project_tsconfig_paths-CDVxT6Ov.cjs +1 -1
  56. package/schematics/bundles/property_name-BBwFuqMe.cjs +1 -1
  57. package/schematics/bundles/route-lazy-loading.cjs +3 -3
  58. package/schematics/bundles/self-closing-tags-migration.cjs +4 -4
  59. package/schematics/bundles/signal-input-migration.cjs +7 -7
  60. package/schematics/bundles/signal-queries-migration.cjs +7 -7
  61. package/schematics/bundles/signals.cjs +7 -7
  62. package/schematics/bundles/standalone-migration.cjs +4 -4
  63. package/schematics/bundles/symbol-VPWguRxr.cjs +1 -1
  64. package/schematics/bundles/test-bed-get.cjs +4 -4
  65. package/{signal.d-BcmOdASA.d.ts → signal.d.d.ts} +2 -2
  66. package/testing/index.d.ts +73 -6
  67. package/{weak_ref.d-eGOEP9S1.d.ts → weak_ref.d.d.ts} +1 -1
  68. package/fesm2022/attribute-BWp59EjE.mjs.map +0 -1
  69. package/fesm2022/debug_node-DTOmNMDH.mjs.map +0 -1
  70. package/fesm2022/resource-DalzMB4W.mjs.map +0 -1
  71. package/fesm2022/root_effect_scheduler-CWV89N3_.mjs.map +0 -1
  72. package/fesm2022/signal-nCiHhWf6.mjs.map +0 -1
  73. package/fesm2022/untracked-DmD_2MlC.mjs.map +0 -1
  74. package/fesm2022/weak_ref-BaIq-pgY.mjs.map +0 -1
@@ -1,10 +1,10 @@
1
1
  /**
2
- * @license Angular v20.0.4
2
+ * @license Angular v20.0.6
3
3
  * (c) 2010-2025 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
 
7
- import { SIGNAL, runPostProducerCreatedFn, producerUpdateValueVersion, signalSetFn, producerMarkClean, signalUpdateFn, REACTIVE_NODE, UNSET, defaultEquals, COMPUTING, consumerBeforeComputation, ERRORED, consumerAfterComputation, producerAccessed, setActiveConsumer } from './signal-nCiHhWf6.mjs';
7
+ import { SIGNAL, runPostProducerCreatedFn, producerUpdateValueVersion, signalSetFn, producerMarkClean, signalUpdateFn, REACTIVE_NODE, UNSET, defaultEquals, COMPUTING, consumerBeforeComputation, ERRORED, consumerAfterComputation, producerAccessed, setActiveConsumer } from './signal.mjs';
8
8
 
9
9
  function createLinkedSignal(sourceFn, computationFn, equalityFn) {
10
10
  const node = Object.create(LINKED_SIGNAL_NODE);
@@ -114,4 +114,4 @@ function untracked(nonReactiveReadsFn) {
114
114
  }
115
115
 
116
116
  export { createLinkedSignal, linkedSignalSetFn, linkedSignalUpdateFn, untracked };
117
- //# sourceMappingURL=untracked-DmD_2MlC.mjs.map
117
+ //# sourceMappingURL=untracked.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"untracked.mjs","sources":["../../../../../k8-fastbuild-ST-46c76129e412/bin/packages/core/primitives/signals/src/linked_signal.ts","../../../../../k8-fastbuild-ST-46c76129e412/bin/packages/core/primitives/signals/src/untracked.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {COMPUTING, ERRORED, UNSET} from './computed';\nimport {defaultEquals, ValueEqualityFn} from './equality';\nimport {\n consumerAfterComputation,\n consumerBeforeComputation,\n producerAccessed,\n producerMarkClean,\n producerUpdateValueVersion,\n REACTIVE_NODE,\n ReactiveNode,\n runPostProducerCreatedFn,\n SIGNAL,\n} from './graph';\nimport {signalSetFn, signalUpdateFn} from './signal';\n\n// Required as the signals library is in a separate package, so we need to explicitly ensure the\n// global `ngDevMode` type is defined.\ndeclare const ngDevMode: boolean | undefined;\n\nexport type ComputationFn<S, D> = (source: S, previous?: {source: S; value: D}) => D;\n\nexport interface LinkedSignalNode<S, D> extends ReactiveNode {\n /**\n * Value of the source signal that was used to derive the computed value.\n */\n sourceValue: S;\n\n /**\n * Current state value, or one of the sentinel values (`UNSET`, `COMPUTING`,\n * `ERROR`).\n */\n value: D;\n\n /**\n * If `value` is `ERRORED`, the error caught from the last computation attempt which will\n * be re-thrown.\n */\n error: unknown;\n\n /**\n * The source function represents reactive dependency based on which the linked state is reset.\n */\n source: () => S;\n\n /**\n * The computation function which will produce a new value based on the source and, optionally - previous values.\n */\n computation: ComputationFn<S, D>;\n\n equal: ValueEqualityFn<D>;\n}\n\nexport type LinkedSignalGetter<S, D> = (() => D) & {\n [SIGNAL]: LinkedSignalNode<S, D>;\n};\n\nexport function createLinkedSignal<S, D>(\n sourceFn: () => S,\n computationFn: ComputationFn<S, D>,\n equalityFn?: ValueEqualityFn<D>,\n): LinkedSignalGetter<S, D> {\n const node: LinkedSignalNode<S, D> = Object.create(LINKED_SIGNAL_NODE);\n\n node.source = sourceFn;\n node.computation = computationFn;\n if (equalityFn != undefined) {\n node.equal = equalityFn;\n }\n\n const linkedSignalGetter = () => {\n // Check if the value needs updating before returning it.\n producerUpdateValueVersion(node);\n\n // Record that someone looked at this signal.\n producerAccessed(node);\n\n if (node.value === ERRORED) {\n throw node.error;\n }\n\n return node.value;\n };\n\n const getter = linkedSignalGetter as LinkedSignalGetter<S, D>;\n getter[SIGNAL] = node;\n if (typeof ngDevMode !== 'undefined' && ngDevMode) {\n const debugName = node.debugName ? ' (' + node.debugName + ')' : '';\n getter.toString = () => `[LinkedSignal${debugName}: ${node.value}]`;\n }\n\n runPostProducerCreatedFn(node);\n\n return getter;\n}\n\nexport function linkedSignalSetFn<S, D>(node: LinkedSignalNode<S, D>, newValue: D) {\n producerUpdateValueVersion(node);\n signalSetFn(node, newValue);\n producerMarkClean(node);\n}\n\nexport function linkedSignalUpdateFn<S, D>(\n node: LinkedSignalNode<S, D>,\n updater: (value: D) => D,\n): void {\n producerUpdateValueVersion(node);\n signalUpdateFn(node, updater);\n producerMarkClean(node);\n}\n\n// Note: Using an IIFE here to ensure that the spread assignment is not considered\n// a side-effect, ending up preserving `LINKED_SIGNAL_NODE` and `REACTIVE_NODE`.\n// TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.\nexport const LINKED_SIGNAL_NODE: object = /* @__PURE__ */ (() => {\n return {\n ...REACTIVE_NODE,\n value: UNSET,\n dirty: true,\n error: null,\n equal: defaultEquals,\n kind: 'linkedSignal',\n\n producerMustRecompute(node: LinkedSignalNode<unknown, unknown>): boolean {\n // Force a recomputation if there's no current value, or if the current value is in the\n // process of being calculated (which should throw an error).\n return node.value === UNSET || node.value === COMPUTING;\n },\n\n producerRecomputeValue(node: LinkedSignalNode<unknown, unknown>): void {\n if (node.value === COMPUTING) {\n // Our computation somehow led to a cyclic read of itself.\n throw new Error(\n typeof ngDevMode !== 'undefined' && ngDevMode ? 'Detected cycle in computations.' : '',\n );\n }\n\n const oldValue = node.value;\n node.value = COMPUTING;\n\n const prevConsumer = consumerBeforeComputation(node);\n let newValue: unknown;\n try {\n const newSourceValue = node.source();\n const prev =\n oldValue === UNSET || oldValue === ERRORED\n ? undefined\n : {\n source: node.sourceValue,\n value: oldValue,\n };\n newValue = node.computation(newSourceValue, prev);\n node.sourceValue = newSourceValue;\n } catch (err) {\n newValue = ERRORED;\n node.error = err;\n } finally {\n consumerAfterComputation(node, prevConsumer);\n }\n\n if (oldValue !== UNSET && newValue !== ERRORED && node.equal(oldValue, newValue)) {\n // No change to `valueVersion` - old and new values are\n // semantically equivalent.\n node.value = oldValue;\n return;\n }\n\n node.value = newValue;\n node.version++;\n },\n };\n})();\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {setActiveConsumer} from './graph';\n\n/**\n * Execute an arbitrary function in a non-reactive (non-tracking) context. The executed function\n * can, optionally, return a value.\n */\nexport function untracked<T>(nonReactiveReadsFn: () => T): T {\n const prevConsumer = setActiveConsumer(null);\n // We are not trying to catch any particular errors here, just making sure that the consumers\n // stack is restored in case of errors.\n try {\n return nonReactiveReadsFn();\n } finally {\n setActiveConsumer(prevConsumer);\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v20.0.4
2
+ * @license Angular v20.0.6
3
3
  * (c) 2010-2025 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -9,4 +9,4 @@ function setAlternateWeakRefImpl(impl) {
9
9
  }
10
10
 
11
11
  export { setAlternateWeakRefImpl };
12
- //# sourceMappingURL=weak_ref-BaIq-pgY.mjs.map
12
+ //# sourceMappingURL=weak_ref.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weak_ref.mjs","sources":["../../../../../k8-fastbuild-ST-46c76129e412/bin/packages/core/primitives/signals/src/weak_ref.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nexport function setAlternateWeakRefImpl(impl: unknown) {\n // TODO: remove this function\n}\n"],"names":[],"mappings":";;;;;;AAQM,SAAU,uBAAuB,CAAC,IAAa,EAAA;;AAErD;;;;"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v20.0.4
2
+ * @license Angular v20.0.6
3
3
  * (c) 2010-2025 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
package/index.d.ts CHANGED
@@ -1,21 +1,21 @@
1
1
  /**
2
- * @license Angular v20.0.4
2
+ * @license Angular v20.0.6
3
3
  * (c) 2010-2025 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
 
7
- import { SIGNAL, ValueEqualityFn as ValueEqualityFn$1 } from './graph.d-BcIOep_B.js';
8
- import { Signal, WritableSignal, OutputRef, Provider, EnvironmentProviders, Type as Type$1, ModuleWithProviders, TypeProvider, ValueProvider, ClassProvider, ConstructorProvider, ExistingProvider, FactoryProvider, StaticClassProvider, ProviderToken, StaticProvider, Injector, ValueSansProvider, ExistingSansProvider, StaticClassSansProvider, ConstructorSansProvider, FactorySansProvider, ClassSansProvider, InjectionToken, InternalInjectFlags, InjectOptions, ValueEqualityFn, EventCallback, isSignal, enableProfiling as enableProfiling$1 } from './chrome_dev_tools_performance.d-DvzAxqBc.js';
9
- export { AbstractType, CreateSignalOptions, DestroyRef, DestroyableInjector, ImportedNgModuleProviders, OutputRefSubscription, signal, InternalEnvironmentProviders as ɵInternalEnvironmentProviders, JSACTION_EVENT_CONTRACT as ɵJSACTION_EVENT_CONTRACT, Writable as ɵWritable, isEnvironmentProviders as ɵisEnvironmentProviders, ɵunwrapWritableSignal } from './chrome_dev_tools_performance.d-DvzAxqBc.js';
10
- import { InputSignalNode, TypeDecorator, AfterRenderRef, EffectCleanupRegisterFn, SchemaMetadata, ComponentDef, DirectiveDef, CssSelectorList, DirectiveDefFeature, HostBindingsFunction, TAttributes, ContentQueriesFunction, ViewQueriesFunction, ComponentTemplate, TConstantsOrFactory, ComponentDefFeature, ViewEncapsulation as ViewEncapsulation$1, ChangeDetectionStrategy as ChangeDetectionStrategy$1, TypeOrFactory, DependencyTypeList, InputFlags, InputTransformFunction, EmbeddedViewRef, LView, ApplicationRef, ChangeDetectorRef, ComponentFactory as ComponentFactory$1, NgModuleRef as NgModuleRef$1, EnvironmentInjector, DirectiveWithBindings, Binding, ComponentRef as ComponentRef$1, ElementRef, ComponentFactoryResolver as ComponentFactoryResolver$1, InternalNgModuleRef, NgModuleFactory as NgModuleFactory$1, ViewRef as ViewRef$1, PlatformRef, NgZone, ChangeDetectionScheduler, NotificationSource, ɵɵFactoryDeclaration as __FactoryDeclaration, ɵɵInjectableDeclaration as __InjectableDeclaration, ɵɵNgModuleDeclaration as __NgModuleDeclaration, ɵɵInjectorDeclaration as __InjectorDeclaration, DeferBlockDependencyInterceptor, DeferBlockConfig, DeferBlockState, TNode, LContainer, TView, TDeferBlockDetails, RNode, Component, TrustedHTML, DehydratedDeferBlock, CompilerOptions, HostDirectiveConfig, ComponentType, NgModuleScopeInfoFromDecorator, DependencyResolverFn, TDeferDetailsFlags, SanitizerFn, LocalRefExtractor, OpaqueViewState, GlobalTargetResolver, ProjectionSlots, QueryFlags, QueryList, RElement, RawScopeInfoFromDecorator, ClassDebugInfo, Directive, NgModule, Pipe, TrustedScriptURL, TrustedScript, PipeType, DirectiveType } from './discovery.d-C5dkZ8lJ.js';
11
- export { APP_BOOTSTRAP_LISTENER, BootstrapOptions, COMPILER_OPTIONS, CUSTOM_ELEMENTS_SCHEMA, Compiler, CompilerFactory, ComponentDecorator, CreateEffectOptions, DebugElement, DebugEventListener, DebugNode, DirectiveDecorator, EffectCleanupFn, EffectRef, EventEmitter, HostBinding, HostBindingDecorator, HostListener, HostListenerDecorator, InjectableType, InjectorType, Input, InputDecorator, ListenerOptions, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModuleDecorator, NgProbeToken, Output, OutputDecorator, PipeDecorator, Predicate, Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2, Sanitizer, SecurityContext, asNativeElements, defineInjectable, effect, getDebugNode, inputBinding, outputBinding, twoWayBinding, AfterRenderManager as ɵAfterRenderManager, AnimationRendererType as ɵAnimationRendererType, AttributeMarker as ɵAttributeMarker, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, DeferBlockBehavior as ɵDeferBlockBehavior, DeferBlockDetails as ɵDeferBlockDetails, EffectScheduler as ɵEffectScheduler, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, NG_INJ_DEF as ɵNG_INJ_DEF, NG_PROV_DEF as ɵNG_PROV_DEF, NavigateEvent as ɵNavigateEvent, Navigation as ɵNavigation, NavigationCurrentEntryChangeEvent as ɵNavigationCurrentEntryChangeEvent, NavigationDestination as ɵNavigationDestination, NavigationHistoryEntry as ɵNavigationHistoryEntry, NavigationInterceptOptions as ɵNavigationInterceptOptions, NavigationNavigateOptions as ɵNavigationNavigateOptions, NavigationOptions as ɵNavigationOptions, NavigationReloadOptions as ɵNavigationReloadOptions, NavigationResult as ɵNavigationResult, NavigationTransition as ɵNavigationTransition, NavigationTypeString as ɵNavigationTypeString, NavigationUpdateCurrentEntryOptions as ɵNavigationUpdateCurrentEntryOptions, NoopNgZone as ɵNoopNgZone, PipeDef as ɵPipeDef, R3Injector as ɵR3Injector, RenderFlags as ɵRenderFlags, TracingAction as ɵTracingAction, TracingService as ɵTracingService, TracingSnapshot as ɵTracingSnapshot, ZONELESS_ENABLED as ɵZONELESS_ENABLED, getDebugNode as ɵgetDebugNode, getDeferBlocks as ɵgetDeferBlocks, getInjectableDef as ɵgetInjectableDef, injectChangeDetectorRef as ɵinjectChangeDetectorRef, isBoundToModule as ɵisBoundToModule, isInjectable as ɵisInjectable, ɵɵComponentDeclaration, ɵɵDirectiveDeclaration, ɵɵInjectorDef, ɵɵPipeDeclaration, ɵɵdefineInjectable, ɵɵdefineInjector } from './discovery.d-C5dkZ8lJ.js';
12
- import { ResourceOptions, ResourceRef, ResourceStreamingLoader, ResourceStatus, WritableResource, Resource } from './api.d-B0vztftH.js';
13
- export { BaseResourceOptions, OutputEmitterRef, OutputOptions, PromiseResourceOptions, ResourceLoader, ResourceLoaderParams, ResourceStreamItem, StreamingResourceOptions, output, getOutputDestroyRef as ɵgetOutputDestroyRef } from './api.d-B0vztftH.js';
14
- import './event_dispatcher.d-BReQpZfC.js';
7
+ import { SIGNAL, ValueEqualityFn as ValueEqualityFn$1 } from './graph.d.js';
8
+ import { Signal, WritableSignal, OutputRef, Provider, EnvironmentProviders, Type as Type$1, ModuleWithProviders, TypeProvider, ValueProvider, ClassProvider, ConstructorProvider, ExistingProvider, FactoryProvider, StaticClassProvider, ProviderToken, StaticProvider, Injector, ValueSansProvider, ExistingSansProvider, StaticClassSansProvider, ConstructorSansProvider, FactorySansProvider, ClassSansProvider, InjectionToken, InternalInjectFlags, InjectOptions, ValueEqualityFn, EventCallback, isSignal, enableProfiling as enableProfiling$1 } from './chrome_dev_tools_performance.d.js';
9
+ export { AbstractType, CreateSignalOptions, DestroyRef, DestroyableInjector, ImportedNgModuleProviders, OutputRefSubscription, signal, InternalEnvironmentProviders as ɵInternalEnvironmentProviders, JSACTION_EVENT_CONTRACT as ɵJSACTION_EVENT_CONTRACT, Writable as ɵWritable, isEnvironmentProviders as ɵisEnvironmentProviders, ɵunwrapWritableSignal } from './chrome_dev_tools_performance.d.js';
10
+ import { InputSignalNode, TypeDecorator, AfterRenderRef, EffectCleanupRegisterFn, SchemaMetadata, ComponentDef, DirectiveDef, CssSelectorList, DirectiveDefFeature, HostBindingsFunction, TAttributes, ContentQueriesFunction, ViewQueriesFunction, ComponentTemplate, TConstantsOrFactory, ComponentDefFeature, ViewEncapsulation as ViewEncapsulation$1, ChangeDetectionStrategy as ChangeDetectionStrategy$1, TypeOrFactory, DependencyTypeList, InputFlags, InputTransformFunction, EmbeddedViewRef, LView, ApplicationRef, ChangeDetectorRef, ComponentFactory as ComponentFactory$1, NgModuleRef as NgModuleRef$1, EnvironmentInjector, DirectiveWithBindings, Binding, ComponentRef as ComponentRef$1, ElementRef, ComponentFactoryResolver as ComponentFactoryResolver$1, InternalNgModuleRef, NgModuleFactory as NgModuleFactory$1, ViewRef as ViewRef$1, PlatformRef, NgZone, ChangeDetectionScheduler, NotificationSource, ɵɵFactoryDeclaration as __FactoryDeclaration, ɵɵInjectableDeclaration as __InjectableDeclaration, ɵɵNgModuleDeclaration as __NgModuleDeclaration, ɵɵInjectorDeclaration as __InjectorDeclaration, DeferBlockDependencyInterceptor, DeferBlockConfig, DeferBlockState, TNode, LContainer, TView, TDeferBlockDetails, RNode, Component, TrustedHTML, DehydratedDeferBlock, CompilerOptions, HostDirectiveConfig, ComponentType, NgModuleScopeInfoFromDecorator, DependencyResolverFn, TDeferDetailsFlags, SanitizerFn, LocalRefExtractor, OpaqueViewState, GlobalTargetResolver, ProjectionSlots, QueryFlags, QueryList, RElement, RawScopeInfoFromDecorator, ClassDebugInfo, Directive, NgModule, Pipe, TrustedScriptURL, TrustedScript, PipeType, DirectiveType } from './discovery.d.js';
11
+ export { APP_BOOTSTRAP_LISTENER, BootstrapOptions, COMPILER_OPTIONS, CUSTOM_ELEMENTS_SCHEMA, Compiler, CompilerFactory, ComponentDecorator, CreateEffectOptions, DebugElement, DebugEventListener, DebugNode, DirectiveDecorator, EffectCleanupFn, EffectRef, EventEmitter, HostBinding, HostBindingDecorator, HostListener, HostListenerDecorator, InjectableType, InjectorType, Input, InputDecorator, ListenerOptions, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModuleDecorator, NgProbeToken, Output, OutputDecorator, PipeDecorator, Predicate, Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2, Sanitizer, SecurityContext, asNativeElements, defineInjectable, effect, getDebugNode, inputBinding, outputBinding, twoWayBinding, AfterRenderManager as ɵAfterRenderManager, AnimationRendererType as ɵAnimationRendererType, AttributeMarker as ɵAttributeMarker, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, DeferBlockBehavior as ɵDeferBlockBehavior, DeferBlockDetails as ɵDeferBlockDetails, EffectScheduler as ɵEffectScheduler, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, NG_INJ_DEF as ɵNG_INJ_DEF, NG_PROV_DEF as ɵNG_PROV_DEF, NavigateEvent as ɵNavigateEvent, Navigation as ɵNavigation, NavigationCurrentEntryChangeEvent as ɵNavigationCurrentEntryChangeEvent, NavigationDestination as ɵNavigationDestination, NavigationHistoryEntry as ɵNavigationHistoryEntry, NavigationInterceptOptions as ɵNavigationInterceptOptions, NavigationNavigateOptions as ɵNavigationNavigateOptions, NavigationOptions as ɵNavigationOptions, NavigationReloadOptions as ɵNavigationReloadOptions, NavigationResult as ɵNavigationResult, NavigationTransition as ɵNavigationTransition, NavigationTypeString as ɵNavigationTypeString, NavigationUpdateCurrentEntryOptions as ɵNavigationUpdateCurrentEntryOptions, NoopNgZone as ɵNoopNgZone, PipeDef as ɵPipeDef, R3Injector as ɵR3Injector, RenderFlags as ɵRenderFlags, TracingAction as ɵTracingAction, TracingService as ɵTracingService, TracingSnapshot as ɵTracingSnapshot, ZONELESS_ENABLED as ɵZONELESS_ENABLED, getDebugNode as ɵgetDebugNode, getDeferBlocks as ɵgetDeferBlocks, getInjectableDef as ɵgetInjectableDef, injectChangeDetectorRef as ɵinjectChangeDetectorRef, isBoundToModule as ɵisBoundToModule, isInjectable as ɵisInjectable, ɵɵComponentDeclaration, ɵɵDirectiveDeclaration, ɵɵInjectorDef, ɵɵPipeDeclaration, ɵɵdefineInjectable, ɵɵdefineInjector } from './discovery.d.js';
12
+ import { ResourceOptions, ResourceRef, ResourceStreamingLoader, ResourceStatus, WritableResource, Resource } from './api.d.js';
13
+ export { BaseResourceOptions, OutputEmitterRef, OutputOptions, PromiseResourceOptions, ResourceLoader, ResourceLoaderParams, ResourceStreamItem, StreamingResourceOptions, output, getOutputDestroyRef as ɵgetOutputDestroyRef } from './api.d.js';
14
+ import './event_dispatcher.d.js';
15
15
  import { Observable, Subscribable } from 'rxjs';
16
- export { setAlternateWeakRefImpl as ɵsetAlternateWeakRefImpl } from './weak_ref.d-eGOEP9S1.js';
16
+ export { setAlternateWeakRefImpl as ɵsetAlternateWeakRefImpl } from './weak_ref.d.js';
17
17
  export { setCurrentInjector as ɵsetCurrentInjector } from './primitives/di/index.js';
18
- import './signal.d-BcmOdASA.js';
18
+ import './signal.d.js';
19
19
  import '@angular/core/primitives/di';
20
20
 
21
21
  /**
@@ -1762,8 +1762,7 @@ interface Injectable {
1762
1762
  * - `Type<any>` - associates the injectable with an `@NgModule` or other `InjectorType`. This
1763
1763
  * option is DEPRECATED.
1764
1764
  * - 'null' : Equivalent to `undefined`. The injectable is not provided in any scope automatically
1765
- * and must be added to a `providers` array of an [@NgModule](api/core/NgModule#providers),
1766
- * [@Component](api/core/Directive#providers) or [@Directive](api/core/Directive#providers).
1765
+ * and must be added to a `providers` array.
1767
1766
  *
1768
1767
  * The following options specify that this injectable should be provided in one of the following
1769
1768
  * injectors:
@@ -2303,7 +2302,7 @@ interface AfterRenderOptions {
2303
2302
  * }
2304
2303
  * ```
2305
2304
  *
2306
- * @developerPreview
2305
+ * @publicApi 20.0
2307
2306
  */
2308
2307
  declare function afterEveryRender<E = never, W = never, M = never>(spec: {
2309
2308
  earlyRead?: () => E;
@@ -2361,7 +2360,7 @@ declare function afterEveryRender<E = never, W = never, M = never>(spec: {
2361
2360
  * }
2362
2361
  * ```
2363
2362
  *
2364
- * @publicApi
2363
+ * @publicApi 20.0
2365
2364
  */
2366
2365
  declare function afterEveryRender(callback: VoidFunction, options?: AfterRenderOptions): AfterRenderRef;
2367
2366
  /**
@@ -2441,7 +2440,7 @@ declare function afterEveryRender(callback: VoidFunction, options?: AfterRenderO
2441
2440
  * }
2442
2441
  * ```
2443
2442
  *
2444
- * @developerPreview
2443
+ * @publicApi 20.0
2445
2444
  */
2446
2445
  declare function afterNextRender<E = never, W = never, M = never>(spec: {
2447
2446
  earlyRead?: () => E;
@@ -2608,7 +2607,7 @@ declare function afterRenderEffect<E = never, W = never, M = never>(spec: {
2608
2607
 
2609
2608
  /**
2610
2609
  * Asserts that the current stack frame is not within a reactive context. Useful
2611
- * to disallow certain code from running inside a reactive context (see {@link /api/core/rxjs/toSignal toSignal})
2610
+ * to disallow certain code from running inside a reactive context (see {@link /api/core/rxjs-interop/toSignal toSignal})
2612
2611
  *
2613
2612
  * @param debugFn a reference to the function making the assertion (used for the error message).
2614
2613
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/core",
3
- "version": "20.0.4",
3
+ "version": "20.0.6",
4
4
  "description": "Angular - the core framework",
5
5
  "author": "angular",
6
6
  "license": "MIT",
@@ -46,7 +46,7 @@
46
46
  "tslib": "^2.3.0"
47
47
  },
48
48
  "peerDependencies": {
49
- "@angular/compiler": "20.0.4",
49
+ "@angular/compiler": "20.0.6",
50
50
  "rxjs": "^6.5.3 || ^7.4.0",
51
51
  "zone.js": "~0.15.0"
52
52
  },
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v20.0.4
2
+ * @license Angular v20.0.6
3
3
  * (c) 2010-2025 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1,11 +1,11 @@
1
1
  /**
2
- * @license Angular v20.0.4
2
+ * @license Angular v20.0.6
3
3
  * (c) 2010-2025 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
 
7
- import { EarlyJsactionDataContainer, EventInfo, Restriction } from '../../event_dispatcher.d-BReQpZfC.js';
8
- export { EventContract, EventContractContainer, EventDispatcher, EventInfoWrapper, EventPhase, registerDispatcher } from '../../event_dispatcher.d-BReQpZfC.js';
7
+ import { EarlyJsactionDataContainer, EventInfo, Restriction } from '../../event_dispatcher.d.js';
8
+ export { EventContract, EventContractContainer, EventDispatcher, EventInfoWrapper, EventPhase, registerDispatcher } from '../../event_dispatcher.d.js';
9
9
 
10
10
  declare const Attribute: {
11
11
  /**
@@ -1,14 +1,14 @@
1
1
  /**
2
- * @license Angular v20.0.4
2
+ * @license Angular v20.0.6
3
3
  * (c) 2010-2025 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
 
7
- import { ReactiveNode, ValueEqualityFn, SIGNAL } from '../../graph.d-BcIOep_B.js';
8
- export { REACTIVE_NODE, Reactive, ReactiveHookFn, consumerAfterComputation, consumerBeforeComputation, consumerDestroy, consumerMarkDirty, consumerPollProducersForChange, defaultEquals, getActiveConsumer, isInNotificationPhase, isReactive, producerAccessed, producerIncrementEpoch, producerMarkClean, producerNotifyConsumers, producerUpdateValueVersion, producerUpdatesAllowed, runPostProducerCreatedFn, setActiveConsumer, setPostProducerCreatedFn } from '../../graph.d-BcIOep_B.js';
9
- import { SignalNode } from '../../signal.d-BcmOdASA.js';
10
- export { SIGNAL_NODE, SignalGetter, createSignal, runPostSignalSetFn, setPostSignalSetFn, signalGetFn, signalSetFn, signalUpdateFn } from '../../signal.d-BcmOdASA.js';
11
- export { setAlternateWeakRefImpl } from '../../weak_ref.d-eGOEP9S1.js';
7
+ import { ReactiveNode, ValueEqualityFn, SIGNAL } from '../../graph.d.js';
8
+ export { REACTIVE_NODE, Reactive, ReactiveHookFn, consumerAfterComputation, consumerBeforeComputation, consumerDestroy, consumerMarkDirty, consumerPollProducersForChange, defaultEquals, getActiveConsumer, isInNotificationPhase, isReactive, producerAccessed, producerIncrementEpoch, producerMarkClean, producerNotifyConsumers, producerUpdateValueVersion, producerUpdatesAllowed, runPostProducerCreatedFn, setActiveConsumer, setPostProducerCreatedFn } from '../../graph.d.js';
9
+ import { SignalNode } from '../../signal.d.js';
10
+ export { SIGNAL_NODE, SignalGetter, createSignal, runPostSignalSetFn, setPostSignalSetFn, signalGetFn, signalSetFn, signalUpdateFn } from '../../signal.d.js';
11
+ export { setAlternateWeakRefImpl } from '../../weak_ref.d.js';
12
12
 
13
13
  /**
14
14
  * A computation, which derives a value from a declarative reactive expression.
@@ -1,14 +1,14 @@
1
1
  /**
2
- * @license Angular v20.0.4
2
+ * @license Angular v20.0.6
3
3
  * (c) 2010-2025 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
 
7
- import { OutputRef, DestroyRef, Injector, Signal } from '../chrome_dev_tools_performance.d-DvzAxqBc.js';
8
- import { OutputOptions, BaseResourceOptions, ResourceLoaderParams, ResourceRef } from '../api.d-B0vztftH.js';
9
- import '../event_dispatcher.d-BReQpZfC.js';
7
+ import { OutputRef, DestroyRef, Injector, Signal } from '../chrome_dev_tools_performance.d.js';
8
+ import { OutputOptions, BaseResourceOptions, ResourceLoaderParams, ResourceRef } from '../api.d.js';
9
+ import '../event_dispatcher.d.js';
10
10
  import { Observable, MonoTypeOperatorFunction, Subscribable } from 'rxjs';
11
- import { ValueEqualityFn } from '../graph.d-BcIOep_B.js';
11
+ import { ValueEqualityFn } from '../graph.d.js';
12
12
 
13
13
  /**
14
14
  * Declares an Angular output that is using an RxJS observable as a source
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.4
3
+ * @license Angular v20.0.6
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,8 +8,8 @@
8
8
 
9
9
  var ts = require('typescript');
10
10
  require('os');
11
- var checker = require('./checker-Bu1Wu4f7.cjs');
12
- var project_paths = require('./project_paths-BjQra9mv.cjs');
11
+ var checker = require('./checker-a0VNmSrQ.cjs');
12
+ var project_paths = require('./project_paths-C4WM31v5.cjs');
13
13
 
14
14
  /**
15
15
  * Applies import manager changes, and writes them as replacements the
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.4
3
+ * @license Angular v20.0.6
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -32166,7 +32166,7 @@ function isAttrNode(ast) {
32166
32166
  * @description
32167
32167
  * Entry point for all public APIs of the compiler package.
32168
32168
  */
32169
- new Version('20.0.4');
32169
+ new Version('20.0.6');
32170
32170
 
32171
32171
  //////////////////////////////////////
32172
32172
  // THIS FILE HAS GLOBAL SIDE EFFECT //
@@ -33182,7 +33182,7 @@ class NodeJSPathManipulation {
33182
33182
  // G3-ESM-MARKER: G3 uses CommonJS, but externally everything in ESM.
33183
33183
  // CommonJS/ESM interop for determining the current file name and containing dir.
33184
33184
  const isCommonJS = typeof __filename !== 'undefined';
33185
- const currentFileUrl = isCommonJS ? null : (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('checker-Bu1Wu4f7.cjs', document.baseURI).href));
33185
+ const currentFileUrl = isCommonJS ? null : (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('checker-a0VNmSrQ.cjs', document.baseURI).href));
33186
33186
  const currentFileName = isCommonJS ? __filename : url.fileURLToPath(currentFileUrl);
33187
33187
  /**
33188
33188
  * A wrapper around the Node.js file-system that supports readonly operations and path manipulation.
@@ -39517,6 +39517,9 @@ function validateAccessOfInitializerApiMember({ api, call }, member) {
39517
39517
  * @returns The parsed initializer API, or null if none was found.
39518
39518
  */
39519
39519
  function tryParseInitializerApi(functions, expression, reflector, importTracker) {
39520
+ if (ts.isAsExpression(expression) || ts.isParenthesizedExpression(expression)) {
39521
+ return tryParseInitializerApi(functions, expression.expression, reflector, importTracker);
39522
+ }
39520
39523
  if (!ts.isCallExpression(expression)) {
39521
39524
  return null;
39522
39525
  }
@@ -41608,97 +41611,88 @@ class CompletionEngine {
41608
41611
  }
41609
41612
  }
41610
41613
 
41611
- const comma = ','.charCodeAt(0);
41612
- const semicolon = ';'.charCodeAt(0);
41613
- const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
41614
- const intToChar = new Uint8Array(64); // 64 possible chars.
41615
- const charToInt = new Uint8Array(128); // z is 122 in ASCII
41614
+ // src/vlq.ts
41615
+ var comma = ",".charCodeAt(0);
41616
+ var semicolon = ";".charCodeAt(0);
41617
+ var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
41618
+ var intToChar = new Uint8Array(64);
41619
+ var charToInt = new Uint8Array(128);
41616
41620
  for (let i = 0; i < chars.length; i++) {
41617
- const c = chars.charCodeAt(i);
41618
- intToChar[i] = c;
41619
- charToInt[c] = i;
41621
+ const c = chars.charCodeAt(i);
41622
+ intToChar[i] = c;
41623
+ charToInt[c] = i;
41620
41624
  }
41621
41625
  function encodeInteger(builder, num, relative) {
41622
- let delta = num - relative;
41623
- delta = delta < 0 ? (-delta << 1) | 1 : delta << 1;
41624
- do {
41625
- let clamped = delta & 0b011111;
41626
- delta >>>= 5;
41627
- if (delta > 0)
41628
- clamped |= 0b100000;
41629
- builder.write(intToChar[clamped]);
41630
- } while (delta > 0);
41631
- return num;
41632
- }
41633
-
41634
- const bufLength = 1024 * 16;
41635
- // Provide a fallback for older environments.
41636
- const td = typeof TextDecoder !== 'undefined'
41637
- ? /* #__PURE__ */ new TextDecoder()
41638
- : typeof Buffer !== 'undefined'
41639
- ? {
41640
- decode(buf) {
41641
- const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);
41642
- return out.toString();
41643
- },
41644
- }
41645
- : {
41646
- decode(buf) {
41647
- let out = '';
41648
- for (let i = 0; i < buf.length; i++) {
41649
- out += String.fromCharCode(buf[i]);
41650
- }
41651
- return out;
41652
- },
41653
- };
41654
- class StringWriter {
41655
- constructor() {
41656
- this.pos = 0;
41657
- this.out = '';
41658
- this.buffer = new Uint8Array(bufLength);
41626
+ let delta = num - relative;
41627
+ delta = delta < 0 ? -delta << 1 | 1 : delta << 1;
41628
+ do {
41629
+ let clamped = delta & 31;
41630
+ delta >>>= 5;
41631
+ if (delta > 0) clamped |= 32;
41632
+ builder.write(intToChar[clamped]);
41633
+ } while (delta > 0);
41634
+ return num;
41635
+ }
41636
+
41637
+ // src/strings.ts
41638
+ var bufLength = 1024 * 16;
41639
+ var td = typeof TextDecoder !== "undefined" ? /* @__PURE__ */ new TextDecoder() : typeof Buffer !== "undefined" ? {
41640
+ decode(buf) {
41641
+ const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);
41642
+ return out.toString();
41643
+ }
41644
+ } : {
41645
+ decode(buf) {
41646
+ let out = "";
41647
+ for (let i = 0; i < buf.length; i++) {
41648
+ out += String.fromCharCode(buf[i]);
41659
41649
  }
41660
- write(v) {
41661
- const { buffer } = this;
41662
- buffer[this.pos++] = v;
41663
- if (this.pos === bufLength) {
41664
- this.out += td.decode(buffer);
41665
- this.pos = 0;
41666
- }
41667
- }
41668
- flush() {
41669
- const { buffer, out, pos } = this;
41670
- return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out;
41671
- }
41672
- }
41650
+ return out;
41651
+ }
41652
+ };
41653
+ var StringWriter = class {
41654
+ constructor() {
41655
+ this.pos = 0;
41656
+ this.out = "";
41657
+ this.buffer = new Uint8Array(bufLength);
41658
+ }
41659
+ write(v) {
41660
+ const { buffer } = this;
41661
+ buffer[this.pos++] = v;
41662
+ if (this.pos === bufLength) {
41663
+ this.out += td.decode(buffer);
41664
+ this.pos = 0;
41665
+ }
41666
+ }
41667
+ flush() {
41668
+ const { buffer, out, pos } = this;
41669
+ return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out;
41670
+ }
41671
+ };
41673
41672
  function encode(decoded) {
41674
- const writer = new StringWriter();
41675
- let sourcesIndex = 0;
41676
- let sourceLine = 0;
41677
- let sourceColumn = 0;
41678
- let namesIndex = 0;
41679
- for (let i = 0; i < decoded.length; i++) {
41680
- const line = decoded[i];
41681
- if (i > 0)
41682
- writer.write(semicolon);
41683
- if (line.length === 0)
41684
- continue;
41685
- let genColumn = 0;
41686
- for (let j = 0; j < line.length; j++) {
41687
- const segment = line[j];
41688
- if (j > 0)
41689
- writer.write(comma);
41690
- genColumn = encodeInteger(writer, segment[0], genColumn);
41691
- if (segment.length === 1)
41692
- continue;
41693
- sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex);
41694
- sourceLine = encodeInteger(writer, segment[2], sourceLine);
41695
- sourceColumn = encodeInteger(writer, segment[3], sourceColumn);
41696
- if (segment.length === 4)
41697
- continue;
41698
- namesIndex = encodeInteger(writer, segment[4], namesIndex);
41699
- }
41700
- }
41701
- return writer.flush();
41673
+ const writer = new StringWriter();
41674
+ let sourcesIndex = 0;
41675
+ let sourceLine = 0;
41676
+ let sourceColumn = 0;
41677
+ let namesIndex = 0;
41678
+ for (let i = 0; i < decoded.length; i++) {
41679
+ const line = decoded[i];
41680
+ if (i > 0) writer.write(semicolon);
41681
+ if (line.length === 0) continue;
41682
+ let genColumn = 0;
41683
+ for (let j = 0; j < line.length; j++) {
41684
+ const segment = line[j];
41685
+ if (j > 0) writer.write(comma);
41686
+ genColumn = encodeInteger(writer, segment[0], genColumn);
41687
+ if (segment.length === 1) continue;
41688
+ sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex);
41689
+ sourceLine = encodeInteger(writer, segment[2], sourceLine);
41690
+ sourceColumn = encodeInteger(writer, segment[3], sourceColumn);
41691
+ if (segment.length === 4) continue;
41692
+ namesIndex = encodeInteger(writer, segment[4], namesIndex);
41693
+ }
41694
+ }
41695
+ return writer.flush();
41702
41696
  }
41703
41697
 
41704
41698
  class BitSet {
@@ -44249,6 +44243,22 @@ class OutOfBandDiagnosticRecorderImpl {
44249
44243
  * is ever produced per node.
44250
44244
  */
44251
44245
  recordedPipes = new Set();
44246
+ /** Common pipes that can be suggested to users. */
44247
+ pipeSuggestions = new Map([
44248
+ ['async', 'AsyncPipe'],
44249
+ ['uppercase', 'UpperCasePipe'],
44250
+ ['lowercase', 'LowerCasePipe'],
44251
+ ['json', 'JsonPipe'],
44252
+ ['slice', 'SlicePipe'],
44253
+ ['number', 'DecimalPipe'],
44254
+ ['percent', 'PercentPipe'],
44255
+ ['titlecase', 'TitleCasePipe'],
44256
+ ['currency', 'CurrencyPipe'],
44257
+ ['date', 'DatePipe'],
44258
+ ['i18nPlural', 'I18nPluralPipe'],
44259
+ ['i18nSelect', 'I18nSelectPipe'],
44260
+ ['keyvalue', 'KeyValuePipe'],
44261
+ ]);
44252
44262
  constructor(resolver) {
44253
44263
  this.resolver = resolver;
44254
44264
  }
@@ -44261,16 +44271,30 @@ class OutOfBandDiagnosticRecorderImpl {
44261
44271
  const errorMsg = `No directive found with exportAs '${value}'.`;
44262
44272
  this._diagnostics.push(makeTemplateDiagnostic(id, mapping, ref.valueSpan || ref.sourceSpan, ts.DiagnosticCategory.Error, ngErrorCode(exports.ErrorCode.MISSING_REFERENCE_TARGET), errorMsg));
44263
44273
  }
44264
- missingPipe(id, ast) {
44274
+ missingPipe(id, ast, isStandalone) {
44265
44275
  if (this.recordedPipes.has(ast)) {
44266
44276
  return;
44267
44277
  }
44268
- const mapping = this.resolver.getTemplateSourceMapping(id);
44269
- const errorMsg = `No pipe found with name '${ast.name}'.`;
44270
44278
  const sourceSpan = this.resolver.toTemplateParseSourceSpan(id, ast.nameSpan);
44271
44279
  if (sourceSpan === null) {
44272
44280
  throw new Error(`Assertion failure: no SourceLocation found for usage of pipe '${ast.name}'.`);
44273
44281
  }
44282
+ const mapping = this.resolver.getTemplateSourceMapping(id);
44283
+ let errorMsg = `No pipe found with name '${ast.name}'.`;
44284
+ if (this.pipeSuggestions.has(ast.name)) {
44285
+ const suggestedClassName = this.pipeSuggestions.get(ast.name);
44286
+ const suggestedImport = '@angular/common';
44287
+ if (isStandalone) {
44288
+ errorMsg +=
44289
+ `\nTo fix this, import the "${suggestedClassName}" class from "${suggestedImport}"` +
44290
+ ` and add it to the "imports" array of the component.`;
44291
+ }
44292
+ else {
44293
+ errorMsg +=
44294
+ `\nTo fix this, import the "${suggestedClassName}" class from "${suggestedImport}"` +
44295
+ ` and add it to the "imports" array of the module declaring the component.`;
44296
+ }
44297
+ }
44274
44298
  this._diagnostics.push(makeTemplateDiagnostic(id, mapping, sourceSpan, ts.DiagnosticCategory.Error, ngErrorCode(exports.ErrorCode.MISSING_PIPE), errorMsg));
44275
44299
  this.recordedPipes.add(ast);
44276
44300
  }
@@ -47591,7 +47615,7 @@ class TcbExpressionTranslator {
47591
47615
  let pipe;
47592
47616
  if (pipeMeta === null) {
47593
47617
  // No pipe by that name exists in scope. Record this as an error.
47594
- this.tcb.oobRecorder.missingPipe(this.tcb.id, ast);
47618
+ this.tcb.oobRecorder.missingPipe(this.tcb.id, ast, this.tcb.hostIsStandalone);
47595
47619
  // Use an 'any' value to at least allow the rest of the expression to be checked.
47596
47620
  pipe = ANY_EXPRESSION;
47597
47621
  }
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.4
3
+ * @license Angular v20.0.6
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,13 +8,13 @@
8
8
 
9
9
  require('@angular-devkit/core');
10
10
  require('node:path/posix');
11
- var project_paths = require('./project_paths-BjQra9mv.cjs');
11
+ var project_paths = require('./project_paths-C4WM31v5.cjs');
12
12
  var ts = require('typescript');
13
13
  require('os');
14
- var checker = require('./checker-Bu1Wu4f7.cjs');
15
- var index = require('./index-CCX_cTPD.cjs');
14
+ var checker = require('./checker-a0VNmSrQ.cjs');
15
+ var index = require('./index-jMQgXbRg.cjs');
16
16
  require('path');
17
- var apply_import_manager = require('./apply_import_manager-DT15wSJs.cjs');
17
+ var apply_import_manager = require('./apply_import_manager-mlmcgZ0v.cjs');
18
18
  require('@angular-devkit/schematics');
19
19
  require('./project_tsconfig_paths-CDVxT6Ov.cjs');
20
20
  require('fs');
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.4
3
+ * @license Angular v20.0.6
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
9
  var ts = require('typescript');
10
- var checker = require('./checker-Bu1Wu4f7.cjs');
10
+ var checker = require('./checker-a0VNmSrQ.cjs');
11
11
  require('os');
12
12
  var p = require('path');
13
13
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.4
3
+ * @license Angular v20.0.6
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,8 +8,8 @@
8
8
 
9
9
  var schematics = require('@angular-devkit/schematics');
10
10
  var p = require('path');
11
- var compiler_host = require('./compiler_host-C_4Iw5UD.cjs');
12
- var checker = require('./checker-Bu1Wu4f7.cjs');
11
+ var compiler_host = require('./compiler_host-CwrMDc6k.cjs');
12
+ var checker = require('./checker-a0VNmSrQ.cjs');
13
13
  var ts = require('typescript');
14
14
  var project_tsconfig_paths = require('./project_tsconfig_paths-CDVxT6Ov.cjs');
15
15
  require('os');
@@ -1,18 +1,18 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.4
3
+ * @license Angular v20.0.6
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
- var checker = require('./checker-Bu1Wu4f7.cjs');
9
+ var checker = require('./checker-a0VNmSrQ.cjs');
10
10
  require('typescript');
11
11
  require('os');
12
- var apply_import_manager = require('./apply_import_manager-DT15wSJs.cjs');
13
- require('./index-CCX_cTPD.cjs');
12
+ var apply_import_manager = require('./apply_import_manager-mlmcgZ0v.cjs');
13
+ require('./index-jMQgXbRg.cjs');
14
14
  require('path');
15
- var project_paths = require('./project_paths-BjQra9mv.cjs');
15
+ var project_paths = require('./project_paths-C4WM31v5.cjs');
16
16
  var imports = require('./imports-CIX-JgAN.cjs');
17
17
  require('@angular-devkit/core');
18
18
  require('node:path/posix');