@angular/core 20.0.0-next.5 → 20.0.0-next.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 (68) hide show
  1. package/{api.d-mxcXqDpA.d.ts → api.d-DQLNOR5l.d.ts} +4 -4
  2. package/{discovery.d-CyYpOJ7j.d.ts → discovery.d-CFs2MaLO.d.ts} +7 -17
  3. package/{event_dispatcher.d-PWnbqZDx.d.ts → event_dispatcher.d-DlbccpYq.d.ts} +3 -3
  4. package/fesm2022/{attribute-B17mgaqe.mjs → attribute-BWp59EjE.mjs} +3 -3
  5. package/fesm2022/{attribute-B17mgaqe.mjs.map → attribute-BWp59EjE.mjs.map} +1 -1
  6. package/fesm2022/core.mjs +20 -18
  7. package/fesm2022/core.mjs.map +1 -1
  8. package/fesm2022/{debug_node-xKpCIZm-.mjs → debug_node-z_3NG8qT.mjs} +77 -68
  9. package/fesm2022/{debug_node-xKpCIZm-.mjs.map → debug_node-z_3NG8qT.mjs.map} +1 -1
  10. package/fesm2022/primitives/di.mjs +1 -1
  11. package/fesm2022/primitives/event-dispatch.mjs +2 -2
  12. package/fesm2022/primitives/signals.mjs +5 -5
  13. package/fesm2022/{resource-BPpYEDic.mjs → resource-CPPwEcg7.mjs} +6 -8
  14. package/fesm2022/resource-CPPwEcg7.mjs.map +1 -0
  15. package/fesm2022/{root_effect_scheduler-D0_b1cf_.mjs → root_effect_scheduler-VSXfCzDX.mjs} +46 -15
  16. package/fesm2022/root_effect_scheduler-VSXfCzDX.mjs.map +1 -0
  17. package/fesm2022/rxjs-interop.mjs +7 -84
  18. package/fesm2022/rxjs-interop.mjs.map +1 -1
  19. package/fesm2022/{signal-DhRAAi7R.mjs → signal-B6pMq7KS.mjs} +3 -3
  20. package/fesm2022/{signal-DhRAAi7R.mjs.map → signal-B6pMq7KS.mjs.map} +1 -1
  21. package/fesm2022/testing.mjs +165 -103
  22. package/fesm2022/testing.mjs.map +1 -1
  23. package/fesm2022/{untracked-DaaW3JJm.mjs → untracked-Bz5WMeU1.mjs} +4 -4
  24. package/fesm2022/{untracked-DaaW3JJm.mjs.map → untracked-Bz5WMeU1.mjs.map} +1 -1
  25. package/fesm2022/{weak_ref-DrMdAIDh.mjs → weak_ref-BaIq-pgY.mjs} +3 -3
  26. package/fesm2022/{weak_ref-DrMdAIDh.mjs.map → weak_ref-BaIq-pgY.mjs.map} +1 -1
  27. package/{graph.d-StYigYp1.d.ts → graph.d-BcIOep_B.d.ts} +3 -3
  28. package/index.d.ts +18 -20
  29. package/{ng_i18n_closure_mode.d-DLxSUiDr.d.ts → ng_i18n_closure_mode.d-C9d2CaSt.d.ts} +5 -5
  30. package/package.json +2 -2
  31. package/primitives/di/index.d.ts +1 -1
  32. package/primitives/event-dispatch/index.d.ts +3 -3
  33. package/primitives/signals/index.d.ts +6 -6
  34. package/rxjs-interop/index.d.ts +8 -17
  35. package/schematics/bundles/{apply_import_manager-C-ysxahq.js → apply_import_manager-DnMqg1pY.js} +6 -6
  36. package/schematics/bundles/{change_tracker-0Ktek5Xl.js → change_tracker-UMPkv-eH.js} +3 -3
  37. package/schematics/bundles/{checker-DqUKCGda.js → checker-BFBQyesT.js} +20 -3
  38. package/schematics/bundles/cleanup-unused-imports.js +25 -20
  39. package/schematics/bundles/{compiler-CuoiHqkc.js → compiler-BQ7R7w2v.js} +962 -297
  40. package/schematics/bundles/compiler_host-CAfDJO3W.js +1 -1
  41. package/schematics/bundles/control-flow-migration.js +2 -2
  42. package/schematics/bundles/document-core.js +12 -12
  43. package/schematics/bundles/imports-CIX-JgAN.js +1 -1
  44. package/schematics/bundles/{index-WFXCe5Q0.js → index-Cv4Q415G.js} +127 -36
  45. package/schematics/bundles/{index-CwFQSYXZ.js → index-D8tMJPKa.js} +10 -10
  46. package/schematics/bundles/inject-flags.js +14 -14
  47. package/schematics/bundles/inject-migration.js +4 -4
  48. package/schematics/bundles/leading_space-D9nQ8UQC.js +1 -1
  49. package/schematics/bundles/{migrate_ts_type_references-BNuHufqZ.js → migrate_ts_type_references-Cq_ZBuT4.js} +21 -21
  50. package/schematics/bundles/ng_decorators-DznZ5jMl.js +1 -1
  51. package/schematics/bundles/nodes-B16H9JUd.js +1 -1
  52. package/schematics/bundles/output-migration.js +80 -22
  53. package/schematics/bundles/{run_in_devkit-CmHxABFr.js → project_paths-ql6qcf_c.js} +254 -244
  54. package/schematics/bundles/project_tsconfig_paths-CDVxT6Ov.js +1 -1
  55. package/schematics/bundles/property_name-BBwFuqMe.js +1 -1
  56. package/schematics/bundles/route-lazy-loading.js +4 -4
  57. package/schematics/bundles/self-closing-tags-migration.js +20 -15
  58. package/schematics/bundles/signal-input-migration.js +26 -21
  59. package/schematics/bundles/signal-queries-migration.js +32 -27
  60. package/schematics/bundles/signals.js +8 -8
  61. package/schematics/bundles/standalone-migration.js +5 -5
  62. package/schematics/bundles/symbol-VPWguRxr.js +1 -1
  63. package/schematics/bundles/test-bed-get.js +13 -13
  64. package/{signal.d-BeaTIeOE.d.ts → signal.d-E0e5nW1p.d.ts} +4 -4
  65. package/testing/index.d.ts +9 -25
  66. package/{weak_ref.d-ttyj86RV.d.ts → weak_ref.d-eGOEP9S1.d.ts} +2 -2
  67. package/fesm2022/resource-BPpYEDic.mjs.map +0 -1
  68. package/fesm2022/root_effect_scheduler-D0_b1cf_.mjs.map +0 -1
