circle-ir 3.154.0 → 3.155.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 (32) hide show
  1. package/configs/sinks/code_injection.yaml +2 -1
  2. package/configs/sinks/javascript_dom_xss.yaml +4 -2
  3. package/configs/sinks/xpath.yaml +40 -0
  4. package/dist/analysis/config-loader.d.ts.map +1 -1
  5. package/dist/analysis/config-loader.js +3 -0
  6. package/dist/analysis/config-loader.js.map +1 -1
  7. package/dist/analysis/dfg-walk.d.ts +36 -0
  8. package/dist/analysis/dfg-walk.d.ts.map +1 -0
  9. package/dist/analysis/dfg-walk.js +59 -0
  10. package/dist/analysis/dfg-walk.js.map +1 -0
  11. package/dist/analysis/passes/language-sources-pass.d.ts.map +1 -1
  12. package/dist/analysis/passes/language-sources-pass.js +22 -0
  13. package/dist/analysis/passes/language-sources-pass.js.map +1 -1
  14. package/dist/analysis/passes/weak-crypto-pass.d.ts.map +1 -1
  15. package/dist/analysis/passes/weak-crypto-pass.js +6 -0
  16. package/dist/analysis/passes/weak-crypto-pass.js.map +1 -1
  17. package/dist/analysis/path-classification.d.ts +24 -0
  18. package/dist/analysis/path-classification.d.ts.map +1 -0
  19. package/dist/analysis/path-classification.js +69 -0
  20. package/dist/analysis/path-classification.js.map +1 -0
  21. package/dist/analysis/taint-propagation.d.ts +17 -1
  22. package/dist/analysis/taint-propagation.d.ts.map +1 -1
  23. package/dist/analysis/taint-propagation.js +47 -16
  24. package/dist/analysis/taint-propagation.js.map +1 -1
  25. package/dist/browser/circle-ir.js +138 -12
  26. package/dist/core/circle-ir-core.cjs +93 -12
  27. package/dist/core/circle-ir-core.js +93 -12
  28. package/dist/graph/code-graph.d.ts +7 -0
  29. package/dist/graph/code-graph.d.ts.map +1 -1
  30. package/dist/graph/code-graph.js +17 -0
  31. package/dist/graph/code-graph.js.map +1 -1
  32. package/package.json +1 -1
