UNPKG

supa-seed

Version:

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

124 lines 3.87 kB
/** * Data Generation Pattern Manager for Epic 7: Configuration Extensibility Framework * Manages advanced data generation patterns and domain-specific configurations */ import { ExtendedSeedConfig } from '../../core/types/config-types'; export interface DataGenerationPattern { id: string; name: string; description: string; domain: string; pattern: { type: 'sequential' | 'random' | 'weighted' | 'realistic' | 'custom'; parameters: Record<string, any>; }; vocabulary: string[]; templates: Record<string, string>; constraints: Array<{ field: string; type: 'length' | 'format' | 'range' | 'unique' | 'custom'; value: any; message?: string; }>; } export interface DomainVocabulary { domain: string; categories: Record<string, string[]>; templates: Record<string, string>; relationships: Record<string, number>; businessRules: Record<string, any>; } export interface ConsistencyRule { id: string; tables: string[]; rule: string; validator?: string; fixer?: string; severity: 'error' | 'warning' | 'info'; autoFix: boolean; } export interface ReferentialIntegrityConfig { enforceStrict: boolean; allowOrphans: boolean; cleanupStrategy: 'cascade' | 'nullify' | 'preserve'; cascadeLevels: number; checkConstraints: boolean; } export declare class DataGenerationPatternManager { private patterns; private vocabularies; private consistencyRules; constructor(); /** * Generate data according to configured patterns */ generateDataWithPatterns(config: ExtendedSeedConfig, table: string, count: number, context?: Record<string, any>): any[]; /** * Apply consistency rules to generated data */ applyConsistencyRules(data: Record<string, any[]>, config: ExtendedSeedConfig): { data: Record<string, any[]>; violations: Array<{ rule: string; severity: string; message: string; affectedTables: string[]; autoFixed: boolean; }>; }; /** * Enforce referential integrity */ enforceReferentialIntegrity(data: Record<string, any[]>, config: ExtendedSeedConfig): { data: Record<string, any[]>; orphansRemoved: number; referencesFixed: number; }; /** * Validate generated data patterns */ validateGeneratedPatterns(data: Record<string, any[]>, config: ExtendedSeedConfig): { valid: boolean; errors: string[]; warnings: string[]; patternMetrics: Record<string, any>; }; /** * Get available patterns for a domain */ getAvailablePatterns(domain?: string): DataGenerationPattern[]; /** * Get domain vocabulary */ getDomainVocabulary(domain: string): DomainVocabulary | undefined; /** * Create custom pattern */ createCustomPattern(pattern: DataGenerationPattern): void; /** * Private helper methods */ private initializeDefaultPatterns; private initializeDomainVocabularies; private initializeConsistencyRules; private getDomainConfig; private tableMatchesDomain; private getPatternForTable; private getDefaultPattern; private generateBasicData; private generateSequentialData; private generateRandomData; private generateWeightedData; private generateRealisticData; private generateCustomData; private generateRecordFromPattern; private processTemplate; private checkConsistencyRule; private applyConsistencyFixes; private buildForeignKeyMap; private validateAndFixReferences; private analyzeDomainPatterns; private validateConsistencyRules; private validateReferentialIntegrity; } //# sourceMappingURL=data-generation-pattern-manager.d.ts.map