@angular/core 21.0.0-next.8 → 21.0.0-next.9

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/fesm2022/_attribute-chunk.mjs +1 -1
  2. package/fesm2022/_debug_node-chunk.mjs +481 -438
  3. package/fesm2022/_debug_node-chunk.mjs.map +1 -1
  4. package/fesm2022/_effect-chunk.mjs +512 -48
  5. package/fesm2022/_effect-chunk.mjs.map +1 -1
  6. package/fesm2022/{_root_effect_scheduler-chunk.mjs → _effect-chunk2.mjs} +197 -19
  7. package/fesm2022/_effect-chunk2.mjs.map +1 -0
  8. package/fesm2022/_not_found-chunk.mjs +1 -1
  9. package/fesm2022/_resource-chunk.mjs +5 -173
  10. package/fesm2022/_resource-chunk.mjs.map +1 -1
  11. package/fesm2022/_untracked-chunk.mjs +117 -0
  12. package/fesm2022/_untracked-chunk.mjs.map +1 -0
  13. package/fesm2022/_weak_ref-chunk.mjs +1 -1
  14. package/fesm2022/core.mjs +8 -7
  15. package/fesm2022/core.mjs.map +1 -1
  16. package/fesm2022/primitives-di.mjs +1 -1
  17. package/fesm2022/primitives-event-dispatch.mjs +1 -1
  18. package/fesm2022/primitives-signals.mjs +4 -4
  19. package/fesm2022/primitives-signals.mjs.map +1 -1
  20. package/fesm2022/rxjs-interop.mjs +5 -5
  21. package/fesm2022/testing.mjs +3 -3
  22. package/package.json +2 -2
  23. package/schematics/bundles/add-bootstrap-context-to-server-main.cjs +5 -5
  24. package/schematics/bundles/application-config-core.cjs +5 -5
  25. package/schematics/bundles/{apply_import_manager-CBLmogDD.cjs → apply_import_manager-CoeTX_Ob.cjs} +3 -3
  26. package/schematics/bundles/bootstrap-options-migration.cjs +5 -5
  27. package/schematics/bundles/cleanup-unused-imports.cjs +5 -5
  28. package/schematics/bundles/common-to-standalone-migration.cjs +385 -0
  29. package/schematics/bundles/{compiler_host-T6xncpiw.cjs → compiler_host-emLDwK2U.cjs} +2 -2
  30. package/schematics/bundles/control-flow-migration.cjs +4 -4
  31. package/schematics/bundles/imports-DwPXlGFl.cjs +1 -1
  32. package/schematics/bundles/{index-DWSaRJdz.cjs → index-CLxYZ09c.cjs} +4 -4
  33. package/schematics/bundles/{index-BnmACOsq.cjs → index-Dvqnp6JS.cjs} +166 -66
  34. package/schematics/bundles/inject-migration.cjs +3 -3
  35. package/schematics/bundles/leading_space-D9nQ8UQC.cjs +1 -1
  36. package/schematics/bundles/{migrate_ts_type_references-Cu-FR4L5.cjs → migrate_ts_type_references-CpM5FPGa.cjs} +5 -5
  37. package/schematics/bundles/{ng_component_template-BkWiUuGG.cjs → ng_component_template-BRbBIAUX.cjs} +2 -2
  38. package/schematics/bundles/ng_decorators-BI0uV7KI.cjs +1 -1
  39. package/schematics/bundles/ngclass-to-class-migration.cjs +7 -7
  40. package/schematics/bundles/ngstyle-to-style-migration.cjs +7 -7
  41. package/schematics/bundles/nodes-B16H9JUd.cjs +1 -1
  42. package/schematics/bundles/output-migration.cjs +6 -6
  43. package/schematics/bundles/{parse_html-C97tKKp3.cjs → parse_html-CPWfkfhR.cjs} +2 -2
  44. package/schematics/bundles/{project_paths-C6g3lqjX.cjs → project_paths-C8H7KDJ3.cjs} +3 -3
  45. package/schematics/bundles/{project_tsconfig_paths-CdhVNYMk.cjs → project_tsconfig_paths-CiBzGSIa.cjs} +12 -4
  46. package/schematics/bundles/property_name-BBwFuqMe.cjs +1 -1
  47. package/schematics/bundles/route-lazy-loading.cjs +3 -3
  48. package/schematics/bundles/router-current-navigation.cjs +4 -4
  49. package/schematics/bundles/router-last-successful-navigation.cjs +4 -4
  50. package/schematics/bundles/router-testing-module-migration.cjs +5 -5
  51. package/schematics/bundles/self-closing-tags-migration.cjs +6 -6
  52. package/schematics/bundles/signal-input-migration.cjs +7 -7
  53. package/schematics/bundles/signal-queries-migration.cjs +7 -7
  54. package/schematics/bundles/signals.cjs +7 -7
  55. package/schematics/bundles/standalone-migration.cjs +4 -4
  56. package/schematics/bundles/symbol-BObKoqes.cjs +1 -1
  57. package/schematics/collection.json +6 -0
  58. package/schematics/migrations/common-to-standalone-migration/schema.json +14 -0
  59. package/types/_api-chunk.d.ts +1 -1
  60. package/types/_chrome_dev_tools_performance-chunk.d.ts +20 -12
  61. package/types/_discovery-chunk.d.ts +12 -6
  62. package/types/_effect-chunk.d.ts +1 -1
  63. package/types/_event_dispatcher-chunk.d.ts +1 -1
  64. package/types/_formatter-chunk.d.ts +4 -3
  65. package/types/_weak_ref-chunk.d.ts +1 -1
  66. package/types/core.d.ts +49 -20
  67. package/types/primitives-di.d.ts +1 -1
  68. package/types/primitives-event-dispatch.d.ts +1 -1
  69. package/types/primitives-signals.d.ts +2 -2
  70. package/types/rxjs-interop.d.ts +1 -1
  71. package/types/testing.d.ts +1 -1
  72. package/fesm2022/_root_effect_scheduler-chunk.mjs.map +0 -1
  73. package/fesm2022/_signal-chunk.mjs +0 -581
  74. package/fesm2022/_signal-chunk.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v21.0.0-next.8