@@ -1,10 +1,10 @@
1
1
  /**
2
- * @license Angular v20.0.0-next.5
2
+ * @license Angular v20.0.0-next.6
3
3
  * (c) 2010-2025 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
 
7
- import { S as SIGNAL, n as producerUpdateValueVersion, z as signalSetFn, l as producerMarkClean, A as signalUpdateFn, p as producerAccessed, E as ERRORED, g as defaultEquals, U as UNSET, R as REACTIVE_NODE, C as COMPUTING, d as consumerBeforeComputation, e as consumerAfterComputation, r as runPostProducerCreatedFn, q as setActiveConsumer } from './signal-DhRAAi7R.mjs';
7
+ import { SIGNAL, producerUpdateValueVersion, signalSetFn, producerMarkClean, signalUpdateFn, producerAccessed, ERRORED, defaultEquals, UNSET, REACTIVE_NODE, COMPUTING, consumerBeforeComputation, consumerAfterComputation, runPostProducerCreatedFn, setActiveConsumer } from './signal-B6pMq7KS.mjs';
8
8
 
9
9
  function createLinkedSignal(sourceFn, computationFn, equalityFn) {
10
10
  const node = Object.create(LINKED_SIGNAL_NODE);
@@ -113,5 +113,5 @@ function untracked(nonReactiveReadsFn) {
113
113
  }
114
114
  }
115
115
 
116
- export { linkedSignalUpdateFn as a, createLinkedSignal as c, linkedSignalSetFn as l, untracked as u };
117
- //# sourceMappingURL=untracked-DaaW3JJm.mjs.map
116
+ export { createLinkedSignal, linkedSignalSetFn, linkedSignalUpdateFn, untracked };
117
+ //# sourceMappingURL=untracked-Bz5WMeU1.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"untracked-DaaW3JJm.mjs","sources":["../../../../../../packages/core/primitives/signals/src/linked_signal.ts","../../../../../../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 = /* @__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('Detected cycle in computations.');\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
+ {"version":3,"file":"untracked-Bz5WMeU1.mjs","sources":["../../../../../../packages/core/primitives/signals/src/linked_signal.ts","../../../../../../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 = /* @__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('Detected cycle in computations.');\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.0-next.5
2
+ * @license Angular v20.0.0-next.6
3
3
  * (c) 2010-2025 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -8,5 +8,5 @@ function setAlternateWeakRefImpl(impl) {
8
8
  // TODO: remove this function
9
9
  }
10
10
 
11
- export { setAlternateWeakRefImpl as s };
12
- //# sourceMappingURL=weak_ref-DrMdAIDh.mjs.map
11
+ export { setAlternateWeakRefImpl };
12
+ //# sourceMappingURL=weak_ref-BaIq-pgY.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"weak_ref-DrMdAIDh.mjs","sources":["../../../../../../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
+ {"version":3,"file":"weak_ref-BaIq-pgY.mjs","sources":["../../../../../../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.0-next.5
2
+ * @license Angular v20.0.0-next.6
3
3
  * (c) 2010-2025 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -191,5 +191,5 @@ declare function consumerDestroy(node: ReactiveNode): void;
191
191
  declare function runPostProducerCreatedFn(node: ReactiveNode): void;
192
192
  declare function setPostProducerCreatedFn(fn: ReactiveHookFn | null): ReactiveHookFn | null;
193
193
 
194
- export { SIGNAL as S, REACTIVE_NODE as b, defaultEquals as d, consumerAfterComputation as e, consumerBeforeComputation as f, consumerDestroy as g, consumerMarkDirty as h, consumerPollProducersForChange as i, getActiveConsumer as j, isInNotificationPhase as k, isReactive as l, producerIncrementEpoch as m, producerMarkClean as n, producerNotifyConsumers as o, producerAccessed as p, producerUpdateValueVersion as q, producerUpdatesAllowed as r, runPostProducerCreatedFn as s, setActiveConsumer as t, setPostProducerCreatedFn as u };
195
- export type { ReactiveNode as R, ValueEqualityFn as V, ReactiveHookFn as a, Reactive as c };
194
+ export { REACTIVE_NODE, SIGNAL, consumerAfterComputation, consumerBeforeComputation, consumerDestroy, consumerMarkDirty, consumerPollProducersForChange, defaultEquals, getActiveConsumer, isInNotificationPhase, isReactive, producerAccessed, producerIncrementEpoch, producerMarkClean, producerNotifyConsumers, producerUpdateValueVersion, producerUpdatesAllowed, runPostProducerCreatedFn, setActiveConsumer, setPostProducerCreatedFn };
195
+ export type { Reactive, ReactiveHookFn, ReactiveNode, ValueEqualityFn };
package/index.d.ts CHANGED
@@ -1,22 +1,22 @@
1
1
  /**
2
- * @license Angular v20.0.0-next.5
2
+ * @license Angular v20.0.0-next.6
3
3
  * (c) 2010-2025 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
 
7
- import { S as SIGNAL, V as ValueEqualityFn$1 } from './graph.d-StYigYp1.js';
8
- import { S as Signal, W as WritableSignal, O as OutputRef, T as Type$1, M as ModuleWithProviders, g as EnvironmentProviders, i as Provider, l as TypeProvider, d as ValueProvider, f as ClassProvider, C as ConstructorProvider, E as ExistingProvider, F as FactoryProvider, e as StaticClassProvider, b as InjectionToken, P as ProviderToken, k as StaticProvider, I as Injector, m as ValueSansProvider, n as ExistingSansProvider, o as StaticClassSansProvider, p as ConstructorSansProvider, q as FactorySansProvider, r as ClassSansProvider, j as InternalInjectFlags, c as InjectOptions, V as ValueEqualityFn, s as isSignal } from './ng_i18n_closure_mode.d-DLxSUiDr.js';
9
- export { A as AbstractType, y as CreateSignalOptions, D as DestroyRef, t as DestroyableInjector, u as ImportedNgModuleProviders, a as OutputRefSubscription, z as signal, v as ɵInternalEnvironmentProviders, J as ɵJSACTION_EVENT_CONTRACT, x as ɵWritable, w as ɵisEnvironmentProviders, ɵ as ɵunwrapWritableSignal } from './ng_i18n_closure_mode.d-DLxSUiDr.js';
10
- import { I as InputSignalNode, T as TypeDecorator, A as AfterRenderPhase, s as AfterRenderRef, t as EffectCleanupRegisterFn, S as SchemaMetadata, u as CssSelectorList, v as InputFlags, w as InputTransformFunction, x as DirectiveDefFeature, H as HostBindingsFunction, y as TAttributes, z as ContentQueriesFunction, V as ViewQueriesFunction, B as ComponentTemplate, F as TConstantsOrFactory, G as ComponentDefFeature, J as ViewEncapsulation$1, K as ChangeDetectionStrategy$1, L as TypeOrFactory, M as DependencyTypeList, O as ComponentDef, Q as DirectiveDef, R as EmbeddedViewRef, c as ChangeDetectorRef, U as LView, W as ApplicationRef, X as ComponentFactory$1, Y as NgModuleRef$1, Z as EnvironmentInjector, _ as DirectiveWithBindings, $ as Binding, C as ComponentRef$1, E as ElementRef, a0 as ComponentFactoryResolver$1, a1 as NgModuleFactory$1, a2 as InternalNgModuleRef, a3 as ViewRef$1, P as PlatformRef, N as NgZone, a4 as ChangeDetectionScheduler, a5 as NotificationSource, ɵ as __FactoryDeclaration, a6 as __InjectableDeclaration, a7 as OpaqueViewState, a8 as __NgModuleDeclaration, a9 as __InjectorDeclaration, a as DeferBlockState, aa as TNode, ab as LContainer, ac as DeferBlockDependencyInterceptor, ad as DeferBlockConfig, ae as TView, af as TDeferBlockDetails, ag as RNode, f as Component, ah as TrustedHTML, ai as CompilerOptions, aj as HostDirectiveConfig, ak as ComponentType, al as NgModuleScopeInfoFromDecorator, am as DependencyResolverFn, an as TDeferDetailsFlags, ao as SanitizerFn, ap as LocalRefExtractor, aq as GlobalTargetResolver, ar as ProjectionSlots, as as QueryFlags, at as QueryList, au as RElement, av as RawScopeInfoFromDecorator, aw as ClassDebugInfo, g as Directive, e as NgModule, h as Pipe, ax as TrustedScriptURL, ay as TrustedScript, az as PipeType, aA as DirectiveType } from './discovery.d-CyYpOJ7j.js';
11
- export { aD as APP_BOOTSTRAP_LISTENER, aB as BootstrapOptions, bd as COMPILER_OPTIONS, a$ as CUSTOM_ELEMENTS_SCHEMA, bc as Compiler, be as CompilerFactory, aP as ComponentDecorator, bF as CreateEffectOptions, b as DebugElement, aE as DebugEventListener, aF as DebugNode, aQ as DirectiveDecorator, bI as EffectCleanupFn, bH as EffectRef, aJ as EventEmitter, aR as HostBinding, aS as HostBindingDecorator, aT as HostListener, aU as HostListenerDecorator, b4 as InjectableType, b5 as InjectorType, aV as Input, aW as InputDecorator, b9 as ListenerOptions, bf as ModuleWithComponentFactories, b0 as NO_ERRORS_SCHEMA, a_ as NgModuleDecorator, aC as NgProbeToken, aX as Output, aY as OutputDecorator, aZ as PipeDecorator, aI as Predicate, b7 as Renderer2, b8 as RendererFactory2, ba as RendererStyleFlags2, bb as RendererType2, aL as Sanitizer, aK as SecurityContext, aG as asNativeElements, b2 as defineInjectable, bG as effect, aH as getDebugNode, aM as inputBinding, aN as outputBinding, aO as twoWayBinding, bE as ɵAfterRenderManager, br as ɵAnimationRendererType, bx as ɵAttributeMarker, bD as ɵCONTAINER_HEADER_OFFSET, d as ɵDeferBlockBehavior, D as ɵDeferBlockDetails, bJ as ɵEffectScheduler, bu as ɵNG_INJ_DEF, bv as ɵNG_PROV_DEF, n as ɵNavigateEvent, i as ɵNavigation, o as ɵNavigationCurrentEntryChangeEvent, bi as ɵNavigationDestination, j as ɵNavigationHistoryEntry, bh as ɵNavigationInterceptOptions, k as ɵNavigationNavigateOptions, m as ɵNavigationOptions, r as ɵNavigationReloadOptions, l as ɵNavigationResult, p as ɵNavigationTransition, bg as ɵNavigationTypeString, q as ɵNavigationUpdateCurrentEntryOptions, b6 as ɵNoopNgZone, by as ɵPipeDef, bz as ɵRenderFlags, bk as ɵTracingAction, bl as ɵTracingService, bm as ɵTracingSnapshot, bn as ɵZONELESS_ENABLED, bj as ɵdetectChangesInViewIfRequired, aH as ɵgetDebugNode, bo as ɵgetDeferBlocks, bp as ɵgetInjectableDef, bt as ɵinjectChangeDetectorRef, bs as ɵisBoundToModule, bw as ɵisInjectable, bA as ɵɵComponentDeclaration, bB as ɵɵDirectiveDeclaration, bq as ɵɵInjectorDef, bC as ɵɵPipeDeclaration, b1 as ɵɵdefineInjectable, b3 as ɵɵdefineInjector } from './discovery.d-CyYpOJ7j.js';
12
- import { W as WritableResource, b as ResourceStatus, a as ResourceRef, c as Resource, d as ResourceStreamingLoader, e as ResourceOptions } from './api.d-mxcXqDpA.js';
13
- export { B as BaseResourceOptions, f as OutputEmitterRef, O as OutputOptions, P as PromiseResourceOptions, h as ResourceLoader, R as ResourceLoaderParams, i as ResourceStreamItem, S as StreamingResourceOptions, o as output, g as ɵgetOutputDestroyRef } from './api.d-mxcXqDpA.js';
7
+ import { SIGNAL, ValueEqualityFn as ValueEqualityFn$1 } from './graph.d-BcIOep_B.js';
8
+ import { Signal, WritableSignal, OutputRef, Type as Type$1, ModuleWithProviders, EnvironmentProviders, Provider, TypeProvider, ValueProvider, ClassProvider, ConstructorProvider, ExistingProvider, FactoryProvider, StaticClassProvider, InjectionToken, ProviderToken, StaticProvider, Injector, ValueSansProvider, ExistingSansProvider, StaticClassSansProvider, ConstructorSansProvider, FactorySansProvider, ClassSansProvider, InternalInjectFlags, InjectOptions, ValueEqualityFn, isSignal } from './ng_i18n_closure_mode.d-C9d2CaSt.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 './ng_i18n_closure_mode.d-C9d2CaSt.js';
10
+ import { InputSignalNode, TypeDecorator, AfterRenderPhase, AfterRenderRef, EffectCleanupRegisterFn, SchemaMetadata, CssSelectorList, InputFlags, InputTransformFunction, DirectiveDefFeature, HostBindingsFunction, TAttributes, ContentQueriesFunction, ViewQueriesFunction, ComponentTemplate, TConstantsOrFactory, ComponentDefFeature, ViewEncapsulation as ViewEncapsulation$1, ChangeDetectionStrategy as ChangeDetectionStrategy$1, TypeOrFactory, DependencyTypeList, ComponentDef, DirectiveDef, EmbeddedViewRef, ChangeDetectorRef, LView, ApplicationRef, ComponentFactory as ComponentFactory$1, NgModuleRef as NgModuleRef$1, EnvironmentInjector, DirectiveWithBindings, Binding, ComponentRef as ComponentRef$1, ElementRef, ComponentFactoryResolver as ComponentFactoryResolver$1, NgModuleFactory as NgModuleFactory$1, InternalNgModuleRef, ViewRef as ViewRef$1, PlatformRef, NgZone, ChangeDetectionScheduler, NotificationSource, ɵɵFactoryDeclaration as __FactoryDeclaration, ɵɵInjectableDeclaration as __InjectableDeclaration, OpaqueViewState, ɵɵNgModuleDeclaration as __NgModuleDeclaration, ɵɵInjectorDeclaration as __InjectorDeclaration, DeferBlockState, TNode, LContainer, DeferBlockDependencyInterceptor, DeferBlockConfig, TView, TDeferBlockDetails, RNode, Component, TrustedHTML, CompilerOptions, HostDirectiveConfig, ComponentType, NgModuleScopeInfoFromDecorator, DependencyResolverFn, TDeferDetailsFlags, SanitizerFn, LocalRefExtractor, GlobalTargetResolver, ProjectionSlots, QueryFlags, QueryList, RElement, RawScopeInfoFromDecorator, ClassDebugInfo, Directive, NgModule, Pipe, TrustedScriptURL, TrustedScript, PipeType, DirectiveType } from './discovery.d-CFs2MaLO.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, 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, 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-CFs2MaLO.js';
12
+ import { WritableResource, ResourceStatus, ResourceRef, Resource, ResourceStreamingLoader, ResourceOptions } from './api.d-DQLNOR5l.js';
13
+ export { BaseResourceOptions, OutputEmitterRef, OutputOptions, PromiseResourceOptions, ResourceLoader, ResourceLoaderParams, ResourceStreamItem, StreamingResourceOptions, output, getOutputDestroyRef as ɵgetOutputDestroyRef } from './api.d-DQLNOR5l.js';
14
14
  import { Observable, Subscribable } from 'rxjs';
15
15
  import * as _angular_core from '@angular/core';
16
- export { s as ɵsetAlternateWeakRefImpl } from './weak_ref.d-ttyj86RV.js';
16
+ export { setAlternateWeakRefImpl as ɵsetAlternateWeakRefImpl } from './weak_ref.d-eGOEP9S1.js';
17
17
  export { setCurrentInjector as ɵsetCurrentInjector } from './primitives/di/index.js';
18
- import './event_dispatcher.d-PWnbqZDx.js';
19
- import './signal.d-BeaTIeOE.js';
18
+ import './event_dispatcher.d-DlbccpYq.js';
19
+ import './signal.d-E0e5nW1p.js';
20
20
 
21
21
  /**
22
22
  * @publicAPI
@@ -2176,8 +2176,6 @@ declare function computed<T>(computation: () => T, options?: CreateComputedOptio
2176
2176
 
2177
2177
  /**
2178
2178
  * Creates a writable signal whose value is initialized and reset by the linked, reactive computation.
2179
- *
2180
- * @developerPreview
2181
2179
  */
