/** * @fileoverview Taint Analysis Detector * @module @nahisaho/musubix-security/variant/detector * @trace TSK-024, REQ-SEC-VARIANT-002 * * NOTE: v3.0.11 - Simplified implementation without CodeDB dependency */ import type { VulnerabilityFinding } from '../types/variant.js'; import { VulnerabilityModelManager } from './model.js'; /** * Detector options */ export interface DetectorOptions { /** Model manager */ modelManager?: VulnerabilityModelManager; /** Max path length */ maxPathLength?: number; /** Timeout per file (ms) */ timeout?: number; /** Enable pattern-based detection */ enablePatternDetection?: boolean; } /** * Detector result */ export interface DetectorResult { /** Findings */ findings: VulnerabilityFinding[]; /** Errors */ errors: string[]; /** Statistics */ stats: { modelsChecked: number; sourcesFound: number; sinksFound: number; pathsAnalyzed: number; duration: number; }; } /** * File content with metadata */ interface FileContent { path: string; content: string; lines: string[]; } /** * Taint Analysis Detector (v3.0.11 - File-based implementation) */ export declare class TaintDetector { private modelManager; private enablePatternDetection; private findingId; /** Max path length for taint analysis (reserved for future use) */ readonly maxPathLength: number; constructor(options?: DetectorOptions); /** * Reset finding ID counter (for testing) */ resetIdCounter(): void; /** * Detect vulnerabilities in files */ detectInFiles(files: FileContent[], language?: string): Promise; /** * Detect patterns in a file */ private detectPatternsInFile; /** * Find sources in a file */ private findSourcesInFile; /** * Find sinks in a file */ private findSinksInFile; /** * Convert pattern matcher to regex */ private matcherToRegex; /** * Create a vulnerability finding */ private createFinding; } /** * Create a taint detector instance */ export declare function createDetector(options?: DetectorOptions): TaintDetector; export {}; //# sourceMappingURL=detector.d.ts.map