@@ -12297,6 +12297,9 @@ var DEFAULT_SANITIZERS = [
12297
12297
  { method: "parseDouble", class: "Double", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
12298
12298
  { method: "parseShort", class: "Short", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
12299
12299
  { method: "parseByte", class: "Byte", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
12300
+ // cognium-dev #238 A.3 — parseBoolean and expanded coercion coverage for XSS/CRLF/log/xpath/ldap/xxe.
12301
+ // A parsed boolean/numeric cannot carry a string-injection payload for any string-based sink.
12302
+ { method: "parseBoolean", class: "Boolean", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection", "xss", "crlf", "log_injection", "xpath_injection", "ldap_injection", "xxe"] },
12300
12303
  // Java UUID parse — UUID.fromString rejects non-UUID strings
12301
12304
  { method: "fromString", class: "UUID", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
12302
12305
  // JavaScript numeric coercion (Number/parseInt/parseFloat already covered above; add path_traversal/code_injection)
@@ -14046,6 +14049,23 @@ var CodeGraph = class {
14046
14049
  }
14047
14050
  return this._chainsByFromDef;
14048
14051
  }
14052
+ /**
14053
+ * Mirror of chainsByFromDef keyed by chain.to_def. Enables backward
14054
+ * walks from a use's reaching def to earlier defs in the chain
14055
+ * (cognium-dev #238 — DFG-walk sanitizer credit).
14056
+ */
14057
+ _chainsByToDef = null;
14058
+ get chainsByToDef() {
14059
+ if (!this._chainsByToDef) {
14060
+ this._chainsByToDef = /* @__PURE__ */ new Map();
14061
+ for (const chain of this.ir.dfg.chains ?? []) {
14062
+ const arr = this._chainsByToDef.get(chain.to_def) ?? [];
14063
+ arr.push(chain);
14064
+ this._chainsByToDef.set(chain.to_def, arr);
14065
+ }
14066
+ }
14067
+ return this._chainsByToDef;
14068
+ }
14049
14069
  // ---------------------------------------------------------------------------
14050
14070
  // Call indexes
14051
14071
  // ---------------------------------------------------------------------------
@@ -14216,6 +14236,43 @@ var CodeGraph = class {
14216
14236
  }
14217
14237
  };
14218
14238
 
14239
+ // src/analysis/dfg-walk.ts
14240
+ function walkBackwardDefs(startDefId, chainsByToDef, defById, options = {}) {
14241
+ const maxHops = options.maxHops ?? 32;
14242
+ const visited = /* @__PURE__ */ new Set();
14243
+ const lines = /* @__PURE__ */ new Set();
14244
+ let hopCapReached = false;
14245
+ const startDef = defById.get(startDefId);
14246
+ if (!startDef) {
14247
+ return { visited, lines, hopCapReached: false };
14248
+ }
14249
+ visited.add(startDefId);
14250
+ lines.add(startDef.line);
14251
+ const queue = [startDefId];
14252
+ let hops = 0;
14253
+ while (queue.length > 0) {
14254
+ if (hops >= maxHops) {
14255
+ hopCapReached = true;
14256
+ break;
14257
+ }
14258
+ hops++;
14259
+ const currentId = queue.shift();
14260
+ const incoming = chainsByToDef.get(currentId);
14261
+ if (!incoming) continue;
14262
+ for (const chain of incoming) {
14263
+ const fromId = chain.from_def;
14264
+ if (visited.has(fromId)) continue;
14265
+ visited.add(fromId);
14266
+ const fromDef = defById.get(fromId);
14267
+ if (fromDef) {
14268
+ lines.add(fromDef.line);
14269
+ }
14270
+ queue.push(fromId);
14271
+ }
14272
+ }
14273
+ return { visited, lines, hopCapReached };
14274
+ }
14275
+
14219
14276
  // src/analysis/taint-propagation.ts
14220
14277
  function buildSanitizersByLine(sanitizers) {
14221
14278
  const out2 = /* @__PURE__ */ new Map();
@@ -14303,7 +14360,12 @@ function propagateTaint(graphOrDfg, callsOrSources, sourcesOrSinks, sinksOrSanit
14303
14360
  taintInfo.line,
14304
14361
  sink.line,
14305
14362
  sink.type,
14306
- sanitizersByLine
14363
+ sanitizersByLine,
14364
+ {
14365
+ startDefId: use.def_id,
14366
+ chainsByToDef: graph.chainsByToDef,
14367
+ defById
14368
+ }
14307
14369
  );
14308
14370
  if (!isSanitized.sanitized) {
14309
14371
  const source = sources.find((s) => s.line === taintInfo.sourceLine);
@@ -14441,20 +14503,39 @@ var KNOWN_SINK_TYPES = /* @__PURE__ */ new Set([
14441
14503
  "crlf",
14442
14504
  "mass_assignment"
14443
14505
  ]);
14444
- function checkSanitized(_fromLine, toLine, sinkType, sanitizersByLine) {
14445
- const sanitizersAtTarget = sanitizersByLine.get(toLine);
14446
- if (!sanitizersAtTarget || sanitizersAtTarget.length === 0) {
14447
- return { sanitized: false };
14448
- }
14506
+ function checkSanitized(_fromLine, toLine, sinkType, sanitizersByLine, ctx) {
14449
14507
  const isKnownSinkType = KNOWN_SINK_TYPES.has(sinkType);
14450
- for (const san of sanitizersAtTarget) {
14451
- if (isKnownSinkType) {
14452
- if (san.sanitizes.includes(sinkType)) {
14508
+ const sanitizersAtTarget = sanitizersByLine.get(toLine);
14509
+ if (sanitizersAtTarget && sanitizersAtTarget.length > 0) {
14510
+ for (const san of sanitizersAtTarget) {
14511
+ if (isKnownSinkType) {
14512
+ if (san.sanitizes.includes(sinkType)) {
14513
+ return { sanitized: true, sanitizer: san };
14514
+ }
14515
+ } else if (san.sanitizes.length > 0) {
14453
14516
  return { sanitized: true, sanitizer: san };
14454
14517
  }
14455
- } else {
14456
- if (san.sanitizes.length > 0) {
14457
- return { sanitized: true, sanitizer: san };
14518
+ }
14519
+ }
14520
+ if (ctx) {
14521
+ const walk = walkBackwardDefs(
14522
+ ctx.startDefId,
14523
+ ctx.chainsByToDef,
14524
+ ctx.defById,
14525
+ { maxHops: ctx.maxHops ?? 32 }
14526
+ );
14527
+ for (const line of walk.lines) {
14528
+ if (line === toLine) continue;
14529
+ const sansAtLine = sanitizersByLine.get(line);
14530
+ if (!sansAtLine || sansAtLine.length === 0) continue;
14531
+ for (const san of sansAtLine) {
14532
+ if (isKnownSinkType) {
14533
+ if (san.sanitizes.includes(sinkType)) {
14534
+ return { sanitized: true, sanitizer: san };
14535
+ }
14536
+ } else if (san.sanitizes.length > 0) {
14537
+ return { sanitized: true, sanitizer: san };
14538
+ }
14458
14539
  }
14459
14540
  }
14460
14541
  }
@@ -12231,6 +12231,9 @@ var DEFAULT_SANITIZERS = [
12231
12231
  { method: "parseDouble", class: "Double", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
12232
12232
  { method: "parseShort", class: "Short", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
12233
12233
  { method: "parseByte", class: "Byte", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
12234
+ // cognium-dev #238 A.3 — parseBoolean and expanded coercion coverage for XSS/CRLF/log/xpath/ldap/xxe.
12235
+ // A parsed boolean/numeric cannot carry a string-injection payload for any string-based sink.
12236
+ { method: "parseBoolean", class: "Boolean", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection", "xss", "crlf", "log_injection", "xpath_injection", "ldap_injection", "xxe"] },
12234
12237
  // Java UUID parse — UUID.fromString rejects non-UUID strings
12235
12238
  { method: "fromString", class: "UUID", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
12236
12239
  // JavaScript numeric coercion (Number/parseInt/parseFloat already covered above; add path_traversal/code_injection)
@@ -13980,6 +13983,23 @@ var CodeGraph = class {
13980
13983
  }
13981
13984
  return this._chainsByFromDef;
13982
13985
  }
13986
+ /**
13987
+ * Mirror of chainsByFromDef keyed by chain.to_def. Enables backward
13988
+ * walks from a use's reaching def to earlier defs in the chain
13989
+ * (cognium-dev #238 — DFG-walk sanitizer credit).
13990
+ */
13991
+ _chainsByToDef = null;
13992
+ get chainsByToDef() {
13993
+ if (!this._chainsByToDef) {
13994
+ this._chainsByToDef = /* @__PURE__ */ new Map();
13995
+ for (const chain of this.ir.dfg.chains ?? []) {
13996
+ const arr = this._chainsByToDef.get(chain.to_def) ?? [];
13997
+ arr.push(chain);
13998
+ this._chainsByToDef.set(chain.to_def, arr);
13999
+ }
14000
+ }
14001
+ return this._chainsByToDef;
14002
+ }
13983
14003
  // ---------------------------------------------------------------------------
13984
14004
  // Call indexes
13985
14005
  // ---------------------------------------------------------------------------
@@ -14150,6 +14170,43 @@ var CodeGraph = class {
14150
14170
  }
14151
14171
  };
14152
14172
 
14173
+ // src/analysis/dfg-walk.ts
14174
+ function walkBackwardDefs(startDefId, chainsByToDef, defById, options = {}) {
14175
+ const maxHops = options.maxHops ?? 32;
14176
+ const visited = /* @__PURE__ */ new Set();
14177
+ const lines = /* @__PURE__ */ new Set();
14178
+ let hopCapReached = false;
14179
+ const startDef = defById.get(startDefId);
14180
+ if (!startDef) {
14181
+ return { visited, lines, hopCapReached: false };
14182
+ }
14183
+ visited.add(startDefId);
14184
+ lines.add(startDef.line);
14185
+ const queue = [startDefId];
14186
+ let hops = 0;
14187
+ while (queue.length > 0) {
14188
+ if (hops >= maxHops) {
14189
+ hopCapReached = true;
14190
+ break;
14191
+ }
14192
+ hops++;
14193
+ const currentId = queue.shift();
14194
+ const incoming = chainsByToDef.get(currentId);
14195
+ if (!incoming) continue;
14196
+ for (const chain of incoming) {
14197
+ const fromId = chain.from_def;
14198
+ if (visited.has(fromId)) continue;
14199
+ visited.add(fromId);
14200
+ const fromDef = defById.get(fromId);
14201
+ if (fromDef) {
14202
+ lines.add(fromDef.line);
14203
+ }
14204
+ queue.push(fromId);
14205
+ }
14206
+ }
14207
+ return { visited, lines, hopCapReached };
14208
+ }
14209
+
14153
14210
  // src/analysis/taint-propagation.ts
14154
14211
  function buildSanitizersByLine(sanitizers) {
14155
14212
  const out2 = /* @__PURE__ */ new Map();
@@ -14237,7 +14294,12 @@ function propagateTaint(graphOrDfg, callsOrSources, sourcesOrSinks, sinksOrSanit
14237
14294
  taintInfo.line,
14238
14295
  sink.line,
14239
14296
  sink.type,
14240
- sanitizersByLine
14297
+ sanitizersByLine,
14298
+ {
14299
+ startDefId: use.def_id,
14300
+ chainsByToDef: graph.chainsByToDef,
14301
+ defById
14302
+ }
14241
14303
  );
14242
14304
  if (!isSanitized.sanitized) {
14243
14305
  const source = sources.find((s) => s.line === taintInfo.sourceLine);
@@ -14375,20 +14437,39 @@ var KNOWN_SINK_TYPES = /* @__PURE__ */ new Set([
14375
14437
  "crlf",
14376
14438
  "mass_assignment"
14377
14439
  ]);
14378
- function checkSanitized(_fromLine, toLine, sinkType, sanitizersByLine) {
14379
- const sanitizersAtTarget = sanitizersByLine.get(toLine);
14380
- if (!sanitizersAtTarget || sanitizersAtTarget.length === 0) {
14381
- return { sanitized: false };
14382
- }
14440
+ function checkSanitized(_fromLine, toLine, sinkType, sanitizersByLine, ctx) {
14383
14441
  const isKnownSinkType = KNOWN_SINK_TYPES.has(sinkType);
14384
- for (const san of sanitizersAtTarget) {
14385
- if (isKnownSinkType) {
14386
- if (san.sanitizes.includes(sinkType)) {
14442
+ const sanitizersAtTarget = sanitizersByLine.get(toLine);
14443
+ if (sanitizersAtTarget && sanitizersAtTarget.length > 0) {
14444
+ for (const san of sanitizersAtTarget) {
14445
+ if (isKnownSinkType) {
14446
+ if (san.sanitizes.includes(sinkType)) {
14447
+ return { sanitized: true, sanitizer: san };
14448
+ }
14449
+ } else if (san.sanitizes.length > 0) {
14387
14450
  return { sanitized: true, sanitizer: san };
14388
14451
  }
14389
- } else {
14390
- if (san.sanitizes.length > 0) {
14391
- return { sanitized: true, sanitizer: san };
14452
+ }
14453
+ }
14454
+ if (ctx) {
14455
+ const walk = walkBackwardDefs(
14456
+ ctx.startDefId,
14457
+ ctx.chainsByToDef,
14458
+ ctx.defById,
14459
+ { maxHops: ctx.maxHops ?? 32 }
14460
+ );
14461
+ for (const line of walk.lines) {
14462
+ if (line === toLine) continue;
14463
+ const sansAtLine = sanitizersByLine.get(line);
14464
+ if (!sansAtLine || sansAtLine.length === 0) continue;
14465
+ for (const san of sansAtLine) {
14466
+ if (isKnownSinkType) {
14467
+ if (san.sanitizes.includes(sinkType)) {
14468
+ return { sanitized: true, sanitizer: san };
14469
+ }
14470
+ } else if (san.sanitizes.length > 0) {
14471
+ return { sanitized: true, sanitizer: san };
14472
+ }
14392
14473
  }
14393
14474
  }
14394
14475
  }
@@ -27,6 +27,13 @@ export declare class CodeGraph {
27
27
  get usesByDefId(): Map<number, DFGUse[]>;
28
28
  private _chainsByFromDef;
29
29
  get chainsByFromDef(): Map<number, DFGChain[]>;
30
+ /**
31
+ * Mirror of chainsByFromDef keyed by chain.to_def. Enables backward
32
+ * walks from a use's reaching def to earlier defs in the chain
33
+ * (cognium-dev #238 — DFG-walk sanitizer credit).
34
+ */
35
+ private _chainsByToDef;
36
+ get chainsByToDef(): Map<number, DFGChain[]>;
30
37
  private _callsByLine;
31
38
  get callsByLine(): Map<number, CallInfo[]>;
32
39
  private _callsByMethod;
@@ -1 +1 @@
1
- {"version":3,"file":"code-graph.d.ts","sourceRoot":"","sources":["../../src/graph/code-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,SAAS;IACpB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;gBAEV,EAAE,EAAE,QAAQ;IAQxB,OAAO,CAAC,QAAQ,CAAoC;IACpD,IAAI,OAAO,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAQjC;IAED,OAAO,CAAC,WAAW,CAAsC;IACzD,IAAI,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAUtC;IAED,OAAO,CAAC,UAAU,CAAsC;IACxD,IAAI,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAUrC;IAED,OAAO,CAAC,WAAW,CAAsC;IACzD,IAAI,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAUtC;IAED,OAAO,CAAC,YAAY,CAAsC;IAC1D,IAAI,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAYvC;IAED,OAAO,CAAC,gBAAgB,CAAwC;IAChE,IAAI,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAU7C;IAMD,OAAO,CAAC,YAAY,CAAwC;IAC5D,IAAI,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAUzC;IAED,OAAO,CAAC,cAAc,CAAwC;IAC9D,IAAI,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAU3C;IAMD,OAAO,CAAC,cAAc,CAA2E;IACjG,IAAI,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC,CAY9E;IAED;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI;IAezE,OAAO,CAAC,iBAAiB,CAA8C;IACvE,IAAI,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAUpD;IAMD,uDAAuD;IACvD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAIlC,uDAAuD;IACvD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAIlC,2EAA2E;IAC3E,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAIlC,yDAAyD;IACzD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE;IAIrC,mEAAmE;IACnE,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE;IAIrC;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAU/E,OAAO,CAAC,UAAU,CAAsC;IACxD,IAAI,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAQrC;IAED;;;;;;;;;;;;OAYG;IACH,UAAU,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAa7D;;;;;;OAMG;IACH,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;CAiBvD"}
1
+ {"version":3,"file":"code-graph.d.ts","sourceRoot":"","sources":["../../src/graph/code-graph.ts"],"names":[],"mappings":"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"}
@@ -90,6 +90,23 @@ export class CodeGraph {
90
90
  }
91
91
  return this._chainsByFromDef;
92
92
  }
93
+ /**
94
+ * Mirror of chainsByFromDef keyed by chain.to_def. Enables backward
95
+ * walks from a use's reaching def to earlier defs in the chain
96
+ * (cognium-dev #238 — DFG-walk sanitizer credit).
97
+ */
98
+ _chainsByToDef = null;
99
+ get chainsByToDef() {
100
+ if (!this._chainsByToDef) {
101
+ this._chainsByToDef = new Map();
102
+ for (const chain of this.ir.dfg.chains ?? []) {
103
+ const arr = this._chainsByToDef.get(chain.to_def) ?? [];
104
+ arr.push(chain);
105
+ this._chainsByToDef.set(chain.to_def, arr);
106
+ }
107
+ }
108
+ return this._chainsByToDef;
109
+ }
93
110
  // ---------------------------------------------------------------------------
94
111
  // Call indexes
95
112
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"code-graph.js","sourceRoot":"","sources":["../../src/graph/code-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-graph.js","sourceRoot":"","sources":["../../src/graph/code-graph.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "circle-ir",
3
- "version": "3.154.0",
3
+ "version": "3.155.0",
4
4
  "description": "High-performance Static Application Security Testing (SAST) library for detecting security vulnerabilities through taint analysis",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",