2182
2180
  declare function linkedSignal<D>(computation: () => D, options?: {
2183
2181
  equal?: ValueEqualityFn<NoInfer<D>>;
@@ -3989,7 +3987,6 @@ declare class PendingTasksInternal implements OnDestroy {
3989
3987
  * ```
3990
3988
  *
3991
3989
  * @publicApi
3992
- * @developerPreview
3993
3990
  */
3994
3991
  declare class PendingTasks {
3995
3992
  private readonly internalPendingTasks;
@@ -4011,8 +4008,9 @@ declare class PendingTasks {
4011
4008
  * ```
4012
4009
  *
4013
4010
  * @param fn The asynchronous function to execute
4011
+ * @developerPreview
4014
4012
  */
4015
- run<T>(fn: () => Promise<T>): void;
4013
+ run(fn: () => Promise<unknown>): void;
4016
4014
  /** @nocollapse */
4017
4015
  static ɵprov: unknown;
4018
4016
  }
@@ -10337,9 +10335,9 @@ declare function mergeApplicationConfig(...configs: ApplicationConfig[]): Applic
10337
10335
  * * When performing static site generation (SSG).
10338
10336
  * * During route extraction in development (at the time of the request).
10339
10337
  *
10340
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Request | `Request` on MDN}
10338
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Request `Request` on MDN}
10341
10339
  *
