circle-ir 3.194.0 → 3.195.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 (39) hide show
  1. package/configs/README.md +39 -0
  2. package/dist/analysis/config-loader.d.ts.map +1 -1
  3. package/dist/analysis/config-loader.js +43 -3
  4. package/dist/analysis/config-loader.js.map +1 -1
  5. package/dist/analysis/passes/language-sources-pass.d.ts.map +1 -1
  6. package/dist/analysis/passes/language-sources-pass.js +101 -0
  7. package/dist/analysis/passes/language-sources-pass.js.map +1 -1
  8. package/dist/analysis/taint-matcher.d.ts.map +1 -1
  9. package/dist/analysis/taint-matcher.js +24 -8
  10. package/dist/analysis/taint-matcher.js.map +1 -1
  11. package/dist/browser/circle-ir.js +220 -600
  12. package/dist/core/circle-ir-core.cjs +59 -13
  13. package/dist/core/circle-ir-core.js +59 -13
  14. package/dist/languages/plugins/bash.d.ts.map +1 -1
  15. package/dist/languages/plugins/bash.js +12 -16
  16. package/dist/languages/plugins/bash.js.map +1 -1
  17. package/dist/languages/plugins/go.d.ts +4 -0
  18. package/dist/languages/plugins/go.d.ts.map +1 -1
  19. package/dist/languages/plugins/go.js +16 -32
  20. package/dist/languages/plugins/go.js.map +1 -1
  21. package/dist/languages/plugins/java.d.ts +9 -1
  22. package/dist/languages/plugins/java.d.ts.map +1 -1
  23. package/dist/languages/plugins/java.js +16 -127
  24. package/dist/languages/plugins/java.js.map +1 -1
  25. package/dist/languages/plugins/javascript.d.ts +7 -0
  26. package/dist/languages/plugins/javascript.d.ts.map +1 -1
  27. package/dist/languages/plugins/javascript.js +10 -117
  28. package/dist/languages/plugins/javascript.js.map +1 -1
  29. package/dist/languages/plugins/python.d.ts +7 -0
  30. package/dist/languages/plugins/python.d.ts.map +1 -1
  31. package/dist/languages/plugins/python.js +24 -177
  32. package/dist/languages/plugins/python.js.map +1 -1
  33. package/dist/languages/plugins/rust.d.ts +9 -0
  34. package/dist/languages/plugins/rust.d.ts.map +1 -1
  35. package/dist/languages/plugins/rust.js +22 -110
  36. package/dist/languages/plugins/rust.js.map +1 -1
  37. package/dist/types/config.d.ts +15 -0
  38. package/dist/types/config.d.ts.map +1 -1
  39. package/package.json +3 -2
