@re-shell/cli
Version:
Full-stack development platform uniting microservices and microfrontends. Build complete applications with .NET (ASP.NET Core Web API, Minimal API), Java (Spring Boot, Quarkus, Micronaut, Vert.x), Rust (Actix-Web, Warp, Rocket, Axum), Python (FastAPI, Dja
79 lines (78 loc) • 3.23 kB
TypeScript
import { WorkspaceDefinition } from './workspace-schema';
export interface WorkspaceConflict {
id: string;
type: ConflictType;
severity: ConflictSeverity;
description: string;
details: string;
affectedWorkspaces: string[];
location?: string;
suggestions: ConflictResolution[];
}
export type ConflictType = 'naming' | 'dependency-cycle' | 'dependency-missing' | 'port-collision' | 'path-collision' | 'version-mismatch' | 'configuration' | 'template-inheritance' | 'build-target' | 'type-mismatch';
export type ConflictSeverity = 'error' | 'warning' | 'info';
export interface ConflictResolution {
id: string;
description: string;
action: ResolutionAction;
automatic: boolean;
riskLevel: 'low' | 'medium' | 'high';
preview?: string;
}
export type ResolutionAction = 'rename-workspace' | 'update-dependency' | 'remove-dependency' | 'change-port' | 'change-path' | 'update-version' | 'merge-configuration' | 'split-workspace' | 'auto-resolve';
export interface ConflictDetectionOptions {
includeWarnings?: boolean;
checkDependencies?: boolean;
checkPorts?: boolean;
checkPaths?: boolean;
checkTypes?: boolean;
enableResolution?: boolean;
}
export interface ConflictResolutionResult {
resolved: WorkspaceConflict[];
unresolved: WorkspaceConflict[];
changes: ConflictChange[];
warnings: string[];
}
export interface ConflictChange {
type: 'workspace' | 'dependency' | 'configuration';
target: string;
property: string;
oldValue: any;
newValue: any;
reason: string;
}
export declare class WorkspaceConflictManager {
private rootPath;
private conflicts;
constructor(rootPath?: string);
detectConflicts(definition: WorkspaceDefinition, options?: ConflictDetectionOptions): Promise<WorkspaceConflict[]>;
resolveConflicts(definition: WorkspaceDefinition, conflicts: WorkspaceConflict[], autoResolve?: boolean): Promise<ConflictResolutionResult>;
previewResolution(definition: WorkspaceDefinition, conflict: WorkspaceConflict, resolutionId: string): Promise<{
success: boolean;
changes: ConflictChange[];
warnings: string[];
preview: WorkspaceDefinition;
}>;
private detectNamingConflicts;
private detectDependencyConflicts;
private detectPortConflicts;
private detectPathConflicts;
private detectTypeConflicts;
private detectConfigurationConflicts;
private generateResolutions;
private generateDefaultResolutions;
private findDependencyCycles;
private resolveConflict;
private applyResolution;
private applyWorkspaceRename;
private applyPortChange;
private applyPathChange;
private applyDependencyRemoval;
private applyAutoResolve;
private loadWorkspaceDefinition;
private saveWorkspaceDefinition;
}
export declare function createWorkspaceConflictManager(rootPath?: string): Promise<WorkspaceConflictManager>;
export declare function detectWorkspaceConflicts(workspaceFile: string, options?: ConflictDetectionOptions): Promise<WorkspaceConflict[]>;
export declare function autoResolveConflicts(workspaceFile: string, conflicts?: WorkspaceConflict[]): Promise<ConflictResolutionResult>;