UNPKG

woaru

Version:

Universal Project Setup Autopilot - Analyze and automatically configure development tools for ANY programming language

70 lines 2.16 kB
/** * HybridBasePlugin - Base class for the new hybrid architecture * * Combines secure core plugin logic with dynamic configuration from tools.json */ export declare abstract class HybridBasePlugin { /** * Get the plugin name (matches plugin_class in tools.json core_tools) */ abstract getName(): string; /** * Get supported file extensions for this plugin */ abstract getSupportedExtensions(): string[]; /** * Check if this plugin can handle the given file */ abstract canHandleFile(filePath: string): Promise<boolean>; /** * Run the core tool with dynamic configuration */ abstract runLinter(filePath: string, options?: Record<string, unknown>): Promise<{ success: boolean; output: string; hasErrors: boolean; hasWarnings: boolean; }>; /** * Get framework-specific configuration */ abstract getFrameworkSpecificConfig(framework: string): Promise<Record<string, unknown>>; /** * Check for deprecation warnings */ abstract checkDeprecationWarnings(): Promise<{ isDeprecated: boolean; warning?: string; successor?: string; migrationGuide?: string; }>; /** * Get recommended packages for installation */ abstract getRecommendedPackages(projectContext: Record<string, unknown>): Promise<string[]>; /** * Check if a file exists */ protected fileExists(filePath: string): Promise<boolean>; /** * Read JSON file safely */ protected readJsonFile<T>(filePath: string): Promise<T | null>; /** * Get file extension */ protected getFileExtension(filePath: string): Promise<string>; /** * Check if file has specific extension */ protected hasExtension(filePath: string, extensions: string[]): Promise<boolean>; /** * Sanitize command arguments for security */ protected sanitizeArgs(args: string[]): string[]; /** * Validate file path for security */ protected isValidFilePath(filePath: string): Promise<boolean>; } //# sourceMappingURL=HybridBasePlugin.d.ts.map