UNPKG

@syntropysoft/praetorian

Version:

Praetorian CLI – A universal multi-environment configuration validator for DevSecOps teams. Validate, compare, and secure YAML/ENV files with ease.

123 lines 3.26 kB
/** * TODO: IMPERATIVE PROGRAMMING PATTERN - NEEDS REFACTORING * * This file demonstrates imperative programming practices that make testing difficult: * - Imperative for loops (lines 200-210, 250-260, 280-290) * - Mutable state handling with object mutations * - Complex nested conditionals * - Multiple responsibilities in single methods * - Side effects in loops and object mutations * * Mutation Score: 32.04% - Imperative patterns make testing fragile! * * RECOMMENDATION: Refactor to use: * - Functional array methods (map, filter, reduce) * - Immutable data transformations * - Pure functions with clear contracts * - Composition over mutation * - Recursive functional patterns for object traversal */ export interface ValidationResult { success: boolean; errors?: any[]; warnings?: any[]; summary?: any; results?: any[]; error?: string; } export interface ValidationOptions { verbose?: boolean; strict?: boolean; env?: string; all?: boolean; environments?: string; failFast?: boolean; ignore_keys?: string[]; required_keys?: string[]; } export interface PraetorianConfig { files: string[]; ignore_keys?: string[]; required_keys?: string[]; } export declare class ValidationOrchestrator { private environmentManager; constructor(); /** * Orchestrate validation based on options */ orchestrateValidation(configPath: string, options: ValidationOptions): Promise<ValidationResult>; /** * Validate using environment-based approach */ private validateByEnvironments; /** * Validate all environments */ private validateAllEnvironments; /** * Validate specific environment */ private validateSpecificEnvironment; /** * Validate single file */ private validateSingleFile; /** * Load Praetorian configuration */ private loadPraetorianConfig; /** * Separate existing and missing files */ private separateExistingAndMissingFiles; /** * Handle missing files by creating empty structures */ private handleMissingFiles; /** * Load all configuration files */ private loadAllConfigurationFiles; /** * Load file content */ private loadFileContent; /** * Determine file format */ private determineFileFormat; /** * Create validation function */ private createValidationFunction; /** * Create empty structure file */ private createEmptyStructureFile; /** * Create empty structure from existing files */ private createEmptyStructureFromExisting; /** * Create structure from required keys */ private createStructureFromRequiredKeys; /** * Create structure from existing files */ private createStructureFromExistingFiles; /** * Merge structure */ private mergeStructure; /** * Replace values with null */ private replaceValuesWithNull; } /** * Run validation with the orchestrator */ export declare function runValidation(configPath: string, options?: ValidationOptions): Promise<ValidationResult>; //# sourceMappingURL=ValidationOrchestrator.d.ts.map