/** * Pass #24: missing-await (CWE-252, category: reliability) * * Detects calls to well-known async APIs in JavaScript/TypeScript where the * returned Promise is silently discarded — the call result is neither awaited * nor captured in a variable. This is the "fire-and-forget" pattern that hides * errors and makes execution non-deterministic. * * Detection criteria (ALL must hold): * 1. Language is javascript or typescript. * 2. The method name is in the curated ASYNC_METHODS set. * 3. The source line does NOT contain the `await` keyword. * 4. There is no DFG definition at the call's line (result not assigned). * * Deliberately narrow to keep false-positive rate near zero. Only methods that * are essentially always async in practice are included. The `return async()` * pattern is excluded (legitimate "pass-through Promise" idiom). */ import type { CallInfo } from '../../types/index.js'; import type { AnalysisPass, PassContext } from '../../graph/analysis-pass.js'; export interface MissingAwaitPassResult { /** Calls where a Promise return value is silently discarded. */ missingAwaitCalls: CallInfo[]; } export declare class MissingAwaitPass implements AnalysisPass { readonly name = "missing-await"; readonly category: "reliability"; run(ctx: PassContext): MissingAwaitPassResult; } //# sourceMappingURL=missing-await-pass.d.ts.map