/** * Test Fixtures * * Labeled test cases for evaluating scanner precision and recall. * Each fixture contains vulnerable code with ground truth labels. * * @module eval/fixtures */ import type { TestFixture } from "./types.js"; /** * SQL Injection Fixtures */ export declare const sqlInjectionFixtures: TestFixture[]; /** * XSS Fixtures */ export declare const xssFixtures: TestFixture[]; /** * Secrets Fixtures */ export declare const secretsFixtures: TestFixture[]; /** * Type Safety Fixtures */ export declare const typeSafetyFixtures: TestFixture[]; /** * Auth/RLS Bypass Fixtures */ export declare const authFixtures: TestFixture[]; /** * Path Traversal Fixtures */ export declare const pathTraversalFixtures: TestFixture[]; /** * Command Injection Fixtures */ export declare const commandInjectionFixtures: TestFixture[]; /** * SSRF Fixtures */ export declare const ssrfFixtures: TestFixture[]; /** * XXE Fixtures */ export declare const xxeFixtures: TestFixture[]; /** * Insecure Deserialization Fixtures */ export declare const insecureDeserializationFixtures: TestFixture[]; /** * RLS Bypass / IDOR Fixtures */ export declare const rlsBypassFixtures: TestFixture[]; /** * Cross-tenant IDOR (OWASP A01) fixtures — the exact VasperaTrade shape: * a service-role/RLS-bypassing query filtered by a request-derived tenant id * with no ownership check. This is the class deterministic SAST structurally * misses; these fixtures are the regression guard for the multi-tenant * antagonist analysis and the composed detection rule. */ export declare const crossTenantIdorFixtures: TestFixture[]; /** * Safe-control / false-positive-bait fixtures. * * These are CORRECT code that *looks* risky — modelled on the real false * positives the LLM agents produced (trusted config read as attacker input, * validated input flagged as unvalidated, a present ownership check missed, a * timeout misread as absent). Every finding on one of these is a false positive * (`expectedFindings: []`), so they let the benchmark score PRECISION — which * the vulnerable fixtures alone can't, because their "FPs" are mostly real-but- * unlabelled findings. Pattern scanners don't match these (no injection/secret * patterns), so deterministic precision stays 100%; the signal is for the LLM * layer and its verifier. */ export declare const safeControlFixtures: TestFixture[]; /** * Access-control fixtures distilled from real-product findings (missing auth on * sensitive endpoints, unauthenticated multi-tenant reads, client-side-only * authz). These encode the shapes the refutation verifier initially over-refuted. */ export declare const accessControlFixtures: TestFixture[]; /** * All fixtures combined */ export declare const ALL_FIXTURES: TestFixture[]; /** * Get fixtures by category */ export declare function getFixturesByCategory(category: string): TestFixture[]; /** * Get fixtures by tag */ export declare function getFixturesByTag(tag: string): TestFixture[]; /** * Get fixture by ID */ export declare function getFixtureById(id: string): TestFixture | undefined; /** * Get fixture statistics */ export declare function getFixtureStats(): { total: number; byCategory: Record; totalExpected: number; }; //# sourceMappingURL=fixtures.d.ts.map