@coana-tech/cli 14.12.102 → 14.12.103

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.
package/cli.mjs CHANGED
@@ -250591,7 +250591,7 @@ async function onlineScan(dependencyTree, apiKey, timeout) {
250591
250591
  }
250592
250592
 
250593
250593
  // dist/version.js
250594
- var version3 = "14.12.102";
250594
+ var version3 = "14.12.103";
250595
250595
 
250596
250596
  // dist/cli-core.js
250597
250597
  var { mapValues, omit, partition, pick } = import_lodash15.default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coana-tech/cli",
3
- "version": "14.12.102",
3
+ "version": "14.12.103",
4
4
  "description": "Coana CLI",
5
5
  "type": "module",
6
6
  "bin": {
@@ -7353,7 +7353,9 @@ var ClassfileSourceResolver = class {
7353
7353
  file,
7354
7354
  name: className,
7355
7355
  displayName: className,
7356
- nodeType: "class"
7356
+ nodeType: "class",
7357
+ isEntryPoint: appOrDep === "app"
7358
+ // class nodes are entry points
7357
7359
  };
7358
7360
  const nodeIdx = graph.addNode(node);
7359
7361
  if (nodeIdx !== void 0) {
@@ -7994,14 +7996,14 @@ var ClassGraphRunner = class {
7994
7996
  this.options.externalResolutionManager?.resolveDefinitions(this.graph)
7995
7997
  ]);
7996
7998
  const allNodes = this.graph.getNodes();
7997
- const appIndices = allNodes.map((node, idx) => node.appOrDep === "app" ? idx : void 0).filter((idx) => idx !== void 0);
7999
+ const entryPointIndices = allNodes.map((node, idx) => node.appOrDep === "app" && node.isEntryPoint ? idx : void 0).filter((idx) => idx !== void 0);
7998
8000
  const visited = /* @__PURE__ */ new Set();
7999
8001
  await Promise.all([
8000
- this.options.internalResolutionManager?.resolveEdges(this.graph, appIndices, appIndices.filter((idx) => !this.options.isExternalNode?.(allNodes[idx])), visited, "DIRECT_DEPENDENCIES"),
8001
- this.options.externalResolutionManager?.resolveEdges(this.graph, appIndices, appIndices.filter((idx) => this.options.isExternalNode?.(allNodes[idx])), visited, "DIRECT_DEPENDENCIES")
8002
+ this.options.internalResolutionManager?.resolveEdges(this.graph, entryPointIndices, entryPointIndices.filter((idx) => !this.options.isExternalNode?.(allNodes[idx])), visited, "DIRECT_DEPENDENCIES"),
8003
+ this.options.externalResolutionManager?.resolveEdges(this.graph, entryPointIndices, entryPointIndices.filter((idx) => this.options.isExternalNode?.(allNodes[idx])), visited, "DIRECT_DEPENDENCIES")
8002
8004
  ]);
8003
8005
  const reachablePackageIds = /* @__PURE__ */ new Set();
8004
- for (const idx of findReachableNodes(this.graph, appIndices)) {
8006
+ for (const idx of findReachableNodes(this.graph, entryPointIndices)) {
8005
8007
  reachablePackageIds.add(allNodes[idx].packageId);
8006
8008
  }
8007
8009
  return Array.from(reachablePackageIds);
@@ -8046,18 +8048,18 @@ var ClassGraphRunner = class {
8046
8048
  this.options.externalResolutionManager?.resolveDefinitions(this.graph)
8047
8049
  ]);
8048
8050
  const allNodes = this.graph.getNodes();
8049
- const appIndices = allNodes.map((node, idx) => node.appOrDep === "app" ? idx : void 0).filter((idx) => idx !== void 0);
8051
+ const entryPointIndices = allNodes.map((node, idx) => node.appOrDep === "app" && node.isEntryPoint ? idx : void 0).filter((idx) => idx !== void 0);
8050
8052
  const visited = /* @__PURE__ */ new Set();
8051
- const internalWorklist = appIndices.filter((idx) => !this.options.isExternalNode?.(allNodes[idx]));
8052
- const externalWorklist = this.options.externalResolutionManager ? appIndices.filter((idx) => this.options.isExternalNode?.(allNodes[idx])) : [];
8053
+ const internalWorklist = entryPointIndices.filter((idx) => !this.options.isExternalNode?.(allNodes[idx]));
8054
+ const externalWorklist = this.options.externalResolutionManager ? entryPointIndices.filter((idx) => this.options.isExternalNode?.(allNodes[idx])) : [];
8053
8055
  while (internalWorklist.length !== 0 || externalWorklist.length !== 0) {
8054
8056
  await Promise.all([
8055
- this.options.internalResolutionManager?.resolveEdges(this.graph, appIndices, internalWorklist, visited, "FULL_GRAPH"),
8056
- this.options.externalResolutionManager?.resolveEdges(this.graph, appIndices, externalWorklist, visited, "FULL_GRAPH")
8057
+ this.options.internalResolutionManager?.resolveEdges(this.graph, entryPointIndices, internalWorklist, visited, "FULL_GRAPH"),
8058
+ this.options.externalResolutionManager?.resolveEdges(this.graph, entryPointIndices, externalWorklist, visited, "FULL_GRAPH")
8057
8059
  ]);
8058
8060
  internalWorklist.length = 0;
8059
8061
  externalWorklist.length = 0;
8060
- const allReachableNodes = findReachableNodes(this.graph, appIndices);
8062
+ const allReachableNodes = findReachableNodes(this.graph, entryPointIndices);
8061
8063
  for (const reachableIdx of allReachableNodes) {
8062
8064
  if (!visited.has(reachableIdx)) {
8063
8065
  const node = allNodes[reachableIdx];
@@ -8080,9 +8082,9 @@ var ClassGraphRunner = class {
8080
8082
  }
8081
8083
  vulnerableClassToIndices.get(node.displayName).push(idx);
8082
8084
  });
8083
- const vulnerablePaths = this.computeVulnerablePaths(this.graph, appIndices, allNodes, vulnerableClassToIndices);
8085
+ const vulnerablePaths = this.computeVulnerablePaths(this.graph, entryPointIndices, allNodes, vulnerableClassToIndices);
8084
8086
  const reachablePackageIds = /* @__PURE__ */ new Set();
8085
- for (const idx of findReachableNodes(this.graph, appIndices)) {
8087
+ for (const idx of findReachableNodes(this.graph, entryPointIndices)) {
8086
8088
  reachablePackageIds.add(allNodes[idx].packageId);
8087
8089
  }
8088
8090
  const analysisDiagnostics = {
@@ -8356,7 +8358,9 @@ var JavaSourceResolver = class {
8356
8358
  file,
8357
8359
  name: fullyQualifiedName,
8358
8360
  displayName: fullyQualifiedName,
8359
- nodeType: "class"
8361
+ nodeType: "class",
8362
+ isEntryPoint: appOrDep === "app"
8363
+ // class nodes are entry points
8360
8364
  };
8361
8365
  const nodeIndex = graph.addNode(node);
8362
8366
  if (nodeIndex !== void 0) {
@@ -8937,7 +8941,9 @@ var KotlinSourceResolver = class {
8937
8941
  file,
8938
8942
  name: fullyQualifiedName,
8939
8943
  displayName: fullyQualifiedName,
8940
- nodeType: "class"
8944
+ nodeType: "class",
8945
+ isEntryPoint: appOrDep === "app"
8946
+ // class nodes are entry points
8941
8947
  };
8942
8948
  const nodeIndex = graph.addNode(node);
8943
8949
  if (nodeIndex !== void 0) {
@@ -9339,7 +9345,9 @@ var PropertiesSourceResolver = class {
9339
9345
  file,
9340
9346
  name: key,
9341
9347
  displayName: `${key} (property)`,
9342
- nodeType: "property"
9348
+ nodeType: "property",
9349
+ isEntryPoint: false
9350
+ // property nodes are not entry points
9343
9351
  };
9344
9352
  const idx = graph.addNode(node);
9345
9353
  if (idx !== void 0) {
@@ -9424,7 +9432,9 @@ var ScalaSourceResolver = class {
9424
9432
  file,
9425
9433
  name: fullyQualifiedName,
9426
9434
  displayName: fullyQualifiedName,
9427
- nodeType: "class"
9435
+ nodeType: "class",
9436
+ isEntryPoint: appOrDep === "app"
9437
+ // class nodes are entry points
9428
9438
  };
9429
9439
  const nodeIndex = graph.addNode(node);
9430
9440
  if (nodeIndex !== void 0) {
@@ -10063,7 +10073,9 @@ var ServiceSourceResolver = class {
10063
10073
  file,
10064
10074
  name: serviceInterface,
10065
10075
  displayName: `${serviceInterface} (service)`,
10066
- nodeType: "service"
10076
+ nodeType: "service",
10077
+ isEntryPoint: appOrDep === "app"
10078
+ // service nodes are entry points
10067
10079
  };
10068
10080
  graph.addNode(node);
10069
10081
  }
@@ -10113,7 +10125,9 @@ var SpringFactoriesSourceResolver = class {
10113
10125
  file,
10114
10126
  name: interfaceName,
10115
10127
  displayName: `${interfaceName} (spring-factory)`,
10116
- nodeType: "spring-factory"
10128
+ nodeType: "spring-factory",
10129
+ isEntryPoint: appOrDep === "app"
10130
+ // spring-factory nodes are entry points
10117
10131
  };
10118
10132
  graph.addNode(node);
10119
10133
  }
@@ -10217,7 +10231,9 @@ var PropertiesXmlSourceResolver = class {
10217
10231
  file,
10218
10232
  name: key,
10219
10233
  displayName: `${key} (property)`,
10220
- nodeType: "property"
10234
+ nodeType: "property",
10235
+ isEntryPoint: false
10236
+ // property nodes are not entry points
10221
10237
  };
10222
10238
  nodes.push(node);
10223
10239
  }
@@ -10277,7 +10293,9 @@ var SpringBeansXmlSourceResolver = class {
10277
10293
  name: beanId,
10278
10294
  // Can be referenced via ApplicationContext.getBean("beanId")
10279
10295
  displayName: `${beanId} (bean)`,
10280
- nodeType: "bean"
10296
+ nodeType: "bean",
10297
+ isEntryPoint: appOrDep === "app"
10298
+ // bean nodes are entry points
10281
10299
  };
10282
10300
  nodes.push(node);
10283
10301
  }
@@ -10300,7 +10318,9 @@ var SpringBeansXmlSourceResolver = class {
10300
10318
  file,
10301
10319
  name: nestedBeanId,
10302
10320
  displayName: `${nestedBeanId} (bean)`,
10303
- nodeType: "bean"
10321
+ nodeType: "bean",
10322
+ isEntryPoint: appOrDep === "app"
10323
+ // bean nodes are entry points
10304
10324
  };
10305
10325
  nodes.push(node);
10306
10326
  }
@@ -10458,7 +10478,9 @@ var StrutsXmlSourceResolver = class {
10458
10478
  name: actionId,
10459
10479
  // Can be referenced via Struts action mapping
10460
10480
  displayName: `${actionId} (struts)`,
10461
- nodeType: "struts-action"
10481
+ nodeType: "struts-action",
10482
+ isEntryPoint: false
10483
+ // struts-action nodes are not entry points
10462
10484
  };
10463
10485
  nodes.push(node);
10464
10486
  }
@@ -10522,7 +10544,9 @@ var StrutsConfigXmlSourceResolver = class {
10522
10544
  name: formBeanName,
10523
10545
  // Can be referenced in action mappings
10524
10546
  displayName: `${formBeanName} (struts)`,
10525
- nodeType: "struts-form-bean"
10547
+ nodeType: "struts-form-bean",
10548
+ isEntryPoint: false
10549
+ // struts-form-bean nodes are not entry points
10526
10550
  };
10527
10551
  nodes.push(node);
10528
10552
  }
@@ -10544,7 +10568,9 @@ var StrutsConfigXmlSourceResolver = class {
10544
10568
  name: actionPath,
10545
10569
  // Can be referenced via URL paths
10546
10570
  displayName: `${actionPath} (struts)`,
10547
- nodeType: "struts-action-path"
10571
+ nodeType: "struts-action-path",
10572
+ isEntryPoint: false
10573
+ // struts-action-path nodes are not entry points
10548
10574
  };
10549
10575
  nodes.push(node);
10550
10576
  }