2
+ * @license Angular v21.0.0-next.9
3
3
  * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v21.0.0-next.8
2
+ * @license Angular v21.0.0-next.9
3
3
  * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
@@ -1,12 +1,12 @@
1
1
  /**
2
- * @license Angular v21.0.0-next.8
2
+ * @license Angular v21.0.0-next.9
3
3
  * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
6
6
 
7
- import { SIGNAL, consumerMarkDirty, REACTIVE_NODE, consumerDestroy, isInNotificationPhase, consumerPollProducersForChange, consumerBeforeComputation, consumerAfterComputation } from './_signal-chunk.mjs';
8
- export { SIGNAL_NODE, createComputed, createSignal, defaultEquals, finalizeConsumerAfterComputation, getActiveConsumer, isReactive, producerAccessed, producerIncrementEpoch, producerMarkClean, producerNotifyConsumers, producerUpdateValueVersion, producerUpdatesAllowed, resetConsumerBeforeComputation, runPostProducerCreatedFn, runPostSignalSetFn, setActiveConsumer, setPostProducerCreatedFn, setPostSignalSetFn, setThrowInvalidWriteToSignalError, signalGetFn, signalSetFn, signalUpdateFn } from './_signal-chunk.mjs';
9
- export { BASE_EFFECT_NODE, createLinkedSignal, linkedSignalSetFn, linkedSignalUpdateFn, runEffect, untracked } from './_effect-chunk.mjs';
7
+ import { SIGNAL, consumerMarkDirty, REACTIVE_NODE, consumerDestroy, isInNotificationPhase, consumerPollProducersForChange, consumerBeforeComputation, consumerAfterComputation } from './_effect-chunk.mjs';
8
+ export { BASE_EFFECT_NODE, SIGNAL_NODE, createComputed, createSignal, defaultEquals, finalizeConsumerAfterComputation, getActiveConsumer, isReactive, producerAccessed, producerIncrementEpoch, producerMarkClean, producerNotifyConsumers, producerUpdateValueVersion, producerUpdatesAllowed, resetConsumerBeforeComputation, runEffect, runPostProducerCreatedFn, runPostSignalSetFn, setActiveConsumer, setPostProducerCreatedFn, setPostSignalSetFn, setThrowInvalidWriteToSignalError, signalGetFn, signalSetFn, signalUpdateFn } from './_effect-chunk.mjs';
9
+ export { createLinkedSignal, linkedSignalSetFn, linkedSignalUpdateFn, untracked } from './_untracked-chunk.mjs';
10
10
  export { setAlternateWeakRefImpl } from './_weak_ref-chunk.mjs';
11
11
 
12
12
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"primitives-signals.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/packages/core/primitives/signals/src/formatter.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/packages/core/primitives/signals/src/watch.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/packages/core/primitives/signals/index.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.io/license\n */\n\nimport {SIGNAL} from './graph';\n\n// Only a subset of HTML tags are allowed in the custom formatter JsonML format.\n// See https://firefox-source-docs.mozilla.org/devtools-user/custom_formatters/index.html#html-template-format\ntype AllowedTags = 'span' | 'div' | 'ol' | 'ul' | 'li' | 'table' | 'tr' | 'td';\n\ntype JsonMLText = string;\ntype JsonMLAttrs = Record<string, string>;\ntype JsonMLElement =\n | [tagName: AllowedTags, ...children: (JsonMLNode | JsonMLChild)[]]\n | [tagName: AllowedTags, attrs: JsonMLAttrs, ...children: (JsonMLNode | JsonMLChild)[]];\ntype JsonMLNode = JsonMLText | JsonMLElement;\ntype JsonMLChild = ['object', {object: unknown; config?: unknown}];\ntype JsonML = JsonMLNode;\n\ntype FormatterConfig = unknown & {ngSkipFormatting?: boolean};\n\ndeclare global {\n // We need to use `var` here to be able to declare a global variable.\n // `let` and `const` will be locally scoped to the file.\n // tslint:disable-next-line:no-unused-variable\n var devtoolsFormatters: any[];\n}\n\n/**\n * A custom formatter which renders signals in an easy-to-read format.\n *\n * @see https://firefox-source-docs.mozilla.org/devtools-user/custom_formatters/index.html\n */\n\nconst formatter = {\n /**\n * If the function returns `null`, the formatter is not used for this reference\n */\n header: (sig: any, config: FormatterConfig): JsonML | null => {\n if (!isSignal(sig) || config?.ngSkipFormatting) return null;\n\n let value: unknown;\n try {\n value = sig();\n } catch {\n // In case the signl throws, we don't want to break the formatting.\n return ['span', 'Signal(⚠️ Error)'];\n }\n\n const kind = 'computation' in (sig[SIGNAL] as any) ? 'Computed' : 'Signal';\n\n const isPrimitive = value === null || (!Array.isArray(value) && typeof value !== 'object');\n\n return [\n 'span',\n {},\n ['span', {}, `${kind}(`],\n (() => {\n if (isSignal(value)) {\n // Recursively call formatter. Could return an `object` to call the formatter through DevTools,\n // but then recursive signals will render multiple expando arrows which is an awkward UX.\n return formatter.header(value, config)!;\n } else if (isPrimitive && value !== undefined && typeof value !== 'function') {\n // Use built-in rendering for primitives which applies standard syntax highlighting / theming.\n // Can't do this for `undefined` however, as the browser thinks we forgot to provide an object.\n // Also don't want to do this for functions which render nested expando arrows.\n return ['object', {object: value}];\n } else {\n return prettifyPreview(value as Record<string | number | symbol, unknown>);\n }\n })(),\n ['span', {}, `)`],\n ];\n },\n\n hasBody: (sig: any, config: FormatterConfig) => {\n if (!isSignal(sig)) return false;\n\n try {\n sig();\n } catch {\n return false;\n }\n return !config?.ngSkipFormatting;\n },\n\n body: (sig: any, config: any): JsonML => {\n // We can use sys colors to fit the current DevTools theme.\n // Those are unfortunately only available on Chromium-based browsers.\n // On Firefow we fall back to the default color\n const color = 'var(--sys-color-primary)';\n\n return [\n 'div',\n {style: `background: #FFFFFF10; padding-left: 4px; padding-top: 2px; padding-bottom: 2px;`},\n ['div', {style: `color: ${color}`}, 'Signal value: '],\n ['div', {style: `padding-left: .5rem;`}, ['object', {object: sig(), config}]],\n ['div', {style: `color: ${color}`}, 'Signal function: '],\n [\n 'div',\n {style: `padding-left: .5rem;`},\n ['object', {object: sig, config: {...config, skipFormatting: true}}],\n ],\n ];\n },\n};\n\nfunction prettifyPreview(\n value: Record<string | number | symbol, unknown> | Array<unknown> | undefined,\n): string | JsonMLChild {\n if (value === null) return 'null';\n if (Array.isArray(value)) return `Array(${value.length})`;\n if (value instanceof Element) return `<${value.tagName.toLowerCase()}>`;\n if (value instanceof URL) return `URL`;\n\n switch (typeof value) {\n case 'undefined': {\n return 'undefined';\n }\n case 'function': {\n if ('prototype' in value) {\n // This is what Chrome renders, can't use `object` though because it creates a nested expando arrow.\n return 'class';\n } else {\n return '() => {…}';\n }\n }\n case 'object': {\n if (value.constructor.name === 'Object') {\n return '{…}';\n } else {\n return `${value.constructor.name} {}`;\n }\n }\n default: {\n return ['object', {object: value, config: {skipFormatting: true}}];\n }\n }\n}\n\nfunction isSignal(value: any): boolean {\n return value[SIGNAL] !== undefined;\n}\n\n/**\n * Installs the custom formatter into custom formatting on Signals in the devtools.\n *\n * Supported by both Chrome and Firefox.\n *\n * @see https://firefox-source-docs.mozilla.org/devtools-user/custom_formatters/index.html\n */\nexport function installDevToolsSignalFormatter() {\n globalThis.devtoolsFormatters ??= [];\n if (!globalThis.devtoolsFormatters.some((f: any) => f === formatter)) {\n globalThis.devtoolsFormatters.push(formatter);\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 {\n consumerAfterComputation,\n consumerBeforeComputation,\n consumerDestroy,\n consumerMarkDirty,\n consumerPollProducersForChange,\n isInNotificationPhase,\n REACTIVE_NODE,\n ReactiveNode,\n SIGNAL,\n} from './graph';\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\n/**\n * A cleanup function that can be optionally registered from the watch logic. If registered, the\n * cleanup logic runs before the next watch execution.\n */\nexport type WatchCleanupFn = () => void;\n\n/**\n * A callback passed to the watch function that makes it possible to register cleanup logic.\n */\nexport type WatchCleanupRegisterFn = (cleanupFn: WatchCleanupFn) => void;\n\nexport interface Watch {\n notify(): void;\n\n /**\n * Execute the reactive expression in the context of this `Watch` consumer.\n *\n * Should be called by the user scheduling algorithm when the provided\n * `schedule` hook is called by `Watch`.\n */\n run(): void;\n\n cleanup(): void;\n\n /**\n * Destroy the watcher:\n * - disconnect it from the reactive graph;\n * - mark it as destroyed so subsequent run and notify operations are noop.\n */\n destroy(): void;\n\n [SIGNAL]: WatchNode;\n}\nexport interface WatchNode extends ReactiveNode {\n fn: ((onCleanup: WatchCleanupRegisterFn) => void) | null;\n schedule: ((watch: Watch) => void) | null;\n cleanupFn: WatchCleanupFn;\n ref: Watch;\n}\n\nexport function createWatch(\n fn: (onCleanup: WatchCleanupRegisterFn) => void,\n schedule: (watch: Watch) => void,\n allowSignalWrites: boolean,\n): Watch {\n const node: WatchNode = Object.create(WATCH_NODE);\n if (allowSignalWrites) {\n node.consumerAllowSignalWrites = true;\n }\n\n node.fn = fn;\n node.schedule = schedule;\n\n const registerOnCleanup = (cleanupFn: WatchCleanupFn) => {\n node.cleanupFn = cleanupFn;\n };\n\n function isWatchNodeDestroyed(node: WatchNode) {\n return node.fn === null && node.schedule === null;\n }\n\n function destroyWatchNode(node: WatchNode) {\n if (!isWatchNodeDestroyed(node)) {\n consumerDestroy(node); // disconnect watcher from the reactive graph\n node.cleanupFn();\n\n // nullify references to the integration functions to mark node as destroyed\n node.fn = null;\n node.schedule = null;\n node.cleanupFn = NOOP_CLEANUP_FN;\n }\n }\n\n const run = () => {\n if (node.fn === null) {\n // trying to run a destroyed watch is noop\n return;\n }\n\n if (isInNotificationPhase()) {\n throw new Error(\n typeof ngDevMode !== 'undefined' && ngDevMode\n ? 'Schedulers cannot synchronously execute watches while scheduling.'\n : '',\n );\n }\n\n node.dirty = false;\n if (node.version > 0 && !consumerPollProducersForChange(node)) {\n return;\n }\n node.version++;\n\n const prevConsumer = consumerBeforeComputation(node);\n try {\n node.cleanupFn();\n node.cleanupFn = NOOP_CLEANUP_FN;\n node.fn(registerOnCleanup);\n } finally {\n consumerAfterComputation(node, prevConsumer);\n }\n };\n\n node.ref = {\n notify: () => consumerMarkDirty(node),\n run,\n cleanup: () => node.cleanupFn(),\n destroy: () => destroyWatchNode(node),\n [SIGNAL]: node,\n };\n\n return node.ref;\n}\n\nconst NOOP_CLEANUP_FN: WatchCleanupFn = () => {};\n\n// Note: Using an IIFE here to ensure that the spread assignment is not considered\n// a side-effect, ending up preserving `COMPUTED_NODE` and `REACTIVE_NODE`.\n// TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.\nconst WATCH_NODE: Partial<WatchNode> = /* @__PURE__ */ (() => {\n return {\n ...REACTIVE_NODE,\n consumerIsAlwaysLive: true,\n consumerAllowSignalWrites: false,\n consumerMarkedDirty: (node: WatchNode) => {\n if (node.schedule !== null) {\n node.schedule(node.ref);\n }\n },\n cleanupFn: NOOP_CLEANUP_FN,\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 {installDevToolsSignalFormatter} from './src/formatter';\n\nexport {ComputedNode, createComputed} from './src/computed';\nexport {\n ComputationFn,\n LinkedSignalNode,\n LinkedSignalGetter,\n createLinkedSignal,\n linkedSignalSetFn,\n linkedSignalUpdateFn,\n} from './src/linked_signal';\nexport {ValueEqualityFn, defaultEquals} from './src/equality';\nexport {setThrowInvalidWriteToSignalError} from './src/errors';\nexport {\n REACTIVE_NODE,\n Reactive,\n ReactiveHookFn,\n ReactiveNode,\n SIGNAL,\n consumerAfterComputation,\n consumerBeforeComputation,\n consumerDestroy,\n consumerMarkDirty,\n consumerPollProducersForChange,\n finalizeConsumerAfterComputation,\n getActiveConsumer,\n isInNotificationPhase,\n isReactive,\n producerAccessed,\n producerIncrementEpoch,\n producerMarkClean,\n producerNotifyConsumers,\n producerUpdateValueVersion,\n producerUpdatesAllowed,\n resetConsumerBeforeComputation,\n runPostProducerCreatedFn,\n setActiveConsumer,\n setPostProducerCreatedFn,\n} from './src/graph';\nexport {\n SIGNAL_NODE,\n SignalGetter,\n SignalNode,\n createSignal,\n runPostSignalSetFn,\n setPostSignalSetFn,\n signalGetFn,\n signalSetFn,\n signalUpdateFn,\n} from './src/signal';\nexport {Watch, WatchCleanupFn, WatchCleanupRegisterFn, createWatch} from './src/watch';\nexport {setAlternateWeakRefImpl} from './src/weak_ref';\nexport {untracked} from './src/untracked';\nexport {runEffect, BASE_EFFECT_NODE, BaseEffectNode} from './src/effect';\nexport {installDevToolsSignalFormatter} from './src/formatter';\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\n// We're using a top-level access to enable signal formatting whenever the signals package is loaded.\nif (typeof ngDevMode !== 'undefined' && ngDevMode) {\n // tslint:disable-next-line: no-toplevel-property-access\n installDevToolsSignalFormatter();\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primitives-signals.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/packages/core/primitives/signals/src/formatter.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/packages/core/primitives/signals/src/watch.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/packages/core/primitives/signals/index.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.io/license\n */\n\nimport {SIGNAL} from './graph';\n\n// Only a subset of HTML tags are allowed in the custom formatter JsonML format.\n// See https://firefox-source-docs.mozilla.org/devtools-user/custom_formatters/index.html#html-template-format\ntype AllowedTags = 'span' | 'div' | 'ol' | 'ul' | 'li' | 'table' | 'tr' | 'td';\n\ntype JsonMLText = string;\ntype JsonMLAttrs = Record<string, string>;\ntype JsonMLElement =\n | [tagName: AllowedTags, ...children: (JsonMLNode | JsonMLChild)[]]\n | [tagName: AllowedTags, attrs: JsonMLAttrs, ...children: (JsonMLNode | JsonMLChild)[]];\ntype JsonMLNode = JsonMLText | JsonMLElement;\ntype JsonMLChild = ['object', {object: unknown; config?: unknown}];\ntype JsonML = JsonMLNode;\n\ntype FormatterConfig = unknown & {ngSkipFormatting?: boolean};\n\ndeclare global {\n // We need to use `var` here to be able to declare a global variable.\n // `let` and `const` will be locally scoped to the file.\n // tslint:disable-next-line:no-unused-variable\n var devtoolsFormatters: any[];\n}\n\n/**\n * A custom formatter which renders signals in an easy-to-read format.\n *\n * @see https://firefox-source-docs.mozilla.org/devtools-user/custom_formatters/index.html\n */\n\nconst formatter = {\n /**\n * If the function returns `null`, the formatter is not used for this reference\n */\n header: (sig: any, config: FormatterConfig): JsonML | null => {\n if (!isSignal(sig) || config?.ngSkipFormatting) return null;\n\n let value: unknown;\n try {\n value = sig();\n } catch {\n // In case the signl throws, we don't want to break the formatting.\n return ['span', 'Signal(⚠️ Error)'];\n }\n\n const kind = 'computation' in (sig[SIGNAL] as any) ? 'Computed' : 'Signal';\n\n const isPrimitive = value === null || (!Array.isArray(value) && typeof value !== 'object');\n\n return [\n 'span',\n {},\n ['span', {}, `${kind}(`],\n (() => {\n if (isSignal(value)) {\n // Recursively call formatter. Could return an `object` to call the formatter through DevTools,\n // but then recursive signals will render multiple expando arrows which is an awkward UX.\n return formatter.header(value, config)!;\n } else if (isPrimitive && value !== undefined && typeof value !== 'function') {\n // Use built-in rendering for primitives which applies standard syntax highlighting / theming.\n // Can't do this for `undefined` however, as the browser thinks we forgot to provide an object.\n // Also don't want to do this for functions which render nested expando arrows.\n return ['object', {object: value}];\n } else {\n return prettifyPreview(value as Record<string | number | symbol, unknown>);\n }\n })(),\n ['span', {}, `)`],\n ];\n },\n\n hasBody: (sig: any, config: FormatterConfig) => {\n if (!isSignal(sig)) return false;\n\n try {\n sig();\n } catch {\n return false;\n }\n return !config?.ngSkipFormatting;\n },\n\n body: (sig: any, config: any): JsonML => {\n // We can use sys colors to fit the current DevTools theme.\n // Those are unfortunately only available on Chromium-based browsers.\n // On Firefow we fall back to the default color\n const color = 'var(--sys-color-primary)';\n\n return [\n 'div',\n {style: `background: #FFFFFF10; padding-left: 4px; padding-top: 2px; padding-bottom: 2px;`},\n ['div', {style: `color: ${color}`}, 'Signal value: '],\n ['div', {style: `padding-left: .5rem;`}, ['object', {object: sig(), config}]],\n ['div', {style: `color: ${color}`}, 'Signal function: '],\n [\n 'div',\n {style: `padding-left: .5rem;`},\n ['object', {object: sig, config: {...config, skipFormatting: true}}],\n ],\n ];\n },\n};\n\nfunction prettifyPreview(\n value: Record<string | number | symbol, unknown> | Array<unknown> | undefined,\n): string | JsonMLChild {\n if (value === null) return 'null';\n if (Array.isArray(value)) return `Array(${value.length})`;\n if (value instanceof Element) return `<${value.tagName.toLowerCase()}>`;\n if (value instanceof URL) return `URL`;\n\n switch (typeof value) {\n case 'undefined': {\n return 'undefined';\n }\n case 'function': {\n if ('prototype' in value) {\n // This is what Chrome renders, can't use `object` though because it creates a nested expando arrow.\n return 'class';\n } else {\n return '() => {…}';\n }\n }\n case 'object': {\n if (value.constructor.name === 'Object') {\n return '{…}';\n } else {\n return `${value.constructor.name} {}`;\n }\n }\n default: {\n return ['object', {object: value, config: {skipFormatting: true}}];\n }\n }\n}\n\nfunction isSignal(value: any): boolean {\n return value[SIGNAL] !== undefined;\n}\n\n/**\n * Installs the custom formatter into custom formatting on Signals in the devtools.\n *\n * Supported by both Chrome and Firefox.\n *\n * @see https://firefox-source-docs.mozilla.org/devtools-user/custom_formatters/index.html\n */\nexport function installDevToolsSignalFormatter() {\n globalThis.devtoolsFormatters ??= [];\n if (!globalThis.devtoolsFormatters.some((f: any) => f === formatter)) {\n globalThis.devtoolsFormatters.push(formatter);\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 {\n consumerAfterComputation,\n consumerBeforeComputation,\n consumerDestroy,\n consumerMarkDirty,\n consumerPollProducersForChange,\n isInNotificationPhase,\n REACTIVE_NODE,\n ReactiveNode,\n SIGNAL,\n} from './graph';\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\n/**\n * A cleanup function that can be optionally registered from the watch logic. If registered, the\n * cleanup logic runs before the next watch execution.\n */\nexport type WatchCleanupFn = () => void;\n\n/**\n * A callback passed to the watch function that makes it possible to register cleanup logic.\n */\nexport type WatchCleanupRegisterFn = (cleanupFn: WatchCleanupFn) => void;\n\nexport interface Watch {\n notify(): void;\n\n /**\n * Execute the reactive expression in the context of this `Watch` consumer.\n *\n * Should be called by the user scheduling algorithm when the provided\n * `schedule` hook is called by `Watch`.\n */\n run(): void;\n\n cleanup(): void;\n\n /**\n * Destroy the watcher:\n * - disconnect it from the reactive graph;\n * - mark it as destroyed so subsequent run and notify operations are noop.\n */\n destroy(): void;\n\n [SIGNAL]: WatchNode;\n}\nexport interface WatchNode extends ReactiveNode {\n fn: ((onCleanup: WatchCleanupRegisterFn) => void) | null;\n schedule: ((watch: Watch) => void) | null;\n cleanupFn: WatchCleanupFn;\n ref: Watch;\n}\n\nexport function createWatch(\n fn: (onCleanup: WatchCleanupRegisterFn) => void,\n schedule: (watch: Watch) => void,\n allowSignalWrites: boolean,\n): Watch {\n const node: WatchNode = Object.create(WATCH_NODE);\n if (allowSignalWrites) {\n node.consumerAllowSignalWrites = true;\n }\n\n node.fn = fn;\n node.schedule = schedule;\n\n const registerOnCleanup = (cleanupFn: WatchCleanupFn) => {\n node.cleanupFn = cleanupFn;\n };\n\n function isWatchNodeDestroyed(node: WatchNode) {\n return node.fn === null && node.schedule === null;\n }\n\n function destroyWatchNode(node: WatchNode) {\n if (!isWatchNodeDestroyed(node)) {\n consumerDestroy(node); // disconnect watcher from the reactive graph\n node.cleanupFn();\n\n // nullify references to the integration functions to mark node as destroyed\n node.fn = null;\n node.schedule = null;\n node.cleanupFn = NOOP_CLEANUP_FN;\n }\n }\n\n const run = () => {\n if (node.fn === null) {\n // trying to run a destroyed watch is noop\n return;\n }\n\n if (isInNotificationPhase()) {\n throw new Error(\n typeof ngDevMode !== 'undefined' && ngDevMode\n ? 'Schedulers cannot synchronously execute watches while scheduling.'\n : '',\n );\n }\n\n node.dirty = false;\n if (node.version > 0 && !consumerPollProducersForChange(node)) {\n return;\n }\n node.version++;\n\n const prevConsumer = consumerBeforeComputation(node);\n try {\n node.cleanupFn();\n node.cleanupFn = NOOP_CLEANUP_FN;\n node.fn(registerOnCleanup);\n } finally {\n consumerAfterComputation(node, prevConsumer);\n }\n };\n\n node.ref = {\n notify: () => consumerMarkDirty(node),\n run,\n cleanup: () => node.cleanupFn(),\n destroy: () => destroyWatchNode(node),\n [SIGNAL]: node,\n };\n\n return node.ref;\n}\n\nconst NOOP_CLEANUP_FN: WatchCleanupFn = () => {};\n\n// Note: Using an IIFE here to ensure that the spread assignment is not considered\n// a side-effect, ending up preserving `COMPUTED_NODE` and `REACTIVE_NODE`.\n// TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.\nconst WATCH_NODE: Partial<WatchNode> = /* @__PURE__ */ (() => {\n return {\n ...REACTIVE_NODE,\n consumerIsAlwaysLive: true,\n consumerAllowSignalWrites: false,\n consumerMarkedDirty: (node: WatchNode) => {\n if (node.schedule !== null) {\n node.schedule(node.ref);\n }\n },\n cleanupFn: NOOP_CLEANUP_FN,\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 {installDevToolsSignalFormatter} from './src/formatter';\n\nexport {ComputedNode, createComputed} from './src/computed';\nexport {\n ComputationFn,\n LinkedSignalNode,\n LinkedSignalGetter,\n createLinkedSignal,\n linkedSignalSetFn,\n linkedSignalUpdateFn,\n} from './src/linked_signal';\nexport {ValueEqualityFn, defaultEquals} from './src/equality';\nexport {setThrowInvalidWriteToSignalError} from './src/errors';\nexport {\n REACTIVE_NODE,\n Reactive,\n ReactiveHookFn,\n ReactiveNode,\n ReactiveNodeKind,\n SIGNAL,\n consumerAfterComputation,\n consumerBeforeComputation,\n consumerDestroy,\n consumerMarkDirty,\n consumerPollProducersForChange,\n finalizeConsumerAfterComputation,\n getActiveConsumer,\n isInNotificationPhase,\n isReactive,\n producerAccessed,\n producerIncrementEpoch,\n producerMarkClean,\n producerNotifyConsumers,\n producerUpdateValueVersion,\n producerUpdatesAllowed,\n resetConsumerBeforeComputation,\n runPostProducerCreatedFn,\n setActiveConsumer,\n setPostProducerCreatedFn,\n} from './src/graph';\nexport {\n SIGNAL_NODE,\n SignalGetter,\n SignalNode,\n createSignal,\n runPostSignalSetFn,\n setPostSignalSetFn,\n signalGetFn,\n signalSetFn,\n signalUpdateFn,\n} from './src/signal';\nexport {Watch, WatchCleanupFn, WatchCleanupRegisterFn, createWatch} from './src/watch';\nexport {setAlternateWeakRefImpl} from './src/weak_ref';\nexport {untracked} from './src/untracked';\nexport {runEffect, BASE_EFFECT_NODE, BaseEffectNode} from './src/effect';\nexport {installDevToolsSignalFormatter} from './src/formatter';\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\n// We're using a top-level access to enable signal formatting whenever the signals package is loaded.\nif (typeof ngDevMode !== 'undefined' && ngDevMode) {\n // tslint:disable-next-line: no-toplevel-property-access\n installDevToolsSignalFormatter();\n}\n"],"names":[],"mappings":"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"}
@@ -1,18 +1,18 @@
1
1
  /**
2
- * @license Angular v21.0.0-next.8
2
+ * @license Angular v21.0.0-next.9
3
3
  * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
6
6
 
7
7
  import { Observable, ReplaySubject } from 'rxjs';
8
8
  import { takeUntil } from 'rxjs/operators';
9
- import { assertInInjectionContext, inject, DestroyRef, RuntimeError, Injector, assertNotInReactiveContext, signal, PendingTasks } from './_root_effect_scheduler-chunk.mjs';
10
- import { getOutputDestroyRef, effect, untracked, computed, resource, encapsulateResourceError } from './_resource-chunk.mjs';
11
- import './_signal-chunk.mjs';
9
+ import { assertInInjectionContext, inject, DestroyRef, RuntimeError, Injector, effect, assertNotInReactiveContext, signal, PendingTasks } from './_effect-chunk2.mjs';
10
+ import { getOutputDestroyRef, untracked, computed, resource, encapsulateResourceError } from './_resource-chunk.mjs';
11
+ import './_effect-chunk.mjs';
12
12
  import './_not_found-chunk.mjs';
13
13
  import '@angular/core/primitives/signals';
14
14
  import '@angular/core/primitives/di';
15
- import './_effect-chunk.mjs';
15
+ import './_untracked-chunk.mjs';
16
16
 
17
17
  /**
18
18
  * Operator which completes the Observable when the calling context (component, directive, service,
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v21.0.0-next.8
2
+ * @license Angular v21.0.0-next.9
3
3
  * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
@@ -7,9 +7,9 @@
7
7
  import * as i0 from '@angular/core';
8
8
  import { Injectable, DeferBlockState, triggerResourceLoading, renderDeferBlockState, getDeferBlocks, DeferBlockBehavior, ApplicationRef, getDebugNode, RendererFactory2, Directive, Component, Pipe, NgModule, ReflectionCapabilities, depsTracker, isComponentDefPendingResolution, resolveComponentResources, NgModuleRef, ApplicationInitStatus, LOCALE_ID, DEFAULT_LOCALE_ID, setLocaleId, ComponentFactory, getAsyncClassMetadataFn, compileComponent, compileDirective, compilePipe, patchComponentDefWithScope, compileNgModuleDefs, clearResolutionOfComponentResourcesQueue, restoreComponentResolutionQueue, provideZonelessChangeDetectionInternal, COMPILER_OPTIONS, generateStandaloneInDeclarationsError, transitiveScopesFor, Compiler, DEFER_BLOCK_CONFIG, ANIMATIONS_DISABLED, NgModuleFactory, ModuleWithComponentFactories, resetCompiledComponents, ɵsetUnknownElementStrictMode as _setUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode as _setUnknownPropertyStrictMode, ɵgetUnknownElementStrictMode as _getUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode as _getUnknownPropertyStrictMode, inferTagNameFromDefinition, flushModuleScopingQueueAsMuchAsPossible, setAllowDuplicateNgModuleIdsForTest } from './_debug_node-chunk.mjs';
9
9
  import { Subscription } from 'rxjs';
10
- import { inject as inject$1, NgZone, EnvironmentInjector, ErrorHandler, CONTAINER_HEADER_OFFSET, InjectionToken, NoopNgZone, PendingTasksInternal, ZONELESS_ENABLED, ChangeDetectionScheduler, EffectScheduler, stringify, getInjectableDef, resolveForwardRef, NG_COMP_DEF, NG_DIR_DEF, NG_PIPE_DEF, NG_INJ_DEF, NG_MOD_DEF, ENVIRONMENT_INITIALIZER, Injector, isEnvironmentProviders, INTERNAL_APPLICATION_ERROR_HANDLER, runInInjectionContext, getComponentDef as getComponentDef$1 } from './_root_effect_scheduler-chunk.mjs';
10
+ import { inject as inject$1, NgZone, EnvironmentInjector, ErrorHandler, CONTAINER_HEADER_OFFSET, InjectionToken, NoopNgZone, PendingTasksInternal, ZONELESS_ENABLED, ChangeDetectionScheduler, EffectScheduler, stringify, getInjectableDef, resolveForwardRef, NG_COMP_DEF, NG_DIR_DEF, NG_PIPE_DEF, NG_INJ_DEF, NG_MOD_DEF, ENVIRONMENT_INITIALIZER, Injector, isEnvironmentProviders, INTERNAL_APPLICATION_ERROR_HANDLER, runInInjectionContext, getComponentDef as getComponentDef$1 } from './_effect-chunk2.mjs';
11
11
  import { ResourceLoader } from '@angular/compiler';
12
- import './_signal-chunk.mjs';
12
+ import './_effect-chunk.mjs';
13
13
  import '@angular/core/primitives/signals';
14
14
  import 'rxjs/operators';
15
15
  import './_attribute-chunk.mjs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/core",
3
- "version": "21.0.0-next.8",
3
+ "version": "21.0.0-next.9",
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": "21.0.0-next.8",
49
+ "@angular/compiler": "21.0.0-next.9",
50
50
  "rxjs": "^6.5.3 || ^7.4.0",
51
51
  "zone.js": "~0.15.0"
52
52
  },
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.8
3
+ * @license Angular v21.0.0-next.9
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,12 +8,12 @@
8
8
 
9
9
  require('@angular-devkit/core');
10
10
  require('node:path/posix');
11
- var project_paths = require('./project_paths-C6g3lqjX.cjs');
12
- var project_tsconfig_paths = require('./project_tsconfig_paths-CdhVNYMk.cjs');
11
+ var project_paths = require('./project_paths-C8H7KDJ3.cjs');
12
+ var project_tsconfig_paths = require('./project_tsconfig_paths-CiBzGSIa.cjs');
13
13
  var ts = require('typescript');
14
14
  require('os');
15
- var apply_import_manager = require('./apply_import_manager-CBLmogDD.cjs');
16
- require('./index-BnmACOsq.cjs');
15
+ var apply_import_manager = require('./apply_import_manager-CoeTX_Ob.cjs');
16
+ require('./index-Dvqnp6JS.cjs');
17
17
  require('path');
18
18
  require('node:path');
19
19
  require('@angular-devkit/schematics');
@@ -1,19 +1,19 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.8
3
+ * @license Angular v21.0.0-next.9
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
- var project_tsconfig_paths = require('./project_tsconfig_paths-CdhVNYMk.cjs');
9
+ var project_tsconfig_paths = require('./project_tsconfig_paths-CiBzGSIa.cjs');
10
10
  require('typescript');
11
11
  require('os');
12
- var apply_import_manager = require('./apply_import_manager-CBLmogDD.cjs');
13
- require('./index-BnmACOsq.cjs');
12
+ var apply_import_manager = require('./apply_import_manager-CoeTX_Ob.cjs');
13
+ require('./index-Dvqnp6JS.cjs');
14
14
  require('path');
15
15
  require('node:path');
16
- var project_paths = require('./project_paths-C6g3lqjX.cjs');
16
+ var project_paths = require('./project_paths-C8H7KDJ3.cjs');
17
17
  var imports = require('./imports-DwPXlGFl.cjs');
18
18
  require('@angular-devkit/core');
19
19
  require('node:path/posix');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.8
3
+ * @license Angular v21.0.0-next.9
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 project_tsconfig_paths = require('./project_tsconfig_paths-CdhVNYMk.cjs');
12
- var project_paths = require('./project_paths-C6g3lqjX.cjs');
11
+ var project_tsconfig_paths = require('./project_tsconfig_paths-CiBzGSIa.cjs');
12
+ var project_paths = require('./project_paths-C8H7KDJ3.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 v21.0.0-next.8
3
+ * @license Angular v21.0.0-next.9
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,14 +8,14 @@
8
8
 
9
9
  require('@angular-devkit/core');
10
10
  require('node:path/posix');
11
- var project_paths = require('./project_paths-C6g3lqjX.cjs');
11
+ var project_paths = require('./project_paths-C8H7KDJ3.cjs');
12
12
  require('os');
13
13
  var ts = require('typescript');
14
- var project_tsconfig_paths = require('./project_tsconfig_paths-CdhVNYMk.cjs');
15
- var index = require('./index-BnmACOsq.cjs');
14
+ var project_tsconfig_paths = require('./project_tsconfig_paths-CiBzGSIa.cjs');
15
+ var index = require('./index-Dvqnp6JS.cjs');
16
16
  require('path');
17
17
  require('node:path');
18
- var apply_import_manager = require('./apply_import_manager-CBLmogDD.cjs');
18
+ var apply_import_manager = require('./apply_import_manager-CoeTX_Ob.cjs');
19
19
  var property_name = require('./property_name-BBwFuqMe.cjs');
20
20
  var imports = require('./imports-DwPXlGFl.cjs');
21
21
  var symbol = require('./symbol-BObKoqes.cjs');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.8
3
+ * @license Angular v21.0.0-next.9
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,14 +8,14 @@
8
8
 
9
9
  require('@angular-devkit/core');
10
10
  require('node:path/posix');
11
- var project_paths = require('./project_paths-C6g3lqjX.cjs');
11
+ var project_paths = require('./project_paths-C8H7KDJ3.cjs');
12
12
  var ts = require('typescript');
13
13
  require('os');
14
- var project_tsconfig_paths = require('./project_tsconfig_paths-CdhVNYMk.cjs');
15
- var index = require('./index-BnmACOsq.cjs');
14
+ var project_tsconfig_paths = require('./project_tsconfig_paths-CiBzGSIa.cjs');
15
+ var index = require('./index-Dvqnp6JS.cjs');
16
16
  require('path');
17
17
  require('node:path');
18
- var apply_import_manager = require('./apply_import_manager-CBLmogDD.cjs');
18
+ var apply_import_manager = require('./apply_import_manager-CoeTX_Ob.cjs');
19
19
  require('@angular-devkit/schematics');
20
20
  require('fs');
21
21
  require('module');