UNPKG

openapi-directory-mcp

Version:

Model Context Protocol server for accessing enhanced triple-source OpenAPI directory (APIs.guru + additional APIs + custom imports)

168 lines 4.45 kB
/** * Validation utilities for enhanced security and data integrity */ /** * Path validation to prevent path traversal attacks */ export declare class PathValidator { /** * Validate file path for security */ static validatePath(path: string): void; /** * Check if absolute path is in allowed directories */ private static isAllowedAbsolutePath; /** * Sanitize path for safe usage */ static sanitizePath(path: string): string; /** * Validate file extension */ static validateFileExtension(path: string, allowedExtensions: readonly string[]): void; } /** * File validation utilities */ export declare class FileValidator { /** * Validate file size */ static validateFileSize(sizeBytes: number, maxSizeMB?: number): void; /** * Validate OpenAPI spec file */ static validateOpenAPIFile(path: string, sizeBytes: number): void; /** * Validate file content structure */ static validateOpenAPIContent(content: string | any): void; } /** * Cache validation utilities */ export declare class CacheValidator { /** * Validate cache entry integrity */ static validateCacheEntry(_key: string, data: any): boolean; /** * Generate cache integrity hash */ static generateIntegrityHash(data: any): string; /** * Verify cache integrity */ static verifyCacheIntegrity(data: any, expectedHash: string): boolean; } /** * API data validation utilities */ export declare class APIDataValidator { /** * Validate provider name */ static validateProviderName(provider: string): void; /** * Validate API identifier */ static validateAPIId(apiId: string): void; /** * Validate pagination parameters */ static validatePagination(page?: number, limit?: number): { page: number; limit: number; }; /** * Validate search query */ static validateSearchQuery(query: string): void; } /** * URL validation utilities */ export declare class URLValidator { /** * Validate URL format and security */ static validateURL(url: string): void; /** * Check if hostname is a local/private address */ private static isLocalAddress; } /** * Data validation and sanitization utilities * Ensures all API responses are properly validated before use */ export interface ValidationResult<T> { isValid: boolean; data: T; errors: string[]; warnings: string[]; } /** * Validation utilities for API responses */ export declare class DataValidator { /** * Validate and sanitize provider list */ static validateProviders(providers: any): ValidationResult<{ data: string[]; }>; /** * Validate and sanitize search results */ static validateSearchResults(searchResults: any): ValidationResult<{ results: Array<{ id: string; title: string; description: string; provider: string; preferred: string; categories: string[]; }>; pagination: { page: number; limit: number; total_results: number; total_pages: number; has_next: boolean; has_previous: boolean; }; }>; /** * Validate and sanitize metrics data */ static validateMetrics(metrics: any): ValidationResult<{ numSpecs: number; numAPIs: number; numEndpoints: number; [key: string]: any; }>; /** * Check for potentially suspicious content (XSS, injection attempts) * Uses DOMPurify for robust HTML sanitization instead of regex patterns */ private static containsSuspiciousContent; /** * Validate a number field and provide fallback */ private static validateNumber; /** * Sanitize an object by excluding specified keys and validating remaining ones */ private static sanitizeObject; /** * Log validation results appropriately */ static logValidationResults<T>(result: ValidationResult<T>, source: string): void; } /** * Convenience function to validate and sanitize data with automatic logging */ export declare function validateAndSanitize<T>(data: any, validator: (data: any) => ValidationResult<T>, source: string): T; //# sourceMappingURL=validation.d.ts.map