10342
- * @developerPreview
10340
+ * @publicApi
10343
10341
  */
10344
10342
  declare const REQUEST: InjectionToken<Request | null>;
10345
10343
  /**
@@ -10356,9 +10354,9 @@ declare const REQUEST: InjectionToken<Request | null>;
10356
10354
  * * When performing static site generation (SSG).
10357
10355
  * * During route extraction in development (at the time of the request).
10358
10356
  *
10359
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Response/Response | `ResponseInit` on MDN}
10357
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Response/Response `ResponseInit` on MDN}
10360
10358
  *
10361
- * @developerPreview
10359
+ * @publicApi
10362
10360
  */
10363
10361
  declare const RESPONSE_INIT: InjectionToken<ResponseInit | null>;
10364
10362
  /**
@@ -10369,7 +10367,7 @@ declare const RESPONSE_INIT: InjectionToken<ResponseInit | null>;
10369
10367
  * @remarks
10370
10368
  * This token is only available during server-side rendering and will be `null` in other contexts.
10371
10369
  *
10372
- * @developerPreview
10370
+ * @publicApi
10373
10371
  */
10374
10372
  declare const REQUEST_CONTEXT: InjectionToken<unknown>;
10375
10373
 
@@ -1,11 +1,11 @@
1
1
  /**
2
- * @license Angular v20.0.0-next.5
2
+ * @license Angular v20.0.0-next.6
3
3
  * (c) 2010-2025 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
 
7
- import { S as SIGNAL } from './graph.d-StYigYp1.js';
8
- import { f as EventContract } from './event_dispatcher.d-PWnbqZDx.js';
7
+ import { SIGNAL } from './graph.d-BcIOep_B.js';
8
+ import { EventContract } from './event_dispatcher.d-DlbccpYq.js';
9
9
 
10
10
  /**
11
11
  * A reactive value which notifies consumers of any changes.
@@ -828,5 +828,5 @@ declare global {
828
828
  const ngI18nClosureMode: boolean;
829
829
  }
830
830
 
831
- export { DestroyRef as D, Injector as I, JSACTION_EVENT_CONTRACT as J, Type as T, InjectionToken as b, InternalInjectFlags as j, isSignal as s, isEnvironmentProviders as w, signal as z, ɵunwrapWritableSignal as ɵ };
832
- export type { AbstractType as A, ConstructorProvider as C, ExistingProvider as E, FactoryProvider as F, ModuleWithProviders as M, OutputRef as O, ProviderToken as P, Signal as S, ValueEqualityFn as V, WritableSignal as W, OutputRefSubscription as a, InjectOptions as c, ValueProvider as d, StaticClassProvider as e, ClassProvider as f, EnvironmentProviders as g, ProcessProvidersFunction as h, Provider as i, StaticProvider as k, TypeProvider as l, ValueSansProvider as m, ExistingSansProvider as n, StaticClassSansProvider as o, ConstructorSansProvider as p, FactorySansProvider as q, ClassSansProvider as r, DestroyableInjector as t, ImportedNgModuleProviders as u, InternalEnvironmentProviders as v, Writable as x, CreateSignalOptions as y };
831
+ export { DestroyRef, InjectionToken, Injector, InternalInjectFlags, JSACTION_EVENT_CONTRACT, Type, isEnvironmentProviders, isSignal, signal, ɵunwrapWritableSignal };
832
+ export type { AbstractType, ClassProvider, ClassSansProvider, ConstructorProvider, ConstructorSansProvider, CreateSignalOptions, DestroyableInjector, EnvironmentProviders, ExistingProvider, ExistingSansProvider, FactoryProvider, FactorySansProvider, ImportedNgModuleProviders, InjectOptions, InternalEnvironmentProviders, ModuleWithProviders, OutputRef, OutputRefSubscription, ProcessProvidersFunction, Provider, ProviderToken, Signal, StaticClassProvider, StaticClassSansProvider, StaticProvider, TypeProvider, ValueEqualityFn, ValueProvider, ValueSansProvider, Writable, WritableSignal };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/core",
3
- "version": "20.0.0-next.5",
3
+ "version": "20.0.0-next.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.0-next.5",
49
+ "@angular/compiler": "20.0.0-next.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.0-next.5
2
+ * @license Angular v20.0.0-next.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.0-next.5
2
+ * @license Angular v20.0.0-next.6
3
3
  * (c) 2010-2025 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
 
7
- import { E as EarlyJsactionDataContainer, a as EventInfo, R as Restriction } from '../../event_dispatcher.d-PWnbqZDx.js';
8
- export { f as EventContract, b as EventContractContainer, c as EventDispatcher, e as EventInfoWrapper, d as EventPhase, r as registerDispatcher } from '../../event_dispatcher.d-PWnbqZDx.js';
7
+ import { EarlyJsactionDataContainer, EventInfo, Restriction } from '../../event_dispatcher.d-DlbccpYq.js';
8
+ export { EventContract, EventContractContainer, EventDispatcher, EventInfoWrapper, EventPhase, registerDispatcher } from '../../event_dispatcher.d-DlbccpYq.js';
9
9
 
10
10
  declare const Attribute: {
11
11
  /**
@@ -1,14 +1,14 @@
1
1
  /**
2
- * @license Angular v20.0.0-next.5
2
+ * @license Angular v20.0.0-next.6
3
3
  * (c) 2010-2025 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
 
7
- import { R as ReactiveNode, V as ValueEqualityFn, S as SIGNAL } from '../../graph.d-StYigYp1.js';
8
- export { b as REACTIVE_NODE, c as Reactive, a as ReactiveHookFn, e as consumerAfterComputation, f as consumerBeforeComputation, g as consumerDestroy, h as consumerMarkDirty, i as consumerPollProducersForChange, d as defaultEquals, j as getActiveConsumer, k as isInNotificationPhase, l as isReactive, p as producerAccessed, m as producerIncrementEpoch, n as producerMarkClean, o as producerNotifyConsumers, q as producerUpdateValueVersion, r as producerUpdatesAllowed, s as runPostProducerCreatedFn, t as setActiveConsumer, u as setPostProducerCreatedFn } from '../../graph.d-StYigYp1.js';
9
- import { S as SignalNode } from '../../signal.d-BeaTIeOE.js';
10
- export { a as SIGNAL_NODE, b as SignalGetter, c as createSignal, r as runPostSignalSetFn, s as setPostSignalSetFn, d as signalGetFn, e as signalSetFn, f as signalUpdateFn } from '../../signal.d-BeaTIeOE.js';
11
- export { s as setAlternateWeakRefImpl } from '../../weak_ref.d-ttyj86RV.js';
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-E0e5nW1p.js';
10
+ export { SIGNAL_NODE, SignalGetter, createSignal, runPostSignalSetFn, setPostSignalSetFn, signalGetFn, signalSetFn, signalUpdateFn } from '../../signal.d-E0e5nW1p.js';
11
+ export { setAlternateWeakRefImpl } from '../../weak_ref.d-eGOEP9S1.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.0-next.5
2
+ * @license Angular v20.0.0-next.6
3
3
  * (c) 2010-2025 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
 
7
- import { O as OutputRef, D as DestroyRef, S as Signal, I as Injector } from '../ng_i18n_closure_mode.d-DLxSUiDr.js';
8
- import { O as OutputOptions, B as BaseResourceOptions, R as ResourceLoaderParams, a as ResourceRef } from '../api.d-mxcXqDpA.js';
7
+ import { OutputRef, DestroyRef, Signal, Injector } from '../ng_i18n_closure_mode.d-C9d2CaSt.js';
8
+ import { OutputOptions, BaseResourceOptions, ResourceLoaderParams, ResourceRef } from '../api.d-DQLNOR5l.js';
9
9
  import { Observable, MonoTypeOperatorFunction, Subscribable } from 'rxjs';
10
- import { V as ValueEqualityFn } from '../graph.d-StYigYp1.js';
11
- import '../event_dispatcher.d-PWnbqZDx.js';
10
+ import { ValueEqualityFn } from '../graph.d-BcIOep_B.js';
11
+ import '../event_dispatcher.d-DlbccpYq.js';
12
12
 
13
13
  /**
14
14
  * Declares an Angular output that is using an RxJS observable as a source
@@ -61,7 +61,7 @@ declare function takeUntilDestroyed<T>(destroyRef?: DestroyRef): MonoTypeOperato
61
61
  /**
62
62
  * Options for `toObservable`.
63
63
  *
64
- * @developerPreview
64
+ * @publicApi
65
65
  */
