UNPKG

qraft

Version:

A powerful CLI tool to qraft structured project setups from GitHub template repositories

95 lines 3.77 kB
import { DirectoryStructure, FileInfo } from './directoryScanner'; import { ManifestComparisonResult, ManifestManager } from './manifestManager'; export interface FileComparison { path: string; status: 'added' | 'deleted' | 'modified' | 'unchanged'; oldFile?: FileInfo; newFile?: FileInfo; similarity?: number; changes?: { sizeChange: number; contentChanged: boolean; extensionChanged: boolean; }; } export interface DirectoryComparison { files: FileComparison[]; summary: { added: number; deleted: number; modified: number; unchanged: number; totalOld: number; totalNew: number; }; conflicts: ConflictInfo[]; manifest?: ManifestComparison; } export interface ManifestComparison { hasLocalManifest: boolean; hasRemoteManifest: boolean; manifestComparison?: ManifestComparisonResult; manifestConflicts: ManifestConflictInfo[]; manifestSummary: { status: 'identical' | 'modified' | 'new' | 'missing' | 'corrupted'; riskLevel: 'low' | 'medium' | 'high' | 'critical'; requiresReview: boolean; }; } export interface ManifestConflictInfo extends ConflictInfo { type: 'manifest_version' | 'manifest_metadata' | 'manifest_missing' | 'manifest_corrupted' | 'file_exists' | 'directory_structure' | 'metadata_mismatch'; manifestField?: string; } export interface ConflictInfo { type: 'file_exists' | 'directory_structure' | 'metadata_mismatch' | 'manifest_version' | 'manifest_metadata' | 'manifest_missing' | 'manifest_corrupted'; severity: 'low' | 'medium' | 'high'; path: string; description: string; oldValue?: any; newValue?: any; suggestions: string[]; } export declare class ContentComparison { private manifestManager; constructor(manifestManager?: ManifestManager); compareDirectories(oldStructure: DirectoryStructure | null, newStructure: DirectoryStructure, targetDirectory?: string): Promise<DirectoryComparison>; private compareFiles; private calculateSimilarity; private levenshteinDistance; private getConflictSeverity; private generateConflictSuggestions; private generateSummary; getConflictingFiles(comparison: DirectoryComparison): FileComparison[]; getSafeFiles(comparison: DirectoryComparison): FileComparison[]; getManifestConflicts(comparison: DirectoryComparison): ManifestConflictInfo[]; hasHighRiskManifestChanges(comparison: DirectoryComparison): boolean; hasManifestConflicts(comparison: DirectoryComparison): boolean; generateSummaryText(comparison: DirectoryComparison): string; generateDetailedSummary(comparison: DirectoryComparison): string; isSafeUpdate(comparison: DirectoryComparison): boolean; getChangeStats(comparison: DirectoryComparison): { totalChanges: number; riskLevel: 'low' | 'medium' | 'high'; requiresReview: boolean; }; /** * Compare manifests for the target directory * @param targetDirectory Directory to check for local manifest * @param newStructure New directory structure (may contain manifest) * @returns Promise<ManifestComparison> Manifest comparison result */ private compareManifests; /** * Convert manifest differences to conflict info * @param manifestComparison Manifest comparison result * @returns ManifestConflictInfo[] Array of manifest conflicts */ private convertManifestDifferencesToConflicts; /** * Generate suggestions for manifest conflicts * @param diff Manifest field difference * @returns string[] Array of suggestions */ private generateManifestConflictSuggestions; } //# sourceMappingURL=contentComparison.d.ts.map