UNPKG

adpa-enterprise-framework-automation

Version:

Modular, standards-compliant Node.js/TypeScript automation framework for enterprise requirements, project, and data management. Provides CLI and API for BABOK v3, PMBOK 7th Edition, and DMBOK 2.0 (in progress). Production-ready Express.js API with TypeSpe

144 lines 4.34 kB
/** * Input Validation Service for Interactive CLI * * Provides comprehensive input validation and sanitization for all user inputs * in the interactive CLI system. Ensures robust user experience by preventing * invalid inputs and providing helpful error messages. * * @version 1.0.0 * @author ADPA Team */ export interface ValidationResult { isValid: boolean; error?: string; sanitizedValue?: string; suggestions?: string[]; timestamp?: Date; } export interface ValidationOptions { required?: boolean; minLength?: number; maxLength?: number; pattern?: RegExp; allowedValues?: string[]; customValidator?: (value: string) => ValidationResult; sanitize?: boolean; caseSensitive?: boolean; } export declare class InputValidationService { private static readonly errorHistory; private static readonly MAX_ERROR_HISTORY; /** * Enhanced validation with timeout and retry support */ static validateWithRetry<T>(input: string, validator: (input: string) => ValidationResult, options?: { maxRetries?: number; retryMessage?: string; fieldName?: string; }): Promise<{ isValid: boolean; value?: T; attempts: number; }>; /** * Validate input with timeout */ static validateWithTimeout(input: string, validator: (input: string) => ValidationResult, timeoutMs?: number): Promise<ValidationResult>; /** * Enhanced input sanitization with security measures */ static sanitizeInputSecure(input: string): string; /** * Validate menu choice input */ static validateMenuChoice(input: string, validChoices: string[]): ValidationResult; /** * Validate project name input */ static validateProjectName(input: string): ValidationResult; /** * Validate file path input */ static validateFilePath(input: string): ValidationResult; /** * Validate URL input */ static validateUrl(input: string): ValidationResult; /** * Validate email input */ static validateEmail(input: string): ValidationResult; /** * Validate API key input */ static validateApiKey(input: string, provider?: string): ValidationResult; /** * Validate numeric input */ static validateNumber(input: string, min?: number, max?: number): ValidationResult; /** * Validate yes/no input */ static validateYesNo(input: string): ValidationResult; /** * Generic text validation */ static validateText(input: string, options?: ValidationOptions, fieldName?: string): ValidationResult; /** * Sanitize input to prevent security issues */ static sanitizeInput(input: string): string; /** * Validate multiple inputs at once */ static validateMultiple(inputs: { [key: string]: { value: string; validator: (value: string) => ValidationResult; }; }): { [key: string]: ValidationResult; }; /** * Check if all validation results are valid */ static allValid(results: ValidationResult[]): boolean; /** * Get first error from validation results */ static getFirstError(results: ValidationResult[]): string | null; /** * Format validation error for display */ static formatValidationError(result: ValidationResult): string; /** * Track validation errors for analytics */ static trackValidationError(result: ValidationResult): void; /** * Get validation error statistics */ static getValidationStats(): { totalErrors: number; recentErrors: number; commonErrors: string[]; errorRate: number; }; /** * Clear validation error history */ static clearValidationHistory(): void; /** * Validate command line arguments */ static validateCommandArgs(args: string[]): ValidationResult; /** * Validate file system paths with security checks */ static validatePathSecure(input: string): ValidationResult; /** * Validate numeric input with range checking */ static validateNumericRange(input: string, min?: number, max?: number): ValidationResult; } //# sourceMappingURL=InputValidationService.d.ts.map