@@ -10642,7 +10668,9 @@ var WebXmlSourceResolver = class {
10642
10668
  name: fragmentName,
10643
10669
  // For web-fragment: fragment name (can be referenced in absolute-ordering); for web-app: undefined
10644
10670
  displayName: fragmentName ? `${fragmentName} (${nodeType})` : nodeType,
10645
- nodeType
10671
+ nodeType,
10672
+ isEntryPoint: appOrDep === "app"
10673
+ // web-app and web-fragment nodes are entry points
10646
10674
  };
10647
10675
  nodes.push(fileLevelNode);
10648
10676
  this.processServletNames(rootElement, packageId, appOrDep, dir, file, nodes);
@@ -10666,7 +10694,9 @@ var WebXmlSourceResolver = class {
10666
10694
  name: servletName,
10667
10695
  // Can be referenced reflectively in servlet mappings
10668
10696
  displayName: `${servletName} (web.xml servlet)`,
10669
- nodeType: "servlet"
10697
+ nodeType: "servlet",
10698
+ isEntryPoint: false
10699
+ // servlet nodes are not entry points
10670
10700
  };
10671
10701
  nodes.push(node);
10672
10702
  }
@@ -10688,7 +10718,9 @@ var WebXmlSourceResolver = class {
10688
10718
  name: filterName,
10689
10719
  // Can be referenced reflectively in filter mappings
10690
10720
  displayName: filterName,
10691
- nodeType: "filter"
10721
+ nodeType: "filter",
10722
+ isEntryPoint: false
10723
+ // filter nodes are not entry points
10692
10724
  };