66
66
  interface ToObservableOptions {
67
67
  /**
@@ -71,15 +71,6 @@ interface ToObservableOptions {
71
71
  * will be used.
72
72
  */
73
73
  injector?: Injector;
74
- /**
75
- * Temporary option for forcing a synchronous emit of the signal's initial value.
76
- *
77
- * This will eventually become the default behavior, but is opt-in to allow a short migration
78
- * period.
79
- *
80
- * @deprecated will become default behavior
81
- */
82
- forceSyncFirstEmit?: true;
83
74
  }
84
75
  /**
85
76
  * Exposes the value of an Angular `Signal` as an RxJS `Observable`.
@@ -88,7 +79,7 @@ interface ToObservableOptions {
88
79
  *
89
80
  * `toObservable` must be called in an injection context unless an injector is provided via options.
90
81
  *
91
- * @developerPreview
82
+ * @publicApi
92
83
  */
93
84
  declare function toObservable<T>(source: Signal<T>, options?: ToObservableOptions): Observable<T>;
94
85
 
@@ -154,7 +145,7 @@ declare function toSignal<T, const U extends T>(source: Observable<T> | Subscrib
154
145
  }): Signal<T | U>;
155
146
 
156
147
  /**
157
- * Operator which makes the application unstable until the observable emits, complets, errors, or is unsubscribed.
148
+ * Operator which makes the application unstable until the observable emits, completes, errors, or is unsubscribed.
158
149
  *
159
150
  * Use this operator in observables whose subscriptions are important for rendering and should be included in SSR serialization.
160
151
  *
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.5
3
+ * @license Angular v20.0.0-next.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-DqUKCGda.js');
12
- var run_in_devkit = require('./run_in_devkit-CmHxABFr.js');
11
+ var checker = require('./checker-BFBQyesT.js');
12
+ var project_paths = require('./project_paths-ql6qcf_c.js');
13
13
 
14
14
  /**
15
15
  * Applies import manager changes, and writes them as replacements the
@@ -23,7 +23,7 @@ function applyImportManagerChanges(importManager, replacements, sourceFiles, inf
23
23
  newImports.forEach((newImports, fileName) => {
24
24
  newImports.forEach((newImport) => {
25
25
  const printedImport = printer.printNode(ts.EmitHint.Unspecified, newImport, pathToFile.get(fileName));
26
- replacements.push(new run_in_devkit.Replacement(run_in_devkit.projectFile(checker.absoluteFrom(fileName), info), new run_in_devkit.TextUpdate({ position: 0, end: 0, toInsert: `${printedImport}\n` })));
26
+ replacements.push(new project_paths.Replacement(project_paths.projectFile(checker.absoluteFrom(fileName), info), new project_paths.TextUpdate({ position: 0, end: 0, toInsert: `${printedImport}\n` })));
27
27
  });
28
28
  });
29
29
  // Capture updated imports
@@ -46,7 +46,7 @@ function applyImportManagerChanges(importManager, replacements, sourceFiles, inf
46
46
  formatFlags &= ~ts.ListFormat.SpaceBetweenBraces;
47
47
  }
48
48
  const printedBindings = printer.printList(formatFlags, newBindings.elements, oldBindings.getSourceFile());
49
- replacements.push(new run_in_devkit.Replacement(run_in_devkit.projectFile(oldBindings.getSourceFile(), info), new run_in_devkit.TextUpdate({
49
+ replacements.push(new project_paths.Replacement(project_paths.projectFile(oldBindings.getSourceFile(), info), new project_paths.TextUpdate({
50
50
  position: oldBindings.getStart(),
51
51
  end: oldBindings.getEnd(),
52
52
  // TS uses four spaces as indent. We migrate to two spaces as we
@@ -56,7 +56,7 @@ function applyImportManagerChanges(importManager, replacements, sourceFiles, inf
56
56
  }
57
57
  // Update removed imports
58
58
  for (const removedImport of deletedImports) {
59
- replacements.push(new run_in_devkit.Replacement(run_in_devkit.projectFile(removedImport.getSourceFile(), info), new run_in_devkit.TextUpdate({
59
+ replacements.push(new project_paths.Replacement(project_paths.projectFile(removedImport.getSourceFile(), info), new project_paths.TextUpdate({
60
60
  position: removedImport.getStart(),
61
61
  end: removedImport.getEnd(),
62
62
  toInsert: '',
@@ -1,14 +1,14 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.5
3
+ * @license Angular v20.0.0-next.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
- require('./compiler-CuoiHqkc.js');
11
- var checker = require('./checker-DqUKCGda.js');
10
+ require('./compiler-BQ7R7w2v.js');
11
+ var checker = require('./checker-BFBQyesT.js');
12
12
  require('os');
13
13
 
14
14
  /** Tracks changes that have to be made for specific files. */
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.5
3
+ * @license Angular v20.0.0-next.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 compiler = require('./compiler-CuoiHqkc.js');
9
+ var compiler = require('./compiler-BQ7R7w2v.js');
10
10
  var ts = require('typescript');
