@kevinrabun/judges 3.33.0 → 3.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/README.md +2 -2
  3. package/dist/commands/benchmark.d.ts +2 -0
  4. package/dist/commands/benchmark.d.ts.map +1 -1
  5. package/dist/commands/benchmark.js +13 -1
  6. package/dist/commands/benchmark.js.map +1 -1
  7. package/dist/dedup.d.ts.map +1 -1
  8. package/dist/dedup.js +45 -29
  9. package/dist/dedup.js.map +1 -1
  10. package/dist/evaluators/ai-code-safety.js +1 -1
  11. package/dist/evaluators/caching.js +1 -1
  12. package/dist/evaluators/caching.js.map +1 -1
  13. package/dist/evaluators/cloud-readiness.js +1 -1
  14. package/dist/evaluators/configuration-management.js +1 -1
  15. package/dist/evaluators/cost-effectiveness.js +1 -1
  16. package/dist/evaluators/data-sovereignty.js +2 -2
  17. package/dist/evaluators/documentation.d.ts.map +1 -1
  18. package/dist/evaluators/documentation.js +7 -5
  19. package/dist/evaluators/documentation.js.map +1 -1
  20. package/dist/evaluators/false-positive-review.d.ts.map +1 -1
  21. package/dist/evaluators/false-positive-review.js +6 -5
  22. package/dist/evaluators/false-positive-review.js.map +1 -1
  23. package/dist/evaluators/framework-safety.d.ts.map +1 -1
  24. package/dist/evaluators/framework-safety.js +268 -0
  25. package/dist/evaluators/framework-safety.js.map +1 -1
  26. package/dist/evaluators/internationalization.js +1 -1
  27. package/dist/evaluators/reliability.js +1 -1
  28. package/dist/evaluators/security.d.ts.map +1 -1
  29. package/dist/evaluators/security.js +3 -0
  30. package/dist/evaluators/security.js.map +1 -1
  31. package/dist/evaluators/shared.js +1 -1
  32. package/dist/evaluators/shared.js.map +1 -1
  33. package/dist/evaluators/ux.js +5 -5
  34. package/dist/evaluators/ux.js.map +1 -1
  35. package/dist/finding-lifecycle.d.ts +44 -0
  36. package/dist/finding-lifecycle.d.ts.map +1 -1
  37. package/dist/finding-lifecycle.js +125 -0
  38. package/dist/finding-lifecycle.js.map +1 -1
  39. package/dist/judges/framework-safety.d.ts.map +1 -1
  40. package/dist/judges/framework-safety.js +12 -6
  41. package/dist/judges/framework-safety.js.map +1 -1
  42. package/dist/patches/index.d.ts.map +1 -1
  43. package/dist/patches/index.js +227 -0
  44. package/dist/patches/index.js.map +1 -1
  45. package/dist/tools/register-review.d.ts +7 -0
  46. package/dist/tools/register-review.d.ts.map +1 -0
  47. package/dist/tools/register-review.js +372 -0
  48. package/dist/tools/register-review.js.map +1 -0
  49. package/dist/tools/register-workflow.d.ts.map +1 -1
  50. package/dist/tools/register-workflow.js +73 -1
  51. package/dist/tools/register-workflow.js.map +1 -1
  52. package/dist/tools/register.d.ts +1 -1
  53. package/dist/tools/register.d.ts.map +1 -1
  54. package/dist/tools/register.js +3 -1
  55. package/dist/tools/register.js.map +1 -1
  56. package/package.json +1 -1
  57. package/server.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"finding-lifecycle.js","sourceRoot":"","sources":["../src/finding-lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"finding-lifecycle.js","sourceRoot":"","sources":["../src/finding-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"framework-safety.d.ts","sourceRoot":"","sources":["../../src/judges/framework-safety.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,oBAAoB,EAAE,eAkClC,CAAC"}
1
+ {"version":3,"file":"framework-safety.d.ts","sourceRoot":"","sources":["../../src/judges/framework-safety.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,oBAAoB,EAAE,eAwClC,CAAC"}
@@ -2,11 +2,11 @@ export const frameworkSafetyJudge = {
2
2
  id: "framework-safety",
3
3
  name: "Judge Framework Safety",
4
4
  domain: "Framework-Specific Security & Best Practices",
5
- description: "Detects misuse patterns unique to popular frameworks: React hook violations, Express middleware ordering, Next.js SSR data leaks, Angular DomSanitizer bypass, Vue v-html XSS, and framework-specific performance pitfalls.",
5
+ description: "Detects misuse patterns unique to popular frameworks: React hook violations, Express middleware ordering, Next.js SSR data leaks, Angular DomSanitizer bypass, Vue v-html XSS, Django settings & template safety, Spring Boot security configuration, ASP.NET Core authorization & CORS, Flask SSTI, FastAPI auth dependencies, and Go HTTP framework patterns.",
6
6
  rulePrefix: "FW",
7
- tableDescription: "React hooks ordering, Express middleware chains, Next.js SSR/SSG pitfalls, Angular/Vue lifecycle patterns, framework-specific anti-patterns",
8
- promptDescription: "Deep review of framework-specific safety: React hooks, Express middleware, Next.js SSR/SSG, Angular/Vue patterns",
9
- systemPrompt: `You are Judge Framework Safety — a senior full-stack engineer deeply versed in React, Express, Next.js, Angular, Vue, Koa, and Fastify internals.
7
+ tableDescription: "React hooks ordering, Express middleware chains, Next.js SSR/SSG pitfalls, Angular/Vue lifecycle patterns, Django/Flask/FastAPI safety, Spring Boot security, ASP.NET Core auth & CORS, Go Gin/Echo/Fiber patterns",
8
+ promptDescription: "Deep review of framework-specific safety: React hooks, Express middleware, Next.js SSR/SSG, Angular/Vue, Django, Spring Boot, ASP.NET Core, Flask, FastAPI, Go frameworks",
9
+ systemPrompt: `You are Judge Framework Safety — a senior full-stack engineer deeply versed in React, Express, Next.js, Angular, Vue, Koa, Fastify, Django, Flask, FastAPI, Spring Boot, ASP.NET Core, Gin, Echo, and Fiber internals.
10
10
 
11
11
  YOUR EVALUATION CRITERIA:
12
12
  1. **React Rules of Hooks**: Are hooks called unconditionally at the top level? Are effects cleaned up? Are dependency arrays correct?
@@ -14,8 +14,14 @@ YOUR EVALUATION CRITERIA:
14
14
  3. **Next.js SSR/SSG Security**: Do getServerSideProps/getStaticProps leak secrets? Are API routes authenticated?
15
15
  4. **Angular Security**: Is DomSanitizer bypassed? Are template expressions safe? Is strict mode enabled?
16
16
  5. **Vue Security**: Is v-html used with unsanitized data? Are computed properties used correctly?
17
- 6. **State Management**: Is state mutated directly instead of immutably? Are Redux/Zustand/Pinia patterns correct?
18
- 7. **Performance Patterns**: Are expensive computations memoized? Are inline handlers avoided? Are keys stable?
17
+ 6. **Django Security**: Is DEBUG=False in production? Is SECRET_KEY externalized? Are CSRF protections enabled? Is mark_safe used safely? Are session cookies secure?
18
+ 7. **Flask Security**: Is debug mode off? Is render_template_string avoided? Is SECRET_KEY set and externalized? Are file serving paths validated?
19
+ 8. **Spring Boot Security**: Is CSRF enabled? Are @Query annotations parameterized? Are Actuator endpoints restricted? Is @Valid used on request bodies? Is Jackson default typing disabled?
20
+ 9. **ASP.NET Core Security**: Is CORS restricted? Are anti-forgery tokens validated? Is HTTPS redirected? Is authorization configured? Are exception details hidden?
21
+ 10. **FastAPI Security**: Are auth dependencies injected via Depends()?
22
+ 11. **Go Frameworks (Gin/Echo/Fiber)**: Is input validated after binding? Are SQL queries parameterized?
23
+ 12. **State Management**: Is state mutated directly instead of immutably? Are Redux/Zustand/Pinia patterns correct?
24
+ 13. **Performance Patterns**: Are expensive computations memoized? Are inline handlers avoided? Are keys stable?
19
25
 
20
26
  RULES FOR YOUR EVALUATION:
21
27
  - Assign rule IDs with prefix "FW-" (e.g. FW-001).
@@ -1 +1 @@
1
- {"version":3,"file":"framework-safety.js","sourceRoot":"","sources":["../../src/judges/framework-safety.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oBAAoB,GAAoB;IACnD,EAAE,EAAE,kBAAkB;IACtB,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,8CAA8C;IACtD,WAAW,EACT,6NAA6N;IAC/N,UAAU,EAAE,IAAI;IAChB,gBAAgB,EACd,6IAA6I;IAC/I,iBAAiB,EACf,kHAAkH;IACpH,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;iJAsBiI;CAChJ,CAAC"}
1
+ {"version":3,"file":"framework-safety.js","sourceRoot":"","sources":["../../src/judges/framework-safety.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oBAAoB,GAAoB;IACnD,EAAE,EAAE,kBAAkB;IACtB,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,8CAA8C;IACtD,WAAW,EACT,iWAAiW;IACnW,UAAU,EAAE,IAAI;IAChB,gBAAgB,EACd,oNAAoN;IACtN,iBAAiB,EACf,2KAA2K;IAC7K,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;iJA4BiI;CAChJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/patches/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAkqE3C,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAyC9E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/patches/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAk4E3C,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAyC9E"}
@@ -2271,6 +2271,233 @@ const MULTI_LINE_PATCH_RULES = [
2271
2271
  };
2272
2272
  },
2273
2273
  },
2274
+ // ── v3.35.0 — Additional multi-line patches ──
2275
+ // ── Timing-safe comparison → crypto.timingSafeEqual ──
2276
+ {
2277
+ match: /timing.*attack|timing.*safe|constant.*time.*compar|non.*constant.*time/i,
2278
+ contextLines: 3,
2279
+ generate: (windowLines, windowStart, findingLine) => {
2280
+ const idx = findingLine - windowStart;
2281
+ if (idx < 0 || idx >= windowLines.length)
2282
+ return null;
2283
+ const line = windowLines[idx];
2284
+ const m = line.match(/^(\s*)(?:if\s*\(\s*)?([\w.]+)\s*===?\s*([\w.]+)/);
2285
+ if (!m)
2286
+ return null;
2287
+ const [, indent, left, right] = m;
2288
+ const oldText = line;
2289
+ const newText = [
2290
+ `${indent}// TODO: ensure crypto is imported: const crypto = require("crypto");`,
2291
+ `${indent}const _a = Buffer.from(String(${left}));`,
2292
+ `${indent}const _b = Buffer.from(String(${right}));`,
2293
+ `${indent}if (_a.length === _b.length && crypto.timingSafeEqual(_a, _b)) {`,
2294
+ ].join("\n");
2295
+ return { oldText, newText, startLine: findingLine, endLine: findingLine };
2296
+ },
2297
+ },
2298
+ // ── Path traversal → sanitize with path.resolve + prefix check ──
2299
+ {
2300
+ match: /path.*traversal|directory.*traversal|dot.*dot.*slash|\.\..*path/i,
2301
+ contextLines: 3,
2302
+ generate: (windowLines, windowStart, findingLine) => {
2303
+ const idx = findingLine - windowStart;
2304
+ if (idx < 0 || idx >= windowLines.length)
2305
+ return null;
2306
+ const line = windowLines[idx];
2307
+ const m = line.match(/^(\s*)((?:const|let|var)\s+(\w+)\s*=\s*path\.(?:join|resolve)\s*\([^)]*(?:req\.\w+|params|query|body)[^)]*\))\s*;?\s*$/);
2308
+ if (!m)
2309
+ return null;
2310
+ const [, indent, stmt, varName] = m;
2311
+ const oldText = line;
2312
+ const newText = [
2313
+ `${indent}const __baseDir = path.resolve("./safe-root"); // TODO: set allowed base directory`,
2314
+ `${indent}${stmt};`,
2315
+ `${indent}if (!path.resolve(${varName}).startsWith(__baseDir)) { throw new Error("Path traversal blocked"); }`,
2316
+ ].join("\n");
2317
+ return { oldText, newText, startLine: findingLine, endLine: findingLine };
2318
+ },
2319
+ },
2320
+ // ── Hardcoded secret/password → use environment variable ──
2321
+ {
2322
+ match: /hardcoded.*secret|hardcoded.*password|hardcoded.*key|embedded.*credential|hardcoded.*token/i,
2323
+ contextLines: 2,
2324
+ generate: (windowLines, windowStart, findingLine) => {
2325
+ const idx = findingLine - windowStart;
2326
+ if (idx < 0 || idx >= windowLines.length)
2327
+ return null;
2328
+ const line = windowLines[idx];
2329
+ const m = line.match(/^(\s*)(const|let|var)\s+(\w*(?:secret|password|key|token|apiKey|api_key)\w*)\s*=\s*["'`]([^"'`]+)["'`]\s*;?\s*$/i);
2330
+ if (!m)
2331
+ return null;
2332
+ const [, indent, decl, varName] = m;
2333
+ const envName = varName.replace(/([a-z])([A-Z])/g, "$1_$2").toUpperCase();
2334
+ const oldText = line;
2335
+ const newText = `${indent}${decl} ${varName} = process.env.${envName}; // TODO: set ${envName} in environment`;
2336
+ return { oldText, newText, startLine: findingLine, endLine: findingLine };
2337
+ },
2338
+ },
2339
+ // ── Open redirect → validate redirect URL ──
2340
+ {
2341
+ match: /open.*redirect|unvalidated.*redirect|url.*redirect.*uncheck/i,
2342
+ contextLines: 3,
2343
+ generate: (windowLines, windowStart, findingLine) => {
2344
+ const idx = findingLine - windowStart;
2345
+ if (idx < 0 || idx >= windowLines.length)
2346
+ return null;
2347
+ const line = windowLines[idx];
2348
+ const m = line.match(/^(\s*)(?:res\.redirect|return\s+res\.redirect)\s*\(\s*(req\.(?:query|params|body)\.\w+|[\w]+)\s*\)/);
2349
+ if (!m)
2350
+ return null;
2351
+ const [, indent, urlExpr] = m;
2352
+ const oldText = line;
2353
+ const newText = [
2354
+ `${indent}const __redirectUrl = new URL(${urlExpr}, req.protocol + "://" + req.get("host"));`,
2355
+ `${indent}if (__redirectUrl.origin !== req.protocol + "://" + req.get("host")) { return res.status(400).send("Invalid redirect"); }`,
2356
+ `${indent}res.redirect(__redirectUrl.pathname);`,
2357
+ ].join("\n");
2358
+ return { oldText, newText, startLine: findingLine, endLine: findingLine };
2359
+ },
2360
+ },
2361
+ // ── SSRF → validate URL before HTTP request ──
2362
+ {
2363
+ match: /ssrf|server.*side.*request.*forgery|unvalidated.*url.*fetch/i,
2364
+ contextLines: 3,
2365
+ generate: (windowLines, windowStart, findingLine) => {
2366
+ const idx = findingLine - windowStart;
2367
+ if (idx < 0 || idx >= windowLines.length)
2368
+ return null;
2369
+ const line = windowLines[idx];
2370
+ const m = line.match(/^(\s*)((?:const|let|var)\s+\w+\s*=\s*)?(?:await\s+)?(?:fetch|axios\.(?:get|post|put|delete)|got|request)\s*\(\s*([\w.]+)\s*/);
2371
+ if (!m)
2372
+ return null;
2373
+ const [, indent, , urlVar] = m;
2374
+ const oldText = line;
2375
+ const newText = [
2376
+ `${indent}// TODO: validate URL against allowlist to prevent SSRF`,
2377
+ `${indent}const __parsedUrl = new URL(${urlVar});`,
2378
+ `${indent}const __allowedHosts = (process.env.ALLOWED_HOSTS || "").split(",");`,
2379
+ `${indent}if (!__allowedHosts.includes(__parsedUrl.hostname)) { throw new Error("Blocked: host not in allowlist"); }`,
2380
+ `${indent}${line.trim()}`,
2381
+ ].join("\n");
2382
+ return { oldText, newText, startLine: findingLine, endLine: findingLine };
2383
+ },
2384
+ },
2385
+ // ── Insecure cookie → add secure flags ──
2386
+ {
2387
+ match: /insecure.*cookie|cookie.*secure.*flag|cookie.*httponly|session.*cookie.*flag/i,
2388
+ contextLines: 4,
2389
+ generate: (windowLines, windowStart, findingLine) => {
2390
+ const idx = findingLine - windowStart;
2391
+ if (idx < 0 || idx >= windowLines.length)
2392
+ return null;
2393
+ const line = windowLines[idx];
2394
+ const m = line.match(/^(\s*)res\.cookie\s*\(\s*["'](\w+)["']\s*,\s*(\S+)\s*\)\s*;?\s*$/);
2395
+ if (!m)
2396
+ return null;
2397
+ const [, indent, name, value] = m;
2398
+ const oldText = line;
2399
+ const newText = `${indent}res.cookie("${name}", ${value}, { httpOnly: true, secure: true, sameSite: "strict" });`;
2400
+ return { oldText, newText, startLine: findingLine, endLine: findingLine };
2401
+ },
2402
+ },
2403
+ // ── Java SQL injection → PreparedStatement ──
2404
+ {
2405
+ match: /sql.*inject|sql.*concatenat|jdbc.*inject/i,
2406
+ contextLines: 4,
2407
+ generate: (windowLines, windowStart, findingLine) => {
2408
+ const idx = findingLine - windowStart;
2409
+ if (idx < 0 || idx >= windowLines.length)
2410
+ return null;
2411
+ const line = windowLines[idx];
2412
+ const m = line.match(/^(\s*)(Statement\s+\w+\s*=\s*\w+\.createStatement\s*\(\s*\))\s*;?\s*$/);
2413
+ if (!m)
2414
+ return null;
2415
+ const [, indent] = m;
2416
+ // Look for executeQuery with concatenation on subsequent lines
2417
+ for (let j = idx + 1; j < Math.min(idx + 4, windowLines.length); j++) {
2418
+ const next = windowLines[j];
2419
+ const qm = next.match(/^(\s*)\w+\.executeQuery\s*\(\s*"([^"]+)"\s*\+\s*(\w+)/);
2420
+ if (!qm)
2421
+ continue;
2422
+ const [, , sql, param] = qm;
2423
+ const oldText = windowLines.slice(idx, j + 1).join("\n");
2424
+ const newText = [
2425
+ `${indent}PreparedStatement pstmt = conn.prepareStatement("${sql}?");`,
2426
+ `${indent}pstmt.setString(1, ${param});`,
2427
+ `${indent}ResultSet rs = pstmt.executeQuery();`,
2428
+ ].join("\n");
2429
+ return { oldText, newText, startLine: findingLine, endLine: windowStart + j };
2430
+ }
2431
+ return null;
2432
+ },
2433
+ },
2434
+ // ── Python f-string/format SQL → parameterized query ──
2435
+ {
2436
+ match: /sql.*inject|python.*sql.*format|f.*string.*sql/i,
2437
+ contextLines: 3,
2438
+ generate: (windowLines, windowStart, findingLine) => {
2439
+ const idx = findingLine - windowStart;
2440
+ if (idx < 0 || idx >= windowLines.length)
2441
+ return null;
2442
+ const line = windowLines[idx];
2443
+ const m = line.match(/^(\s*)(\w+)\.execute\s*\(\s*f["']([^"']*)\{(\w+)\}([^"']*)["']\s*\)/);
2444
+ if (!m)
2445
+ return null;
2446
+ const [, indent, cursor, sqlBefore, param, sqlAfter] = m;
2447
+ const oldText = line;
2448
+ const newText = `${indent}${cursor}.execute("${sqlBefore}%s${sqlAfter}", (${param},))`;
2449
+ return { oldText, newText, startLine: findingLine, endLine: findingLine };
2450
+ },
2451
+ },
2452
+ // ── Missing Content-Security-Policy header → add CSP ──
2453
+ {
2454
+ match: /content.*security.*policy|missing.*csp|csp.*header/i,
2455
+ contextLines: 5,
2456
+ generate: (windowLines, windowStart, findingLine) => {
2457
+ const idx = findingLine - windowStart;
2458
+ if (idx < 0 || idx >= windowLines.length)
2459
+ return null;
2460
+ const line = windowLines[idx];
2461
+ const m = line.match(/^(\s*)(const\s+app\s*=\s*express\s*\(\s*\)\s*;?\s*)$/);
2462
+ if (!m)
2463
+ return null;
2464
+ const [, indent, appInit] = m;
2465
+ const oldText = line;
2466
+ const newText = [
2467
+ `${indent}${appInit}`,
2468
+ `${indent}app.use((_req, res, next) => {`,
2469
+ `${indent} res.setHeader("Content-Security-Policy", "default-src 'self'"); // TODO: adjust CSP policy`,
2470
+ `${indent} next();`,
2471
+ `${indent}});`,
2472
+ ].join("\n");
2473
+ return { oldText, newText, startLine: findingLine, endLine: findingLine };
2474
+ },
2475
+ },
2476
+ // ── C# SQL injection → SqlParameter ──
2477
+ {
2478
+ match: /sql.*inject|csharp.*sql|ado.*net.*inject/i,
2479
+ contextLines: 3,
2480
+ generate: (windowLines, windowStart, findingLine) => {
2481
+ const idx = findingLine - windowStart;
2482
+ if (idx < 0 || idx >= windowLines.length)
2483
+ return null;
2484
+ const line = windowLines[idx];
2485
+ const m = line.match(/^(\s*)(?:var|string)\s+\w+\s*=\s*\$?"[^"]*"\s*\+\s*(\w+)\s*;/);
2486
+ if (!m)
2487
+ return null;
2488
+ // Look for SqlCommand nearby
2489
+ const window = windowLines.join("\n");
2490
+ if (!/SqlCommand|ExecuteReader|ExecuteNonQuery/.test(window))
2491
+ return null;
2492
+ const [, indent, param] = m;
2493
+ const oldText = line;
2494
+ const newText = [
2495
+ `${indent}// TODO: use parameterized queries instead of string concatenation`,
2496
+ `${indent}cmd.Parameters.AddWithValue("@param", ${param});`,
2497
+ ].join("\n");
2498
+ return { oldText, newText, startLine: findingLine, endLine: findingLine };
2499
+ },
2500
+ },
2274
2501
  ];
2275
2502
  export function enrichWithPatches(findings, code) {
2276
2503
  const lines = code.split("\n");