10693
10725
  nodes.push(node);
10694
10726
  }
@@ -10710,7 +10742,9 @@ var WebXmlSourceResolver = class {
10710
10742
  name: urlPattern,
10711
10743
  // URL patterns can be referenced in mappings
10712
10744
  displayName: `${urlPattern} (web.xml url-pattern)`,
10713
- nodeType: "url-pattern"
10745
+ nodeType: "url-pattern",
10746
+ isEntryPoint: false
10747
+ // url-pattern nodes are not entry points
10714
10748
  };
10715
10749
  nodes.push(node);
10716
10750
  }
@@ -10730,7 +10764,9 @@ var WebXmlSourceResolver = class {
10730
10764
  name: urlPattern,
10731
10765
  // URL patterns can be referenced in mappings
10732
10766
  displayName: `${urlPattern} (web.xml url-pattern)`,
10733
- nodeType: "url-pattern"
10767
+ nodeType: "url-pattern",
10768
+ isEntryPoint: false
10769
+ // url-pattern nodes are not entry points
10734
10770
  };
10735
10771
  nodes.push(node);
10736
10772
  }
@@ -10962,7 +10998,9 @@ var PersistenceXmlSourceResolver = class {
10962
10998
  name: unitName,
10963
10999
  // Can be referenced via Persistence.createEntityManagerFactory("name")
10964
11000
  displayName: `${unitName} (persistence)`,
10965
- nodeType: "persistence-unit"
11001
+ nodeType: "persistence-unit",
11002
+ isEntryPoint: false
11003
+ // persistence-unit nodes are not entry points
10966
11004
  };