11
11
  require('os');
12
12
  var fs$1 = require('fs');
@@ -479,6 +479,22 @@ exports.ErrorCode = void 0;
479
479
  * An expression mixes nullish coalescing and logical and/or without parentheses.
480
480
  */
481
481
  ErrorCode[ErrorCode["UNPARENTHESIZED_NULLISH_COALESCING"] = 8114] = "UNPARENTHESIZED_NULLISH_COALESCING";
482
+ /**
483
+ * The function passed to `@for` track is not invoked.
484
+ *
485
+ * For example:
486
+ * ```angular-html
487
+ * @for (item of items; track trackByName) {}
488
+ * ```
489
+ *
490
+ * For the track function to work properly, it must be invoked.
491
+ *
492
+ * For example:
493
+ * ```angular-html
494
+ * @for (item of items; track trackByName(item)) {}
495
+ * ```
496
+ */
497
+ ErrorCode[ErrorCode["UNINVOKED_TRACK_FUNCTION"] = 8115] = "UNINVOKED_TRACK_FUNCTION";
482
498
  /**
483
499
  * The template type-checking engine would need to generate an inline type check block for a
484
500
  * component, but the current type-checking environment doesn't support it.
@@ -636,6 +652,7 @@ exports.ExtendedTemplateDiagnosticName = void 0;
636
652
  ExtendedTemplateDiagnosticName["INTERPOLATED_SIGNAL_NOT_INVOKED"] = "interpolatedSignalNotInvoked";
637
653
  ExtendedTemplateDiagnosticName["CONTROL_FLOW_PREVENTING_CONTENT_PROJECTION"] = "controlFlowPreventingContentProjection";
638
654
  ExtendedTemplateDiagnosticName["UNUSED_LET_DECLARATION"] = "unusedLetDeclaration";
655
+ ExtendedTemplateDiagnosticName["UNINVOKED_TRACK_FUNCTION"] = "uninvokedTrackFunction";
639
656
  ExtendedTemplateDiagnosticName["UNUSED_STANDALONE_IMPORTS"] = "unusedStandaloneImports";
640
657
  ExtendedTemplateDiagnosticName["UNPARENTHESIZED_NULLISH_COALESCING"] = "unparenthesizedNullishCoalescing";
641
658
  })(exports.ExtendedTemplateDiagnosticName || (exports.ExtendedTemplateDiagnosticName = {}));
@@ -964,7 +981,7 @@ class NodeJSPathManipulation {
964
981
  // G3-ESM-MARKER: G3 uses CommonJS, but externally everything in ESM.
965
982
  // CommonJS/ESM interop for determining the current file name and containing dir.
966
983
  const isCommonJS = typeof __filename !== 'undefined';
967
- const currentFileUrl = isCommonJS ? null : (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('checker-DqUKCGda.js', document.baseURI).href));
984
+ const currentFileUrl = isCommonJS ? null : (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('checker-BFBQyesT.js', document.baseURI).href));
968
985
  const currentFileName = isCommonJS ? __filename : url.fileURLToPath(currentFileUrl);
969
986
  /**
970
987
  * A wrapper around the Node.js file-system that supports readonly operations and path manipulation.
@@ -1,29 +1,29 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.5
3
+ * @license Angular v20.0.0-next.6
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
+ require('@angular-devkit/core');
10
+ require('node:path/posix');
11
+ var project_paths = require('./project_paths-ql6qcf_c.js');
9
12
  var ts = require('typescript');
10
13
  require('os');
11
- var checker = require('./checker-DqUKCGda.js');
12
- require('./compiler-CuoiHqkc.js');
13
- var index = require('./index-WFXCe5Q0.js');
14
+ var checker = require('./checker-BFBQyesT.js');
15
+ require('./compiler-BQ7R7w2v.js');
16
+ var index = require('./index-Cv4Q415G.js');
14
17
  require('path');
15
- var run_in_devkit = require('./run_in_devkit-CmHxABFr.js');
16
- var apply_import_manager = require('./apply_import_manager-C-ysxahq.js');
17
- require('@angular-devkit/core');
18
- require('node:path/posix');
18
+ var apply_import_manager = require('./apply_import_manager-DnMqg1pY.js');
19
+ require('@angular-devkit/schematics');
20
+ require('./project_tsconfig_paths-CDVxT6Ov.js');
19
21
  require('fs');
20
22
  require('module');
21
23
  require('url');
22
- require('@angular-devkit/schematics');
23
- require('./project_tsconfig_paths-CDVxT6Ov.js');
24
24
 
25
25
  /** Migration that cleans up unused imports from a project. */
