Upgrading @angular/core 14 to 15
Unknown14.3.0 → 15.2.10
Fetching 45 releases from GitHub…0 / 45
UnknownUpgrade verdict
DepDelta is still reading the notes for this range, so breaking changes can't be ruled out yet.
In plain terms
- 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.
Must act 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 15.0.0-next.6: ^14.15.0 || >=16.10.0 → ^14.20.0 || ^16.13.0 || >=18.10.0.
API changes
Generated by DepDelta from published .d.ts files. Not mixed with prose notes.
- removed:
const ɵivyEnabled = true - removed:
const ɵɵdefineDirective: <T>(directiveDefinition: { type: Type<T>; selectors?: ɵCssSelectorList | undefined; inputs?: { [P in keyof T]?: string | [string, string] | undefined } | undef… - removed:
enum ɵChangeDetectorStatus - removed:
function ɵisDefaultChangeDetectionStrategy(changeDetectionStrategy: ChangeDetectionStrategy): boolean - removed:
function ɵisListLikeIterable(obj: any): boolean - removed:
function ɵisStandalone<T>(type: Type<T>): boolean - removed:
interface ImportedNgModuleProviders - removed:
member ɵChangeDetectorStatus.CheckAlways = 2 - removed:
member ɵChangeDetectorStatus.CheckOnce = 0 - removed:
member ɵChangeDetectorStatus.Checked = 1 - removed:
member ɵChangeDetectorStatus.Destroyed = 5 - removed:
member ɵChangeDetectorStatus.Detached = 3 - removed:
member ɵChangeDetectorStatus.Errored = 4 - removed:
property ImportedNgModuleProviders.ɵproviders: Provider[] - changed:
class ɵViewRef<T> implements EmbeddedViewRef<T>, InternalViewRef, viewEngine_ChangeDetectorRef_interface → class ɵViewRef<T> implements EmbeddedViewRef<T>, InternalViewRef, ChangeDetectorRefInterface - changed:
function createEnvironmentInjector(providers: Array<Provider | ImportedNgModuleProviders>, parent: EnvironmentInjector, debugName?: string | null): EnvironmentInjector → function createEnvironmentInjector(providers: Array<Provider | EnvironmentProviders>, parent: EnvironmentInjector, debugName?: string | null): EnvironmentInjector - changed:
function importProvidersFrom(...sources: ImportProvidersSource[]): ImportedNgModuleProviders → function importProvidersFrom(...sources: ImportProvidersSource[]): EnvironmentProviders - changed:
function ɵinternalCreateApplication(config: { rootComponent?: Type<unknown>; appProviders?: Array<Provider | ImportedNgModuleProviders>; platformProviders?: Provider[] }): Promise<ApplicationRef> → function ɵinternalCreateApplication(config: { rootComponent?: Type<unknown>; appProviders?: Array<Provider | EnvironmentProviders>; platformProviders?: Provider[] }): Promise<ApplicationRef> - changed:
function ɵɵdefineComponent<T>(componentDefinition: { type: Type<T>; selectors?: ɵCssSelectorList; decls: number; vars: number; inputs?: { [P in keyof T]?: string | [string, string] }; outputs?: { [P in keyof T]?: string }; hostBindings?: HostBindingsFunction<T>; hostVars?: number; hostAttrs?: TAttributes; contentQueries?: ContentQueriesFunction<T>; exportAs?: string[]; template: ComponentTemplate… → function ɵɵdefineComponent<T>(componentDefinition: ComponentDefinition<T>): Mutable<ɵComponentDef<any>, keyof ɵComponentDef<any>> - changed:
property Component.imports?: (Type<any> | any[])[] → property Component.imports?: (Type<any> | ReadonlyArray<any>)[] - changed:
property ModuleWithProviders.providers?: Provider[] → property ModuleWithProviders.providers?: Array<Provider | EnvironmentProviders> - changed:
property NgModule.providers?: Provider[] → property NgModule.providers?: Array<Provider | EnvironmentProviders> - changed:
property ɵɵInjectorDef.providers: (Type<any> | ValueProvider | ExistingProvider | FactoryProvider | ConstructorProvider | StaticClassProvider | ClassProvider | any[])[] → property ɵɵInjectorDef.providers: (Type<any> | ValueProvider | ExistingProvider | FactoryProvider | ConstructorProvider | StaticClassProvider | ClassProvider | EnvironmentProviders | any[])[] - changed:
type ɵɵComponentDeclaration<T, Selector extends String, ExportAs extends string[], InputMap extends { [key: string]: string }, OutputMap extends { [key: string]: string }, QueryFields extends string[], NgContentSelectors extends string[], IsStandalone extends boolean = false> = unknown → type ɵɵComponentDeclaration<T, Selector extends String, ExportAs extends string[], InputMap extends { [key: string]: string }, OutputMap extends { [key: string]: string }, QueryFields extends string[], NgContentSelectors extends string[], IsStandalone extends boolean = false, HostDirectives = never> = unknown - changed:
type ɵɵDirectiveDeclaration<T, Selector extends string, ExportAs extends string[], InputMap extends { [key: string]: string }, OutputMap extends { [key: string]: string }, QueryFields extends string[], NgContentSelectors extends never = never, IsStandalone extends boolean = false> = unknown → type ɵɵDirectiveDeclaration<T, Selector extends string, ExportAs extends string[], InputMap extends { [key: string]: string }, OutputMap extends { [key: string]: string }, QueryFields extends string[], NgContentSelectors extends never = never, IsStandalone extends boolean = false, HostDirectives = never> = unknown - added:
abstract method EnvironmentInjector.get<T>(token: ProviderToken<T>, notFoundValue: null | undefined, options: InjectOptions): T | null - added:
abstract method EnvironmentInjector.get<T>(token: ProviderToken<T>, notFoundValue: undefined, options: InjectOptions & { optional?: false }): T - added:
abstract method EnvironmentInjector.get<T>(token: ProviderToken<T>, notFoundValue?: T, options?: InjectOptions): T - added:
abstract method Injector.get<T>(token: ProviderToken<T>, notFoundValue: null | undefined, options: InjectOptions): T | null - added:
abstract method Injector.get<T>(token: ProviderToken<T>, notFoundValue: undefined, options: InjectOptions & { optional?: false }): T - added:
abstract method Injector.get<T>(token: ProviderToken<T>, notFoundValue?: T, options?: InjectOptions | InjectFlags): T - added:
const ɵXSS_SECURITY_URL = 'https://g.co/ng/security#xss' - added:
function isStandalone(type: Type<unknown>): boolean - added:
function makeEnvironmentProviders(providers: (Provider | EnvironmentProviders)[]): EnvironmentProviders - added:
function ɵconvertToBitFlags(flags: InjectOptions | InjectFlags | undefined): InjectFlags | undefined - added:
function ɵisEnvironmentProviders(value: Provider | EnvironmentProviders | ɵInternalEnvironmentProviders): value is ɵInternalEnvironmentProviders - added:
function ɵisNgModule<T>(value: Type<T>): value is Type<T> & { ɵmod: ɵNgModuleDef<T> } - added:
function ɵɵHostDirectivesFeature(rawHostDirectives: HostDirectiveConfig[] | (() => HostDirectiveConfig[])): (definition: ɵDirectiveDef<unknown>) => void - added:
function ɵɵdefineDirective<T>(directiveDefinition: DirectiveDefinition<T>): Mutable<ɵDirectiveDef<any>, keyof ɵDirectiveDef<any>> - added:
interface ɵInternalEnvironmentProviders extends EnvironmentProviders - added:
property Directive.hostDirectives?: (Type<unknown> | { directive: Type<unknown>; inputs?: string[]; outputs?: string[] })[] - added:
property ɵDirectiveDef.findHostDirectiveDefs: ((currentDef: ɵDirectiveDef<unknown>, matchedDefs: ɵDirectiveDef<unknown>[], hostDirectiveDefs: HostDirectiveDefs) => void) | null - added:
property ɵDirectiveDef.hostDirectives: HostDirectiveDef[] | null - added:
property ɵInternalEnvironmentProviders.ɵfromNgModule?: true - added:
property ɵInternalEnvironmentProviders.ɵproviders: (Provider | EnvironmentProviders)[] - added:
type EnvironmentProviders = { ɵbrand: 'EnvironmentProviders' } - added:
type ImportedNgModuleProviders = EnvironmentProviders
- removed:
default function (): Rule
- removed:
function migrateEntryComponentsUsages(typeChecker: ts.TypeChecker, printer: ts.Printer, sourceFile: ts.SourceFile): { start: number; length: number; end: number; replacement: string }[]
- removed:
default function (): Rule
- removed:
class PathMatchTypeTransform - removed:
constructor PathMatchTypeTransform(getUpdateRecorder: (sf: ts.SourceFile) => UpdateRecorder) - removed:
method PathMatchTypeTransform.migrate(sourceFiles: ts.SourceFile[]): void - removed:
method PathMatchTypeTransform.recordChanges(): void
- removed:
interface UpdateRecorder extends ImportManagerUpdateRecorder - removed:
method UpdateRecorder.commitUpdate(): void - removed:
method UpdateRecorder.updateNode(oldNode: ts.VariableDeclaration, newNode: ts.VariableDeclaration, sourceFile: ts.SourceFile): void
- removed:
function findExpressionsToMigrate(sourceFile: ts.SourceFile, importManager: ImportManager): Map<ts.VariableDeclaration, ts.VariableDeclaration>
- removed:
default function (): Rule
- removed:
const classes: Set<string> - removed:
const formControl = 'FormControl' - removed:
const forms = '@angular/forms' - removed:
const untypedPrefix = 'Untyped' - removed:
function migrateFile(sourceFile: ts.SourceFile, typeChecker: ts.TypeChecker, rewrite: rewriteFn): void - removed:
interface MigratableNode - removed:
property MigratableNode.importName: string - removed:
property MigratableNode.node: ts.Node - removed:
type rewriteFn = (startPos: number, origLength: number, text: string) => void
- removed:
class ImportManager - removed:
constructor ImportManager(getUpdateRecorder: (sf: ts.SourceFile) => ImportManagerUpdateRecorder, printer: ts.Printer) - removed:
interface ImportManagerUpdateRecorder - removed:
method ImportManager.addImportToSourceFile(sourceFile: ts.SourceFile, symbolName: string | null, moduleName: string, typeImport?: boolean): ts.Expression - removed:
method ImportManager.recordChanges(): void - removed:
method ImportManagerUpdateRecorder.addNewImport(start: number, importText: string): void - removed:
method ImportManagerUpdateRecorder.updateExistingImport(namedBindings: ts.NamedImports, newNamedBindings: string): void
- removed:
function computeLineStartsMap(text: string): number[] - removed:
function getLineAndCharacterFromPosition(lineStartsMap: number[], position: number): { character: number; line: number }
- removed:
function loadCompilerCliMigrationsModule(): Promise<typeof import('@angular/compiler-cli/private/migrations')> - removed:
function loadEsmModule<T>(modulePath: string | URL): Promise<T>
- removed:
class NgComponentTemplateVisitor - removed:
constructor NgComponentTemplateVisitor(typeChecker: ts.TypeChecker, _basePath: string, _tree: Tree) - removed:
interface ResolvedTemplate - removed:
method NgComponentTemplateVisitor.visitNode(node: ts.Node): void - removed:
property NgComponentTemplateVisitor.resolvedTemplates: ResolvedTemplate[] - removed:
property NgComponentTemplateVisitor.typeChecker: ts.TypeChecker - removed:
property ResolvedTemplate.container: ts.ClassDeclaration - removed:
property ResolvedTemplate.content: string - removed:
property ResolvedTemplate.filePath: string - removed:
property ResolvedTemplate.getCharacterAndLineOfPosition: (pos: number) => { character: number; line: number } - removed:
property ResolvedTemplate.inline: boolean - removed:
property ResolvedTemplate.start: number
- removed:
function getAngularDecorators(typeChecker: ts.TypeChecker, decorators: ReadonlyArray<ts.Decorator>): NgDecorator[] - removed:
interface NgDecorator - removed:
property NgDecorator.importNode: ts.ImportDeclaration - removed:
property NgDecorator.moduleName: string - removed:
property NgDecorator.name: string - removed:
property NgDecorator.node: CallExpressionDecorator - removed:
type CallExpressionDecorator = ts.Decorator & { expression: ts.CallExpression }
- removed:
function parseHtmlGracefully(htmlContent: string, filePath: string, compilerModule: typeof import('@angular/compiler')): TmplAstNode[] | null
- removed:
function getProjectTsConfigPaths(tree: Tree): Promise<{ buildPaths: string[]; testPaths: string[] }>
- removed:
class TemplateAstVisitor implements TmplAstRecursiveVisitor - removed:
constructor TemplateAstVisitor(compilerModule: typeof import('@angular/compiler')) - removed:
method TemplateAstVisitor.visitAll(nodes: Iterable<TmplAstNode>): void - removed:
method TemplateAstVisitor.visitBoundAttribute(attribute: TmplAstBoundAttribute): void - removed:
method TemplateAstVisitor.visitBoundEvent(attribute: TmplAstBoundEvent): void - removed:
method TemplateAstVisitor.visitBoundText(text: TmplAstBoundText): void - removed:
method TemplateAstVisitor.visitContent(content: TmplAstContent): void - removed:
method TemplateAstVisitor.visitElement(element: TmplAstElement): void - removed:
method TemplateAstVisitor.visitIcu(icu: TmplAstIcu): void - removed:
method TemplateAstVisitor.visitReference(reference: TmplAstReference): void - removed:
method TemplateAstVisitor.visitTemplate(template: TmplAstTemplate): void - removed:
method TemplateAstVisitor.visitText(text: TmplAstText): void - removed:
method TemplateAstVisitor.visitTextAttribute(attribute: TmplAstTextAttribute): void - removed:
method TemplateAstVisitor.visitVariable(variable: TmplAstVariable): void - removed:
protected readonly property TemplateAstVisitor.compilerModule: typeof import('@angular/compiler')
- removed:
function findParentClassDeclaration(node: ts.Node): ts.ClassDeclaration | null - removed:
function getBaseTypeIdentifiers(node: ts.ClassDeclaration): ts.Identifier[] | null - removed:
function hasExplicitConstructor(node: ts.ClassDeclaration): boolean
- removed:
function canMigrateFile(basePath: string, sourceFile: ts.SourceFile, program: ts.Program): boolean - removed:
function createMigrationCompilerHost(tree: Tree, options: ts.CompilerOptions, basePath: string, fakeRead?: FakeReadFileFn): ts.CompilerHost - removed:
function createMigrationProgram(tree: Tree, tsconfigPath: string, basePath: string, fakeFileRead?: FakeReadFileFn, additionalFiles?: string[]): { parsed: ts.ParsedCommandLine; host: ts.CompilerHost; program: ts.Program } - removed:
type FakeReadFileFn = (fileName: string) => string | undefined
- removed:
function getCallDecoratorImport(typeChecker: ts.TypeChecker, decorator: ts.Decorator): Import | null
- removed:
function findBaseClassDeclarations(node: ts.ClassDeclaration, typeChecker: ts.TypeChecker): { identifier: ts.Identifier; node: ts.ClassDeclaration }[]
- removed:
function isFunctionLikeDeclaration(node: ts.Node): node is ts.FunctionLikeDeclaration - removed:
function unwrapExpression(node: ts.Expression | ts.ParenthesizedExpression): ts.Expression
- removed:
function findImportSpecifier(nodes: ts.NodeArray<ts.ImportSpecifier>, specifierName: string): ts.ImportSpecifier | undefined - removed:
function getImportOfIdentifier(typeChecker: ts.TypeChecker, node: ts.Identifier): Import | null - removed:
function getImportSpecifier(sourceFile: ts.SourceFile, moduleName: string, specifierName: string): ts.ImportSpecifier | null - removed:
function replaceImport(node: ts.NamedImports, existingImport: string, newImportName: string): ts.NamedImports - removed:
type Import = { name: string; importModule: string; node: ts.ImportDeclaration }
- removed:
function closestNode<T extends ts.Node>(node: ts.Node, kind: ts.SyntaxKind): T | null - removed:
function hasModifier(node: ts.Node, modifierKind: ts.SyntaxKind): boolean - removed:
function isNullCheck(node: ts.Node): boolean - removed:
function isSafeAccess(node: ts.Node): boolean
- removed:
function parseTsconfigFile(tsconfigPath: string, basePath: string): ts.ParsedCommandLine
- removed:
function getPropertyNameText(node: ts.PropertyName): string | null - removed:
function hasPropertyNameText(node: ts.PropertyName): node is PropertyNameWithText
- removed:
function getValueSymbolOfDeclaration(node: ts.Node, typeChecker: ts.TypeChecker): ts.Symbol | undefined - removed:
function hasOneOfTypes(typeChecker: ts.TypeChecker, node: ts.Node, types: string[]): boolean - removed:
function isNullableType(typeChecker: ts.TypeChecker, node: ts.Node): boolean - removed:
function isReferenceToImport(typeChecker: ts.TypeChecker, node: ts.Node, importSpecifier: ts.ImportSpecifier): boolean
- changed:
method TestBed.overrideProvider(token: any, provider: { useFactory: Function; deps: any[] }): TestBed → method TestBed.overrideProvider(token: any, provider: { useFactory: Function; deps: any[]; multi?: boolean }): TestBed - changed:
method TestBed.overrideProvider(token: any, provider: { useFactory?: Function; useValue?: any; deps?: any[] }): TestBed → method TestBed.overrideProvider(token: any, provider: { useFactory?: Function; useValue?: any; deps?: any[]; multi?: boolean }): TestBed - changed:
method TestBed.overrideProvider(token: any, provider: { useValue: any }): TestBed → method TestBed.overrideProvider(token: any, provider: { useValue: any; multi?: boolean }): TestBed - added:
method TestBed.inject<T>(token: ProviderToken<T>, notFoundValue: null | undefined, options: InjectOptions): T | null - added:
method TestBed.inject<T>(token: ProviderToken<T>, notFoundValue: undefined, options: InjectOptions & { optional?: false }): T - added:
method TestBed.inject<T>(token: ProviderToken<T>, notFoundValue?: T, options?: InjectOptions): T - added:
method TestBed.runInInjectionContext<T>(fn: () => T): T