10967
11005
  nodes.push(node);
10968
11006
  }
@@ -11382,14 +11420,6 @@ var JvmResolutionContextProvider = class {
11382
11420
  springFactoryMap.set(factoryInterfaceName, []);
11383
11421
  }
11384
11422
  springFactoryMap.get(factoryInterfaceName).push(idx);
11385
- if (!sourceClassMap.has(factoryInterfaceName)) {
11386
- sourceClassMap.set(factoryInterfaceName, []);
11387
- }
11388
- sourceClassMap.get(factoryInterfaceName).push(idx);
11389
- if (!bytecodeClassMap.has(factoryInterfaceName)) {
11390
- bytecodeClassMap.set(factoryInterfaceName, []);
11391
- }
11392
- bytecodeClassMap.get(factoryInterfaceName).push(idx);
11393
11423
  }
11394
11424
  break;
11395
11425
  }
@@ -18170,9 +18200,6 @@ async function createJvmResolverCallbacks(resources) {
18170
18200
  if (isServiceFile(file)) {
18171
18201
  return serviceSourceResolver;
18172
18202
  }
18173
- if (isSpringFactoriesFile(file)) {
18174
- return springFactoriesSourceResolver;
18175
- }
18176
18203
  };
18177
18204
  return { sourceCallback, bytecodeCallback };
18178
18205
  }
@@ -27367,7 +27394,9 @@ var CSharpSourceResolver = class {
27367
27394
  dir,
27368
27395
  file,
27369
27396
  name: fullyQualifiedName,
27370
- displayName: fullyQualifiedName
27397
+ displayName: fullyQualifiedName,
27398
+ isEntryPoint: appOrDep === "app"
27399
+ // All app-level classes are entry points
27371
27400
  };
27372
27401
  const nodeIndex = graph.addNode(node);
27373
27402
  if (nodeIndex !== void 0) {
@@ -28393,7 +28422,9 @@ var RustSourceResolver = class {
28393
28422
  displayName: fullyQualifiedName,
28394
28423
  crate: additionalProps.crate,
28395
28424
  fileModule: additionalProps.fileModule,
28396
- aliasFor: additionalProps.aliasFor
28425
+ aliasFor: additionalProps.aliasFor,
28426
+ isEntryPoint: appOrDep === "app"
28427
+ // All app-level items are entry points
28397
28428
  };
28398
28429
  const idx = graph.addNode(node);
28399
28430
  if (idx !== void 0) {