@aaswe/codebase-ai
Version:
AI-Assisted Software Engineering (AASWE) - Rich codebase context for IDE LLMs
74 lines • 2.01 kB
TypeScript
/**
* 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