/** * Data Flow (Taint Tracking) Engine * * Tracks how untrusted data flows from sources to sinks, with variable-level * taint propagation: * - a source bound to a variable (incl. CallExpression sources like * `searchParams.get(...)`) taints that variable; * - taint propagates through assignments to a fixed point (multi-hop); * - a sink connects only when the value in its filter-argument position is a * tainted variable reaching the sink (reaching definition), not merely any * identifier present in the call text; * - sanitizers kill taint (a value derived from `sanitizer(tainted)` is clean); * - taint is scoped to the enclosing function to avoid cross-handler FPs. * * Pattern matching reuses the tokenizing matcher from the AST-query engine * (`parsePattern`/`matchPattern`), which both matches metavariable patterns * correctly and captures their bindings (e.g. `eq($col, $source)` → * `{ source: "userId" }`). * * @module scanners/detection/engines/data-flow */ import type { DataFlowConfig, TaintPath, DetectionMatch, DetectionRule } from "../types.js"; export declare function analyzeDataFlow(filePath: string, config: DataFlowConfig): Promise; export declare function runDataFlowEngine(projectPath: string, rules: DetectionRule[], files?: string[]): Promise; //# sourceMappingURL=data-flow.d.ts.map