UNPKG

supa-seed

Version:

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

117 lines 3.39 kB
/** * Configuration Validation System * Phase 6, Checkpoint F1 - Comprehensive validation for all configuration inputs */ export interface ValidationRule { name: string; description: string; validator: (value: any, context?: ValidationContext) => ValidationResult; severity: 'error' | 'warning' | 'info'; category: 'security' | 'performance' | 'compatibility' | 'syntax' | 'logic'; } export interface ValidationResult { valid: boolean; message: string; suggestion?: string; details?: Record<string, any>; } export interface ValidationContext { configPath: string[]; fullConfig: Record<string, any>; environment: 'development' | 'production' | 'test'; metadata?: Record<string, any>; } export interface ConfigValidationReport { valid: boolean; errors: Array<ValidationError>; warnings: Array<ValidationWarning>; info: Array<ValidationInfo>; summary: { totalRules: number; passed: number; failed: number; warnings: number; criticalIssues: string[]; recommendations: string[]; }; } export interface ValidationError { path: string; rule: string; message: string; severity: 'error'; category: string; suggestion?: string; } export interface ValidationWarning { path: string; rule: string; message: string; severity: 'warning'; category: string; suggestion?: string; } export interface ValidationInfo { path: string; rule: string; message: string; severity: 'info'; category: string; } export declare class ConfigValidator { private static validationRules; private static globalRules; /** * Initialize configuration validator with built-in rules */ static initialize(): void; /** * Register a validation rule for a specific config path */ static registerRule(configPath: string, rule: ValidationRule): void; /** * Register a global validation rule */ static registerGlobalRule(rule: ValidationRule): void; /** * Validate a configuration object */ static validateConfig(config: Record<string, any>, environment?: 'development' | 'production' | 'test'): ConfigValidationReport; /** * Validate specific configuration value */ static validateValue(value: any, configPath: string, context?: Partial<ValidationContext>): ValidationResult; /** * Get validation rules for a path */ static getRulesForPath(configPath: string): ValidationRule[]; /** * Validate configuration schema structure */ static validateSchema(config: Record<string, any>, expectedSchema: Record<string, any>): ValidationResult; /** * Register built-in validation rules */ private static registerBuiltInRules; /** * Validate object recursively */ private static validateObjectRecursively; /** * Validate with specific rules */ private static validateWithRules; /** * Generate validation summary */ private static generateValidationSummary; /** * Helper methods for schema validation */ private static checkRequiredFields; private static checkExtraFields; private static checkFieldTypes; private static getNestedValue; } export default ConfigValidator; //# sourceMappingURL=config-validator.d.ts.map