UNPKG

pury

Version:

🛡️ AI-powered security scanner with advanced threat detection, dual reporting system (detailed & summary), and comprehensive code analysis

124 lines 2.86 kB
export interface ScanOptions { path: string; exclude?: string[]; include?: string[]; maxFileSize?: number; recursive?: boolean; followSymlinks?: boolean; } export interface FileInfo { path: string; relativePath: string; size: number; extension: string; content: string; encoding: BufferEncoding; } export interface Finding { id: string; type: FindingType; severity: Severity; title: string; description: string; file: string; line?: number; column?: number; evidence?: string; suggestion?: string; references?: string[]; } export declare enum FindingType { MALWARE = "malware", VULNERABILITY = "vulnerability", SECRET = "secret", CODE_QUALITY = "code_quality", PERFORMANCE = "performance", LOCALIZATION = "localization" } export declare enum Severity { LOW = "low", MEDIUM = "medium", HIGH = "high", CRITICAL = "critical" } export interface ScanReport { summary: { filesScanned: number; threatsFound: number; severityCount: Record<Severity, number>; scanDuration: number; }; findings: Finding[]; metadata: { version: string; timestamp: string; scanOptions: ScanOptions; aiProvider?: string; }; } export interface AnalyzerConfig { enabled: boolean; sensitivity?: 'low' | 'medium' | 'high'; customRules?: unknown[]; } export interface PuryAIConfig { scanner: { exclude: string[]; include: string[]; maxFileSize: number; followSymlinks: boolean; }; analyzers: { malware: AnalyzerConfig; secrets: AnalyzerConfig; vulnerabilities: AnalyzerConfig; codeQuality: AnalyzerConfig; }; ai: { provider: 'gemini' | 'openai' | 'claude'; gemini?: { apiKey?: string; model: string; temperature: number; maxTokens: number; }; }; output: { format: 'console' | 'json' | 'html' | 'sarif'; file?: string; verbose: boolean; }; } export interface AIAnalysisRequest { code: string; filePath: string; analysisType: FindingType[]; context?: string; } export interface AIAnalysisResponse { findings: Finding[]; confidence: number; reasoning?: string; } export interface MalwarePattern { id: string; name: string; pattern: RegExp | string; severity: Severity; description: string; category: string; } export interface SecretPattern { id: string; name: string; pattern: RegExp; entropy?: number; keywords?: string[]; severity: Severity; } export interface AnalyzerResult { findings: Finding[]; processingTime: number; filesAnalyzed: number; } //# sourceMappingURL=index.d.ts.map