UNPKG

supa-seed

Version:

A constraint-aware, framework-agnostic database seeding framework with deep PostgreSQL business logic discovery and MakerKit integration support

136 lines 5.03 kB
/** * v2.2.0 Configuration Migrator * Upgrades v2.1.0 schema-first configurations to v2.2.0 constraint-aware architecture * Part of supa-seed v2.2.0 constraint-aware architecture */ import type { createClient } from '@supabase/supabase-js'; import { type ModernConfig, type MigrationResult } from './config-migrator'; import { type ConstraintMetadata } from '../features/analysis/constraint-discovery-engine'; import { type WorkflowGenerationOptions } from '../features/generation/workflow-generator'; import { type WorkflowConfiguration } from '../features/analysis/constraint-aware-executor'; type SupabaseClient = ReturnType<typeof createClient>; export interface V2_2_0_Config extends Omit<ModernConfig, 'version'> { version: '2.2.0'; strategy: 'constraint-aware' | 'schema-first' | 'legacy'; seeding: ModernConfig['seeding'] & { enableDeepConstraintDiscovery: boolean; enableBusinessLogicParsing: boolean; enableWorkflowGeneration: boolean; }; schema: ModernConfig['schema'] & { constraints: ModernConfig['schema']['constraints'] & { enableDeepDiscovery: boolean; parseTriggerFunctions: boolean; buildDependencyGraph: boolean; preValidateOperations: boolean; cacheConstraintMetadata?: boolean; constraintDiscoveryTimeout?: number; }; }; execution: ModernConfig['execution'] & { constraintValidationStrategy: 'pre_execution' | 'post_execution' | 'both'; errorHandlingStrategy: 'fail_fast' | 'graceful_degradation' | 'best_effort'; autoFixStrategy: 'aggressive' | 'conservative' | 'disabled'; workflowExecutionMode: 'constraint_aware' | 'schema_first' | 'legacy'; enableStepValidation?: boolean; enableAutoRecovery?: boolean; }; workflows?: WorkflowConfiguration['workflows']; discoveredConstraints?: ConstraintMetadata; compatibility: ModernConfig['compatibility'] & { supportSchemaFirstMode: boolean; enableV2_1_0_Fallback: boolean; gracefulDegradationToV2_1_0?: boolean; }; testing?: { enableConstraintTesting: boolean; validateDiscoveredRules: boolean; testAutoFixes: boolean; constraintViolationSimulation: boolean; workflowValidationTests: boolean; }; performance?: { constraintDiscoveryCache: boolean; businessRuleParsingTimeout: number; workflowExecutionTimeout: number; enableExecutionMetrics: boolean; logConstraintViolations: boolean; logAutoFixes: boolean; }; } export interface V2_2_0_MigrationOptions { enableConstraintDiscovery: boolean; generateWorkflows: boolean; enableAutoFixes: boolean; workflowGenerationOptions?: WorkflowGenerationOptions; constraintDiscoveryTimeout?: number; cacheDiscoveredConstraints?: boolean; maintainV2_1_0_Compatibility: boolean; enableGracefulDegradation: boolean; enableTestingFeatures?: boolean; validateConstraintsAfterMigration?: boolean; } export interface V2_2_0_MigrationResult extends MigrationResult { v2_2_0_Config: V2_2_0_Config; discoveredConstraints?: ConstraintMetadata; generatedWorkflows?: WorkflowConfiguration['workflows']; constraintDiscoveryReport: { success: boolean; rulesFound: number; dependenciesFound: number; confidence: number; warnings: string[]; }; workflowGenerationReport?: { success: boolean; workflowsGenerated: number; autoFixesGenerated: number; confidence: number; }; } export declare class V2_2_0_Migrator { private client; private legacyMigrator; private constraintEngine; private workflowGenerator; constructor(client: SupabaseClient); /** * Migrate v2.1.0 configuration to v2.2.0 constraint-aware architecture */ migrateToV2_2_0(v2_1_0_Config: ModernConfig, options: V2_2_0_MigrationOptions): Promise<V2_2_0_MigrationResult>; /** * Create base v2.2.0 configuration from v2.1.0 config */ private createBaseV2_2_0_Config; /** * Perform constraint discovery and update configuration */ private performConstraintDiscovery; /** * Generate workflows based on discovered constraints */ private generateWorkflows; /** * Apply v2.2.0 specific enhancements */ private applyV2_2_0_Enhancements; /** * Validate migration result */ private validateMigrationResult; /** * Generate migration summary and recommendations */ private generateMigrationSummary; /** * Utility methods */ private extractTableNamesFromConfig; private countAutoFixes; /** * Quick migration helper for common use cases */ static quickMigrateToV2_2_0(client: SupabaseClient, v2_1_0_ConfigPath: string, outputPath?: string): Promise<V2_2_0_MigrationResult>; } export {}; //# sourceMappingURL=v2-2-0-migrator.d.ts.map