supa-seed
Version:
A constraint-aware, framework-agnostic database seeding framework with deep PostgreSQL business logic discovery and MakerKit integration support
150 lines • 4.2 kB
TypeScript
/**
* Constraint Debugging and Testing Utilities for Epic 1: Universal MakerKit Core System
* Comprehensive debugging tools for constraint handling and validation
* Part of Task 1.5.5: Create constraint debugging and testing utilities
*/
import { ConstraintHandlingResult, ConstraintType } from './constraint-types';
/**
* Constraint debugging session information
*/
export interface ConstraintDebuggingSession {
sessionId: string;
startTime: Date;
tableName: string;
constraints: any[];
testData: any[];
results: ConstraintTestResult[];
summary: ConstraintDebuggingSummary;
}
/**
* Result of constraint testing
*/
export interface ConstraintTestResult {
constraintName: string;
constraintType: ConstraintType;
testDataIndex: number;
originalData: any;
result: ConstraintHandlingResult;
handlerUsed: string;
executionTime: number;
issues: ConstraintIssue[];
recommendations: string[];
}
/**
* Constraint issue identification
*/
export interface ConstraintIssue {
severity: 'critical' | 'high' | 'medium' | 'low';
type: 'handler_not_found' | 'constraint_violation' | 'performance' | 'data_quality' | 'business_logic';
message: string;
suggestedFix: string;
affectedField?: string;
relatedConstraints?: string[];
}
/**
* Summary of debugging session
*/
export interface ConstraintDebuggingSummary {
totalConstraints: number;
totalTests: number;
successfulHandling: number;
failedHandling: number;
bypassRequired: number;
averageExecutionTime: number;
issueDistribution: Record<string, number>;
handlerUsageStats: Record<string, number>;
recommendations: string[];
}
/**
* Constraint performance metrics
*/
export interface ConstraintPerformanceMetrics {
constraintName: string;
handlerName: string;
averageExecutionTime: number;
minExecutionTime: number;
maxExecutionTime: number;
totalExecutions: number;
successRate: number;
memoryUsage?: number;
}
/**
* Comprehensive Constraint Debugging Utilities
*/
export declare class ConstraintDebuggingUtilities {
private client;
private multiTableResolver;
private slugManager;
private activeSessions;
private performanceMetrics;
constructor(client: any);
/**
* Start a comprehensive constraint debugging session
*/
startDebuggingSession(tableName: string, constraints: any[], testData: any[]): Promise<string>;
/**
* Run comprehensive constraint tests
*/
runConstraintTests(sessionId: string): Promise<ConstraintDebuggingSession>;
/**
* Test a single constraint with specific data
*/
private testSingleConstraint;
/**
* Analyze constraint handling for issues
*/
private analyzeConstraintIssues;
/**
* Analyze MakerKit-specific business logic issues
*/
private analyzeMakerKitBusinessLogic;
/**
* Generate recommendations for constraint handling
*/
private generateRecommendations;
/**
* Generate MakerKit-specific recommendations
*/
private generateMakerKitRecommendations;
/**
* Update performance metrics
*/
private updatePerformanceMetrics;
/**
* Update session summary
*/
private updateSessionSummary;
/**
* Generate session-level recommendations
*/
private generateSessionRecommendations;
/**
* Generate detailed debugging report
*/
generateDebuggingReport(sessionId: string, format?: 'json' | 'markdown' | 'html'): string;
/**
* Generate markdown debugging report
*/
private generateMarkdownReport;
/**
* Generate HTML debugging report
*/
private generateHtmlReport;
/**
* Helper methods
*/
private generateSessionId;
private identifyHandlerUsed;
private inferConstraintType;
private isMakerKitConstraint;
/**
* Clean up debugging session
*/
endDebuggingSession(sessionId: string): void;
/**
* Get all active sessions
*/
getActiveSessions(): string[];
}
export default ConstraintDebuggingUtilities;
//# sourceMappingURL=constraint-debugging-utilities.d.ts.map