ng-upgrade-orchestrator
Version:
Enterprise-grade Angular Multi-Version Upgrade Orchestrator with automatic npm installation, comprehensive dependency management, and seamless integration of all 9 official Angular migrations. Safely migrate Angular applications across multiple major vers
105 lines • 3.25 kB
TypeScript
import { ProgressReporter } from './ProgressReporter';
export interface MergeOptions {
preserveUserCode: boolean;
preserveComments: boolean;
preferUserConfiguration: boolean;
createBackups: boolean;
mergeStrategy: 'conservative' | 'aggressive' | 'interactive';
conflictResolution: 'user' | 'migration' | 'merge' | 'ask';
}
export interface MergeResult {
success: boolean;
conflicts: MergeConflict[];
warnings: string[];
merged: boolean;
backupPath?: string;
}
export interface MergeConflict {
file: string;
type: 'configuration' | 'code' | 'template' | 'style';
section: string;
userValue: any;
migrationValue: any;
resolution?: 'user' | 'migration' | 'merged';
mergedValue?: any;
}
/**
* Intelligent merge engine that combines ts-deepmerge for configurations
* and custom logic for TypeScript code merging
*/
export declare class IntelligentMergeEngine {
private project;
private progressReporter?;
constructor(projectPath: string, progressReporter?: ProgressReporter);
/**
* Merge package.json configurations intelligently
*/
mergePackageJson(packageJsonPath: string, migrationUpdates: any, options?: MergeOptions): Promise<MergeResult>;
/**
* Merge angular.json configurations
*/
mergeAngularJson(angularJsonPath: string, migrationUpdates: any, options?: MergeOptions): Promise<MergeResult>;
/**
* Merge TypeScript configuration files (tsconfig.json)
*/
mergeTsConfig(tsConfigPath: string, migrationUpdates: any, options?: MergeOptions): Promise<MergeResult>;
/**
* Merge TypeScript source files with AST-based merging
*/
mergeTypeScriptFile(filePath: string, migrationChanges: any, options?: MergeOptions): Promise<MergeResult>;
/**
* Merge template files (.html)
*/
mergeTemplateFile(templatePath: string, migrationChanges: any, options?: MergeOptions): Promise<MergeResult>;
/**
* Custom dependency merging logic
*/
private mergeDependencies;
/**
* Merge npm scripts intelligently
*/
private mergeScripts;
/**
* Merge Angular projects configuration
*/
private mergeProjects;
/**
* Merge compiler options with special handling
*/
private mergeCompilerOptions;
/**
* Merge imports in TypeScript files
*/
private mergeImports;
/**
* Merge decorators on classes
*/
private mergeDecorators;
/**
* Merge class members (properties and methods)
*/
private mergeClassMembers;
/**
* Merge providers and dependency injection configurations
*/
private mergeProviders;
/**
* Merge control flow syntax in templates
*/
private mergeControlFlow;
/**
* Merge directive changes in templates
*/
private mergeDirectives;
private createBackup;
private isCriticalAngularDependency;
private isCriticalScript;
private isStrictOption;
private parseDecoratorArgument;
private mergeProviderArray;
private convertToNewControlFlow;
private hasCustomDirectiveUsage;
private extractDirectiveUsage;
private getDefaultOptions;
}
//# sourceMappingURL=IntelligentMergeEngine.d.ts.map