UNPKG

@aaswe/codebase-ai

Version:

AI-Assisted Software Engineering (AASWE) - Rich codebase context for IDE LLMs

74 lines 2.01 kB
/** * NPM Hook Manager * * Manages NPM lifecycle hooks to automatically trigger project analysis * when packages are installed or updated. */ import { EventEmitter } from 'events'; export interface NPMHookConfig { enablePostInstall: boolean; enablePreInstall: boolean; enablePostUpdate: boolean; hookScriptPath?: string; projectRoot: string; analysisDelay: number; } export interface NPMHookEvent { type: 'postinstall' | 'preinstall' | 'postupdate'; timestamp: Date; packageName?: string; version?: string; projectRoot: string; triggeredBy: 'npm' | 'yarn' | 'pnpm' | 'manual'; } /** * NPM Hook Manager * * Provides automatic triggering of project analysis when npm packages * are installed, updated, or when dependencies change. */ export declare class NPMHookManager extends EventEmitter { private config; private isInitialized; private hookScriptContent; private packageJsonWatcher?; constructor(config?: Partial<NPMHookConfig>); /** * Initialize NPM hooks */ initialize(): Promise<void>; /** * Manually trigger analysis (for testing or manual execution) */ triggerAnalysis(reason?: string): Promise<void>; /** * Check if hooks are properly installed */ validateHooks(): Promise<{ isValid: boolean; issues: string[]; }>; /** * Remove installed hooks */ removeHooks(): Promise<void>; /** * Get hook installation status */ getStatus(): { isInitialized: boolean; config: NPMHookConfig; hookScriptPath: string; }; private validateProjectRoot; private installPostInstallHook; private installPreInstallHook; private installPostUpdateHook; private createHookScript; private updatePackageJson; private removeFromPackageJson; private setupPackageJsonWatcher; private getHookScriptPath; private generateHookScript; } //# sourceMappingURL=NPMHookManager.d.ts.map