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