26
- class UnusedImportsMigration extends run_in_devkit.TsurgeFunnelMigration {
26
+ class UnusedImportsMigration extends project_paths.TsurgeFunnelMigration {
27
27
  printer = ts.createPrinter();
28
28
  createProgram(tsconfigAbsPath, fs) {
29
29
  return super.createProgram(tsconfigAbsPath, fs, {
@@ -62,10 +62,10 @@ class UnusedImportsMigration extends run_in_devkit.TsurgeFunnelMigration {
62
62
  }
63
63
  this.generateReplacements(sourceFile, resolvedLocations, usageAnalysis, info, replacements);
64
64
  });
65
- return run_in_devkit.confirmAsSerializable({ replacements, removedIdentifiers, changedFiles });
65
+ return project_paths.confirmAsSerializable({ replacements, removedIdentifiers, changedFiles });
66
66
  }
67
67
  async migrate(globalData) {
68
- return run_in_devkit.confirmAsSerializable(globalData);
68
+ return project_paths.confirmAsSerializable(globalData);
69
69
  }
70
70
  async combine(unitA, unitB) {
71
71
  const combinedReplacements = [];
@@ -89,14 +89,14 @@ class UnusedImportsMigration extends run_in_devkit.TsurgeFunnelMigration {
89
89
  }
90
90
  }
91
91
  });
