woaru
Version:
Universal Project Setup Autopilot - Analyze and automatically configure development tools for ANY programming language
70 lines • 2.16 kB
TypeScript
/**
* 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