/** * JavaScript/TypeScript Security Analyzer v2.0 * Advanced SAST analyzer with AST-based detection, taint analysis, and malware detection * * Features: * - AST-based vulnerability detection (Babel Parser) * - Taint analysis (source-to-sink tracking) * - Malware detection (cryptominers, stealers, backdoors, etc.) * - Package.json security analysis * - OWASP/CWE compliance * * @version 2.0.0 * @author Secure-Scan Team */ import { BaseAnalyzer } from '../base'; import { ScannedFile, Finding, Rule, SupportedLanguage } from '../../types'; /** * Analysis options for the JavaScript Analyzer */ export interface JSAnalyzerOptions { /** Enable AST-based analysis */ enableAST?: boolean; /** Enable taint analysis */ enableTaintAnalysis?: boolean; /** Enable malware detection */ enableMalwareDetection?: boolean; /** Enable package.json analysis */ enablePackageAnalysis?: boolean; /** Maximum file size to analyze (bytes) */ maxFileSize?: number; /** Timeout per file (ms) */ fileTimeout?: number; /** Minimum confidence to report (0-100) */ minConfidence?: number; } /** * JavaScript/TypeScript Analyzer Class v2.0 */ export declare class JavaScriptAnalyzer extends BaseAnalyzer { name: string; languages: SupportedLanguage[]; version: string; private taintAnalyzer; private astUtils; private malwareDetector; private packageJsonAnalyzer; private options; constructor(options?: JSAnalyzerOptions); /** * Initialize the analyzer */ initialize(): Promise; /** * Main analysis entry point */ analyze(file: ScannedFile, rules: Rule[]): Promise; /** * Run pattern-based vulnerability detection */ private runPatternAnalysis; /** * Run AST-based analysis */ private runASTAnalysis; /** * Run taint analysis */ private runTaintAnalysis; /** * Run malware detection */ private runMalwareAnalysis; /** * Analyze package.json for security issues */ private analyzePackageJson; /** * Check for obfuscated code */ private checkObfuscation; /** * Convert DangerousCall to Finding */ private dangerousCallToFinding; /** * Convert TaintFlow to Finding */ private taintFlowToFinding; /** * Convert MalwareMatch to Finding */ private malwareMatchToFinding; /** * Convert PackageJsonFinding to Finding */ private packageFindingToFinding; /** * Deduplicate findings based on location and type */ private deduplicateFindings; /** * Filter findings by minimum confidence */ private filterByConfidence; /** * Create a timeout promise */ private timeout; } export default JavaScriptAnalyzer; //# sourceMappingURL=javascriptAnalyzer.d.ts.map