cognium-dev 4.9.9 → 4.9.10

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 (2) hide show
  1. package/dist/cli.js +154 -154
  2. package/package.json +3 -3
package/dist/cli.js CHANGED
@@ -3232,7 +3232,7 @@ var Query = class {
3232
3232
  }
3233
3233
  };
3234
3234
 
3235
- // ../circle-ir/dist/core/parser.js
3235
+ // node_modules/circle-ir/dist/core/parser.js
3236
3236
  var nodeModules = null;
3237
3237
  var moduleDir = null;
3238
3238
  async function getNodeModules() {
@@ -3472,7 +3472,7 @@ async function getDefaultLanguagePath(language) {
3472
3472
  }
3473
3473
  return `wasm/tree-sitter-${language}.wasm`;
3474
3474
  }
3475
- // ../circle-ir/dist/core/extractors/meta.js
3475
+ // node_modules/circle-ir/dist/core/extractors/meta.js
3476
3476
  function extractMeta(code, tree, filePath, language) {
3477
3477
  const loc = countLinesOfCode(code);
3478
3478
  const hash = computeHash(code);
@@ -3554,7 +3554,7 @@ function extractPackage(tree, language) {
3554
3554
  }
3555
3555
  return null;
3556
3556
  }
3557
- // ../circle-ir/dist/core/extractors/types.js
3557
+ // node_modules/circle-ir/dist/core/extractors/types.js
3558
3558
  function detectLanguage(tree) {
3559
3559
  const root = tree.rootNode;
3560
3560
  const jsNodeTypes = new Set([
@@ -5222,7 +5222,7 @@ function findChildByType(node, type) {
5222
5222
  }
5223
5223
  return null;
5224
5224
  }
5225
- // ../circle-ir/dist/core/extractors/calls.js
5225
+ // node_modules/circle-ir/dist/core/extractors/calls.js
5226
5226
  function detectLanguageFromTree(tree, cache) {
5227
5227
  const rustStructs = getNodesFromCache(tree.rootNode, "struct_item", cache);
5228
5228
  const rustImpls = getNodesFromCache(tree.rootNode, "impl_item", cache);
@@ -7274,7 +7274,7 @@ function extractGoTypeLastSegment(typeNode) {
7274
7274
  }
7275
7275
  return null;
7276
7276
  }
7277
- // ../circle-ir/dist/core/extractors/imports.js
7277
+ // node_modules/circle-ir/dist/core/extractors/imports.js
7278
7278
  function detectLanguage2(tree) {
7279
7279
  const root = tree.rootNode;
7280
7280
  const jsNodeTypes = new Set([
@@ -7961,7 +7961,7 @@ function findGoChildByType(node, type) {
7961
7961
  }
7962
7962
  return null;
7963
7963
  }
7964
- // ../circle-ir/dist/core/extractors/exports.js
7964
+ // node_modules/circle-ir/dist/core/extractors/exports.js
7965
7965
  function extractExports(types) {
7966
7966
  const exports = [];
7967
7967
  for (const type of types) {
@@ -8014,7 +8014,7 @@ function getVisibilityFromModifiers(modifiers) {
8014
8014
  }
8015
8015
  return "package";
8016
8016
  }
8017
- // ../circle-ir/dist/core/extractors/cfg.js
8017
+ // node_modules/circle-ir/dist/core/extractors/cfg.js
8018
8018
  function detectLanguage3(tree) {
8019
8019
  const root = tree.rootNode;
8020
8020
  const jsNodeTypes = new Set([
@@ -8663,7 +8663,7 @@ function isGoStatement(node) {
8663
8663
  ]);
8664
8664
  return goStatementTypes.has(node.type);
8665
8665
  }
8666
- // ../circle-ir/dist/core/extractors/dfg.js
8666
+ // node_modules/circle-ir/dist/core/extractors/dfg.js
8667
8667
  function detectLanguage4(tree) {
8668
8668
  const root = tree.rootNode;
8669
8669
  const jsNodeTypes = new Set([
@@ -10184,7 +10184,7 @@ function extractGoAddressableVarName(node) {
10184
10184
  }
10185
10185
  return null;
10186
10186
  }
10187
- // ../circle-ir/dist/core/extractors/runtime-registrations.js
10187
+ // node_modules/circle-ir/dist/core/extractors/runtime-registrations.js
10188
10188
  var HTTP_VERB_METHODS = new Set([
10189
10189
  "get",
10190
10190
  "post",
@@ -10932,7 +10932,7 @@ function parseDistributedSliceAttribute(attrItem) {
10932
10932
  }
10933
10933
  };
10934
10934
  }
10935
- // ../circle-ir/dist/analysis/config-loader.js
10935
+ // node_modules/circle-ir/dist/analysis/config-loader.js
10936
10936
  var DEFAULT_SOURCES = [
10937
10937
  { method: "getParameter", class: "HttpServletRequest", type: "http_param", severity: "high", return_tainted: true },
10938
10938
  { method: "getParameterValues", class: "HttpServletRequest", type: "http_param", severity: "high", return_tainted: true },
@@ -13011,7 +13011,7 @@ var DEFAULT_HEADER_RULES = [
13011
13011
  note: "Fires when the value is not a string literal (likely reflected from request)"
13012
13012
  }
13013
13013
  ];
13014
- // ../circle-ir/dist/analysis/arg-type-resolver.js
13014
+ // node_modules/circle-ir/dist/analysis/arg-type-resolver.js
13015
13015
  function findEnclosingType(callInMethod, types) {
13016
13016
  if (!callInMethod)
13017
13017
  return null;
@@ -13089,7 +13089,7 @@ function isArgvContainerType(rawType) {
13089
13089
  return /^(?:List|ArrayList|LinkedList|Collection|Iterable|Deque|Queue)\s*<\s*(?:String|CharSequence|java\.lang\.String)\b/.test(s);
13090
13090
  }
13091
13091
 
13092
- // ../circle-ir/dist/analysis/taint-matcher.js
13092
+ // node_modules/circle-ir/dist/analysis/taint-matcher.js
13093
13093
  var PYTHON_TAINTED_PATTERNS = [
13094
13094
  { pattern: /\brequest\.args\b/, sourceType: "http_param" },
13095
13095
  { pattern: /\brequest\.form\b/, sourceType: "http_body" },
@@ -15094,7 +15094,7 @@ function formatSanitizerMethod(call) {
15094
15094
  return `${call.method_name}()`;
15095
15095
  }
15096
15096
 
15097
- // ../circle-ir/dist/analysis/unresolved.js
15097
+ // node_modules/circle-ir/dist/analysis/unresolved.js
15098
15098
  function detectUnresolved(calls, types, dfg) {
15099
15099
  const unresolved = [];
15100
15100
  unresolved.push(...detectVirtualDispatch(calls));
@@ -15258,7 +15258,7 @@ function formatCallCode(call) {
15258
15258
  }
15259
15259
  return `${call.method_name}(${args2})`;
15260
15260
  }
15261
- // ../circle-ir/dist/analysis/non-executable-lines.js
15261
+ // node_modules/circle-ir/dist/analysis/non-executable-lines.js
15262
15262
  function isNonExecutableSourceLine(sourceCode, line, language) {
15263
15263
  if (!sourceCode || line < 1)
15264
15264
  return false;
@@ -15318,7 +15318,7 @@ function isNonExecutablePython(trimmed) {
15318
15318
  return false;
15319
15319
  }
15320
15320
 
15321
- // ../circle-ir/dist/analysis/sanitizer-index.js
15321
+ // node_modules/circle-ir/dist/analysis/sanitizer-index.js
15322
15322
  var SANITIZER_SET_CACHE = new WeakMap;
15323
15323
  function getSanitizesSet(san) {
15324
15324
  let s = SANITIZER_SET_CACHE.get(san);
@@ -15332,7 +15332,7 @@ function sanitizerCoversSink(san, sinkType) {
15332
15332
  return getSanitizesSet(san).has(sinkType);
15333
15333
  }
15334
15334
 
15335
- // ../circle-ir/dist/analysis/dfg-walk.js
15335
+ // node_modules/circle-ir/dist/analysis/dfg-walk.js
15336
15336
  var walkBackwardDefsMemo = new WeakMap;
15337
15337
  function walkBackwardDefs(startDefId, chainsByToDef, defById, options = {}) {
15338
15338
  const maxHops = options.maxHops ?? 32;
@@ -15385,7 +15385,7 @@ function walkBackwardDefs(startDefId, chainsByToDef, defById, options = {}) {
15385
15385
  return result;
15386
15386
  }
15387
15387
 
15388
- // ../circle-ir/dist/analysis/findings.js
15388
+ // node_modules/circle-ir/dist/analysis/findings.js
15389
15389
  function canSourceReachSink(sourceType, sinkType) {
15390
15390
  const sourceToSinkMapping = {
15391
15391
  http_param: ["sql_injection", "command_injection", "path_traversal", "xss", "xpath_injection", "ldap_injection", "ssrf", "mybatis_mapper_call", "code_injection", "crlf", "mass_assignment", "open_redirect", "trust_boundary", "deserialization", "log_injection", "format_string", "nosql_injection", "prompt_injection"],
@@ -15416,7 +15416,7 @@ function sourceSemanticsAllowed(source, sinkType) {
15416
15416
  return true;
15417
15417
  }
15418
15418
 
15419
- // ../circle-ir/dist/analysis/findings-instrumentation.js
15419
+ // node_modules/circle-ir/dist/analysis/findings-instrumentation.js
15420
15420
  var instrumentEnabled = false;
15421
15421
  function setFindingsInstrumentation(enabled) {
15422
15422
  instrumentEnabled = enabled;
@@ -15479,7 +15479,7 @@ function emitFindingsInstrumentation(filePath, findings, taint) {
15479
15479
  };
15480
15480
  console.error(`[findings-summary] ${JSON.stringify(summary)}`);
15481
15481
  }
15482
- // ../circle-ir/dist/graph/code-graph.js
15482
+ // node_modules/circle-ir/dist/graph/code-graph.js
15483
15483
  class CodeGraph {
15484
15484
  ir;
15485
15485
  constructor(ir) {
@@ -15689,7 +15689,7 @@ class CodeGraph {
15689
15689
  return result;
15690
15690
  }
15691
15691
  }
15692
- // ../circle-ir/dist/resolution/type-hierarchy.js
15692
+ // node_modules/circle-ir/dist/resolution/type-hierarchy.js
15693
15693
  class TypeHierarchyResolver {
15694
15694
  types = new Map;
15695
15695
  nameToFqn = new Map;
@@ -16261,7 +16261,7 @@ function registerCommonLibraries(resolver) {
16261
16261
  resolver.registerFactoryReturnType("HttpClients", "createSystem", "org.apache.http.impl.client.CloseableHttpClient");
16262
16262
  resolver.registerFactoryReturnType("HttpClients", "createMinimal", "org.apache.http.impl.client.MinimalHttpClient");
16263
16263
  }
16264
- // ../circle-ir/dist/resolution/symbol-table.js
16264
+ // node_modules/circle-ir/dist/resolution/symbol-table.js
16265
16265
  class SymbolTable {
16266
16266
  exports = new Map;
16267
16267
  nameToFqns = new Map;
@@ -16484,7 +16484,7 @@ class SymbolTable {
16484
16484
  return "package";
16485
16485
  }
16486
16486
  }
16487
- // ../circle-ir/dist/resolution/cross-file.js
16487
+ // node_modules/circle-ir/dist/resolution/cross-file.js
16488
16488
  function buildFileIndex(ir) {
16489
16489
  const callsByLine = new Map;
16490
16490
  for (const c of ir.calls) {
@@ -17572,7 +17572,7 @@ class CrossFileResolver {
17572
17572
  return this.fieldTaintInfo.get(`${typeFqn}.${fieldName}`);
17573
17573
  }
17574
17574
  }
17575
- // ../circle-ir/dist/graph/project-graph.js
17575
+ // node_modules/circle-ir/dist/graph/project-graph.js
17576
17576
  class ProjectGraph {
17577
17577
  files = new Map;
17578
17578
  _symbolTable = null;
@@ -17624,7 +17624,7 @@ class ProjectGraph {
17624
17624
  return this._resolver;
17625
17625
  }
17626
17626
  }
17627
- // ../circle-ir/dist/graph/analysis-pass.js
17627
+ // node_modules/circle-ir/dist/graph/analysis-pass.js
17628
17628
  class AnalysisPipeline {
17629
17629
  passes = [];
17630
17630
  add(pass) {
@@ -17671,7 +17671,7 @@ class AnalysisPipeline {
17671
17671
  return { results, findings };
17672
17672
  }
17673
17673
  }
17674
- // ../circle-ir/dist/analysis/taint-propagation.js
17674
+ // node_modules/circle-ir/dist/analysis/taint-propagation.js
17675
17675
  function buildSanitizersByLine(sanitizers) {
17676
17676
  const out2 = new Map;
17677
17677
  for (const san of sanitizers) {
@@ -17970,7 +17970,7 @@ function buildTaintFlow(source, sink, taintInfo) {
17970
17970
  confidence: taintInfo.confidence * 0.9
17971
17971
  };
17972
17972
  }
17973
- // ../circle-ir/dist/analysis/constant-propagation/ast-utils.js
17973
+ // node_modules/circle-ir/dist/analysis/constant-propagation/ast-utils.js
17974
17974
  function isKnown(cv) {
17975
17975
  return cv.type !== "unknown";
17976
17976
  }
@@ -17987,7 +17987,7 @@ function getNodeLine(node) {
17987
17987
  return node.startPosition.row + 1;
17988
17988
  }
17989
17989
 
17990
- // ../circle-ir/dist/analysis/constant-propagation/evaluator.js
17990
+ // node_modules/circle-ir/dist/analysis/constant-propagation/evaluator.js
17991
17991
  class ExpressionEvaluator {
17992
17992
  source;
17993
17993
  getSymbol;
@@ -18257,7 +18257,7 @@ class ExpressionEvaluator {
18257
18257
  }
18258
18258
  }
18259
18259
 
18260
- // ../circle-ir/dist/analysis/constant-propagation/patterns.js
18260
+ // node_modules/circle-ir/dist/analysis/constant-propagation/patterns.js
18261
18261
  var TAINT_PATTERNS = [
18262
18262
  "request.getParameter",
18263
18263
  "request.getHeader",
@@ -18452,7 +18452,7 @@ var PROPAGATOR_METHODS = new Set([
18452
18452
  "decodeRequestString"
18453
18453
  ]);
18454
18454
 
18455
- // ../circle-ir/dist/analysis/constant-propagation/propagator.js
18455
+ // node_modules/circle-ir/dist/analysis/constant-propagation/propagator.js
18456
18456
  class ConstantPropagator {
18457
18457
  symbols = new Map;
18458
18458
  tainted = new Set;
@@ -20309,7 +20309,7 @@ class ConstantPropagator {
20309
20309
  }
20310
20310
  }
20311
20311
 
20312
- // ../circle-ir/dist/analysis/constant-propagation/index.js
20312
+ // node_modules/circle-ir/dist/analysis/constant-propagation/index.js
20313
20313
  function analyzeConstantPropagation(tree, sourceCode, options = {}) {
20314
20314
  const propagator = new ConstantPropagator;
20315
20315
  return propagator.analyze(tree, sourceCode, options.additionalTaintPatterns ?? [], options.sanitizerMethods ?? [], options.taintedParameters ?? []);
@@ -20397,7 +20397,7 @@ function normalizeCondition(cond) {
20397
20397
  }
20398
20398
  return normalized;
20399
20399
  }
20400
- // ../circle-ir/dist/utils/logger.js
20400
+ // node_modules/circle-ir/dist/utils/logger.js
20401
20401
  var LOG_LEVELS = {
20402
20402
  trace: 0,
20403
20403
  debug: 1,
@@ -20469,7 +20469,7 @@ var logger = {
20469
20469
  }
20470
20470
  };
20471
20471
 
20472
- // ../circle-ir/dist/analysis/per-file-finding-cap.js
20472
+ // node_modules/circle-ir/dist/analysis/per-file-finding-cap.js
20473
20473
  var DEFAULT_PER_FILE_FINDING_CAP = 1000;
20474
20474
  var SATURATED_FILE_RULE_ID = "saturated-file";
20475
20475
  function applyPerFileFindingCap(filePath, findings, cap) {
@@ -20505,7 +20505,7 @@ function applyPerFileFindingCap(filePath, findings, cap) {
20505
20505
  return [advisory];
20506
20506
  }
20507
20507
 
20508
- // ../circle-ir/dist/analysis/confidence-filter.js
20508
+ // node_modules/circle-ir/dist/analysis/confidence-filter.js
20509
20509
  function applyConfidenceFilter(findings, includeSpeculative) {
20510
20510
  if (includeSpeculative)
20511
20511
  return findings;
@@ -20515,7 +20515,7 @@ function isHighConfidence(finding) {
20515
20515
  return finding.confidence === undefined || finding.confidence === "high";
20516
20516
  }
20517
20517
 
20518
- // ../circle-ir/dist/analysis/library-api-surface-downgrade.js
20518
+ // node_modules/circle-ir/dist/analysis/library-api-surface-downgrade.js
20519
20519
  var LIBRARY_API_SURFACE_TAG = "library-api-surface:caller-responsibility";
20520
20520
  function applyLibraryApiSurfaceDowngrade(findings) {
20521
20521
  return findings.map((f) => {
@@ -20532,7 +20532,7 @@ function applyLibraryApiSurfaceDowngrade(findings) {
20532
20532
  });
20533
20533
  }
20534
20534
 
20535
- // ../circle-ir/dist/analysis/note-coalescer.js
20535
+ // node_modules/circle-ir/dist/analysis/note-coalescer.js
20536
20536
  var CLICKJACKING_PAIR = new Set(["missing-x-frame-options", "missing-csp-frame-ancestors"]);
20537
20537
  function levelRank(level) {
20538
20538
  return level === "error" ? 0 : level === "warning" ? 1 : 2;
@@ -20596,7 +20596,7 @@ function coalesceNoteLevelFindings(findings) {
20596
20596
  return out2;
20597
20597
  }
20598
20598
 
20599
- // ../circle-ir/dist/analysis/entry-point-detection.js
20599
+ // node_modules/circle-ir/dist/analysis/entry-point-detection.js
20600
20600
  var TIER_1_METHOD_ANNOTATIONS = new Set([
20601
20601
  "RequestMapping",
20602
20602
  "GetMapping",
@@ -21253,7 +21253,7 @@ function methodIsRuntimeRegistrationHandler(method, regs) {
21253
21253
  return false;
21254
21254
  }
21255
21255
 
21256
- // ../circle-ir/dist/analysis/require-entry-path.js
21256
+ // node_modules/circle-ir/dist/analysis/require-entry-path.js
21257
21257
  var RULE_ID_REQUIRE_ENTRY_PATH = "require-entry-path";
21258
21258
  var MAX_VISITED_METHODS = 2000;
21259
21259
  var TAINT_FLOW_RULE_IDS = new Set([
@@ -21642,7 +21642,7 @@ function normalizeDisabled(input) {
21642
21642
  return new Set(input);
21643
21643
  }
21644
21644
 
21645
- // ../circle-ir/dist/analysis/project-profile-transform.js
21645
+ // node_modules/circle-ir/dist/analysis/project-profile-transform.js
21646
21646
  var DOWNGRADE_ELIGIBLE_RULE_IDS = new Set([
21647
21647
  "code_injection",
21648
21648
  "template_injection",
@@ -21704,7 +21704,7 @@ function applyProjectProfileTransform(findings, resolveProfile) {
21704
21704
  });
21705
21705
  }
21706
21706
 
21707
- // ../circle-ir/dist/languages/registry.js
21707
+ // node_modules/circle-ir/dist/languages/registry.js
21708
21708
  class DefaultLanguageRegistry {
21709
21709
  plugins = new Map;
21710
21710
  extensionMap = new Map;
@@ -21751,7 +21751,7 @@ function registerLanguage(plugin) {
21751
21751
  function getLanguagePlugin(language) {
21752
21752
  return getLanguageRegistry().get(language);
21753
21753
  }
21754
- // ../circle-ir/dist/languages/plugins/base.js
21754
+ // node_modules/circle-ir/dist/languages/plugins/base.js
21755
21755
  class BaseLanguagePlugin {
21756
21756
  parser = null;
21757
21757
  async initialize(parser) {
@@ -21812,7 +21812,7 @@ class BaseLanguagePlugin {
21812
21812
  }
21813
21813
  }
21814
21814
 
21815
- // ../circle-ir/dist/languages/plugins/java.js
21815
+ // node_modules/circle-ir/dist/languages/plugins/java.js
21816
21816
  class JavaPlugin extends BaseLanguagePlugin {
21817
21817
  id = "java";
21818
21818
  name = "Java";
@@ -22069,7 +22069,7 @@ class JavaPlugin extends BaseLanguagePlugin {
22069
22069
  }
22070
22070
  }
22071
22071
 
22072
- // ../circle-ir/dist/languages/plugins/javascript.js
22072
+ // node_modules/circle-ir/dist/languages/plugins/javascript.js
22073
22073
  class JavaScriptPlugin extends BaseLanguagePlugin {
22074
22074
  id = "javascript";
22075
22075
  name = "JavaScript/TypeScript";
@@ -22735,7 +22735,7 @@ class JavaScriptPlugin extends BaseLanguagePlugin {
22735
22735
  }
22736
22736
  }
22737
22737
 
22738
- // ../circle-ir/dist/languages/plugins/python.js
22738
+ // node_modules/circle-ir/dist/languages/plugins/python.js
22739
22739
  class PythonPlugin extends BaseLanguagePlugin {
22740
22740
  id = "python";
22741
22741
  name = "Python";
@@ -23011,7 +23011,7 @@ class PythonPlugin extends BaseLanguagePlugin {
23011
23011
  }
23012
23012
  }
23013
23013
 
23014
- // ../circle-ir/dist/languages/plugins/rust.js
23014
+ // node_modules/circle-ir/dist/languages/plugins/rust.js
23015
23015
  class RustPlugin extends BaseLanguagePlugin {
23016
23016
  id = "rust";
23017
23017
  name = "Rust";
@@ -23251,7 +23251,7 @@ class RustPlugin extends BaseLanguagePlugin {
23251
23251
  }
23252
23252
  }
23253
23253
 
23254
- // ../circle-ir/dist/languages/plugins/bash.js
23254
+ // node_modules/circle-ir/dist/languages/plugins/bash.js
23255
23255
  class BashPlugin extends BaseLanguagePlugin {
23256
23256
  id = "bash";
23257
23257
  name = "Bash/Shell";
@@ -23457,7 +23457,7 @@ class BashPlugin extends BaseLanguagePlugin {
23457
23457
  }
23458
23458
  }
23459
23459
 
23460
- // ../circle-ir/dist/languages/plugins/html.js
23460
+ // node_modules/circle-ir/dist/languages/plugins/html.js
23461
23461
  class HtmlPlugin extends BaseLanguagePlugin {
23462
23462
  id = "html";
23463
23463
  name = "HTML";
@@ -23522,7 +23522,7 @@ class HtmlPlugin extends BaseLanguagePlugin {
23522
23522
  }
23523
23523
  }
23524
23524
 
23525
- // ../circle-ir/dist/languages/plugins/vue.js
23525
+ // node_modules/circle-ir/dist/languages/plugins/vue.js
23526
23526
  class VuePlugin extends BaseLanguagePlugin {
23527
23527
  id = "vue";
23528
23528
  name = "Vue";
@@ -23587,7 +23587,7 @@ class VuePlugin extends BaseLanguagePlugin {
23587
23587
  }
23588
23588
  }
23589
23589
 
23590
- // ../circle-ir/dist/languages/plugins/go.js
23590
+ // node_modules/circle-ir/dist/languages/plugins/go.js
23591
23591
  class GoPlugin extends BaseLanguagePlugin {
23592
23592
  id = "go";
23593
23593
  name = "Go";
@@ -24236,7 +24236,7 @@ class GoPlugin extends BaseLanguagePlugin {
24236
24236
  }
24237
24237
  }
24238
24238
 
24239
- // ../circle-ir/dist/languages/plugins/csharp.js
24239
+ // node_modules/circle-ir/dist/languages/plugins/csharp.js
24240
24240
  class CSharpPlugin extends BaseLanguagePlugin {
24241
24241
  id = "csharp";
24242
24242
  name = "C#";
@@ -24295,7 +24295,7 @@ class CSharpPlugin extends BaseLanguagePlugin {
24295
24295
  }
24296
24296
  }
24297
24297
 
24298
- // ../circle-ir/dist/languages/plugins/index.js
24298
+ // node_modules/circle-ir/dist/languages/plugins/index.js
24299
24299
  function registerBuiltinPlugins() {
24300
24300
  registerLanguage(new JavaPlugin);
24301
24301
  registerLanguage(new JavaScriptPlugin);
@@ -24307,7 +24307,7 @@ function registerBuiltinPlugins() {
24307
24307
  registerLanguage(new GoPlugin);
24308
24308
  registerLanguage(new CSharpPlugin);
24309
24309
  }
24310
- // ../circle-ir/dist/analysis/passes/cross-file-pass.js
24310
+ // node_modules/circle-ir/dist/analysis/passes/cross-file-pass.js
24311
24311
  class CrossFilePass {
24312
24312
  run(projectGraph, sourceLines, options = {}) {
24313
24313
  const resolver = projectGraph.resolver;
@@ -24633,7 +24633,7 @@ function findCrossInstanceAliasingPaths(projectGraph, _sourceLines) {
24633
24633
  return paths;
24634
24634
  }
24635
24635
 
24636
- // ../circle-ir/dist/analysis/html/html-extractor.js
24636
+ // node_modules/circle-ir/dist/analysis/html/html-extractor.js
24637
24637
  var EVENT_HANDLER_ATTRS = new Set([
24638
24638
  "onclick",
24639
24639
  "ondblclick",
@@ -24788,7 +24788,7 @@ function stripQuotes2(text) {
24788
24788
  return text;
24789
24789
  }
24790
24790
 
24791
- // ../circle-ir/dist/analysis/html/html-attribute-security-pass.js
24791
+ // node_modules/circle-ir/dist/analysis/html/html-attribute-security-pass.js
24792
24792
  function runHtmlAttributeSecurityChecks(rootNode, filePath) {
24793
24793
  const findings = [];
24794
24794
  walkForSecurityChecks(rootNode, filePath, findings);
@@ -25014,7 +25014,7 @@ function truncate(s, maxLen) {
25014
25014
  return s.length > maxLen ? s.slice(0, maxLen) + "..." : s;
25015
25015
  }
25016
25016
 
25017
- // ../circle-ir/dist/analysis/html/vue-template-xss-pass.js
25017
+ // node_modules/circle-ir/dist/analysis/html/vue-template-xss-pass.js
25018
25018
  var DANGEROUS_BINDINGS = new Set([
25019
25019
  "v-html",
25020
25020
  "v-bind:innerhtml",
@@ -25134,7 +25134,7 @@ function collectTaintedNames(blocks) {
25134
25134
  return names;
25135
25135
  }
25136
25136
 
25137
- // ../circle-ir/dist/analysis/html/html-merge.js
25137
+ // node_modules/circle-ir/dist/analysis/html/html-merge.js
25138
25138
  function mergeHtmlResults(htmlMeta, scriptResults, attributeFindings) {
25139
25139
  const allTypes = [];
25140
25140
  const allCalls = [];
@@ -25284,7 +25284,7 @@ function mergeHtmlResults(htmlMeta, scriptResults, attributeFindings) {
25284
25284
  };
25285
25285
  }
25286
25286
 
25287
- // ../circle-ir/dist/analysis/passes/taint-matcher-pass.js
25287
+ // node_modules/circle-ir/dist/analysis/passes/taint-matcher-pass.js
25288
25288
  class TaintMatcherPass {
25289
25289
  name = "taint-matcher";
25290
25290
  category = "security";
@@ -25345,7 +25345,7 @@ class TaintMatcherPass {
25345
25345
  }
25346
25346
  }
25347
25347
 
25348
- // ../circle-ir/dist/analysis/passes/constant-propagation-pass.js
25348
+ // node_modules/circle-ir/dist/analysis/passes/constant-propagation-pass.js
25349
25349
  class ConstantPropagationPass {
25350
25350
  tree;
25351
25351
  name = "constant-propagation";
@@ -25375,7 +25375,7 @@ class ConstantPropagationPass {
25375
25375
  }
25376
25376
  }
25377
25377
 
25378
- // ../circle-ir/dist/analysis/passes/language-sources-pass.js
25378
+ // node_modules/circle-ir/dist/analysis/passes/language-sources-pass.js
25379
25379
  var JS_DOM_XSS_SINKS = [
25380
25380
  { pattern: /\.innerHTML\s*=/, type: "xss", cwe: "CWE-79", severity: "critical" },
25381
25381
  { pattern: /\.outerHTML\s*=/, type: "xss", cwe: "CWE-79", severity: "critical" },
@@ -32423,7 +32423,7 @@ function findJsTemplateInjectionSstiFindings(code, file) {
32423
32423
  return findings;
32424
32424
  }
32425
32425
 
32426
- // ../circle-ir/dist/analysis/passes/source-semantics-pass.js
32426
+ // node_modules/circle-ir/dist/analysis/passes/source-semantics-pass.js
32427
32427
  var DEMO_PATH_RE = /(?:^|\/)(?:demo|example|examples|samples|integration-tests|integration_tests)(?:\/|$)/i;
32428
32428
  var CONST_STRING_ASSIGN_RE = /^\s*(?:final\s+|static\s+final\s+)?[A-Za-z_][\w.<>\[\]]*\s+[A-Za-z_]\w*\s*=\s*"[^"]*"\s*;?\s*$/;
32429
32429
  var STATIC_FINAL_RE = /^\s*(?:public\s+|private\s+|protected\s+)?static\s+final\s+/;
@@ -32511,7 +32511,7 @@ class SourceSemanticsPass {
32511
32511
  }
32512
32512
  }
32513
32513
 
32514
- // ../circle-ir/dist/analysis/passes/library-profile-source-gate-pass.js
32514
+ // node_modules/circle-ir/dist/analysis/passes/library-profile-source-gate-pass.js
32515
32515
  var SPECULATIVE_SOURCE_TYPES = new Set([
32516
32516
  "interprocedural_param",
32517
32517
  "constructor_field"
@@ -32566,7 +32566,7 @@ class LibraryProfileSourceGatePass {
32566
32566
  }
32567
32567
  }
32568
32568
 
32569
- // ../circle-ir/dist/analysis/passes/mybatis-annotation-sql-sink-pass.js
32569
+ // node_modules/circle-ir/dist/analysis/passes/mybatis-annotation-sql-sink-pass.js
32570
32570
  var MYBATIS_SQL_ANNOTATIONS = new Set([
32571
32571
  "Select",
32572
32572
  "Update",
@@ -32793,7 +32793,7 @@ class MyBatisAnnotationSqlSinkPass {
32793
32793
  }
32794
32794
  }
32795
32795
 
32796
- // ../circle-ir/dist/analysis/passes/sink-filter-pass.js
32796
+ // node_modules/circle-ir/dist/analysis/passes/sink-filter-pass.js
32797
32797
  function escapeReSf(s) {
32798
32798
  return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
32799
32799
  }
@@ -34597,7 +34597,7 @@ function isXPathQuoteEscapedOnLine(lineText, varName) {
34597
34597
  return seen > 0;
34598
34598
  }
34599
34599
 
34600
- // ../circle-ir/dist/analysis/passes/sink-semantics-pass.js
34600
+ // node_modules/circle-ir/dist/analysis/passes/sink-semantics-pass.js
34601
34601
  function buildRegistry(entries) {
34602
34602
  const registry = new Map;
34603
34603
  for (const entry of entries) {
@@ -34645,7 +34645,7 @@ class SinkSemanticsPass {
34645
34645
  }
34646
34646
  }
34647
34647
 
34648
- // ../circle-ir/dist/analysis/dependency-versions.js
34648
+ // node_modules/circle-ir/dist/analysis/dependency-versions.js
34649
34649
  function resolveFastjsonFromPom(pomXml) {
34650
34650
  if (!pomXml)
34651
34651
  return null;
@@ -34823,7 +34823,7 @@ function fileConfiguresSnakeYamlSafely(source) {
34823
34823
  return false;
34824
34824
  }
34825
34825
 
34826
- // ../circle-ir/dist/analysis/passes/deserialization-safety-gate-pass.js
34826
+ // node_modules/circle-ir/dist/analysis/passes/deserialization-safety-gate-pass.js
34827
34827
  var FASTJSON_METHODS = new Set(["parseObject", "parse"]);
34828
34828
  var FASTJSON_CLASSES = new Set(["JSON", "JSONObject"]);
34829
34829
  var JACKSON_METHODS = new Set(["readValue", "convertValue", "treeToValue"]);
@@ -34900,7 +34900,7 @@ class DeserializationSafetyGatePass {
34900
34900
  }
34901
34901
  }
34902
34902
 
34903
- // ../circle-ir/dist/analysis/passes/prompt-injection-safety-gate-pass.js
34903
+ // node_modules/circle-ir/dist/analysis/passes/prompt-injection-safety-gate-pass.js
34904
34904
  function isDelimiterLiteral(lit) {
34905
34905
  const s = lit.trim();
34906
34906
  if (s.length === 0)
@@ -35143,7 +35143,7 @@ class PromptInjectionSafetyGatePass {
35143
35143
  }
35144
35144
  }
35145
35145
 
35146
- // ../circle-ir/dist/analysis/passes/speculative-prompt-param-source-pass.js
35146
+ // node_modules/circle-ir/dist/analysis/passes/speculative-prompt-param-source-pass.js
35147
35147
  function returnOrAssignRhs(text) {
35148
35148
  const t = text.trim();
35149
35149
  const ret = t.match(/^return\s+(.+?);?$/);
@@ -35269,7 +35269,7 @@ class SpeculativePromptParamSourcePass {
35269
35269
  }
35270
35270
  }
35271
35271
 
35272
- // ../circle-ir/dist/analysis/passes/cli-main-reflection-suppress-pass.js
35272
+ // node_modules/circle-ir/dist/analysis/passes/cli-main-reflection-suppress-pass.js
35273
35273
  var REFLECTION_SINK_METHODS = new Set([
35274
35274
  "forName",
35275
35275
  "newInstance",
@@ -35457,7 +35457,7 @@ class CliMainReflectionSuppressPass {
35457
35457
  }
35458
35458
  }
35459
35459
 
35460
- // ../circle-ir/dist/analysis/passes/library-profile-sink-gate-pass.js
35460
+ // node_modules/circle-ir/dist/analysis/passes/library-profile-sink-gate-pass.js
35461
35461
  var DROPPED_SINK_TYPES = new Set([
35462
35462
  "log_injection"
35463
35463
  ]);
@@ -35563,7 +35563,7 @@ class LibraryProfileCwe22PathGatePass {
35563
35563
  }
35564
35564
  }
35565
35565
 
35566
- // ../circle-ir/dist/analysis/passes/library-profile-xss-gate-pass.js
35566
+ // node_modules/circle-ir/dist/analysis/passes/library-profile-xss-gate-pass.js
35567
35567
  var XSS_NON_HTML_OUTPUT_CLASSES = new Set([
35568
35568
  "StringBuilder",
35569
35569
  "StringBuffer",
@@ -35644,7 +35644,7 @@ class LibraryProfileXssGatePass {
35644
35644
  }
35645
35645
  }
35646
35646
 
35647
- // ../circle-ir/dist/analysis/passes/taint-propagation-pass.js
35647
+ // node_modules/circle-ir/dist/analysis/passes/taint-propagation-pass.js
35648
35648
  class TaintPropagationPass {
35649
35649
  name = "taint-propagation";
35650
35650
  category = "security";
@@ -36874,7 +36874,7 @@ function pickScopedSource(sources, sinkLine, methodName, types, taintedVar) {
36874
36874
  return sources[0];
36875
36875
  }
36876
36876
 
36877
- // ../circle-ir/dist/analysis/interprocedural.js
36877
+ // node_modules/circle-ir/dist/analysis/interprocedural.js
36878
36878
  function analyzeInterprocedural2(graphOrTypes, callsOrSources, dfgOrSinks, sourcesOrSanitizers, sinksOrOptions, sanitizersArg, optionsArg = {}) {
36879
36879
  let graph;
36880
36880
  let sources;
@@ -37388,7 +37388,7 @@ function findTaintBridges2(result) {
37388
37388
  return bridges;
37389
37389
  }
37390
37390
 
37391
- // ../circle-ir/dist/analysis/passes/interprocedural-pass.js
37391
+ // node_modules/circle-ir/dist/analysis/passes/interprocedural-pass.js
37392
37392
  class InterproceduralPass {
37393
37393
  name = "interprocedural";
37394
37394
  category = "security";
@@ -37594,7 +37594,7 @@ class InterproceduralPass {
37594
37594
  }
37595
37595
  }
37596
37596
 
37597
- // ../circle-ir/dist/analysis/passes/dead-code-pass.js
37597
+ // node_modules/circle-ir/dist/analysis/passes/dead-code-pass.js
37598
37598
  class DeadCodePass {
37599
37599
  name = "dead-code";
37600
37600
  category = "reliability";
@@ -37670,7 +37670,7 @@ class DeadCodePass {
37670
37670
  }
37671
37671
  }
37672
37672
 
37673
- // ../circle-ir/dist/analysis/passes/missing-await-pass.js
37673
+ // node_modules/circle-ir/dist/analysis/passes/missing-await-pass.js
37674
37674
  var ASYNC_METHODS = new Set([
37675
37675
  "readFile",
37676
37676
  "writeFile",
@@ -37749,7 +37749,7 @@ class MissingAwaitPass {
37749
37749
  }
37750
37750
  }
37751
37751
 
37752
- // ../circle-ir/dist/analysis/passes/n-plus-one-pass.js
37752
+ // node_modules/circle-ir/dist/analysis/passes/n-plus-one-pass.js
37753
37753
  var HIGH_CONFIDENCE_DB_METHODS = new Set([
37754
37754
  "executeQuery",
37755
37755
  "executeUpdate",
@@ -37872,7 +37872,7 @@ class NPlusOnePass {
37872
37872
  }
37873
37873
  }
37874
37874
 
37875
- // ../circle-ir/dist/analysis/passes/missing-public-doc-pass.js
37875
+ // node_modules/circle-ir/dist/analysis/passes/missing-public-doc-pass.js
37876
37876
  var TEST_PATH_RE = /[/._](test|tests|spec|specs|__tests?__|__mocks?__)[/._]/i;
37877
37877
  var UTIL_DIR_RE = /[/](utils?|helpers?|internal|private|common|shared)[/]/i;
37878
37878
  function hasDocCommentBefore(lines, startLine) {
@@ -37979,7 +37979,7 @@ class MissingPublicDocPass {
37979
37979
  }
37980
37980
  }
37981
37981
 
37982
- // ../circle-ir/dist/analysis/passes/todo-in-prod-pass.js
37982
+ // node_modules/circle-ir/dist/analysis/passes/todo-in-prod-pass.js
37983
37983
  var TEST_PATH_RE2 = /[/._](test|tests|spec|specs|__tests?__|__mocks?__)[/._]/i;
37984
37984
  var MARKER_RE = /(?:\/\/|#|--|^\s*\*)\s*(TODO|FIXME|HACK|XXX)\b/i;
37985
37985
  function markerSeverity(marker) {
@@ -38025,7 +38025,7 @@ class TodoInProdPass {
38025
38025
  }
38026
38026
  }
38027
38027
 
38028
- // ../circle-ir/dist/analysis/passes/string-concat-loop-pass.js
38028
+ // node_modules/circle-ir/dist/analysis/passes/string-concat-loop-pass.js
38029
38029
  var CONCAT_RE = /\b([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\+=/;
38030
38030
  var NUMERIC_VAR_RE = /^(i|j|k|n|m|x|y|z|count|sum|total|size|index|len|length|num|idx|score|counter|offset|pos|col|row|result|ret|value|acc|bits|byte|bytes|flag|flags|step|delta|diff|dist|min|max|avg|mean|page|line|err|error)$/i;
38031
38031
  var NUMERIC_SUFFIX_RE = /(Count|Sum|Total|Size|Index|Length|Offset|Position|Score|Counter|Num|Amount|Val|Idx|Len|Max|Min|Avg|Delta|Diff|Step|Flag|Flags|Bits|Byte|Bytes|Calls|Items|Nodes|Edges|Blocks|Lines|Chars|Entries|Records|Rows)$/;
@@ -38088,7 +38088,7 @@ class StringConcatLoopPass {
38088
38088
  }
38089
38089
  }
38090
38090
 
38091
- // ../circle-ir/dist/analysis/passes/sync-io-async-pass.js
38091
+ // node_modules/circle-ir/dist/analysis/passes/sync-io-async-pass.js
38092
38092
  var BLOCKING_METHODS = new Set([
38093
38093
  "sleep"
38094
38094
  ]);
@@ -38149,7 +38149,7 @@ class SyncIoAsyncPass {
38149
38149
  }
38150
38150
  }
38151
38151
 
38152
- // ../circle-ir/dist/analysis/passes/unchecked-return-pass.js
38152
+ // node_modules/circle-ir/dist/analysis/passes/unchecked-return-pass.js
38153
38153
  var MUST_CHECK_HIGH = new Set([
38154
38154
  "createNewFile",
38155
38155
  "mkdir",
@@ -38222,7 +38222,7 @@ class UncheckedReturnPass {
38222
38222
  }
38223
38223
  }
38224
38224
 
38225
- // ../circle-ir/dist/analysis/passes/null-deref-pass.js
38225
+ // node_modules/circle-ir/dist/analysis/passes/null-deref-pass.js
38226
38226
  var NULL_EXPR_RE = /^\s*(null|None|undefined)\s*$/;
38227
38227
  function escRe(s) {
38228
38228
  return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
@@ -38304,7 +38304,7 @@ class NullDerefPass {
38304
38304
  }
38305
38305
  }
38306
38306
 
38307
- // ../circle-ir/dist/analysis/passes/resource-leak-pass.js
38307
+ // node_modules/circle-ir/dist/analysis/passes/resource-leak-pass.js
38308
38308
  function escapeRegex2(s) {
38309
38309
  return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
38310
38310
  }
@@ -38581,7 +38581,7 @@ class ResourceLeakPass {
38581
38581
  }
38582
38582
  }
38583
38583
 
38584
- // ../circle-ir/dist/graph/scope-graph.js
38584
+ // node_modules/circle-ir/dist/graph/scope-graph.js
38585
38585
  function hasDeclKeyword(lineText, language) {
38586
38586
  switch (language) {
38587
38587
  case "java":
@@ -38621,7 +38621,7 @@ class ScopeGraph {
38621
38621
  }
38622
38622
  }
38623
38623
 
38624
- // ../circle-ir/dist/analysis/passes/variable-shadowing-pass.js
38624
+ // node_modules/circle-ir/dist/analysis/passes/variable-shadowing-pass.js
38625
38625
  var SKIP_NAMES = new Set([
38626
38626
  "let",
38627
38627
  "const",
@@ -38779,7 +38779,7 @@ class VariableShadowingPass {
38779
38779
  }
38780
38780
  }
38781
38781
 
38782
- // ../circle-ir/dist/analysis/passes/leaked-global-pass.js
38782
+ // node_modules/circle-ir/dist/analysis/passes/leaked-global-pass.js
38783
38783
  var SKIP_NAMES2 = new Set([
38784
38784
  "_",
38785
38785
  "e",
@@ -38866,7 +38866,7 @@ class LeakedGlobalPass {
38866
38866
  }
38867
38867
  }
38868
38868
 
38869
- // ../circle-ir/dist/analysis/passes/unused-variable-pass.js
38869
+ // node_modules/circle-ir/dist/analysis/passes/unused-variable-pass.js
38870
38870
  var SKIP_NAMES3 = new Set([
38871
38871
  "_",
38872
38872
  "unused",
@@ -39011,7 +39011,7 @@ class UnusedVariablePass {
39011
39011
  }
39012
39012
  }
39013
39013
 
39014
- // ../circle-ir/dist/analysis/passes/dependency-fan-out-pass.js
39014
+ // node_modules/circle-ir/dist/analysis/passes/dependency-fan-out-pass.js
39015
39015
  var DEFAULT_THRESHOLD = 20;
39016
39016
 
39017
39017
  class DependencyFanOutPass {
@@ -39043,7 +39043,7 @@ class DependencyFanOutPass {
39043
39043
  }
39044
39044
  }
39045
39045
 
39046
- // ../circle-ir/dist/analysis/passes/stale-doc-ref-pass.js
39046
+ // node_modules/circle-ir/dist/analysis/passes/stale-doc-ref-pass.js
39047
39047
  var DOC_BLOCK_RE = /\/\*\*([\s\S]*?)\*\//g;
39048
39048
  var LINK_RE = /\{@link\s+([\w.#]+)/g;
39049
39049
  var SEE_RE = /@see\s+([\w.#]+)/g;
@@ -39122,7 +39122,7 @@ class StaleDocRefPass {
39122
39122
  }
39123
39123
  }
39124
39124
 
39125
- // ../circle-ir/dist/analysis/passes/infinite-loop-pass.js
39125
+ // node_modules/circle-ir/dist/analysis/passes/infinite-loop-pass.js
39126
39126
  var EXIT_KEYWORDS = /\b(return|throw|raise|break|System\.exit|process\.exit|os\._exit|exit!\()\b/;
39127
39127
  var ITERATOR_LOOP_PATTERNS = [
39128
39128
  /\bfor\s*\([^)]*\s+of\s+/,
@@ -39241,7 +39241,7 @@ class InfiniteLoopPass {
39241
39241
  }
39242
39242
  }
39243
39243
 
39244
- // ../circle-ir/dist/analysis/passes/deep-inheritance-pass.js
39244
+ // node_modules/circle-ir/dist/analysis/passes/deep-inheritance-pass.js
39245
39245
  var DEPTH_THRESHOLD = 5;
39246
39246
  var CYCLE_GUARD = 20;
39247
39247
 
@@ -39304,7 +39304,7 @@ class DeepInheritancePass {
39304
39304
  }
39305
39305
  }
39306
39306
 
39307
- // ../circle-ir/dist/analysis/passes/redundant-loop-pass.js
39307
+ // node_modules/circle-ir/dist/analysis/passes/redundant-loop-pass.js
39308
39308
  var LENGTH_PATTERN = /\b([A-Za-z_$][A-Za-z0-9_$]*)\s*\.\s*(?:length|size\(\)|count\(\))/g;
39309
39309
  var LENGTH_PATTERN_METHODS = /\b([A-Za-z_$][A-Za-z0-9_$]*)\s*\.\s*(?:size\(\)|count\(\))/g;
39310
39310
  var OBJECT_STATIC_PATTERN = /\bObject\s*\.\s*(?:keys|values|entries)\s*\(\s*([A-Za-z_$][A-Za-z0-9_$]*)\s*\)/g;
@@ -39427,7 +39427,7 @@ class RedundantLoopPass {
39427
39427
  }
39428
39428
  }
39429
39429
 
39430
- // ../circle-ir/dist/analysis/passes/unbounded-collection-pass.js
39430
+ // node_modules/circle-ir/dist/analysis/passes/unbounded-collection-pass.js
39431
39431
  var GROW_METHODS = {
39432
39432
  java: new Set(["add", "put", "offer", "push", "addAll", "addFirst", "addLast", "enqueue", "insert"]),
39433
39433
  javascript: new Set(["push", "set", "add", "unshift", "append", "prepend"]),
@@ -39551,7 +39551,7 @@ class UnboundedCollectionPass {
39551
39551
  }
39552
39552
  }
39553
39553
 
39554
- // ../circle-ir/dist/analysis/passes/serial-await-pass.js
39554
+ // node_modules/circle-ir/dist/analysis/passes/serial-await-pass.js
39555
39555
  var AWAIT_ASSIGN_RE = /(?:const|let|var)?\s*(\w+)\s*=\s*await\s/;
39556
39556
  var AWAIT_RE = /\bawait\s/;
39557
39557
 
@@ -39647,7 +39647,7 @@ class SerialAwaitPass {
39647
39647
  }
39648
39648
  }
39649
39649
 
39650
- // ../circle-ir/dist/analysis/passes/react-inline-jsx-pass.js
39650
+ // node_modules/circle-ir/dist/analysis/passes/react-inline-jsx-pass.js
39651
39651
  var JSX_COMPONENT_RE = /<[A-Z][A-Za-z0-9]*/;
39652
39652
  var INLINE_OBJECT_RE = /\s([A-Za-z][A-Za-z0-9_]*)=\{\{/g;
39653
39653
  var INLINE_ARROW_RE = /\s([A-Za-z][A-Za-z0-9_]*)=\{(?:\(|[A-Za-z_$]).*?=>/g;
@@ -39751,7 +39751,7 @@ class ReactInlineJsxPass {
39751
39751
  }
39752
39752
  }
39753
39753
 
39754
- // ../circle-ir/dist/graph/exception-flow-graph.js
39754
+ // node_modules/circle-ir/dist/graph/exception-flow-graph.js
39755
39755
  class ExceptionFlowGraph2 {
39756
39756
  pairs;
39757
39757
  catchEntryIds;
@@ -39802,7 +39802,7 @@ class ExceptionFlowGraph2 {
39802
39802
  }
39803
39803
  }
39804
39804
 
39805
- // ../circle-ir/dist/analysis/passes/swallowed-exception-pass.js
39805
+ // node_modules/circle-ir/dist/analysis/passes/swallowed-exception-pass.js
39806
39806
  var MEANINGFUL_ACTION_RE = /\b(throw|raise|log|logger|console\.(error|warn|log|debug|info)|System\.(out|err)\.|print(?:ln|f)?|warn|error|debug|info|fatal|LOGGER|LOG|logging\.(warning|error|debug|info|critical))\b|\breturn\s+\S/;
39807
39807
 
39808
39808
  class SwallowedExceptionPass {
@@ -39900,7 +39900,7 @@ class SwallowedExceptionPass {
39900
39900
  }
39901
39901
  }
39902
39902
 
39903
- // ../circle-ir/dist/analysis/passes/broad-catch-pass.js
39903
+ // node_modules/circle-ir/dist/analysis/passes/broad-catch-pass.js
39904
39904
  var JAVA_BROAD_RE = /catch\s*\(\s*(Exception|Throwable|RuntimeException|Error)\s/;
39905
39905
  var PYTHON_BROAD_RE = /^\s*except\s*:|except\s+(Exception|BaseException)\b/;
39906
39906
 
@@ -39956,7 +39956,7 @@ class BroadCatchPass {
39956
39956
  }
39957
39957
  }
39958
39958
 
39959
- // ../circle-ir/dist/analysis/passes/unhandled-exception-pass.js
39959
+ // node_modules/circle-ir/dist/analysis/passes/unhandled-exception-pass.js
39960
39960
  var JS_THROW_RE = /^\s*throw\s+/;
39961
39961
  var PYTHON_RAISE_RE = /^\s*raise\b/;
39962
39962
  function isValidationThrow(lines, throwLine) {
@@ -40126,7 +40126,7 @@ class UnhandledExceptionPass {
40126
40126
  }
40127
40127
  }
40128
40128
 
40129
- // ../circle-ir/dist/analysis/passes/double-close-pass.js
40129
+ // node_modules/circle-ir/dist/analysis/passes/double-close-pass.js
40130
40130
  var RESOURCE_CTORS2 = new Set([
40131
40131
  "FileInputStream",
40132
40132
  "FileOutputStream",
@@ -40241,7 +40241,7 @@ class DoubleClosePass {
40241
40241
  }
40242
40242
  }
40243
40243
 
40244
- // ../circle-ir/dist/analysis/passes/use-after-close-pass.js
40244
+ // node_modules/circle-ir/dist/analysis/passes/use-after-close-pass.js
40245
40245
  var RESOURCE_CTORS3 = new Set([
40246
40246
  "FileInputStream",
40247
40247
  "FileOutputStream",
@@ -40349,7 +40349,7 @@ class UseAfterClosePass {
40349
40349
  }
40350
40350
  }
40351
40351
 
40352
- // ../circle-ir/dist/graph/dominator-graph.js
40352
+ // node_modules/circle-ir/dist/graph/dominator-graph.js
40353
40353
  function computeRPO(cfg, entryId) {
40354
40354
  const outgoing = new Map;
40355
40355
  for (const edge of cfg.edges) {
@@ -40514,7 +40514,7 @@ class DominatorGraph2 {
40514
40514
  }
40515
40515
  }
40516
40516
 
40517
- // ../circle-ir/dist/analysis/passes/cleanup-verify-pass.js
40517
+ // node_modules/circle-ir/dist/analysis/passes/cleanup-verify-pass.js
40518
40518
  var RESOURCE_CTORS4 = new Set([
40519
40519
  "FileInputStream",
40520
40520
  "FileOutputStream",
@@ -40639,7 +40639,7 @@ class CleanupVerifyPass {
40639
40639
  }
40640
40640
  }
40641
40641
 
40642
- // ../circle-ir/dist/analysis/passes/missing-override-pass.js
40642
+ // node_modules/circle-ir/dist/analysis/passes/missing-override-pass.js
40643
40643
  class MissingOverridePass {
40644
40644
  name = "missing-override";
40645
40645
  category = "maintainability";
@@ -40726,7 +40726,7 @@ class MissingOverridePass {
40726
40726
  }
40727
40727
  }
40728
40728
 
40729
- // ../circle-ir/dist/analysis/passes/unused-interface-method-pass.js
40729
+ // node_modules/circle-ir/dist/analysis/passes/unused-interface-method-pass.js
40730
40730
  class UnusedInterfaceMethodPass {
40731
40731
  name = "unused-interface-method";
40732
40732
  category = "maintainability";
@@ -40769,7 +40769,7 @@ class UnusedInterfaceMethodPass {
40769
40769
  }
40770
40770
  }
40771
40771
 
40772
- // ../circle-ir/dist/analysis/passes/blocking-main-thread-pass.js
40772
+ // node_modules/circle-ir/dist/analysis/passes/blocking-main-thread-pass.js
40773
40773
  var HTTP_DECORATORS = new Set([
40774
40774
  "Get",
40775
40775
  "Post",
@@ -40872,7 +40872,7 @@ class BlockingMainThreadPass {
40872
40872
  }
40873
40873
  }
40874
40874
 
40875
- // ../circle-ir/dist/analysis/passes/excessive-allocation-pass.js
40875
+ // node_modules/circle-ir/dist/analysis/passes/excessive-allocation-pass.js
40876
40876
  var ALLOC_PATTERNS = {
40877
40877
  javascript: /\bnew\s+(Array|Map|Set|Object|WeakMap|WeakSet|Error|RegExp|Date|Buffer|Uint8Array|Int8Array|Float32Array|ArrayBuffer)\s*[(<]|\bArray\.from\s*\(|\bstructuredClone\s*\(|\bObject\.create\s*\(/,
40878
40878
  typescript: /\bnew\s+(Array|Map|Set|Object|WeakMap|WeakSet|Error|RegExp|Date|Buffer|Uint8Array|Int8Array|Float32Array|ArrayBuffer)\s*[(<]|\bArray\.from\s*\(|\bstructuredClone\s*\(|\bObject\.create\s*\(/,
@@ -40939,7 +40939,7 @@ class ExcessiveAllocationPass {
40939
40939
  }
40940
40940
  }
40941
40941
 
40942
- // ../circle-ir/dist/analysis/passes/missing-stream-pass.js
40942
+ // node_modules/circle-ir/dist/analysis/passes/missing-stream-pass.js
40943
40943
  var JS_WHOLE_LOAD_RE = /\b(?:readFileSync|fs\.readFile\b|response\.text\b|response\.json\b|res\.text\b|res\.json\b|body\.text\b|body\.json\b)\s*\(/;
40944
40944
  var JS_STREAM_RE = /\.pipe\s*\(|\.on\s*\(\s*['"]data['"]|for\s+await\s*\(|\bcreateReadStream\b|\bstream\b/i;
40945
40945
  var JAVA_WHOLE_READ_RE = /\bFiles\.readAllBytes\s*\(|\bFiles\.readAllLines\s*\(|\bFiles\.readString\s*\(|\bnew\s+BufferedReader\s*\(|\bFileInputStream\b/;
@@ -41086,7 +41086,7 @@ class MissingStreamPass {
41086
41086
  }
41087
41087
  }
41088
41088
 
41089
- // ../circle-ir/dist/analysis/passes/god-class-pass.js
41089
+ // node_modules/circle-ir/dist/analysis/passes/god-class-pass.js
41090
41090
  var WMC_THRESHOLD = 47;
41091
41091
  var LCOM2_THRESHOLD = 0.8;
41092
41092
  var CBO_THRESHOLD = 14;
@@ -41252,7 +41252,7 @@ class GodClassPass {
41252
41252
  }
41253
41253
  }
41254
41254
 
41255
- // ../circle-ir/dist/analysis/passes/naming-convention-pass.js
41255
+ // node_modules/circle-ir/dist/analysis/passes/naming-convention-pass.js
41256
41256
  var PASCAL_CASE_RE = /^[A-Z][A-Za-z0-9]*$/;
41257
41257
  var CAMEL_CASE_RE = /^[a-z][a-zA-Z0-9]*$/;
41258
41258
  var SNAKE_CASE_RE = /^[a-z_][a-z0-9_]*$/;
@@ -41392,7 +41392,7 @@ class NamingConventionPass {
41392
41392
  }
41393
41393
  }
41394
41394
 
41395
- // ../circle-ir/dist/analysis/passes/security-headers-pass.js
41395
+ // node_modules/circle-ir/dist/analysis/passes/security-headers-pass.js
41396
41396
  var HEADER_WRITE_METHODS = new Set([
41397
41397
  "setHeader",
41398
41398
  "addHeader",
@@ -41853,7 +41853,7 @@ function mapReturnValueToCorsRule(returnValue) {
41853
41853
  };
41854
41854
  }
41855
41855
 
41856
- // ../circle-ir/dist/analysis/passes/_fp-allowlists.js
41856
+ // node_modules/circle-ir/dist/analysis/passes/_fp-allowlists.js
41857
41857
  var PEM_BODY_RE = /[A-Za-z0-9+/]{30,}/;
41858
41858
  function pemHasInlineBody(lines, hitLineIdx) {
41859
41859
  const end = Math.min(hitLineIdx + 5, lines.length);
@@ -41880,7 +41880,7 @@ function isProtocolMandatedCryptoFile(file, code) {
41880
41880
  return false;
41881
41881
  }
41882
41882
 
41883
- // ../circle-ir/dist/analysis/passes/scan-secrets-pass.js
41883
+ // node_modules/circle-ir/dist/analysis/passes/scan-secrets-pass.js
41884
41884
  function applyDemoDowngrade(demoPath, severity, level) {
41885
41885
  if (!demoPath)
41886
41886
  return { severity, level };
@@ -42458,7 +42458,7 @@ class ScanSecretsPass {
42458
42458
  }
42459
42459
  }
42460
42460
 
42461
- // ../circle-ir/dist/analysis/passes/python-receiver-taint-format-pass.js
42461
+ // node_modules/circle-ir/dist/analysis/passes/python-receiver-taint-format-pass.js
42462
42462
  class PythonReceiverTaintFormatPass {
42463
42463
  name = "python-receiver-taint-format";
42464
42464
  category = "security";
@@ -42510,7 +42510,7 @@ class PythonReceiverTaintFormatPass {
42510
42510
  }
42511
42511
  }
42512
42512
 
42513
- // ../circle-ir/dist/analysis/passes/spring4shell-pass.js
42513
+ // node_modules/circle-ir/dist/analysis/passes/spring4shell-pass.js
42514
42514
  var CONTROLLER_ANNOTATIONS = new Set([
42515
42515
  "Controller",
42516
42516
  "RestController",
@@ -42718,7 +42718,7 @@ function isPotentialPojo(type) {
42718
42718
  return first >= 65 && first <= 90;
42719
42719
  }
42720
42720
 
42721
- // ../circle-ir/dist/analysis/passes/insecure-cookie-pass.js
42721
+ // node_modules/circle-ir/dist/analysis/passes/insecure-cookie-pass.js
42722
42722
  var COOKIE_RESPONSE_RECEIVERS = new Set([
42723
42723
  "res",
42724
42724
  "response",
@@ -42954,7 +42954,7 @@ class InsecureCookiePass {
42954
42954
  }
42955
42955
  }
42956
42956
 
42957
- // ../circle-ir/dist/analysis/passes/weak-hash-pass.js
42957
+ // node_modules/circle-ir/dist/analysis/passes/weak-hash-pass.js
42958
42958
  var WEAK_HASH_NAMES = new Set([
42959
42959
  "md2",
42960
42960
  "md4",
@@ -43174,7 +43174,7 @@ class WeakHashPass {
43174
43174
  }
43175
43175
  }
43176
43176
 
43177
- // ../circle-ir/dist/analysis/path-classification.js
43177
+ // node_modules/circle-ir/dist/analysis/path-classification.js
43178
43178
  var TEST_PATH_PATTERNS = [
43179
43179
  /(^|\/)test\//i,
43180
43180
  /(^|\/)tests\//i,
@@ -43211,7 +43211,7 @@ function isTestPath(filepath) {
43211
43211
  return false;
43212
43212
  }
43213
43213
 
43214
- // ../circle-ir/dist/analysis/passes/weak-crypto-pass.js
43214
+ // node_modules/circle-ir/dist/analysis/passes/weak-crypto-pass.js
43215
43215
  var WEAK_CIPHER_BASES = new Set([
43216
43216
  "des",
43217
43217
  "3des",
@@ -43716,7 +43716,7 @@ class WeakCryptoPass {
43716
43716
  }
43717
43717
  }
43718
43718
 
43719
- // ../circle-ir/dist/analysis/passes/weak-random-pass.js
43719
+ // node_modules/circle-ir/dist/analysis/passes/weak-random-pass.js
43720
43720
  var JAVA_RANDOM_METHODS = new Set([
43721
43721
  "nextInt",
43722
43722
  "nextLong",
@@ -43889,7 +43889,7 @@ class WeakRandomPass {
43889
43889
  }
43890
43890
  }
43891
43891
 
43892
- // ../circle-ir/dist/analysis/passes/_credential-helpers.js
43892
+ // node_modules/circle-ir/dist/analysis/passes/_credential-helpers.js
43893
43893
  var CRED_KEYWORD_RE2 = /(?:password|passwd|pwd|secret|api[_-]?key|auth[_-]?token|private[_-]?key|access[_-]?key|credential)/i;
43894
43894
  function isCredentialIdentifier(name2) {
43895
43895
  if (!name2)
@@ -43982,7 +43982,7 @@ function priorHashOf(varName, priorCalls) {
43982
43982
  return false;
43983
43983
  }
43984
43984
 
43985
- // ../circle-ir/dist/analysis/passes/weak-password-hash-pass.js
43985
+ // node_modules/circle-ir/dist/analysis/passes/weak-password-hash-pass.js
43986
43986
  var FAST_HASH_NAMES = new Set([
43987
43987
  "sha224",
43988
43988
  "sha-224",
@@ -44141,7 +44141,7 @@ class WeakPasswordHashPass {
44141
44141
  }
44142
44142
  }
44143
44143
 
44144
- // ../circle-ir/dist/analysis/passes/weak-password-encoding-pass.js
44144
+ // node_modules/circle-ir/dist/analysis/passes/weak-password-encoding-pass.js
44145
44145
  function isBasicAuthContext(call, code) {
44146
44146
  const line = call.location.line;
44147
44147
  if (line < 1)
@@ -44253,7 +44253,7 @@ class WeakPasswordEncodingPass {
44253
44253
  }
44254
44254
  }
44255
44255
 
44256
- // ../circle-ir/dist/analysis/passes/info-disclosure-stacktrace-pass.js
44256
+ // node_modules/circle-ir/dist/analysis/passes/info-disclosure-stacktrace-pass.js
44257
44257
  var RESPONSE_RECEIVER_RE = /^(res|response|w|writer|ctx|c)$/i;
44258
44258
  var LOGGER_RECEIVER_RE = /^(log|logger|slog|console|pino|winston|sentry)$/i;
44259
44259
  var RESPONSE_SEND_METHODS = new Set([
@@ -44439,7 +44439,7 @@ class InfoDisclosureStacktracePass {
44439
44439
  }
44440
44440
  }
44441
44441
 
44442
- // ../circle-ir/dist/analysis/passes/unrestricted-file-upload-pass.js
44442
+ // node_modules/circle-ir/dist/analysis/passes/unrestricted-file-upload-pass.js
44443
44443
  var UPLOAD_NAME_RE = /(?:getOriginalFilename|getSubmittedFileName|originalname|originalName|\.filename|\.Filename|FileHeader\.Filename|UploadFile)/;
44444
44444
  var FILE_SAFE_CALL_RE = /(?:secure_filename|FilenameUtils\.getExtension|\.lastIndexOf\(['"]\.['"]\)|ALLOWED_EXT|ALLOWED_EXTENSIONS|allowedExtensions|\bfileFilter\b|filepath\.Ext|path\.extname)/;
44445
44445
  function lineWindow(lines, startLine, endLine) {
@@ -44590,7 +44590,7 @@ class UnrestrictedFileUploadPass {
44590
44590
  }
44591
44591
  }
44592
44592
 
44593
- // ../circle-ir/dist/analysis/passes/missing-sanitizer-gate-pass.js
44593
+ // node_modules/circle-ir/dist/analysis/passes/missing-sanitizer-gate-pass.js
44594
44594
  var HTML_OUTPUT_SINKS = new Set([
44595
44595
  "addAttribute",
44596
44596
  "setAttribute",
@@ -44738,7 +44738,7 @@ function methodAcceptsHtmlShapedParam(method) {
44738
44738
  return false;
44739
44739
  }
44740
44740
 
44741
- // ../circle-ir/dist/analysis/passes/insecure-deserialization-config-pass.js
44741
+ // node_modules/circle-ir/dist/analysis/passes/insecure-deserialization-config-pass.js
44742
44742
  var ANY_TYPE_PERMISSION_RE = /\bAnyTypePermission\b/;
44743
44743
 
44744
44744
  class InsecureDeserializationConfigPass {
@@ -44816,7 +44816,7 @@ class InsecureDeserializationConfigPass {
44816
44816
  }
44817
44817
  var INSECURE_TYPE_NAME_HANDLING_RE = /\bTypeNameHandling\s*=\s*(?:Newtonsoft\.Json\.)?TypeNameHandling\.(All|Auto|Objects|Arrays)\b/;
44818
44818
 
44819
- // ../circle-ir/dist/analysis/passes/plaintext-password-storage-pass.js
44819
+ // node_modules/circle-ir/dist/analysis/passes/plaintext-password-storage-pass.js
44820
44820
  function isWriteStorageCall(call, language) {
44821
44821
  const method = call.method_name ?? "";
44822
44822
  const receiver = call.receiver ?? "";
@@ -44927,7 +44927,7 @@ class PlaintextPasswordStoragePass {
44927
44927
  }
44928
44928
  }
44929
44929
 
44930
- // ../circle-ir/dist/analysis/passes/cleartext-credential-transport-pass.js
44930
+ // node_modules/circle-ir/dist/analysis/passes/cleartext-credential-transport-pass.js
44931
44931
  var LOCALHOST_RE = /^(?:localhost|127\.0\.0\.1|0\.0\.0\.0)(?::\d+)?$/i;
44932
44932
  function isInsecureHttpUrl(urlLiteral) {
44933
44933
  if (!urlLiteral)
@@ -45055,7 +45055,7 @@ class CleartextCredentialTransportPass {
45055
45055
  }
45056
45056
  }
45057
45057
 
45058
- // ../circle-ir/dist/analysis/passes/tls-verify-disabled-pass.js
45058
+ // node_modules/circle-ir/dist/analysis/passes/tls-verify-disabled-pass.js
45059
45059
  var PY_HTTP_METHODS = new Set([
45060
45060
  "get",
45061
45061
  "post",
@@ -45268,7 +45268,7 @@ class TlsVerifyDisabledPass {
45268
45268
  }
45269
45269
  }
45270
45270
 
45271
- // ../circle-ir/dist/analysis/passes/module-side-effect-pass.js
45271
+ // node_modules/circle-ir/dist/analysis/passes/module-side-effect-pass.js
45272
45272
  var JS_EXEC_METHODS = new Set([
45273
45273
  "exec",
45274
45274
  "spawn",
@@ -45499,7 +45499,7 @@ class ModuleSideEffectPass {
45499
45499
  }
45500
45500
  }
45501
45501
 
45502
- // ../circle-ir/dist/analysis/passes/cache-no-vary-pass.js
45502
+ // node_modules/circle-ir/dist/analysis/passes/cache-no-vary-pass.js
45503
45503
  function isSharedCacheable(value) {
45504
45504
  const v = value.toLowerCase();
45505
45505
  if (/\b(private|no-store|no-cache)\b/.test(v))
@@ -45786,7 +45786,7 @@ class CacheNoVaryPass {
45786
45786
  }
45787
45787
  }
45788
45788
 
45789
- // ../circle-ir/dist/analysis/passes/jwt-verify-disabled-pass.js
45789
+ // node_modules/circle-ir/dist/analysis/passes/jwt-verify-disabled-pass.js
45790
45790
  var PY_VERIFY_SIGNATURE_FALSE_RE = /["']verify_signature["']\s*:\s*False\b/;
45791
45791
  var PY_VERIFY_KW_FALSE_RE = /\bverify\s*=\s*False\b/;
45792
45792
  var PY_ALG_NONE_RE = /\balgorithms\s*=\s*[\[\(]\s*["']none["']/i;
@@ -45911,7 +45911,7 @@ class JwtVerifyDisabledPass {
45911
45911
  }
45912
45912
  }
45913
45913
 
45914
- // ../circle-ir/dist/analysis/passes/csrf-protection-disabled-pass.js
45914
+ // node_modules/circle-ir/dist/analysis/passes/csrf-protection-disabled-pass.js
45915
45915
  var JAVA_CSRF_DISABLE_RE = /\.csrf\s*\([^)]*\)\s*\.\s*disable\b/;
45916
45916
  var JAVA_CSRF_LAMBDA_DISABLE_RE = /\bcsrf\s*\(\s*\w+\s*->\s*\w+\s*\.\s*disable\s*\(/;
45917
45917
  var JAVA_CSRF_METHODREF_RE = /\bcsrf\s*\(\s*[\w.]+::disable\s*\)/;
@@ -46047,7 +46047,7 @@ class CsrfProtectionDisabledPass {
46047
46047
  }
46048
46048
  }
46049
46049
 
46050
- // ../circle-ir/dist/analysis/passes/xml-entity-expansion-pass.js
46050
+ // node_modules/circle-ir/dist/analysis/passes/xml-entity-expansion-pass.js
46051
46051
  var JAVA_FACTORIES = new Set([
46052
46052
  "SAXParserFactory",
46053
46053
  "DocumentBuilderFactory",
@@ -46187,7 +46187,7 @@ class XmlEntityExpansionPass {
46187
46187
  }
46188
46188
  }
46189
46189
 
46190
- // ../circle-ir/dist/analysis/passes/mass-assignment-pass.js
46190
+ // node_modules/circle-ir/dist/analysis/passes/mass-assignment-pass.js
46191
46191
  var PY_KWARGS_SPLAT_RE = /\*\*\s*(?:request|self\.request|flask\.request|ctx|self)\s*\.\s*(?:form|args|values|json|get_json\s*\(\s*\)|files|data)/;
46192
46192
  var JS_OBJECT_SPREAD_RE = /\{\s*\.\.\.\s*(?:req|request|ctx|context)(?:\.request)?\s*\.\s*(?:body|query|params|form)\b/;
46193
46193
 
@@ -46271,7 +46271,7 @@ class MassAssignmentPass {
46271
46271
  }
46272
46272
  }
46273
46273
 
46274
- // ../circle-ir/dist/graph/import-graph.js
46274
+ // node_modules/circle-ir/dist/graph/import-graph.js
46275
46275
  function dirname(filePath) {
46276
46276
  const idx = filePath.lastIndexOf("/");
46277
46277
  return idx >= 0 ? filePath.slice(0, idx) : "";
@@ -46404,7 +46404,7 @@ class ImportGraph2 {
46404
46404
  }
46405
46405
  }
46406
46406
 
46407
- // ../circle-ir/dist/analysis/passes/circular-dependency-pass.js
46407
+ // node_modules/circle-ir/dist/analysis/passes/circular-dependency-pass.js
46408
46408
  class CircularDependencyPass {
46409
46409
  run(_projectGraph, importGraph) {
46410
46410
  const findings = [];
@@ -46431,7 +46431,7 @@ class CircularDependencyPass {
46431
46431
  }
46432
46432
  }
46433
46433
 
46434
- // ../circle-ir/dist/analysis/passes/orphan-module-pass.js
46434
+ // node_modules/circle-ir/dist/analysis/passes/orphan-module-pass.js
46435
46435
  class OrphanModulePass {
46436
46436
  run(_projectGraph, importGraph) {
46437
46437
  const findings = [];
@@ -46455,7 +46455,7 @@ class OrphanModulePass {
46455
46455
  }
46456
46456
  }
46457
46457
 
46458
- // ../circle-ir/dist/analysis/metrics/passes/size-metrics-pass.js
46458
+ // node_modules/circle-ir/dist/analysis/metrics/passes/size-metrics-pass.js
46459
46459
  class SizeMetricsPass {
46460
46460
  name = "size-metrics";
46461
46461
  run(ctx) {
@@ -46511,7 +46511,7 @@ class SizeMetricsPass {
46511
46511
  }
46512
46512
  }
46513
46513
 
46514
- // ../circle-ir/dist/analysis/metrics/passes/complexity-metrics-pass.js
46514
+ // node_modules/circle-ir/dist/analysis/metrics/passes/complexity-metrics-pass.js
46515
46515
  class ComplexityMetricsPass {
46516
46516
  name = "complexity-metrics";
46517
46517
  run(ctx) {
@@ -46575,7 +46575,7 @@ class ComplexityMetricsPass {
46575
46575
  }
46576
46576
  }
46577
46577
 
46578
- // ../circle-ir/dist/analysis/metrics/passes/halstead-metrics-pass.js
46578
+ // node_modules/circle-ir/dist/analysis/metrics/passes/halstead-metrics-pass.js
46579
46579
  var KEYWORDS = new Set([
46580
46580
  "if",
46581
46581
  "else",
@@ -46730,7 +46730,7 @@ class HalsteadMetricsPass {
46730
46730
  }
46731
46731
  }
46732
46732
 
46733
- // ../circle-ir/dist/analysis/metrics/passes/data-flow-metrics-pass.js
46733
+ // node_modules/circle-ir/dist/analysis/metrics/passes/data-flow-metrics-pass.js
46734
46734
  class DataFlowMetricsPass {
46735
46735
  name = "data-flow-metrics";
46736
46736
  run(ctx) {
@@ -46748,7 +46748,7 @@ class DataFlowMetricsPass {
46748
46748
  }
46749
46749
  }
46750
46750
 
46751
- // ../circle-ir/dist/analysis/metrics/passes/coupling-metrics-pass.js
46751
+ // node_modules/circle-ir/dist/analysis/metrics/passes/coupling-metrics-pass.js
46752
46752
  class CouplingMetricsPass {
46753
46753
  name = "coupling-metrics";
46754
46754
  run(ctx) {
@@ -46826,7 +46826,7 @@ class CouplingMetricsPass {
46826
46826
  }
46827
46827
  }
46828
46828
 
46829
- // ../circle-ir/dist/analysis/metrics/passes/inheritance-metrics-pass.js
46829
+ // node_modules/circle-ir/dist/analysis/metrics/passes/inheritance-metrics-pass.js
46830
46830
  class InheritanceMetricsPass {
46831
46831
  name = "inheritance-metrics";
46832
46832
  run(ctx) {
@@ -46886,7 +46886,7 @@ class InheritanceMetricsPass {
46886
46886
  }
46887
46887
  }
46888
46888
 
46889
- // ../circle-ir/dist/analysis/metrics/passes/cohesion-metrics-pass.js
46889
+ // node_modules/circle-ir/dist/analysis/metrics/passes/cohesion-metrics-pass.js
46890
46890
  class CohesionMetricsPass {
46891
46891
  name = "cohesion-metrics";
46892
46892
  run(ctx) {
@@ -46969,7 +46969,7 @@ class CohesionMetricsPass {
46969
46969
  }
46970
46970
  }
46971
46971
 
46972
- // ../circle-ir/dist/analysis/metrics/passes/documentation-metrics-pass.js
46972
+ // node_modules/circle-ir/dist/analysis/metrics/passes/documentation-metrics-pass.js
46973
46973
  class DocumentationMetricsPass {
46974
46974
  name = "documentation-metrics";
46975
46975
  run(ctx) {
@@ -47022,7 +47022,7 @@ class DocumentationMetricsPass {
47022
47022
  }
47023
47023
  }
47024
47024
 
47025
- // ../circle-ir/dist/analysis/metrics/passes/composite-metrics-pass.js
47025
+ // node_modules/circle-ir/dist/analysis/metrics/passes/composite-metrics-pass.js
47026
47026
  class CompositeMetricsPass {
47027
47027
  name = "composite-metrics";
47028
47028
  run(ctx) {
@@ -47081,7 +47081,7 @@ class CompositeMetricsPass {
47081
47081
  }
47082
47082
  }
47083
47083
 
47084
- // ../circle-ir/dist/analysis/metrics/metric-runner.js
47084
+ // node_modules/circle-ir/dist/analysis/metrics/metric-runner.js
47085
47085
  class MetricRunner {
47086
47086
  passes = [
47087
47087
  new SizeMetricsPass,
@@ -47103,7 +47103,7 @@ class MetricRunner {
47103
47103
  return accumulated;
47104
47104
  }
47105
47105
  }
47106
- // ../circle-ir/dist/analyzer.js
47106
+ // node_modules/circle-ir/dist/analyzer.js
47107
47107
  var initialized = false;
47108
47108
  async function initAnalyzer(options = {}) {
47109
47109
  if (initialized)
@@ -47775,7 +47775,7 @@ function deriveProjectRoot(paths) {
47775
47775
  }
47776
47776
  return common.join("/") || "/";
47777
47777
  }
47778
- // ../circle-ir/dist/analysis/sbom.js
47778
+ // node_modules/circle-ir/dist/analysis/sbom.js
47779
47779
  function purlVersion(spec) {
47780
47780
  const stripped = spec.trim().replace(/^[\s^~=<>]+/, "");
47781
47781
  if (/^v?[0-9][\w.\-+]*$/.test(stripped))
@@ -48821,7 +48821,7 @@ var colors = {
48821
48821
  };
48822
48822
 
48823
48823
  // src/version.ts
48824
- var version = "4.9.9";
48824
+ var version = "4.9.10";
48825
48825
 
48826
48826
  // src/formatters.ts
48827
48827
  var LIBRARY_API_SURFACE_TAG2 = "library-api-surface:caller-responsibility";
@@ -49374,8 +49374,8 @@ function generateSarifResults(results, crossFileData) {
49374
49374
 
49375
49375
  // src/build-info.ts
49376
49376
  var buildInfo = {
49377
- gitSha: "5c476ca",
49378
- builtAt: "2026-08-26T20:08:56.375Z"
49377
+ gitSha: "132eaf6",
49378
+ builtAt: "2026-09-02T06:21:26.855Z"
49379
49379
  };
49380
49380
 
49381
49381
  // src/utils/args.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cognium-dev",
3
- "version": "4.9.9",
3
+ "version": "4.9.10",
4
4
  "description": "Static Application Security Testing CLI for detecting security vulnerabilities via taint tracking",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -14,7 +14,7 @@
14
14
  "test": "bun test",
15
15
  "clean": "rm -rf dist cognium-dev cognium-dev-* *.bun-build wasm",
16
16
  "typecheck": "tsc --noEmit",
17
- "version": "node -e \"const v = require('./package.json').version; require('fs').writeFileSync('src/version.ts', '/**\\n * Version information\\n *\\n * Kept in sync with package.json via the \\`version\\` npm lifecycle script.\\n * Do not edit manually \u2014 use \\`npm version patch|minor|major\\` instead.\\n */\\nexport const version = \\x27' + v + '\\x27;\\n')\" && git add src/version.ts",
17
+ "version": "node -e \"const v = require('./package.json').version; require('fs').writeFileSync('src/version.ts', '/**\\n * Version information\\n *\\n * Kept in sync with package.json via the \\`version\\` npm lifecycle script.\\n * Do not edit manually use \\`npm version patch|minor|major\\` instead.\\n */\\nexport const version = \\x27' + v + '\\x27;\\n')\" && git add src/version.ts",
18
18
  "dogfood": "bun run src/cli.ts scan src/ -q",
19
19
  "prepublishOnly": "bun run build"
20
20
  },
@@ -66,7 +66,7 @@
66
66
  },
67
67
  "dependencies": {
68
68
  "@cognium/project-profile-detect": "1.1.0",
69
- "circle-ir": "4.9.9"
69
+ "circle-ir": "4.9.10"
70
70
  },
71
71
  "devDependencies": {
72
72
  "@types/node": "^25.5.0",