/** * Scanner Aggregator * * Orchestrates all deterministic scanners and aggregates results. * Runs scanners in parallel for performance. * * @module scanners */ export * from "./types.js"; export { runDependencyAudit, checkNpmAvailable } from "./dependencies.js"; export { runTypeScriptAnalysis, calculateTypeCoverage } from "./typescript.js"; export { runSecretsScanner, checkGitleaksAvailable, _resetGitleaksAvailabilityCache, _setGitleaksAvailabilityForTest } from "./secrets.js"; export { runSemgrep, checkSemgrepAvailable, generateSupabaseRules } from "./semgrep.js"; export { runBandit, checkBanditAvailable, detectPython } from "./bandit.js"; export { runGosec, checkGosecAvailable, detectGo } from "./gosec.js"; export { runTrivy, runDockerfileFromLint, runTrivyBaseImageScan, checkTrivyAvailable, detectIaC, detectDockerfiles, detectTerraformFiles, parseDockerfileFrom, } from "./trivy.js"; export type { ParsedFromInstruction, TrivyRunOptions } from "./trivy.js"; export { runEslint, checkEslintAvailable, detectEslint } from "./eslint.js"; export { runBrakeman, checkBrakemanAvailable, detectRails } from "./brakeman.js"; export { runBinaryAnalysis, checkBinaryAnalysisAvailable, detectNativeModules } from "./binary-analysis.js"; export { runMemorySafetyAnalysis, checkCppcheckAvailable, checkCargoGeigerAvailable, detectUnsafeLanguages } from "./memory-safety.js"; export { runRaceConditionAnalysis } from "./race-condition.js"; export { runHealthcareScanner, isHealthcareProject } from "./healthcare.js"; export { runTfsec, runCheckov, runTerraformScanners, checkTfsecAvailable, checkCheckovAvailable, detectTerraform } from "./terraform.js"; export { runSpectral, runOpenAPIScan, checkSpectralAvailable, findOpenAPISpecs, detectOpenAPI } from "./openapi.js"; export { runCargoAudit, runClippy, runRustScanners, checkCargoAuditAvailable, checkClippyAvailable, detectRust } from "./rust.js"; export { runNuclei, runDASTScan, runQuickDASTScan, checkNucleiAvailable, generateDASTReport, formatDASTReport } from "./dast.js"; export { runDetection, runDetectionWithCustomRules, listAvailableRules, getDetectionCategories, getBuiltinRules, BUILTIN_RULES, type DetectionRule, type DetectionResult, type DetectionMatch, type DetectionContext, } from "./detection/index.js"; import type { AggregatedScanResult, ScannerOptions, ScannerResult, ScannerType } from "./types.js"; import type { Severity } from "../certification/types.js"; /** * Detected project languages and technologies */ export interface ProjectLanguages { javascript: boolean; python: boolean; go: boolean; ruby: boolean; java: boolean; docker: boolean; terraform: boolean; } /** * Run all enabled scanners and aggregate results */ export declare function runAllScanners(projectPath: string, options?: ScannerOptions): Promise; /** * Run Vaspera proprietary detection engine as a scanner. * * The detection engine excludes eval/ and fixture files by default so that * labeled-vulnerable fixture content in our own codebase does not produce * false positives during a self-scan. The eval harness writes fixture content * to a temp dir under safe file names, so benchmark recall is unaffected. */ export declare function runDetectionScanner(projectPath: string, options?: { timeout?: number; customRulesDir?: string; }): Promise; /** * Run the logic-flow scanner (endpoint/auth-flow analysis: IDOR/BOLA/BFLA, * missing ownership checks) as a deterministic scanner. */ export declare function runLogicScanScanner(projectPath: string, options?: { timeout?: number; maxFiles?: number; }): Promise; /** Detect a Supabase project (dependency or client import). */ export declare function detectSupabase(projectPath: string): Promise; /** Detect a Next.js project (dependency or next.config). */ export declare function detectNextjs(projectPath: string): Promise; /** * Detect if project uses JavaScript/TypeScript */ export declare function detectJavaScript(projectPath: string): Promise; /** * Detect if project uses Ruby */ export declare function detectRuby(projectPath: string): Promise; /** * Detect if project uses Java */ export declare function detectJava(projectPath: string): Promise; /** * Detect if project uses Docker */ export declare function detectDocker(projectPath: string): Promise; /** * Detect all project languages and technologies */ export declare function detectProjectLanguages(projectPath: string): Promise; /** * Run all scanners with automatic language detection * * Automatically enables language-specific scanners based on project files: * - JavaScript/TypeScript → npm-audit, tsc, eslint * - Python → bandit * - Go → gosec * - Ruby → brakeman (when implemented) * - Docker/Terraform → trivy * * Always runs: semgrep, gitleaks (if available) */ export declare function runAllScannersWithAutoDetect(projectPath: string, options?: { timeout?: number; semgrepRulesDir?: string; /** Override auto-detection - force enable specific scanners */ forceEnable?: ScannerType[]; /** Override auto-detection - force disable specific scanners */ forceDisable?: ScannerType[]; /** Glob/path patterns to include (forwarded to scanners that support it) */ include?: string[]; /** * Glob/path patterns to exclude. Merged with the default test-dir exclusions * applied to code scanners (Bandit, Gosec, Brakeman). NOT applied to secrets. */ exclude?: string[]; }): Promise; /** * Check which scanners are available */ export declare function checkScannersAvailable(): Promise>; /** * Get installation commands for missing scanners */ export declare function getScannerInstallCommands(): Record; /** * Convert aggregated scanner results to certification findings format */ export declare function scannerFindingsToCertificationFindings(scanResult: AggregatedScanResult): Array<{ id: string; severity: Severity; category: string; file?: string; line?: number; description: string; evidence: string; confidence: number; scanner_source: ScannerType; scanner_rule_id: string; }>; /** * Generate a summary report of scanner results */ export declare function generateScannerSummary(result: AggregatedScanResult): string; //# sourceMappingURL=index.d.ts.map