semantic-ds-toolkit
Version:
Performance-first semantic layer for modern data stacks - Stable Column Anchors & intelligent inference
58 lines • 1.84 kB
TypeScript
export interface FileChange {
filename: string;
status: 'added' | 'modified' | 'removed' | 'renamed' | 'copied' | 'changed' | 'unchanged';
additions: number;
deletions: number;
changes: number;
patch?: string;
previous_filename?: string;
}
export interface SchemaChange {
type: 'column_added' | 'column_removed' | 'column_renamed' | 'type_changed' | 'constraint_changed';
table: string;
column: string;
before?: any;
after?: any;
confidence: number;
}
export interface SemanticFileChange {
file: string;
action: 'created' | 'updated' | 'deleted';
mappings_added: number;
mappings_removed: number;
mappings_modified: number;
}
export interface PRAnalysisResult {
prNumber?: number;
hasSemanticChanges: boolean;
schemaChanges: SchemaChange[];
semanticFileChanges: SemanticFileChange[];
dataFileChanges: FileChange[];
processingTime?: number;
riskLevel: 'low' | 'medium' | 'high';
suggestedActions: string[];
}
export declare class PRAnalyzer {
private readonly SCHEMA_FILE_PATTERNS;
private readonly DATA_FILE_PATTERNS;
private readonly SEMANTIC_FILE_PATTERNS;
analyzePR(prData: {
pr: any;
diff: string;
files: FileChange[];
}): Promise<PRAnalysisResult>;
private analyzeSchemaChanges;
private extractSQLSchemaChanges;
private extractPythonSchemaChanges;
private analyzeSemanticFileChanges;
private analyzeMappingChanges;
private analyzeDataFileChanges;
private extractTableName;
private extractPythonTableName;
private calculateRiskLevel;
private generateSuggestedActions;
isSemanticFile(filename: string): boolean;
isSchemaFile(filename: string): boolean;
isDataFile(filename: string): boolean;
}
//# sourceMappingURL=pr-analyzer.d.ts.map