UNPKG

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
/** * 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