92
- return run_in_devkit.confirmAsSerializable({
92
+ return project_paths.confirmAsSerializable({
93
93
  replacements: combinedReplacements,
94
94
  removedIdentifiers: combinedRemovedIdentifiers,
95
95
  changedFiles: changedFileIds.size,
96
96
  });
97
97
  }
98
98
  async globalMeta(combinedData) {
99
- return run_in_devkit.confirmAsSerializable(combinedData);
99
+ return project_paths.confirmAsSerializable(combinedData);
100
100
  }
101
101
  async stats(globalMetadata) {
102
102
  return {
@@ -223,7 +223,7 @@ class UnusedImportsMigration extends run_in_devkit.TsurgeFunnelMigration {
223
223
  const importManager = new checker.ImportManager();
224
224
  // Replace full arrays with empty ones. This allows preserves more of the user's formatting.
225
225
  fullRemovals.forEach((node) => {
226
- replacements.push(new run_in_devkit.Replacement(run_in_devkit.projectFile(sourceFile, info), new run_in_devkit.TextUpdate({
226
+ replacements.push(new project_paths.Replacement(project_paths.projectFile(sourceFile, info), new project_paths.TextUpdate({
227
227
  position: node.getStart(),
228
228
  end: node.getEnd(),
229
229
  toInsert: '[]',
@@ -232,7 +232,7 @@ class UnusedImportsMigration extends run_in_devkit.TsurgeFunnelMigration {
232
232
  // Filter out the unused identifiers from an array.
233
233
  partialRemovals.forEach((toRemove, node) => {
234
234
  const newNode = ts.factory.updateArrayLiteralExpression(node, node.elements.filter((el) => !toRemove.has(el)));
235
- replacements.push(new run_in_devkit.Replacement(run_in_devkit.projectFile(sourceFile, info), new run_in_devkit.TextUpdate({
235
+ replacements.push(new project_paths.Replacement(project_paths.projectFile(sourceFile, info), new project_paths.TextUpdate({
236
236
  position: node.getStart(),
237
237
  end: node.getEnd(),
238
238
  toInsert: this.printer.printNode(ts.EmitHint.Unspecified, newNode, sourceFile),
@@ -264,11 +264,16 @@ class UnusedImportsMigration extends run_in_devkit.TsurgeFunnelMigration {
264
264
 
265
265
  function migrate() {
266
266
  return async (tree, context) => {
267
- await run_in_devkit.runMigrationInDevkit({
267
+ await project_paths.runMigrationInDevkit({
268
268
  getMigration: () => new UnusedImportsMigration(),
269
269
  tree,
270
- beforeProgramCreation: (tsconfigPath) => {
271
- context.logger.info(`Preparing analysis for ${tsconfigPath}`);
270
+ beforeProgramCreation: (tsconfigPath, stage) => {
271
+ if (stage === project_paths.MigrationStage.Analysis) {
272
+ context.logger.info(`Preparing analysis for: ${tsconfigPath}...`);
273
+ }
274
+ else {
275
+ context.logger.info(`Running migration for: ${tsconfigPath}...`);
276
+ }
272
277
  },
273
278
  beforeUnitAnalysis: (tsconfigPath) => {
274
279
  context.logger.info(`Scanning for unused imports using ${tsconfigPath}`);