Skip to content

Upgrading @angular/core 16 to 17

Unknown16.2.12 → 17.3.12

Fetching 59 releases from GitHub…0 / 59
UnknownUpgrade verdict

DepDelta is still reading the notes for this range, so breaking changes can't be ruled out yet.

  • DepDelta is still reading the release notes in this range, so it can't rule out breaking changes yet.
  • This page updates as the notes come in.
Still reading release notes

DepDelta is still reading the release notes in this range. This updates as they come in.

Node.js requirement changed in 17.0.0-rc.2: ^16.14.0 || >=18.10.0 → ^18.13.0 || >=20.9.0.

Generated by DepDelta from published .d.ts files. Not mixed with prose notes.

  • removed: class ɵInitialRenderPendingTasks implements OnDestroy
  • removed: const ɵENABLED_SSR_FEATURES: InjectionToken<Set<string>>
  • removed: function ɵdetectChanges(component: {}): void
  • removed: function ɵpublishDefaultGlobalUtils(): void
  • removed: function ɵpublishGlobalUtil(name: string, fn: Function): void
  • removed: method WritableSignal.mutate(mutatorFn: (value: T) => void): void
  • removed: method ɵAfterRenderEventManager.begin(): void
  • removed: method ɵAfterRenderEventManager.end(): void
  • removed: method ɵInitialRenderPendingTasks.add(): number
  • removed: method ɵInitialRenderPendingTasks.ngOnDestroy(): void
  • removed: method ɵInitialRenderPendingTasks.remove(taskId: number): void
  • removed: property ɵInitialRenderPendingTasks.hasPendingTasks: BehaviorSubject<boolean>
  • removed: static property ɵInitialRenderPendingTasks.ɵfac: i0.ɵɵFactoryDeclaration<ɵInitialRenderPendingTasks, never>
  • removed: static property ɵInitialRenderPendingTasks.ɵprov: i0.ɵɵInjectableDeclaration<ɵInitialRenderPendingTasks>
  • changed: class ɵRuntimeError<T extends number = RuntimeErrorCode> extends Error → class ɵRuntimeError<T extends number = ɵRuntimeErrorCode> extends Error
  • changed: class ɵViewRef<T> implements EmbeddedViewRef<T>, InternalViewRef, ChangeDetectorRefInterface → class ɵViewRef<T> implements EmbeddedViewRef<T>, ChangeDetectorRefInterface
  • changed: const APP_BOOTSTRAP_LISTENER: InjectionToken<((compRef: ComponentRef<any>) => void)[]> → const APP_BOOTSTRAP_LISTENER: InjectionToken<readonly ((compRef: ComponentRef<any>) => void)[]>
  • changed: const ENVIRONMENT_INITIALIZER: InjectionToken<() => void> → const ENVIRONMENT_INITIALIZER: InjectionToken<readonly (() => void)[]>
  • changed: const PLATFORM_INITIALIZER: InjectionToken<(() => void)[]> → const PLATFORM_INITIALIZER: InjectionToken<readonly (() => void)[]>
  • changed: constructor ɵViewRef(_lView: LView, _cdRefInjectingView?: LView<unknown> | undefined) → constructor ɵViewRef(_lView: LView, _cdRefInjectingView?: LView<unknown> | undefined, notifyErrorHandler?: boolean)
  • changed: function ɵformatRuntimeError<T extends number = RuntimeErrorCode>(code: T, message: null | false | string): string → function ɵformatRuntimeError<T extends number = ɵRuntimeErrorCode>(code: T, message: null | false | string): string
  • changed: function ɵɵHostDirectivesFeature(rawHostDirectives: HostDirectiveConfig[] | (() => HostDirectiveConfig[])): (definition: ɵDirectiveDef<unknown>) => void → function ɵɵHostDirectivesFeature(rawHostDirectives: HostDirectiveConfig[] | (() => HostDirectiveConfig[])): DirectiveDefFeature
  • changed: function ɵɵInputTransformsFeature(definition: ɵDirectiveDef<unknown>): void → function ɵɵInputTransformsFeature<T>(definition: ɵDirectiveDef<T>): void
  • changed: function ɵɵadvance(delta: number): void → function ɵɵadvance(delta?: number): void
  • changed: function ɵɵcontentQuery<T>(directiveIndex: number, predicate: ProviderToken<unknown> | string[], flags: QueryFlags, read?: any): void → function ɵɵcontentQuery<T>(directiveIndex: number, predicate: ProviderToken<unknown> | string | string[], flags: QueryFlags, read?: any): void
  • changed: function ɵɵdefer(index: number, deferredDepsFn: DeferredDepsFn | null): void → function ɵɵdefer(index: number, primaryTmplIndex: number, dependencyResolverFn?: DependencyResolverFn | null, loadingTmplIndex?: number | null, placeholderTmplIndex?: number | null, errorTmplIndex?: number | null, loadingConfigIndex?: number | null, placeholderConfigIndex?: number | null, enableTimerScheduling?: typeof ɵɵdeferEnableTimerScheduling): void
  • changed: function ɵɵpipeBind1(index: number, slotOffset: number, v1: any): any → function ɵɵpipeBind1(index: number, offset: number, v1: any): any
  • changed: function ɵɵtemplate(index: number, templateFn: ComponentTemplate<any> | null, decls: number, vars: number, tagName?: string | null, attrsIndex?: number | null, localRefsIndex?: number | null, localRefExtractor?: LocalRefExtractor): void → function ɵɵtemplate(index: number, templateFn: ComponentTemplate<any> | null, decls: number, vars: number, tagName?: string | null, attrsIndex?: number | null, localRefsIndex?: number | null, localRefExtractor?: LocalRefExtractor): typeof ɵɵtemplate
  • changed: function ɵɵviewQuery<T>(predicate: ProviderToken<unknown> | string[], flags: QueryFlags, read?: any): void → function ɵɵviewQuery<T>(predicate: ProviderToken<unknown> | string | string[], flags: QueryFlags, read?: any): void
  • changed: interface EventEmitter<T> extends Subject<T> → interface EventEmitter<T> extends Subject<T>, OutputRef<T>
  • changed: property Component.styles?: string[] → property Component.styles?: string | string[]
  • changed: property ɵDirectiveDef.setInput: (<U extends T>(this: ɵDirectiveDef<U>, instance: U, value: any, publicName: string, privateName: string) => void) | null → property ɵDirectiveDef.setInput: (<U extends T>(this: ɵDirectiveDef<U>, instance: U, inputSignalNode: null | InputSignalNode<unknown, unknown>, value: any, publicName: string, privateName: string) => void) | null
  • changed: readonly property ɵComponentDef.data: { [kind: string]: any } → readonly property ɵComponentDef.data: { [kind: string]: any; animation?: any[] }
  • changed: readonly property ɵDirectiveDef.declaredInputs: { [P in keyof T]: string } → readonly property ɵDirectiveDef.declaredInputs: Record<string, string>
  • changed: readonly property ɵDirectiveDef.inputConfig: { [classPropertyName: string]: string | [string, string, InputTransformFunction?] } → readonly property ɵDirectiveDef.inputConfig: { [P in keyof T]?: string | [ɵɵInputFlags, string, string?, InputTransformFunction?] }
  • changed: readonly property ɵDirectiveDef.inputs: { [P in keyof T]: string } → readonly property ɵDirectiveDef.inputs: { [P in keyof T]?: string | [minifiedName: string, flags: ɵɵInputFlags] }
  • changed: readonly property ɵDirectiveDef.outputs: { [P in keyof T]: string } → readonly property ɵDirectiveDef.outputs: { [P in keyof T]?: string }
  • changed: type CompilerOptions = { useJit?: boolean; defaultEncapsulation?: ViewEncapsulation; providers?: StaticProvider[]; missingTranslation?: MissingTranslationStrategy; preserveWhitespace… → type CompilerOptions = { defaultEncapsulation?: ViewEncapsulation; providers?: StaticProvider[]; preserveWhitespaces?: boolean }
  • changed: type ɵɵDirectiveDeclaration<T, Selector extends string, ExportAs extends string[], InputMap extends { [key: string]: string | { alias: string | null; required: boolean } }, OutputMap extends { [key: string]: string }, QueryFields extends string[], NgContentSelectors extends never = never, IsStandalone extends boolean = false, HostDirectives = never, IsSignal extends boolean = false> = unknown → type ɵɵDirectiveDeclaration<T, Selector extends string, ExportAs extends string[], InputMap extends { [key: string]: string | { alias: string | null; required: boolean; isSignal?: boolean } }, OutputMap extends { [key: string]: string }, QueryFields extends string[], NgContentSelectors extends never = never, IsStandalone extends boolean = false, HostDirectives = never, IsSignal extends boolean = false> = unknown
  • added: abstract class ɵChangeDetectionScheduler
  • added: abstract class ɵEffectScheduler
  • added: abstract method ɵChangeDetectionScheduler.notify(source?: NotificationType): void
  • added: abstract method ɵEffectScheduler.flush(): void
  • added: abstract method ɵEffectScheduler.scheduleEffect(e: SchedulableEffect): void
  • added: call ContentChildFunction<LocatorT, ReadT>(locator: ProviderToken<LocatorT> | string, opts: { descendants?: boolean; read: ProviderToken<ReadT> }): Signal<ReadT | undefined>
  • added: call ContentChildFunction<LocatorT>(locator: ProviderToken<LocatorT> | string, opts?: { descendants?: boolean; read?: undefined }): Signal<LocatorT | undefined>
  • added: call InputFunction<T, TransformT>(initialValue: T, opts: InputOptionsWithTransform<T, TransformT>): InputSignalWithTransform<T, TransformT>
  • added: call InputFunction<T>(): InputSignal<T | undefined>
  • added: call InputFunction<T>(initialValue: T, opts?: InputOptionsWithoutTransform<T>): InputSignal<T>
  • added: call ModelFunction<T>(): ModelSignal<T | undefined>
  • added: call ModelFunction<T>(initialValue: T, opts?: ModelOptions): ModelSignal<T>
  • added: call ViewChildFunction<LocatorT, ReadT>(locator: ProviderToken<LocatorT> | string, opts: { read: ProviderToken<ReadT> }): Signal<ReadT | undefined>
  • added: call ViewChildFunction<LocatorT>(locator: ProviderToken<LocatorT> | string): Signal<LocatorT | undefined>
  • added: class HostAttributeToken
  • added: class OutputEmitterRef<T> implements OutputRef<T>
  • added: class ɵPendingTasks implements OnDestroy
  • added: const contentChild: ContentChildFunction
  • added: const enum ɵAnimationRendererType
  • added: const enum ɵRuntimeErrorCode
  • added: const input: InputFunction
  • added: const model: ModelFunction
  • added: const viewChild: ViewChildFunction
  • added: const ɵCONTAINER_HEADER_OFFSET = 10
  • added: const ɵDEFER_BLOCK_CONFIG: InjectionToken<ɵDeferBlockConfig>
  • added: const ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR: InjectionToken<ɵDeferBlockDependencyInterceptor>
  • added: const ɵIMAGE_CONFIG: InjectionToken<ɵImageConfig>
  • added: const ɵIMAGE_CONFIG_DEFAULTS: ɵImageConfig
  • added: const ɵINPUT_SIGNAL_BRAND_WRITE_TYPE: unique symbol
  • added: const ɵUSE_RUNTIME_DEPS_TRACKER_FOR_JIT = true
  • added: const ɵdepsTracker: DepsTracker
  • added: constructor HostAttributeToken(attributeName: string)
  • added: constructor OutputEmitterRef()
  • added: enum AfterRenderPhase
  • added: enum ɵDeferBlockBehavior
  • added: enum ɵDeferBlockState
  • added: enum ɵɵInputFlags
  • added: function assertNotInReactiveContext(debugFn: Function, extraContext?: string): void
  • added: function contentChildren<LocatorT, ReadT>(locator: ProviderToken<LocatorT> | string, opts: { descendants?: boolean; read: ProviderToken<ReadT> }): Signal<ReadonlyArray<ReadT>>
  • added: function contentChildren<LocatorT>(locator: ProviderToken<LocatorT> | string, opts?: { descendants?: boolean; read?: undefined }): Signal<ReadonlyArray<LocatorT>>
  • added: function inject(token: HostAttributeToken): string
  • added: function inject(token: HostAttributeToken, options: { optional: false }): string
  • added: function inject(token: HostAttributeToken, options: { optional: true }): string | null
  • added: function output<T = void>(opts?: OutputOptions): OutputEmitterRef<T>
  • added: function viewChildren<LocatorT, ReadT>(locator: ProviderToken<LocatorT> | string, opts: { read: ProviderToken<ReadT> }): Signal<ReadonlyArray<ReadT>>
  • added: function viewChildren<LocatorT>(locator: ProviderToken<LocatorT> | string): Signal<ReadonlyArray<LocatorT>>
  • added: function ɵdetectChangesInViewIfRequired(lView: LView, isFirstPass: boolean, notifyErrorHandler: boolean): void
  • added: function ɵgenerateStandaloneInDeclarationsError(type: Type<any>, location: string): string
  • added: function ɵgetAsyncClassMetadataFn(type: Type<unknown>): (() => Promise<Array<Type<unknown>>>) | null
  • added: function ɵgetDeferBlocks(lView: LView, deferBlocks: ɵDeferBlockDetails[]): void
  • added: function ɵgetEnsureDirtyViewsAreAlwaysReachable(): boolean
  • added: function ɵgetOutputDestroyRef(ref: OutputRef<unknown>): DestroyRef | undefined
  • added: function ɵinternalAfterNextRender(callback: VoidFunction, options?: InternalAfterNextRenderOptions): void
  • added: function ɵisComponentDefPendingResolution(type: Type<any>): boolean
  • added: function ɵperformanceMarkFeature(feature: string): void
  • added: function ɵprovideZonelessChangeDetection(): EnvironmentProviders
  • added: function ɵqueueStateUpdate(callback: VoidFunction, options?: { injector?: Injector }): void
  • added: function ɵreadHydrationInfo(node: RNode): ɵHydrationInfo | null
  • added: function ɵrenderDeferBlockState(newState: ɵDeferBlockState, tNode: TNode, lContainer: LContainer, skipTimerScheduling?: boolean): void
  • added: function ɵrestoreComponentResolutionQueue(queue: Map<Type<any>, Component>): void
  • added: function ɵsetClassDebugInfo(type: Type<any>, debugInfo: ClassDebugInfo): void
  • added: function ɵsetClassMetadataAsync(type: Type<any>, dependencyLoaderFn: () => Array<Promise<Type<unknown>>>, metadataSetterFn: (...types: Type<unknown>[]) => void): () => Promise<Array<Type<unknown>>>
  • added: function ɵsetEnsureDirtyViewsAreAlwaysReachable(v: boolean): void
  • added: function ɵtriggerResourceLoading(tDetails: TDeferBlockDetails, lView: LView, tNode: TNode): Promise<unknown>
  • added: function ɵtruncateMiddle(str: string, maxLength?: number): string
  • added: function ɵunwrapWritableSignal<T>(value: T | { [ɵWRITABLE_SIGNAL]: T }): T
  • added: function ɵwhenStable(applicationRef: ApplicationRef): Promise<void>
  • added: function ɵwithI18nHydration(): EnvironmentProviders
  • added: function ɵɵcomponentInstance(): unknown
  • added: function ɵɵconditional<T>(containerIndex: number, matchingTemplateIndex: number, value?: T): void
  • added: function ɵɵcontentQuerySignal<T>(directiveIndex: number, target: Signal<T>, predicate: ProviderToken<unknown> | string[], flags: QueryFlags, read?: any): void
  • added: function ɵɵdeferEnableTimerScheduling(tView: TView, tDetails: TDeferBlockDetails, placeholderConfigIndex?: number | null, loadingConfigIndex?: number | null): void
  • added: function ɵɵdeferOnHover(triggerIndex: number, walkUpTimes?: number): void
  • added: function ɵɵdeferOnIdle(): void
  • added: function ɵɵdeferOnImmediate(): void
  • added: function ɵɵdeferOnInteraction(triggerIndex: number, walkUpTimes?: number): void
  • added: function ɵɵdeferOnTimer(delay: number): void
  • added: function ɵɵdeferOnViewport(triggerIndex: number, walkUpTimes?: number): void
  • added: function ɵɵdeferPrefetchOnHover(triggerIndex: number, walkUpTimes?: number): void
  • added: function ɵɵdeferPrefetchOnIdle(): void
  • added: function ɵɵdeferPrefetchOnImmediate(): void
  • added: function ɵɵdeferPrefetchOnInteraction(triggerIndex: number, walkUpTimes?: number): void
  • added: function ɵɵdeferPrefetchOnTimer(delay: number): void
  • added: function ɵɵdeferPrefetchOnViewport(triggerIndex: number, walkUpTimes?: number): void
  • added: function ɵɵdeferPrefetchWhen(rawValue: unknown): void
  • added: function ɵɵdeferWhen(rawValue: unknown): void
  • added: function ɵɵgetComponentDepsFactory(type: ɵComponentType<any>, rawImports?: RawScopeInfoFromDecorator[]): () => DependencyTypeList
  • added: function ɵɵinject(token: HostAttributeToken): string
  • added: function ɵɵinject(token: HostAttributeToken, flags?: InjectFlags): string | null
  • added: function ɵɵinject<T>(token: ProviderToken<T> | HostAttributeToken, flags?: InjectFlags): string | null
  • added: function ɵɵqueryAdvance(indexOffset?: number): void
  • added: function ɵɵrepeater(collection: Iterable<unknown> | undefined | null): void
  • added: function ɵɵrepeaterCreate(index: number, templateFn: ComponentTemplate<unknown>, decls: number, vars: number, tagName: string | null, attrsIndex: number | null, trackByFn: TrackByFunction<unknown>, trackByUsesComponentInstance?: boolean, emptyTemplateFn?: ComponentTemplate<unknown>, emptyDecls?: number, emptyVars?: number, emptyTagName?: string | null, emptyAttrsIndex?: number | null): void
  • added: function ɵɵrepeaterTrackByIdentity<T>(_: number, value: T): T
  • added: function ɵɵrepeaterTrackByIndex(index: number): number
  • added: function ɵɵtwoWayBindingSet<T>(target: unknown, value: T): boolean
  • added: function ɵɵtwoWayListener(eventName: string, listenerFn: (e?: any) => any): typeof ɵɵtwoWayListener
  • added: function ɵɵtwoWayProperty<T>(propName: string, value: T | WritableSignal<T>, sanitizer?: SanitizerFn | null): typeof ɵɵtwoWayProperty
  • added: function ɵɵviewQuerySignal(target: Signal<unknown>, predicate: ProviderToken<unknown> | string[], flags: QueryFlags, read?: ProviderToken<unknown>): void
  • added: interface ContentChildFunction
  • added: interface InputFunction
  • added: interface InputOptions<T, TransformT>
  • added: interface InputSignal<T> extends InputSignalWithTransform<T, T>
  • added: interface InputSignalWithTransform<T, TransformT> extends Signal<T>
  • added: interface ModelFunction
  • added: interface ModelOptions
  • added: interface ModelSignal<T> extends WritableSignal<T>, OutputRef<T>
  • added: interface OutputOptions
  • added: interface OutputRef<T>
  • added: interface OutputRefSubscription
  • added: interface ViewChildFunction
  • added: interface ɵComponentDebugMetadata extends DirectiveDebugMetadata
  • added: interface ɵDeferBlockConfig
  • added: interface ɵDeferBlockDependencyInterceptor
  • added: interface ɵDeferBlockDetails
  • added: interface ɵProviderRecord
  • added: member AfterRenderPhase.EarlyRead = 0
  • added: member AfterRenderPhase.MixedReadWrite = 2
  • added: member AfterRenderPhase.Read = 3
  • added: member AfterRenderPhase.Write = 1
  • added: member ɵAnimationRendererType.Delegated = 1
  • added: member ɵAnimationRendererType.Regular = 0
  • added: member ɵDeferBlockBehavior.Manual = 0
  • added: member ɵDeferBlockBehavior.Playthrough = 1
  • added: member ɵDeferBlockState.Complete = 2
  • added: member ɵDeferBlockState.Error = 3
  • added: member ɵDeferBlockState.Loading = 1
  • added: member ɵDeferBlockState.Placeholder = 0
  • added: member ɵRuntimeErrorCode.APPLICATION_REF_ALREADY_DESTROYED = 406
  • added: member ɵRuntimeErrorCode.ASSERTION_NOT_INSIDE_REACTIVE_CONTEXT = -602
  • added: member ɵRuntimeErrorCode.ASYNC_INITIALIZERS_STILL_RUNNING = 405
  • added: member ɵRuntimeErrorCode.BOOTSTRAP_COMPONENTS_NOT_FOUND = -403
  • added: member ɵRuntimeErrorCode.COMPONENT_ID_COLLISION = -912
  • added: member ɵRuntimeErrorCode.CYCLIC_DI_DEPENDENCY = -200
  • added: member ɵRuntimeErrorCode.DEFER_LOADING_FAILED = 750
  • added: member ɵRuntimeErrorCode.DUPLICATE_DIRECTIVE = 309
  • added: member ɵRuntimeErrorCode.EXPORT_NOT_FOUND = -301
  • added: member ɵRuntimeErrorCode.EXPRESSION_CHANGED_AFTER_CHECKED = -100
  • added: member ɵRuntimeErrorCode.HOST_DIRECTIVE_COMPONENT = 310
  • added: member ɵRuntimeErrorCode.HOST_DIRECTIVE_CONFLICTING_ALIAS = 312
  • added: member ɵRuntimeErrorCode.HOST_DIRECTIVE_NOT_STANDALONE = 308
  • added: member ɵRuntimeErrorCode.HOST_DIRECTIVE_UNDEFINED_BINDING = 311
  • added: member ɵRuntimeErrorCode.HOST_DIRECTIVE_UNRESOLVABLE = 307
  • added: member ɵRuntimeErrorCode.HYDRATION_MISSING_NODE = -502
  • added: member ɵRuntimeErrorCode.HYDRATION_MISSING_SIBLINGS = -501
  • added: member ɵRuntimeErrorCode.HYDRATION_NODE_MISMATCH = -500
  • added: member ɵRuntimeErrorCode.HYDRATION_STABLE_TIMEDOUT = -506
  • added: member ɵRuntimeErrorCode.IMAGE_PERFORMANCE_WARNING = -913
  • added: member ɵRuntimeErrorCode.IMPORT_PROVIDERS_FROM_STANDALONE = 800
  • added: member ɵRuntimeErrorCode.INFINITE_CHANGE_DETECTION = 103
  • added: member ɵRuntimeErrorCode.INJECTOR_ALREADY_DESTROYED = 205
  • added: member ɵRuntimeErrorCode.INVALID_DIFFER_INPUT = 900
  • added: member ɵRuntimeErrorCode.INVALID_EVENT_BINDING = 306
  • added: member ɵRuntimeErrorCode.INVALID_FACTORY_DEPENDENCY = 202
  • added: member ɵRuntimeErrorCode.INVALID_I18N_STRUCTURE = 700
  • added: member ɵRuntimeErrorCode.INVALID_INHERITANCE = 903
  • added: member ɵRuntimeErrorCode.INVALID_INJECTION_TOKEN = 204
  • added: member ɵRuntimeErrorCode.INVALID_MULTI_PROVIDER = -209
  • added: member ɵRuntimeErrorCode.INVALID_SKIP_HYDRATION_HOST = -504
  • added: member ɵRuntimeErrorCode.MISSING_DOCUMENT = 210
  • added: member ɵRuntimeErrorCode.MISSING_GENERATED_DEF = 906
  • added: member ɵRuntimeErrorCode.MISSING_HYDRATION_ANNOTATIONS = -505
  • added: member ɵRuntimeErrorCode.MISSING_INJECTION_CONTEXT = -203
  • added: member ɵRuntimeErrorCode.MISSING_INJECTION_TOKEN = 208
  • added: member ɵRuntimeErrorCode.MISSING_LOCALE_DATA = 701
  • added: member ɵRuntimeErrorCode.MISSING_REQUIRED_INJECTABLE_IN_BOOTSTRAP = 402
  • added: member ɵRuntimeErrorCode.MISSING_SSR_CONTENT_INTEGRITY_MARKER = -507
  • added: member ɵRuntimeErrorCode.MISSING_ZONEJS = 908
  • added: member ɵRuntimeErrorCode.MULTIPLE_COMPONENTS_MATCH = -300
  • added: member ɵRuntimeErrorCode.MULTIPLE_MATCHING_PIPES = 313
  • added: member ɵRuntimeErrorCode.MULTIPLE_PLATFORMS = 400
  • added: member ɵRuntimeErrorCode.NO_SUPPORTING_DIFFER_FACTORY = 901
  • added: member ɵRuntimeErrorCode.OUTPUT_REF_DESTROYED = 953
  • added: member ɵRuntimeErrorCode.PIPE_NOT_FOUND = -302
  • added: member ɵRuntimeErrorCode.PLATFORM_ALREADY_DESTROYED = 404
  • added: member ɵRuntimeErrorCode.PLATFORM_NOT_FOUND = 401
  • added: member ɵRuntimeErrorCode.PROVIDER_IN_WRONG_CONTEXT = 207
  • added: member ɵRuntimeErrorCode.PROVIDER_NOT_FOUND = -201
  • added: member ɵRuntimeErrorCode.RECURSIVE_APPLICATION_REF_TICK = 101
  • added: member ɵRuntimeErrorCode.RENDERER_NOT_FOUND = 407
  • added: member ɵRuntimeErrorCode.REQUIRED_INPUT_NO_VALUE = -950
  • added: member ɵRuntimeErrorCode.REQUIRED_MODEL_NO_VALUE = -952
  • added: member ɵRuntimeErrorCode.REQUIRED_QUERY_NO_VALUE = -951
  • added: member ɵRuntimeErrorCode.REQUIRE_SYNC_WITHOUT_SYNC_EMIT = 601
  • added: member ɵRuntimeErrorCode.RUNTIME_DEPS_INVALID_IMPORTED_TYPE = 1000
  • added: member ɵRuntimeErrorCode.RUNTIME_DEPS_ORPHAN_COMPONENT = 1001
  • added: member ɵRuntimeErrorCode.SIGNAL_WRITE_FROM_ILLEGAL_CONTEXT = 600
  • added: member ɵRuntimeErrorCode.TEMPLATE_STRUCTURE_ERROR = 305
  • added: member ɵRuntimeErrorCode.TYPE_IS_NOT_STANDALONE = 907
  • added: member ɵRuntimeErrorCode.UNEXPECTED_ZONE_STATE = 909
  • added: member ɵRuntimeErrorCode.UNKNOWN_BINDING = 303
  • added: member ɵRuntimeErrorCode.UNKNOWN_ELEMENT = 304
  • added: member ɵRuntimeErrorCode.UNSAFE_IFRAME_ATTRS = -910
  • added: member ɵRuntimeErrorCode.UNSAFE_VALUE_IN_RESOURCE_URL = 904
  • added: member ɵRuntimeErrorCode.UNSAFE_VALUE_IN_SCRIPT = 905
  • added: member ɵRuntimeErrorCode.UNSUPPORTED_PROJECTION_DOM_NODES = -503
  • added: member ɵRuntimeErrorCode.VIEW_ALREADY_ATTACHED = 902
  • added: member ɵRuntimeErrorCode.VIEW_ALREADY_DESTROYED = 911
  • added: member ɵɵInputFlags.HasDecoratorInputTransform = 2
  • added: member ɵɵInputFlags.None = 0
  • added: member ɵɵInputFlags.SignalBased = 1
  • added: method HostAttributeToken.toString(): string
  • added: method OutputEmitterRef.emit(value: T): void
  • added: method OutputEmitterRef.subscribe(callback: (value: T) => void): OutputRefSubscription
  • added: method OutputRef.subscribe(callback: (value: T) => void): OutputRefSubscription
  • added: method OutputRefSubscription.unsubscribe(): void
  • added: method ɵAfterRenderEventManager.execute(): void
  • added: method ɵAfterRenderEventManager.executeInternalCallbacks(): void
  • added: method ɵDeferBlockDependencyInterceptor.intercept(dependencyFn: DependencyResolverFn | null): DependencyResolverFn | null
  • added: method ɵDeferBlockDependencyInterceptor.setInterceptor(interceptorFn: (current: DependencyResolverFn) => DependencyResolverFn): void
  • added: method ɵPendingTasks.add(): number
  • added: method ɵPendingTasks.ngOnDestroy(): void
  • added: method ɵPendingTasks.remove(taskId: number): void
  • added: property AfterRenderOptions.phase?: AfterRenderPhase
  • added: property Component.styleUrl?: string
  • added: property ContentChildFunction.required: { <LocatorT>(locator: ProviderToken<LocatorT> | string, opts?: { descendants?: boolean; read?: undefined }): Signal<LocatorT>; <LocatorT, ReadT>(locator: ProviderToken<LocatorT> | string, opts: { descendants?: boolean; read: ProviderToken<ReadT> }): Signal<ReadT> }
  • added: property InputFunction.required: { <T>(opts?: InputOptionsWithoutTransform<T>): InputSignal<T>; <T, TransformT>(opts: InputOptionsWithTransform<T, TransformT>): InputSignalWithTransform<T, TransformT> }
  • added: property InputOptions.alias?: string
  • added: property InputOptions.transform?: (v: TransformT) => T
  • added: property InputSignalWithTransform[SIGNAL]: InputSignalNode<T, TransformT>
  • added: property InputSignalWithTransform[ɵINPUT_SIGNAL_BRAND_READ_TYPE]: T
  • added: property InputSignalWithTransform[ɵINPUT_SIGNAL_BRAND_WRITE_TYPE]: TransformT
  • added: property ModelFunction.required: { <T>(opts?: ModelOptions): ModelSignal<T> }
  • added: property ModelOptions.alias?: string
  • added: property ModelSignal[SIGNAL]: InputSignalNode<T, T>
  • added: property ModelSignal[ɵINPUT_SIGNAL_BRAND_READ_TYPE]: T
  • added: property ModelSignal[ɵINPUT_SIGNAL_BRAND_WRITE_TYPE]: T
  • added: property OutputOptions.alias?: string
  • added: property ViewChildFunction.required: { <LocatorT>(locator: ProviderToken<LocatorT> | string): Signal<LocatorT>; <LocatorT, ReadT>(locator: ProviderToken<LocatorT> | string, opts: { read: ProviderToken<ReadT> }): Signal<ReadT> }
  • added: property WritableSignal[ɵWRITABLE_SIGNAL]: T
  • added: property ɵComponentDebugMetadata.changeDetection: ChangeDetectionStrategy
  • added: property ɵComponentDebugMetadata.encapsulation: ViewEncapsulation
  • added: property ɵDeferBlockConfig.behavior: ɵDeferBlockBehavior
  • added: property ɵDeferBlockDetails.lContainer: LContainer
  • added: property ɵDeferBlockDetails.lView: LView
  • added: property ɵDeferBlockDetails.tDetails: TDeferBlockDetails
  • added: property ɵDeferBlockDetails.tNode: TNode
  • added: property ɵDirectiveDef.debugInfo: ClassDebugInfo | null
  • added: property ɵPendingTasks.hasPendingTasks: BehaviorSubject<boolean>
  • added: property ɵProviderRecord.importPath?: Type<unknown>[]
  • added: property ɵProviderRecord.isViewProvider: boolean
  • added: property ɵProviderRecord.provider: SingleProvider
  • added: property ɵProviderRecord.token: Type<unknown> | InjectionToken<unknown>
  • added: readonly property ɵViewRef.notifyErrorHandler: boolean
  • added: static property ɵEffectScheduler.ɵprov: unknown
  • added: static property ɵPendingTasks.ɵfac: i0.ɵɵFactoryDeclaration<ɵPendingTasks, never>
  • added: static property ɵPendingTasks.ɵprov: i0.ɵɵInjectableDeclaration<ɵPendingTasks>
  • added: type EffectCleanupRegisterFn = (cleanupFn: EffectCleanupFn) => void
  • added: type InputOptionsWithTransform<T, TransformT> = Required<Pick<InputOptions<T, TransformT>, 'transform'>> & InputOptions<T, TransformT>
  • added: type InputOptionsWithoutTransform<T> = Omit<InputOptions<T, T>, 'transform'> & { transform?: undefined }
  • added: type ɵGlobalDevModeUtils = { [GLOBAL_PUBLISH_EXPANDO_KEY]: typeof globalUtilsFunctions }
  • added: type ɵHydratedNode = { [HYDRATION_INFO_KEY]?: ɵHydrationInfo }
  • added: type ɵHydrationInfo = { status: HydrationStatus.Hydrated | HydrationStatus.Skipped } | { status: HydrationStatus.Mismatched; actualNodeDetails: string | null; expectedNodeDetails: s…
  • added: type ɵImageConfig = { breakpoints?: number[]; placeholderResolution?: number; disableImageSizeWarning?: boolean; disableImageLazyLoadWarning?: boolean }
  • added: type ɵUnwrapDirectiveSignalInputs<Dir, Fields extends keyof Dir> = { [P in Fields]: ɵUnwrapInputSignalWriteType<Dir[P]> }
  • added: type ɵWritable<T> = { -readonly [K in keyof T]: T[K] }
  • added: const REACTIVE_NODE: ReactiveNode
  • added: const SIGNAL: unique symbol
  • added: const SIGNAL_NODE: SignalNode<unknown>
  • added: function consumerAfterComputation(node: ReactiveNode | null, prevConsumer: ReactiveNode | null): void
  • added: function consumerBeforeComputation(node: ReactiveNode | null): ReactiveNode | null
  • added: function consumerDestroy(node: ReactiveNode): void
  • added: function consumerMarkDirty(node: ReactiveNode): void
  • added: function consumerPollProducersForChange(node: ReactiveNode): boolean
  • added: function createComputed<T>(computation: () => T): ComputedGetter<T>
  • added: function createSignal<T>(initialValue: T): SignalGetter<T>
  • added: function createWatch(fn: (onCleanup: WatchCleanupRegisterFn) => void, schedule: (watch: Watch) => void, allowSignalWrites: boolean): Watch
  • added: function defaultEquals<T>(a: T, b: T): boolean
  • added: function getActiveConsumer(): ReactiveNode | null
  • added: function isInNotificationPhase(): boolean
  • added: function isReactive(value: unknown): value is Reactive
  • added: function producerAccessed(node: ReactiveNode): void
  • added: function producerNotifyConsumers(node: ReactiveNode): void
  • added: function producerUpdateValueVersion(node: ReactiveNode): void
  • added: function producerUpdatesAllowed(): boolean
  • added: function setActiveConsumer(consumer: ReactiveNode | null): ReactiveNode | null
  • added: function setAlternateWeakRefImpl(impl: unknown): void
  • added: function setPostSignalSetFn(fn: (() => void) | null): (() => void) | null
  • added: function setThrowInvalidWriteToSignalError(fn: () => never): void
  • added: function signalSetFn<T>(node: SignalNode<T>, newValue: T): void
  • added: function signalUpdateFn<T>(node: SignalNode<T>, updater: (value: T) => T): void
  • added: interface ComputedNode<T> extends ReactiveNode
  • added: interface Reactive
  • added: interface ReactiveNode
  • added: interface SignalGetter<T> extends SignalBaseGetter<T>
  • added: interface SignalNode<T> extends ReactiveNode
  • added: interface Watch
  • added: method ReactiveNode.consumerMarkedDirty(node: unknown): void
  • added: method ReactiveNode.consumerOnSignalRead(node: unknown): void
  • added: method ReactiveNode.producerMustRecompute(node: unknown): boolean
  • added: method ReactiveNode.producerRecomputeValue(node: unknown): void
  • added: method Watch.cleanup(): void
  • added: method Watch.destroy(): void
  • added: method Watch.notify(): void
  • added: method Watch.run(): void
  • added: property ComputedNode.computation: () => T
  • added: property ComputedNode.equal: ValueEqualityFn<T>
  • added: property ComputedNode.error: unknown
  • added: property ComputedNode.value: T
  • added: property ReactiveNode.consumerAllowSignalWrites: boolean
  • added: property ReactiveNode.dirty: boolean
  • added: property ReactiveNode.lastCleanEpoch: Version
  • added: property ReactiveNode.liveConsumerIndexOfThis: number[] | undefined
  • added: property ReactiveNode.liveConsumerNode: ReactiveNode[] | undefined
  • added: property ReactiveNode.nextProducerIndex: number
  • added: property ReactiveNode.producerIndexOfThis: number[] | undefined
  • added: property ReactiveNode.producerLastReadVersion: Version[] | undefined
  • added: property ReactiveNode.producerNode: ReactiveNode[] | undefined
  • added: property ReactiveNode.version: Version
  • added: property Reactive[SIGNAL]: ReactiveNode
  • added: property SignalNode.equal: ValueEqualityFn<T>
  • added: property SignalNode.value: T
  • added: property Watch[SIGNAL]: WatchNode
  • added: readonly property ReactiveNode.consumerIsAlwaysLive: boolean
  • added: readonly property SignalGetter[SIGNAL]: SignalNode<T>
  • added: type ValueEqualityFn<T> = (a: T, b: T) => boolean
  • added: type WatchCleanupFn = () => void
  • added: type WatchCleanupRegisterFn = (cleanupFn: WatchCleanupFn) => void
  • changed: function toSignal<T, U extends T | null | undefined>(source: Observable<T> | Subscribable<T>, options: ToSignalOptions<U> & { initialValue: U; requireSync?: false }): Signal<T | U> → function toSignal<T, const U extends T>(source: Observable<T> | Subscribable<T>, options: ToSignalOptions & { initialValue: U; requireSync?: false }): Signal<T | U>
  • changed: function toSignal<T>(source: Observable<T> | Subscribable<T>, options: ToSignalOptions<undefined> & { requireSync: true }): Signal<T> → function toSignal<T>(source: Observable<T> | Subscribable<T>, options: ToSignalOptions & { initialValue?: null; requireSync?: false }): Signal<T | null>
  • changed: function toSignal<T>(source: Observable<T> | Subscribable<T>, options?: ToSignalOptions<undefined> & { requireSync?: false }): Signal<T | undefined> → function toSignal<T>(source: Observable<T> | Subscribable<T>, options: ToSignalOptions & { initialValue?: undefined; requireSync: true }): Signal<T>
  • changed: interface ToSignalOptions<T> → interface ToSignalOptions
  • changed: property ToSignalOptions.initialValue?: T → property ToSignalOptions.initialValue?: unknown
  • added: function outputFromObservable<T>(observable: Observable<T>, opts?: OutputOptions): OutputRef<T>
  • added: function outputToObservable<T>(ref: OutputRef<T>): Observable<T>
  • added: function toSignal<T>(source: Observable<T> | Subscribable<T>, options: ToSignalOptions & { initialValue?: undefined; requireSync?: false }): Signal<T | undefined>
  • added: property ToSignalOptions.rejectErrors?: boolean
  • changed: class ComponentFixture<T> → abstract class ComponentFixture<T>
  • changed: constructor ComponentFixture(componentRef: ComponentRef<T>, ngZone: NgZone | null, _autoDetect: boolean) → constructor ComponentFixture(componentRef: ComponentRef<T>)
  • changed: method ComponentFixture.autoDetectChanges(autoDetect?: boolean): void → abstract method ComponentFixture.autoDetectChanges(autoDetect?: boolean): void
  • changed: method ComponentFixture.detectChanges(checkNoChanges?: boolean): void → abstract method ComponentFixture.detectChanges(checkNoChanges?: boolean): void
  • changed: method ComponentFixture.isStable(): boolean → abstract method ComponentFixture.isStable(): boolean
  • changed: method ComponentFixture.whenStable(): Promise<any> → abstract method ComponentFixture.whenStable(): Promise<any>
  • added: class DeferBlockFixture
  • added: constructor DeferBlockFixture(block: ɵDeferBlockDetails, componentFixture: ComponentFixture<unknown>)
  • added: export { DeferBlockBehavior }
  • added: export { DeferBlockState }
  • added: method ComponentFixture.getDeferBlocks(): Promise<DeferBlockFixture[]>
  • added: method DeferBlockFixture.getDeferBlocks(): Promise<DeferBlockFixture[]>
  • added: method DeferBlockFixture.render(state: DeferBlockState): Promise<void>
  • added: method TestBed.flushEffects(): void
  • added: property TestModuleMetadata.deferBlockBehavior?: DeferBlockBehavior