pury
Version:
🛡️ AI-powered security scanner with advanced threat detection, dual reporting system (detailed & summary), and comprehensive code analysis
124 lines • 2.86 kB
TypeScript
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