@@ -10755,7 +10755,11 @@ var DEFAULT_SOURCES = [
10755
10755
  { method: "Json", type: "http_body", severity: "high", return_tainted: true, languages: ["rust"] },
10756
10756
  { method: "Query", type: "http_param", severity: "high", return_tainted: true, languages: ["rust"] },
10757
10757
  { method: "Path", type: "http_path", severity: "high", return_tainted: true, languages: ["rust"] },
10758
- { method: "Form", type: "http_param", severity: "high", return_tainted: true, languages: ["rust"] },
10758
+ // `Form<T>` decodes the urlencoded request *body* (`Query<T>` above is the
10759
+ // query-string extractor), so it is http_body — retyped from http_param
10760
+ // when the RustPlugin's http_body duplicate was removed, so the two
10761
+ // surfaces no longer disagree. Matches Gin's `Context.PostForm`.
10762
+ { method: "Form", type: "http_body", severity: "high", return_tainted: true, languages: ["rust"] },
10759
10763
  // Rust std library
10760
10764
  { method: "var", class: "env", type: "env_input", severity: "medium", return_tainted: true },
10761
10765
  { method: "var_os", class: "env", type: "env_input", severity: "medium", return_tainted: true },
@@ -12033,7 +12037,11 @@ var DEFAULT_SINKS = [
12033
12037
  // Also match without receiver (destructured imports: const { exec } = require('child_process'))
12034
12038
  // `exec` is intentionally classless: catches Node.js child_process.exec AND
12035
12039
  // Java Runtime.exec (via `r.exec()` where heuristic can't resolve r → Runtime).
12036
- { method: "exec", type: "command_injection", cwe: "CWE-78", severity: "high", arg_positions: [0] },
12040
+ // Excluded from Python: there, bare `exec(code)` is the code-execution
12041
+ // builtin, registered below as code_injection / CWE-94. Before the exclusion
12042
+ // a Python `exec(user_code)` matched both patterns and emitted two findings
12043
+ // for one call — CWE-78 (wrong: no shell is involved) and CWE-94 (right).
12044
+ { method: "exec", type: "command_injection", cwe: "CWE-78", severity: "high", arg_positions: [0], exclude_languages: ["python"] },
12037
12045
  // `execSync`/`spawn`/`spawnSync`/`execFile` are Node-specific — language-scope them.
12038
12046
  { method: "execSync", type: "command_injection", cwe: "CWE-78", severity: "high", arg_positions: [0], languages: ["javascript", "typescript"] },
12039
12047
  { method: "spawn", type: "command_injection", cwe: "CWE-78", severity: "high", arg_positions: [0], languages: ["javascript", "typescript"] },
@@ -12061,7 +12069,11 @@ var DEFAULT_SINKS = [
12061
12069
  // Note: classless { method: 'query' } removed — too many FPs (UriComponentsBuilder.query(), etc.)
12062
12070
  // SQL query calls are covered by class-specific patterns above (Connection, Pool, Client, JdbcTemplate)
12063
12071
  // Note: `raw` is shared with Python (Django ORM) — scoped to JS+TS to avoid leaking.
12064
- { method: "raw", type: "sql_injection", cwe: "CWE-89", severity: "high", arg_positions: [0], languages: ["javascript", "typescript"] },
12072
+ // Severity `critical` (not `high`) preserves what the JS plugin's duplicate
12073
+ // builtin emitted before the #4 follow-up consolidation removed it: the
12074
+ // plugin copy carried `critical`, which won the `findSinks` dedup slot via
12075
+ // the +0.1 critical-severity confidence boost.
12076
+ { method: "raw", type: "sql_injection", cwe: "CWE-89", severity: "critical", arg_positions: [0], languages: ["javascript", "typescript"] },
12065
12077
  // sqlite3 (npm) — Database/Statement methods. The JS plugin resolves
12066
12078
  // `const db = new sqlite3.Database(...); db.all(sql)` to the resolution
12067
12079
  // target `Connection.all`, so class-scoped patterns matching `Connection`
@@ -12620,10 +12632,30 @@ var DEFAULT_SINKS = [
12620
12632
  { method: "Sprintf", class: "fmt", type: "format_string", cwe: "CWE-134", severity: "medium", arg_positions: [0], languages: ["go"] },
12621
12633
  { method: "Printf", class: "fmt", type: "format_string", cwe: "CWE-134", severity: "medium", arg_positions: [0], languages: ["go"] },
12622
12634
  { method: "Errorf", class: "fmt", type: "format_string", cwe: "CWE-134", severity: "medium", arg_positions: [0], languages: ["go"] },
12635
+ // `fmt.Fprintf` is deliberately dual-classified: this CWE-134 entry and the
12636
+ // Go plugin's xss (CWE-79) entry both cover arg[1], so a tainted format
12637
+ // string emits two findings. Unlike the logger case above, neither is
12638
+ // redundant — CWE-134 holds for any writer, while CWE-79 is the actionable
12639
+ // finding when the writer is an http.ResponseWriter (`fmt.Fprintf(w, taint)`
12640
+ // is the standard Go reflected-XSS shape). Collapsing it requires deciding
12641
+ // by the *type of arg[0]*, which sink patterns cannot express today: the
12642
+ // options are a Go-specific gate (mirroring isSafeGoJsonUnmarshalCall) that
12643
+ // emits xss only for a resolved ResponseWriter, or dropping one CWE and
12644
+ // accepting either lost XSS recall or a mis-classified stderr write.
12645
+ // Left as-is pending the Go corpus run — see tasks.md.
12623
12646
  { method: "Fprintf", class: "fmt", type: "format_string", cwe: "CWE-134", severity: "medium", arg_positions: [1], languages: ["go"] },
12624
12647
  // cognium-dev #264 — Go stdlib `log` package format-string entry points.
12625
12648
  // log.Printf / Fatalf / Panicf take the format string at arg[0]; tainted
12626
12649
  // format string reaches the same fmt.Sprintf machinery internally.
12650
+ //
12651
+ // These deliberately coexist with the Go plugin's log_injection (CWE-117)
12652
+ // entries for the same methods, so such a call emits both. The Logger
12653
+ // decision note in the Java log_injection section above does NOT apply
12654
+ // here: it reasons about SLF4J-style APIs where the format string is a
12655
+ // literal with `{}` placeholders, whereas Go's `log.Printf(fmt, ...)` takes
12656
+ // a real format string that an attacker can control. CWE-117 covers the
12657
+ // forged log line, CWE-134 the format string itself. Locked by
12658
+ // tests/analysis/passes/format-string-additions.test.ts.
12627
12659
  { method: "Printf", class: "log", type: "format_string", cwe: "CWE-134", severity: "medium", arg_positions: [0], languages: ["go"] },
12628
12660
  { method: "Fatalf", class: "log", type: "format_string", cwe: "CWE-134", severity: "medium", arg_positions: [0], languages: ["go"] },
12629
12661
  { method: "Panicf", class: "log", type: "format_string", cwe: "CWE-134", severity: "medium", arg_positions: [0], languages: ["go"] },
@@ -12637,6 +12669,14 @@ var DEFAULT_SINKS = [
12637
12669
  { method: "cookie", type: "crlf", cwe: "CWE-113", severity: "medium", arg_positions: [1], languages: ["javascript", "typescript"] },
12638
12670
  // Express: res.location(url) and res.redirect(url) — Location header.
12639
12671
  { method: "location", type: "crlf", cwe: "CWE-113", severity: "medium", arg_positions: [0], languages: ["javascript", "typescript"] },
12672
+ // `redirect` is deliberately dual-classified: this crlf (CWE-113) entry
12673
+ // coexists with the open_redirect (CWE-601) entry for js/ts, so a tainted
12674
+ // redirect target emits two flows. That is intentional, not duplication —
12675
+ // #189 Sprint 82 shipped a sink-type-aware flow dedup specifically so both
12676
+ // survive ("res.redirect is both open_redirect AND crlf"), and #132 added a
12677
+ // crlf recall test for the bare `res.redirect(req.query.url)` shape. Locked
12678
+ // by issue-189-sprint82-open-redirect-cluster.test.ts and
12679
+ // crlf-stage8-fp.test.ts — do not collapse without revisiting both tickets.
12640
12680
  { method: "redirect", type: "crlf", cwe: "CWE-113", severity: "medium", arg_positions: [0], languages: ["javascript", "typescript"] },
12641
12681
  // Go net/http: w.Header().Set(k, v) / Add(k, v) — first arg is the value
12642
12682
  // (Header is a map; the actual `value` is arg 1 of the call). We flag the
@@ -13462,18 +13502,28 @@ function analyzeTaint(calls, types, config = getDefaultConfig(), typeHierarchy,
13462
13502
  const sanitizers = findSanitizers(calls, types, config.sanitizers, sourceLines);
13463
13503
  return { sources, sinks, sanitizers };
13464
13504
  }
13505
+ function sinkPatternAppliesTo(pattern, language) {
13506
+ if (language === void 0) return true;
13507
+ if (pattern.languages && pattern.languages.length > 0 && !pattern.languages.includes(language)) {
13508
+ return false;
13509
+ }
13510
+ if (pattern.exclude_languages && pattern.exclude_languages.includes(language)) {
13511
+ return false;
13512
+ }
13513
+ return true;
13514
+ }
13465
13515
  function expandPromisifyAliases(patterns, sourceLines, language) {
13466
13516
  if (!sourceLines || sourceLines.length === 0) return patterns;
13467
13517
  if (language !== "javascript" && language !== "typescript") return patterns;
13468
13518
  const PROMISIFY_RE = /\b(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*=\s*(?:util\s*\.\s*)?promisify\s*\(\s*([A-Za-z_$][\w$]*)\s*\)/;
13469
13519
  const innerToPattern = /* @__PURE__ */ new Map();
13470
13520
  for (const p of patterns) {
13471
- if (p.languages && !p.languages.includes(language)) continue;
13521
+ if (!sinkPatternAppliesTo(p, language)) continue;
13472
13522
  if (p.class !== void 0) continue;
13473
13523
  if (!innerToPattern.has(p.method)) innerToPattern.set(p.method, p);
13474
13524
  }
13475
13525
  for (const p of patterns) {
13476
- if (p.languages && !p.languages.includes(language)) continue;
13526
+ if (!sinkPatternAppliesTo(p, language)) continue;
13477
13527
  if (innerToPattern.has(p.method)) continue;
13478
13528
  innerToPattern.set(p.method, p);
13479
13529
  }
@@ -13507,7 +13557,7 @@ function expandIndirectEvalAliases(patterns, sourceLines, language) {
13507
13557
  const INDIRECT_EVAL_RE = /\b(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*(?::[^=]+)?=\s*(eval|Function)\b(?!\s*\()/;
13508
13558
  const innerToPattern = /* @__PURE__ */ new Map();
13509
13559
  for (const p of patterns) {
13510
- if (p.languages && !p.languages.includes(language)) continue;
13560
+ if (!sinkPatternAppliesTo(p, language)) continue;
13511
13561
  if (p.class !== void 0) continue;
13512
13562
  if (p.method !== "eval" && p.method !== "Function") continue;
13513
13563
  if (!innerToPattern.has(p.method)) innerToPattern.set(p.method, p);
@@ -14215,9 +14265,7 @@ function isSafeJinjaRenderCall(call, pattern, language, sourceLines) {
14215
14265
  return false;
14216
14266
  }
14217
14267
  function findSinks(calls, patterns, typeHierarchy, language, sourceLines, types) {
14218
- const patternsForLanguage = language === void 0 ? patterns : patterns.filter(
14219
- (p) => !p.languages || p.languages.length === 0 || p.languages.includes(language)
14220
- );
14268
+ const patternsForLanguage = language === void 0 ? patterns : patterns.filter((p) => sinkPatternAppliesTo(p, language));
14221
14269
  const sinkMap = /* @__PURE__ */ new Map();
14222
14270
  for (const call of calls) {
14223
14271
  for (const pattern of patternsForLanguage) {
@@ -14562,10 +14610,8 @@ var SINK_FQN_EXCLUSIONS = {
14562
14610
  ]
14563
14611
  };
14564
14612
  function matchesSinkPattern(call, pattern, typeHierarchy, language) {
14565
- if (pattern.languages && pattern.languages.length > 0 && language !== void 0) {
14566
- if (!pattern.languages.includes(language)) {
14567
- return false;
14568
- }
14613
+ if (!sinkPatternAppliesTo(pattern, language)) {
14614
+ return false;
14569
14615
  }
14570
14616
  const callMethodName = call.method_name;
14571
14617
  const patternMethod = pattern.method;
@@ -10689,7 +10689,11 @@ var DEFAULT_SOURCES = [
10689
10689
  { method: "Json", type: "http_body", severity: "high", return_tainted: true, languages: ["rust"] },
10690
10690
  { method: "Query", type: "http_param", severity: "high", return_tainted: true, languages: ["rust"] },
10691
10691
  { method: "Path", type: "http_path", severity: "high", return_tainted: true, languages: ["rust"] },
10692
- { method: "Form", type: "http_param", severity: "high", return_tainted: true, languages: ["rust"] },
10692
+ // `Form<T>` decodes the urlencoded request *body* (`Query<T>` above is the
10693
+ // query-string extractor), so it is http_body — retyped from http_param
10694
+ // when the RustPlugin's http_body duplicate was removed, so the two
10695
+ // surfaces no longer disagree. Matches Gin's `Context.PostForm`.
10696
+ { method: "Form", type: "http_body", severity: "high", return_tainted: true, languages: ["rust"] },
10693
10697
  // Rust std library
10694
10698
  { method: "var", class: "env", type: "env_input", severity: "medium", return_tainted: true },
10695
10699
  { method: "var_os", class: "env", type: "env_input", severity: "medium", return_tainted: true },
@@ -11967,7 +11971,11 @@ var DEFAULT_SINKS = [
11967
11971
  // Also match without receiver (destructured imports: const { exec } = require('child_process'))
11968
11972
  // `exec` is intentionally classless: catches Node.js child_process.exec AND
11969
11973
  // Java Runtime.exec (via `r.exec()` where heuristic can't resolve r → Runtime).
11970
- { method: "exec", type: "command_injection", cwe: "CWE-78", severity: "high", arg_positions: [0] },
11974
+ // Excluded from Python: there, bare `exec(code)` is the code-execution
11975
+ // builtin, registered below as code_injection / CWE-94. Before the exclusion
11976
+ // a Python `exec(user_code)` matched both patterns and emitted two findings
11977
+ // for one call — CWE-78 (wrong: no shell is involved) and CWE-94 (right).
11978
+ { method: "exec", type: "command_injection", cwe: "CWE-78", severity: "high", arg_positions: [0], exclude_languages: ["python"] },
11971
11979
  // `execSync`/`spawn`/`spawnSync`/`execFile` are Node-specific — language-scope them.
11972
11980
  { method: "execSync", type: "command_injection", cwe: "CWE-78", severity: "high", arg_positions: [0], languages: ["javascript", "typescript"] },
11973
11981
  { method: "spawn", type: "command_injection", cwe: "CWE-78", severity: "high", arg_positions: [0], languages: ["javascript", "typescript"] },
@@ -11995,7 +12003,11 @@ var DEFAULT_SINKS = [
11995
12003
  // Note: classless { method: 'query' } removed — too many FPs (UriComponentsBuilder.query(), etc.)
11996
12004
  // SQL query calls are covered by class-specific patterns above (Connection, Pool, Client, JdbcTemplate)
11997
12005
  // Note: `raw` is shared with Python (Django ORM) — scoped to JS+TS to avoid leaking.
11998
- { method: "raw", type: "sql_injection", cwe: "CWE-89", severity: "high", arg_positions: [0], languages: ["javascript", "typescript"] },
12006
+ // Severity `critical` (not `high`) preserves what the JS plugin's duplicate
12007
+ // builtin emitted before the #4 follow-up consolidation removed it: the
12008
+ // plugin copy carried `critical`, which won the `findSinks` dedup slot via
12009
+ // the +0.1 critical-severity confidence boost.
12010
+ { method: "raw", type: "sql_injection", cwe: "CWE-89", severity: "critical", arg_positions: [0], languages: ["javascript", "typescript"] },
11999
12011
  // sqlite3 (npm) — Database/Statement methods. The JS plugin resolves
12000
12012
  // `const db = new sqlite3.Database(...); db.all(sql)` to the resolution
12001
12013
  // target `Connection.all`, so class-scoped patterns matching `Connection`
@@ -12554,10 +12566,30 @@ var DEFAULT_SINKS = [
12554
12566
  { method: "Sprintf", class: "fmt", type: "format_string", cwe: "CWE-134", severity: "medium", arg_positions: [0], languages: ["go"] },
12555
12567
  { method: "Printf", class: "fmt", type: "format_string", cwe: "CWE-134", severity: "medium", arg_positions: [0], languages: ["go"] },
12556
12568
  { method: "Errorf", class: "fmt", type: "format_string", cwe: "CWE-134", severity: "medium", arg_positions: [0], languages: ["go"] },
12569
+ // `fmt.Fprintf` is deliberately dual-classified: this CWE-134 entry and the
12570
+ // Go plugin's xss (CWE-79) entry both cover arg[1], so a tainted format
12571
+ // string emits two findings. Unlike the logger case above, neither is
12572
+ // redundant — CWE-134 holds for any writer, while CWE-79 is the actionable
12573
+ // finding when the writer is an http.ResponseWriter (`fmt.Fprintf(w, taint)`
12574
+ // is the standard Go reflected-XSS shape). Collapsing it requires deciding
12575
+ // by the *type of arg[0]*, which sink patterns cannot express today: the
12576
+ // options are a Go-specific gate (mirroring isSafeGoJsonUnmarshalCall) that
12577
+ // emits xss only for a resolved ResponseWriter, or dropping one CWE and
12578
+ // accepting either lost XSS recall or a mis-classified stderr write.
12579
+ // Left as-is pending the Go corpus run — see tasks.md.
12557
12580
  { method: "Fprintf", class: "fmt", type: "format_string", cwe: "CWE-134", severity: "medium", arg_positions: [1], languages: ["go"] },
12558
12581
  // cognium-dev #264 — Go stdlib `log` package format-string entry points.
12559
12582
  // log.Printf / Fatalf / Panicf take the format string at arg[0]; tainted
12560
12583
  // format string reaches the same fmt.Sprintf machinery internally.
12584
+ //
12585
+ // These deliberately coexist with the Go plugin's log_injection (CWE-117)
12586
+ // entries for the same methods, so such a call emits both. The Logger
12587
+ // decision note in the Java log_injection section above does NOT apply
12588
+ // here: it reasons about SLF4J-style APIs where the format string is a
12589
+ // literal with `{}` placeholders, whereas Go's `log.Printf(fmt, ...)` takes
12590
+ // a real format string that an attacker can control. CWE-117 covers the
12591
+ // forged log line, CWE-134 the format string itself. Locked by
12592
+ // tests/analysis/passes/format-string-additions.test.ts.
12561
12593
  { method: "Printf", class: "log", type: "format_string", cwe: "CWE-134", severity: "medium", arg_positions: [0], languages: ["go"] },
12562
12594
  { method: "Fatalf", class: "log", type: "format_string", cwe: "CWE-134", severity: "medium", arg_positions: [0], languages: ["go"] },
12563
12595
  { method: "Panicf", class: "log", type: "format_string", cwe: "CWE-134", severity: "medium", arg_positions: [0], languages: ["go"] },
@@ -12571,6 +12603,14 @@ var DEFAULT_SINKS = [
12571
12603
  { method: "cookie", type: "crlf", cwe: "CWE-113", severity: "medium", arg_positions: [1], languages: ["javascript", "typescript"] },
12572
12604
  // Express: res.location(url) and res.redirect(url) — Location header.
12573
12605
  { method: "location", type: "crlf", cwe: "CWE-113", severity: "medium", arg_positions: [0], languages: ["javascript", "typescript"] },
12606
+ // `redirect` is deliberately dual-classified: this crlf (CWE-113) entry
12607
+ // coexists with the open_redirect (CWE-601) entry for js/ts, so a tainted
12608
+ // redirect target emits two flows. That is intentional, not duplication —
12609
+ // #189 Sprint 82 shipped a sink-type-aware flow dedup specifically so both
12610
+ // survive ("res.redirect is both open_redirect AND crlf"), and #132 added a
12611
+ // crlf recall test for the bare `res.redirect(req.query.url)` shape. Locked
12612
+ // by issue-189-sprint82-open-redirect-cluster.test.ts and
12613
+ // crlf-stage8-fp.test.ts — do not collapse without revisiting both tickets.
12574
12614
  { method: "redirect", type: "crlf", cwe: "CWE-113", severity: "medium", arg_positions: [0], languages: ["javascript", "typescript"] },
12575
12615
  // Go net/http: w.Header().Set(k, v) / Add(k, v) — first arg is the value
12576
12616
  // (Header is a map; the actual `value` is arg 1 of the call). We flag the
@@ -13396,18 +13436,28 @@ function analyzeTaint(calls, types, config = getDefaultConfig(), typeHierarchy,
13396
13436
  const sanitizers = findSanitizers(calls, types, config.sanitizers, sourceLines);
13397
13437
  return { sources, sinks, sanitizers };
13398
13438
  }
13439
+ function sinkPatternAppliesTo(pattern, language) {
13440
+ if (language === void 0) return true;
13441
+ if (pattern.languages && pattern.languages.length > 0 && !pattern.languages.includes(language)) {
13442
+ return false;
13443
+ }
13444
+ if (pattern.exclude_languages && pattern.exclude_languages.includes(language)) {
13445
+ return false;
13446
+ }
13447
+ return true;
13448
+ }
13399
13449
  function expandPromisifyAliases(patterns, sourceLines, language) {
13400
13450
  if (!sourceLines || sourceLines.length === 0) return patterns;
13401
13451
  if (language !== "javascript" && language !== "typescript") return patterns;
13402
13452
  const PROMISIFY_RE = /\b(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*=\s*(?:util\s*\.\s*)?promisify\s*\(\s*([A-Za-z_$][\w$]*)\s*\)/;
13403
13453
  const innerToPattern = /* @__PURE__ */ new Map();
13404
13454
  for (const p of patterns) {
13405
- if (p.languages && !p.languages.includes(language)) continue;
13455
+ if (!sinkPatternAppliesTo(p, language)) continue;
13406
13456
  if (p.class !== void 0) continue;
13407
13457
  if (!innerToPattern.has(p.method)) innerToPattern.set(p.method, p);
13408
13458
  }
13409
13459
  for (const p of patterns) {
13410
- if (p.languages && !p.languages.includes(language)) continue;
13460
+ if (!sinkPatternAppliesTo(p, language)) continue;
13411
13461
  if (innerToPattern.has(p.method)) continue;
13412
13462
  innerToPattern.set(p.method, p);
13413
13463
  }
@@ -13441,7 +13491,7 @@ function expandIndirectEvalAliases(patterns, sourceLines, language) {
13441
13491
  const INDIRECT_EVAL_RE = /\b(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*(?::[^=]+)?=\s*(eval|Function)\b(?!\s*\()/;
13442
13492
  const innerToPattern = /* @__PURE__ */ new Map();
13443
13493
  for (const p of patterns) {
13444
- if (p.languages && !p.languages.includes(language)) continue;
13494
+ if (!sinkPatternAppliesTo(p, language)) continue;
13445
13495
  if (p.class !== void 0) continue;
13446
13496
  if (p.method !== "eval" && p.method !== "Function") continue;
13447
13497
  if (!innerToPattern.has(p.method)) innerToPattern.set(p.method, p);
@@ -14149,9 +14199,7 @@ function isSafeJinjaRenderCall(call, pattern, language, sourceLines) {
14149
14199
  return false;
14150
14200
  }
14151
14201
  function findSinks(calls, patterns, typeHierarchy, language, sourceLines, types) {
14152
- const patternsForLanguage = language === void 0 ? patterns : patterns.filter(
14153
- (p) => !p.languages || p.languages.length === 0 || p.languages.includes(language)
14154
- );
14202
+ const patternsForLanguage = language === void 0 ? patterns : patterns.filter((p) => sinkPatternAppliesTo(p, language));
14155
14203
  const sinkMap = /* @__PURE__ */ new Map();
14156
14204
  for (const call of calls) {
14157
14205
  for (const pattern of patternsForLanguage) {
@@ -14496,10 +14544,8 @@ var SINK_FQN_EXCLUSIONS = {
14496
14544
  ]
14497
14545
  };
14498
14546
  function matchesSinkPattern(call, pattern, typeHierarchy, language) {
14499
- if (pattern.languages && pattern.languages.length > 0 && language !== void 0) {
14500
- if (!pattern.languages.includes(language)) {
14501
- return false;
14502
- }
14547
+ if (!sinkPatternAppliesTo(pattern, language)) {
14548
+ return false;
14503
14549
  }
14504
14550
  const callMethodName = call.method_name;
14505
14551
  const patternMethod = pattern.method;
@@ -1 +1 @@
1
- {"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../../src/languages/plugins/bash.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,UAAU,EACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C;;GAEG;AACH,qBAAa,UAAW,SAAQ,kBAAkB;IAChD,QAAQ,CAAC,EAAE,EAAG,MAAM,CAAU;IAC9B,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,UAAU,WAAoC;IACvD,QAAQ,CAAC,QAAQ,2BAA2B;IAE5C,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CA+BnC;IAEF;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,iBAAiB,GAAG,aAAa,GAAG,SAAS;IAIvE;;;;OAIG;IACH,iBAAiB,IAAI,kBAAkB,EAAE;IA6BzC;;;;OAIG;IACH,eAAe,IAAI,gBAAgB,EAAE;IAoJrC;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS;IAInF;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAQ1C;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS;IAqBpD,YAAY,CAAC,QAAQ,EAAE,iBAAiB,GAAG,QAAQ,EAAE;IAIrD,YAAY,CAAC,QAAQ,EAAE,iBAAiB,GAAG,QAAQ,EAAE;IAIrD,cAAc,CAAC,QAAQ,EAAE,iBAAiB,GAAG,UAAU,EAAE;IAIzD,cAAc,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS;CAGhE"}
1
+ {"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../../src/languages/plugins/bash.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,UAAU,EACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C;;GAEG;AACH,qBAAa,UAAW,SAAQ,kBAAkB;IAChD,QAAQ,CAAC,EAAE,EAAG,MAAM,CAAU;IAC9B,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,UAAU,WAAoC;IACvD,QAAQ,CAAC,QAAQ,2BAA2B;IAE5C,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CA+BnC;IAEF;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,iBAAiB,GAAG,aAAa,GAAG,SAAS;IAIvE;;;;OAIG;IACH,iBAAiB,IAAI,kBAAkB,EAAE;IA4BzC;;;;OAIG;IACH,eAAe,IAAI,gBAAgB,EAAE;IAiJrC;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS;IAInF;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAQ1C;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS;IAqBpD,YAAY,CAAC,QAAQ,EAAE,iBAAiB,GAAG,QAAQ,EAAE;IAIrD,YAAY,CAAC,QAAQ,EAAE,iBAAiB,GAAG,QAAQ,EAAE;IAIrD,cAAc,CAAC,QAAQ,EAAE,iBAAiB,GAAG,UAAU,EAAE;IAIzD,cAAc,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS;CAGhE"}
@@ -52,14 +52,13 @@ export class BashPlugin extends BaseLanguagePlugin {
52
52
  */
53
53
  getBuiltinSources() {
54
54
  return [
55
- // read built-in reads user input from stdin.
56
- {
57
- method: 'read',
58
- type: 'io_input',
59
- severity: 'high',
60
- confidence: 0.9,
61
- returnTainted: true,
62
- },
55
+ // NOTE: no `read` entry here. The `read` builtin is covered precisely by
56
+ // `findBashTaintSources` (language-sources-pass, #213 slice 3), which
57
+ // emits `io_input` *with the bound variable name* for `read x`,
58
+ // `read -p "…" x`, `read -a arr`, bare `read` → `$REPLY`, etc. This
59
+ // pattern-based duplicate added a second, variable-less source on the
60
+ // same line, and typed it differently from the classless `read`
61
+ // (file_input) entry in DEFAULT_SOURCES that it collided with.
63
62
  // curl/wget output as taint sources for supply-chain attack patterns
64
63
  // (e.g., curl ... | sh, $(curl ...) piped to eval/bash).
65
64
  {
@@ -85,14 +84,11 @@ export class BashPlugin extends BaseLanguagePlugin {
85
84
  */
86
85
  getBuiltinSinks() {
87
86
  return [
88
- // Code / command injection via eval
89
- {
90
- method: 'eval',
91
- type: 'code_injection',
92
- cwe: 'CWE-94',
93
- severity: 'critical',
94
- argPositions: [0],
95
- },
87
+ // NOTE: classless `eval` (CWE-94, critical) is registered unscoped in
88
+ // DEFAULT_SINKS and already covers Bash; the duplicate builtin that used
89
+ // to sit here never won the findSinks dedup slot (equal confidence, the
90
+ // config pattern iterates first). Removed in the #4 follow-up
91
+ // consolidation — DEFAULT_SINKS is the canonical registry (ADR-004).
96
92
  // Command injection: spawning a sub-shell with -c flag
97
93
  {
98
94
  method: 'bash',
@@ -1 +1 @@
1
- {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../../src/languages/plugins/bash.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../../src/languages/plugins/bash.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,10 @@ export declare class GoPlugin extends BaseLanguagePlugin {
26
26
  getBuiltinSources(): TaintSourcePattern[];
27
27
  /**
28
28
  * Go taint sink patterns.
29
+ *
30
+ * Only patterns that have NO counterpart in `DEFAULT_SINKS` belong here —
31
+ * `DEFAULT_SINKS` (`analysis/config-loader.ts`) is the canonical registry
32
+ * (ADR-004). See the #4 follow-up consolidation note on the other plugins.
29
33
  */
30
34
  getBuiltinSinks(): TaintSinkPattern[];
31
35
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../../src/languages/plugins/go.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,UAAU,EACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C;;GAEG;AACH,qBAAa,QAAS,SAAQ,kBAAkB;IAC9C,QAAQ,CAAC,EAAE,EAAG,IAAI,CAAU;IAC5B,QAAQ,CAAC,IAAI,QAAQ;IACrB,QAAQ,CAAC,UAAU,WAAW;IAC9B,QAAQ,CAAC,QAAQ,yBAAyB;IAE1C,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CA+BnC;IAEF;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,GAAG,SAAS;IAwDtE;;OAEG;IACH,iBAAiB,IAAI,kBAAkB,EAAE;IAkHzC;;OAEG;IACH,eAAe,IAAI,gBAAgB,EAAE;IAiTrC;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS;IAiBlF;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAK1C;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS;IAkBpD;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG,QAAQ,EAAE;IA0FpD;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG,QAAQ,EAAE;IAsDpD;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,EAAE;IA6BxD;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS;IAkB9D,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,eAAe;CAiBxB"}
1
+ {"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../../src/languages/plugins/go.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,UAAU,EACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C;;GAEG;AACH,qBAAa,QAAS,SAAQ,kBAAkB;IAC9C,QAAQ,CAAC,EAAE,EAAG,IAAI,CAAU;IAC5B,QAAQ,CAAC,IAAI,QAAQ;IACrB,QAAQ,CAAC,UAAU,WAAW;IAC9B,QAAQ,CAAC,QAAQ,yBAAyB;IAE1C,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CA+BnC;IAEF;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,GAAG,SAAS;IAwDtE;;OAEG;IACH,iBAAiB,IAAI,kBAAkB,EAAE;IAmGzC;;;;;;OAMG;IACH,eAAe,IAAI,gBAAgB,EAAE;IA4SrC;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS;IAiBlF;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAK1C;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS;IAkBpD;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG,QAAQ,EAAE;IA0FpD;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG,QAAQ,EAAE;IAsDpD;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,EAAE;IA6BxD;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS;IAkB9D,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,eAAe;CAiBxB"}
@@ -135,30 +135,15 @@ export class GoPlugin extends BaseLanguagePlugin {
135
135
  returnTainted: true,
136
136
  },
137
137
  // Gin framework
138
- {
139
- method: 'Query',
140
- class: 'Context',
141
- type: 'http_param',
142
- severity: 'high',
143
- confidence: 0.95,
144
- returnTainted: true,
145
- },
146
- {
147
- method: 'Param',
148
- class: 'Context',
149
- type: 'http_path',
150
- severity: 'high',
151
- confidence: 0.95,
152
- returnTainted: true,
153
- },
154
- {
155
- method: 'PostForm',
156
- class: 'Context',
157
- type: 'http_param',
158
- severity: 'high',
159
- confidence: 0.95,
160
- returnTainted: true,
161
- },
138
+ // NOTE: `Context.Query` (http_param) and `Context.Param` (http_path) are
139
+ // registered identically in DEFAULT_SOURCES; the duplicates here emitted
140
+ // a second, byte-identical source at every call site (`findSources` has
141
+ // no dedup). Removed in the #4 follow-up consolidation — DEFAULT_SOURCES
142
+ // is the canonical registry (ADR-004). `PostForm` stays because the two
143
+ // `Context.PostForm` is registered in DEFAULT_SOURCES as `http_body`,
144
+ // which is the accurate type — Gin reads it from the POST body, not the
145
+ // query string. The duplicate that used to sit here typed it
146
+ // `http_param`, so one call emitted two sources with different types.
162
147
  {
163
148
  method: 'GetRawData',
164
149
  class: 'Context',
@@ -204,6 +189,10 @@ export class GoPlugin extends BaseLanguagePlugin {
204
189
  }
205
190
  /**
206
191
  * Go taint sink patterns.
192
+ *
193
+ * Only patterns that have NO counterpart in `DEFAULT_SINKS` belong here —
194
+ * `DEFAULT_SINKS` (`analysis/config-loader.ts`) is the canonical registry
195
+ * (ADR-004). See the #4 follow-up consolidation note on the other plugins.
207
196
  */
208
197
  getBuiltinSinks() {
209
198
  return [
@@ -380,14 +369,9 @@ export class GoPlugin extends BaseLanguagePlugin {
380
369
  severity: 'medium',
381
370
  argPositions: [0],
382
371
  },
383
- {
384
- method: 'Decode',
385
- class: 'Decoder',
386
- type: 'deserialization',
387
- cwe: 'CWE-502',
388
- severity: 'medium',
389
- argPositions: [0],
390
- },
372
+ // NOTE: `Decoder.Decode` (CWE-502) lives in DEFAULT_SINKS at severity
373
+ // `high`, which outranked this duplicate's `medium` in the findSinks
374
+ // dedup — removed in the #4 follow-up consolidation.
391
375
  // Log Injection — `log.Printf("event=%s", userInput)` allows
392
376
  // CRLF/log forging when the format string interpolates user data.
393
377
  // CWE-117. (cognium-dev #107)
@@ -1 +1 @@
1
- {"version":3,"file":"go.js","sourceRoot":"","sources":["../../../src/languages/plugins/go.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"go.js","sourceRoot":"","sources":["../../../src/languages/plugins/go.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,15 @@ export declare class JavaPlugin extends BaseLanguagePlugin {
29
29
  getBuiltinSources(): TaintSourcePattern[];
30
30
  /**
31
31
  * Java-specific taint sink patterns.
32
- * These supplement the YAML configuration.
32
+ *
33
+ * Only patterns that have NO counterpart in `DEFAULT_SINKS` belong here —
34
+ * `DEFAULT_SINKS` (`analysis/config-loader.ts`) is the canonical registry
35
+ * (ADR-004). Duplicated entries were dead weight: `TaintMatcherPass` merges
36
+ * plugin builtins *after* the config patterns, and `findSinks` dedupes by
37
+ * `location:line:cwe` keeping the higher-confidence match, so the config
38
+ * copy always won the slot. Removed in the #4 follow-up consolidation
39
+ * (`Statement.execute*`, `Runtime.exec`, `ProcessBuilder.start`,
40
+ * `PrintWriter.write/println`, `DirContext.search`, `XPath.evaluate`).
33
41
  */
34
42
  getBuiltinSinks(): TaintSinkPattern[];
35
43
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"java.d.ts","sourceRoot":"","sources":["../../../src/languages/plugins/java.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,IAAI,UAAU,EAAQ,MAAM,iBAAiB,CAAC;AAChE,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,UAAU,EACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C;;GAEG;AACH,qBAAa,UAAW,SAAQ,kBAAkB;IAChD,QAAQ,CAAC,EAAE,EAAG,MAAM,CAAU;IAC9B,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,UAAU,WAAa;IAChC,QAAQ,CAAC,QAAQ,2BAA2B;IAE5C,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CA+BnC;IAEF,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4C;IAE1E;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,GAAG,SAAS;IAoDtE;;;OAGG;IACH,iBAAiB,IAAI,kBAAkB,EAAE;IAgIzC;;;OAGG;IACH,eAAe,IAAI,gBAAgB,EAAE;IAgHrC;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAyCvB;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS;IAoBjF;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAI1C;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS;IAapD,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG,QAAQ,EAAE;IAKpD,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG,QAAQ,EAAE;IAKpD,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,EAAE;IAKxD,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS;CAqB/D"}
1
+ {"version":3,"file":"java.d.ts","sourceRoot":"","sources":["../../../src/languages/plugins/java.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,IAAI,UAAU,EAAQ,MAAM,iBAAiB,CAAC;AAChE,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,UAAU,EACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C;;GAEG;AACH,qBAAa,UAAW,SAAQ,kBAAkB;IAChD,QAAQ,CAAC,EAAE,EAAG,MAAM,CAAU;IAC9B,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,UAAU,WAAa;IAChC,QAAQ,CAAC,QAAQ,2BAA2B;IAE5C,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CA+BnC;IAEF,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4C;IAE1E;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,GAAG,SAAS;IAoDtE;;;OAGG;IACH,iBAAiB,IAAI,kBAAkB,EAAE;IAsFzC;;;;;;;;;;;OAWG;IACH,eAAe,IAAI,gBAAgB,EAAE;IA8BrC;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAyCvB;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS;IAoBjF;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAI1C;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS;IAapD,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG,QAAQ,EAAE;IAKpD,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG,QAAQ,EAAE;IAKpD,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,EAAE;IAKxD,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS;CAqB/D"}