@cyclonedx/cdxgen 11.0.4 → 11.0.6

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/lib/cli/index.js CHANGED
@@ -883,7 +883,14 @@ function addComponent(
883
883
  purl: purlString,
884
884
  externalReferences: addExternalReferences(pkg),
885
885
  };
886
-
886
+ if (options.specVersion >= 1.5) {
887
+ component.pedigree = pkg.pedigree || undefined;
888
+ }
889
+ if (options.specVersion >= 1.6) {
890
+ component.releaseNotes = pkg.releaseNotes || undefined;
891
+ component.modelCard = pkg.modelCard || undefined;
892
+ component.data = pkg.data || undefined;
893
+ }
887
894
  component["type"] = determinePackageType(pkg);
888
895
  component["bom-ref"] = decodeURIComponent(purlString);
889
896
  if (
@@ -911,8 +918,22 @@ function addComponent(
911
918
  pkg.evidence.identity &&
912
919
  !Array.isArray(pkg.evidence.identity)
913
920
  ) {
921
+ // Automatically add concludedValue
922
+ if (pkg.evidence.identity?.methods?.length === 1) {
923
+ pkg.evidence.identity.concludedValue =
924
+ pkg.evidence.identity.methods[0].value;
925
+ }
914
926
  component.evidence.identity = [pkg.evidence.identity];
915
927
  }
928
+ // Convert evidence.identity section to an object for 1.5
929
+ if (
930
+ options.specVersion === 1.5 &&
931
+ pkg.evidence &&
932
+ pkg.evidence.identity &&
933
+ Array.isArray(pkg.evidence.identity)
934
+ ) {
935
+ component.evidence.identity = pkg.evidence.identity[0];
936
+ }
916
937
  }
917
938
  // Upgrade authors section
918
939
  if (options.specVersion >= 1.6 && component.author) {
@@ -1264,7 +1285,6 @@ export async function createJavaBom(path, options) {
1264
1285
  // For java, this would correctly include the cyclonedx maven plugin.
1265
1286
  let tools = undefined;
1266
1287
  let possible_misses = false;
1267
- let mavenDepsTreeInfoShown = false;
1268
1288
  // war/ear mode
1269
1289
  if (path.endsWith(".war") || path.endsWith(".jar")) {
1270
1290
  // Check if the file exists
@@ -1294,6 +1314,11 @@ export async function createJavaBom(path, options) {
1294
1314
  parentComponent,
1295
1315
  });
1296
1316
  }
1317
+ // -t quarkus is supported
1318
+ let isQuarkus = options?.projectType?.includes("quarkus");
1319
+ let useMavenDepsTree = isQuarkus ? false : PREFER_MAVEN_DEPS_TREE;
1320
+ // Is this a multi-module project
1321
+ let rootModules;
1297
1322
  // maven - pom.xml
1298
1323
  const pomFiles = getAllFiles(
1299
1324
  path,
@@ -1305,37 +1330,72 @@ export async function createJavaBom(path, options) {
1305
1330
  pomFiles?.length &&
1306
1331
  isPackageManagerAllowed("maven", ["bazel", "sbt", "gradle"], options)
1307
1332
  ) {
1308
- let result = undefined;
1309
- const cdxMavenPlugin =
1310
- process.env.CDX_MAVEN_PLUGIN ||
1311
- "org.cyclonedx:cyclonedx-maven-plugin:2.8.0";
1312
- const cdxMavenGoal = process.env.CDX_MAVEN_GOAL || "makeAggregateBom";
1313
- let mvnArgs = [
1314
- "-fn",
1315
- `${cdxMavenPlugin}:${cdxMavenGoal}`,
1316
- "-DoutputName=bom",
1317
- ];
1318
- if (includeMavenTestScope) {
1319
- mvnArgs.push("-DincludeTestScope=true");
1320
- }
1321
- // By using quiet mode we can reduce the maxBuffer used and avoid crashes
1322
- if (!DEBUG_MODE) {
1323
- mvnArgs.push("-q");
1324
- }
1325
- // Support for passing additional settings and profile to maven
1326
- if (process.env.MVN_ARGS) {
1327
- const addArgs = process.env.MVN_ARGS.split(" ");
1328
- mvnArgs = mvnArgs.concat(addArgs);
1333
+ if (!isQuarkus) {
1334
+ // Quarkus projects require special treatment. To detect quarkus, we parse the first 3 maven file to look for a hit
1335
+ for (const pf of pomFiles.slice(0, 3)) {
1336
+ const pomMap = parsePom(pf);
1337
+ if (!rootModules && pomMap?.modules?.length) {
1338
+ rootModules = pomMap.modules;
1339
+ }
1340
+ // In quarkus mode, we cannot use the maven deps tree
1341
+ if (pomMap.isQuarkus) {
1342
+ isQuarkus = true;
1343
+ useMavenDepsTree = false;
1344
+ break;
1345
+ }
1346
+ }
1329
1347
  }
1330
- // specVersion 1.4 doesn't support externalReferences.type=disribution-intake
1331
- // so we need to run the plugin with the correct version
1332
- if (options.specVersion === 1.4) {
1333
- mvnArgs = mvnArgs.concat("-DschemaVersion=1.4");
1348
+ let result = undefined;
1349
+ let mvnArgs;
1350
+ if (isQuarkus) {
1351
+ // disable analytics. See: https://quarkus.io/usage/
1352
+ mvnArgs = [
1353
+ "-fn",
1354
+ "quarkus:dependency-sbom",
1355
+ "-Dquarkus.analytics.disabled=true",
1356
+ ];
1357
+ } else {
1358
+ const cdxMavenPlugin =
1359
+ process.env.CDX_MAVEN_PLUGIN ||
1360
+ "org.cyclonedx:cyclonedx-maven-plugin:2.9.1";
1361
+ const cdxMavenGoal = process.env.CDX_MAVEN_GOAL || "makeAggregateBom";
1362
+ mvnArgs = [
1363
+ "-fn",
1364
+ `${cdxMavenPlugin}:${cdxMavenGoal}`,
1365
+ "-DoutputName=bom",
1366
+ ];
1367
+ if (includeMavenTestScope) {
1368
+ mvnArgs.push("-DincludeTestScope=true");
1369
+ }
1370
+ // By using quiet mode we can reduce the maxBuffer used and avoid crashes
1371
+ if (!DEBUG_MODE) {
1372
+ mvnArgs.push("-q");
1373
+ }
1374
+ // Support for passing additional settings and profile to maven
1375
+ if (process.env.MVN_ARGS) {
1376
+ const addArgs = process.env.MVN_ARGS.split(" ");
1377
+ mvnArgs = mvnArgs.concat(addArgs);
1378
+ }
1379
+ // specVersion 1.4 doesn't support externalReferences.type=disribution-intake
1380
+ // so we need to run the plugin with the correct version
1381
+ if (options.specVersion === 1.4) {
1382
+ mvnArgs = mvnArgs.concat("-DschemaVersion=1.4");
1383
+ }
1334
1384
  }
1335
1385
  const firstPom = pomFiles.length ? pomFiles[0] : undefined;
1336
1386
  let mavenCmd = getMavenCommand(path, path);
1337
1387
  for (const f of pomFiles) {
1338
1388
  const basePath = dirname(f);
1389
+ if (
1390
+ isQuarkus &&
1391
+ !options.deep &&
1392
+ rootModules?.includes(basename(basePath))
1393
+ ) {
1394
+ if (DEBUG_MODE) {
1395
+ console.log("Skipped sub-module", basePath);
1396
+ }
1397
+ continue;
1398
+ }
1339
1399
  const settingsXml = join(basePath, "settings.xml");
1340
1400
  if (existsSync(settingsXml)) {
1341
1401
  console.log(
@@ -1358,16 +1418,7 @@ export async function createJavaBom(path, options) {
1358
1418
  }
1359
1419
  }
1360
1420
  // Use the cyclonedx maven plugin if there is no preference for maven deps tree
1361
- if (!PREFER_MAVEN_DEPS_TREE) {
1362
- if (!mavenDepsTreeInfoShown && DEBUG_MODE) {
1363
- console.log(
1364
- "cdxgen now supports generating SBOM with only the maven cli without the need for the cyclonedx-maven plugin. This mode works better in enterprise environments and in multi-module projects.",
1365
- );
1366
- console.log(
1367
- "Set the environment variable PREFER_MAVEN_DEPS_TREE to true to enable this.",
1368
- );
1369
- mavenDepsTreeInfoShown = true;
1370
- }
1421
+ if (!useMavenDepsTree) {
1371
1422
  console.log(
1372
1423
  `Executing '${mavenCmd} ${mvnArgs.join(" ")}' in`,
1373
1424
  basePath,
@@ -1381,19 +1432,23 @@ export async function createJavaBom(path, options) {
1381
1432
  });
1382
1433
  // Check if the cyclonedx plugin created the required bom.json file
1383
1434
  // Sometimes the plugin fails silently for complex maven projects
1384
- bomJsonFiles = getAllFiles(path, "**/target/*.json", options);
1435
+ bomJsonFiles = getAllFiles(
1436
+ path,
1437
+ "**/target/*{cdx,bom,cyclonedx}*.json",
1438
+ options,
1439
+ );
1385
1440
  // Check if the bom json files got created in a directory other than target
1386
1441
  if (!bomJsonFiles.length) {
1387
1442
  bomJsonFiles = getAllFiles(
1388
1443
  path,
1389
- "target/**/*{cdx,bom}*.json",
1444
+ "target/**/*{cdx,bom,cyclonedx}*.json",
1390
1445
  options,
1391
1446
  );
1392
1447
  }
1393
1448
  }
1394
1449
  // Also check if the user has a preference for maven deps tree command
1395
1450
  if (
1396
- PREFER_MAVEN_DEPS_TREE ||
1451
+ useMavenDepsTree ||
1397
1452
  !bomJsonFiles.length ||
1398
1453
  result?.status !== 0 ||
1399
1454
  result?.error
@@ -1539,7 +1594,7 @@ export async function createJavaBom(path, options) {
1539
1594
  }
1540
1595
  } // for
1541
1596
  // Locate and parse all bom.json files from the maven plugin
1542
- if (!PREFER_MAVEN_DEPS_TREE) {
1597
+ if (!useMavenDepsTree) {
1543
1598
  for (const abjson of bomJsonFiles) {
1544
1599
  let bomJsonObj = undefined;
1545
1600
  try {
@@ -1556,7 +1611,9 @@ export async function createJavaBom(path, options) {
1556
1611
  !tools &&
1557
1612
  bomJsonObj.metadata &&
1558
1613
  bomJsonObj.metadata.tools &&
1559
- Array.isArray(bomJsonObj.metadata.tools)
1614
+ (Array.isArray(bomJsonObj.metadata.tools) ||
1615
+ bomJsonObj.metadata.tools.components ||
1616
+ bomJsonObj.metadata.tools.services)
1560
1617
  ) {
1561
1618
  tools = bomJsonObj.metadata.tools;
1562
1619
  }
@@ -1621,10 +1678,6 @@ export async function createJavaBom(path, options) {
1621
1678
  console.warn(
1622
1679
  "Multiple errors occurred while building this project with maven. The SBOM is therefore incomplete!",
1623
1680
  );
1624
- } else if (!PREFER_MAVEN_DEPS_TREE) {
1625
- console.log(
1626
- "Try generating an SBOM with the maven dependency tree plugin. Set the environment variable PREFER_MAVEN_DEPS_TREE to true to enable this.",
1627
- );
1628
1681
  }
1629
1682
  }
1630
1683
  }
@@ -2270,58 +2323,71 @@ export async function createNodejsBom(path, options) {
2270
2323
  }
2271
2324
  }
2272
2325
  }
2273
- const pkgJsonLockFile = getAllFiles(path, "package-lock.json", options);
2274
- const pkgJsonFile = getAllFiles(
2326
+ const pkgJsonLockFiles = getAllFiles(
2327
+ path,
2328
+ `${options.multiProject ? "**/" : ""}package-lock.json`,
2329
+ options,
2330
+ );
2331
+ const pkgJsonFiles = getAllFiles(
2275
2332
  path,
2276
2333
  `${options.multiProject ? "**/" : ""}package.json`,
2277
2334
  options,
2278
2335
  );
2279
2336
  const yarnLockFile = getAllFiles(path, "yarn.lock", options);
2280
2337
  const pnpmLockFile = getAllFiles(path, "pnpm-lock.yaml", options);
2338
+ const npmInstallCount = Number.parseInt(process.env.NPM_INSTALL_COUNT) || 2;
2339
+ // Automatic npm install logic.
2340
+ // Only perform npm install for smaller projects (< 2 package.json) without the correct number of lock files
2281
2341
  if (
2282
- pkgJsonLockFile?.length === 0 &&
2342
+ (pkgJsonLockFiles?.length === 0 ||
2343
+ pkgJsonLockFiles?.length < pkgJsonFiles?.length) &&
2283
2344
  yarnLockFile?.length === 0 &&
2284
2345
  pnpmLockFile?.length === 0 &&
2285
- pkgJsonFile?.length === 1 &&
2346
+ pkgJsonFiles?.length <= npmInstallCount &&
2286
2347
  options.installDeps
2287
2348
  ) {
2288
- let pkgMgr = "npm";
2289
- const supPkgMgrs = ["npm", "yarn", "yarnpkg", "pnpm", "pnpx"];
2290
- const pkgData = JSON.parse(readFileSync(pkgJsonFile[0], "utf8"));
2291
- const mgrData = pkgData.packageManager;
2292
- let mgr = "";
2293
- let installArgs = ["install"];
2294
- if (mgrData) {
2295
- mgr = mgrData.split("@")[0];
2296
- }
2297
- if (supPkgMgrs.includes(mgr)) {
2298
- pkgMgr = mgr;
2299
- }
2300
- // Support for passing additional args to the install command
2301
- if (process.env[`${pkgMgr.toUpperCase()}_INSTALL_ARGS`]) {
2302
- const addArgs =
2303
- process.env[`${pkgMgr.toUpperCase()}_INSTALL_ARGS`].split(" ");
2304
- installArgs = installArgs.concat(addArgs);
2305
- }
2306
- const basePath = dirname(pkgJsonFile[0]);
2307
- console.log(`Executing '${pkgMgr} ${installArgs.join(" ")}' in`, basePath);
2308
- const result = spawnSync(pkgMgr, installArgs, {
2309
- cwd: basePath,
2310
- encoding: "utf-8",
2311
- timeout: TIMEOUT_MS,
2312
- maxBuffer: MAX_BUFFER,
2313
- });
2314
- if (result.status !== 0 || result.error) {
2315
- console.error(
2316
- `${pkgMgr} install has failed. Check if ${pkgMgr} is installed and available in PATH.`,
2349
+ for (const apkgJson of pkgJsonFiles) {
2350
+ let pkgMgr = "npm";
2351
+ const supPkgMgrs = ["npm", "yarn", "yarnpkg", "pnpm", "pnpx"];
2352
+ const pkgData = JSON.parse(readFileSync(apkgJson, "utf8"));
2353
+ const mgrData = pkgData.packageManager;
2354
+ let mgr = "";
2355
+ let installArgs = ["install"];
2356
+ if (mgrData) {
2357
+ mgr = mgrData.split("@")[0];
2358
+ }
2359
+ if (supPkgMgrs.includes(mgr)) {
2360
+ pkgMgr = mgr;
2361
+ }
2362
+ // Support for passing additional args to the install command
2363
+ if (process.env[`${pkgMgr.toUpperCase()}_INSTALL_ARGS`]) {
2364
+ const addArgs =
2365
+ process.env[`${pkgMgr.toUpperCase()}_INSTALL_ARGS`].split(" ");
2366
+ installArgs = installArgs.concat(addArgs);
2367
+ }
2368
+ const basePath = dirname(apkgJson);
2369
+ console.log(
2370
+ `Executing '${pkgMgr} ${installArgs.join(" ")}' in`,
2371
+ basePath,
2317
2372
  );
2318
- if (DEBUG_MODE && result.stdout) {
2319
- console.log(result.stdout);
2320
- }
2321
- if (result.stderr) {
2322
- console.log(result.stderr);
2373
+ const result = spawnSync(pkgMgr, installArgs, {
2374
+ cwd: basePath,
2375
+ encoding: "utf-8",
2376
+ timeout: TIMEOUT_MS,
2377
+ maxBuffer: MAX_BUFFER,
2378
+ });
2379
+ if (result.status !== 0 || result.error) {
2380
+ console.error(
2381
+ `${pkgMgr} install has failed. Check if ${pkgMgr} is installed and available in PATH.`,
2382
+ );
2383
+ if (DEBUG_MODE && result.stdout) {
2384
+ console.log(result.stdout);
2385
+ }
2386
+ if (result.stderr) {
2387
+ console.log(result.stderr);
2388
+ }
2389
+ options.failOnError && process.exit(1);
2323
2390
  }
2324
- options.failOnError && process.exit(1);
2325
2391
  }
2326
2392
  pkgLockFiles = getAllFiles(
2327
2393
  path,
@@ -4878,15 +4944,15 @@ export function createPHPBom(path, options) {
4878
4944
  if (DEBUG_MODE) {
4879
4945
  console.log(`Parsing ${f}`);
4880
4946
  }
4881
- const rootRequires = [];
4947
+ let rootRequires = [];
4882
4948
  // Is there a composer.json to find the module parent component
4883
4949
  if (existsSync(join(basePath, "composer.json"))) {
4884
4950
  const retMap = parseComposerJson(join(basePath, "composer.json"));
4885
4951
  moduleParent = retMap.moduleParent;
4886
- const rootRequires = retMap.rootRequires;
4952
+ rootRequires = retMap.rootRequires;
4887
4953
  // Track all the modules in a mono-repo
4888
4954
  if (!Object.keys(parentComponent).length) {
4889
- parentComponent = moduleParent;
4955
+ parentComponent = { ...moduleParent };
4890
4956
  } else {
4891
4957
  parentComponent.components = parentComponent.components || [];
4892
4958
  parentComponent.components.push(moduleParent);
@@ -4895,25 +4961,21 @@ export function createPHPBom(path, options) {
4895
4961
  const retMap = parseComposerLock(f, rootRequires);
4896
4962
  if (retMap.pkgList?.length) {
4897
4963
  pkgList = pkgList.concat(retMap.pkgList);
4898
- }
4899
- if (!moduleParent) {
4900
- moduleParent = createDefaultParentComponent(
4901
- basePath,
4902
- "composer",
4903
- options,
4904
- );
4964
+ pkgList = trimComponents(pkgList);
4905
4965
  }
4906
4966
  if (retMap.dependenciesList) {
4907
- // Complete the dependency tree by making parent component depend on the first level
4908
- const pdependencies = {
4909
- ref: moduleParent["bom-ref"],
4910
- dependsOn: [
4911
- ...new Set(retMap.rootList.map((p) => p["bom-ref"])),
4912
- ].sort(),
4913
- };
4967
+ if (moduleParent?.["bom-ref"]) {
4968
+ // Complete the dependency tree by making parent component depend on the first level
4969
+ dependencies.splice(0, 0, {
4970
+ ref: moduleParent["bom-ref"],
4971
+ dependsOn: [
4972
+ ...new Set(retMap.rootList.map((p) => p["bom-ref"])),
4973
+ ].sort(),
4974
+ });
4975
+ }
4914
4976
  dependencies = mergeDependencies(
4915
4977
  dependencies,
4916
- [pdependencies, ...retMap.dependenciesList],
4978
+ retMap.dependenciesList,
4917
4979
  parentComponent,
4918
4980
  );
4919
4981
  }
@@ -5551,6 +5613,43 @@ export function trimComponents(components) {
5551
5613
  existingComponent.properties = comp.properties;
5552
5614
  }
5553
5615
  }
5616
+ // Retain all component.evidence.identity
5617
+ if (comp?.evidence?.identity) {
5618
+ if (!existingComponent.evidence) {
5619
+ existingComponent.evidence = { identity: [] };
5620
+ } else if (
5621
+ existingComponent?.evidence?.identity &&
5622
+ !Array.isArray(existingComponent.evidence.identity)
5623
+ ) {
5624
+ existingComponent.evidence.identity = [
5625
+ existingComponent.evidence.identity,
5626
+ ];
5627
+ }
5628
+ // comp.evidence.identity can be an array or object
5629
+ // Merge the evidence.identity based on methods or objects
5630
+ const identities = Array.isArray(comp.evidence.identity)
5631
+ ? comp.evidence.identity
5632
+ : [comp.evidence.identity];
5633
+ for (const aident of identities) {
5634
+ let methodBasedMerge = false;
5635
+ if (aident?.methods?.length) {
5636
+ for (const amethod of aident.methods) {
5637
+ for (const existIdent of existingComponent.evidence.identity) {
5638
+ if (existIdent.field === aident.field) {
5639
+ if (!existIdent.methods) {
5640
+ existIdent.methods = [];
5641
+ }
5642
+ existIdent.methods.push(amethod);
5643
+ methodBasedMerge = true;
5644
+ }
5645
+ }
5646
+ }
5647
+ }
5648
+ if (!methodBasedMerge && aident.field && aident.confidence) {
5649
+ existingComponent.evidence.identity.push(aident);
5650
+ }
5651
+ }
5652
+ }
5554
5653
  // If the component is required in any of the child projects, then make it required
5555
5654
  if (
5556
5655
  existingComponent?.scope !== "required" &&
@@ -5792,6 +5891,12 @@ export async function createMultiXBom(pathList, options) {
5792
5891
  ) {
5793
5892
  parentSubComponents.push(bomData.parentComponent);
5794
5893
  }
5894
+ // Retain metadata.component.components
5895
+ if (bomData.parentComponent?.components?.length) {
5896
+ parentSubComponents = parentSubComponents.concat(
5897
+ bomData.parentComponent.components,
5898
+ );
5899
+ }
5795
5900
  }
5796
5901
  }
5797
5902
  if (hasAnyProjectType(["oci", "ruby"], options)) {
@@ -5814,6 +5919,12 @@ export async function createMultiXBom(pathList, options) {
5814
5919
  ) {
5815
5920
  parentSubComponents.push(bomData.parentComponent);
5816
5921
  }
5922
+ // Retain metadata.component.components
5923
+ if (bomData.parentComponent?.components?.length) {
5924
+ parentSubComponents = parentSubComponents.concat(
5925
+ bomData.parentComponent.components,
5926
+ );
5927
+ }
5817
5928
  }
5818
5929
  }
5819
5930
  if (hasAnyProjectType(["oci", "csharp"], options)) {
@@ -5832,6 +5943,12 @@ export async function createMultiXBom(pathList, options) {
5832
5943
  ) {
5833
5944
  parentSubComponents.push(bomData.parentComponent);
5834
5945
  }
5946
+ // Retain metadata.component.components
5947
+ if (bomData.parentComponent?.components?.length) {
5948
+ parentSubComponents = parentSubComponents.concat(
5949
+ bomData.parentComponent.components,
5950
+ );
5951
+ }
5835
5952
  }
5836
5953
  }
5837
5954
  if (hasAnyProjectType(["oci", "dart"], options)) {
@@ -178,34 +178,44 @@ const locationComparator = (a, b) => {
178
178
  };
179
179
 
180
180
  export function printOccurrences(bomJson) {
181
- const data = [["Group", "Name", "Version", "Occurrences"]];
182
181
  if (!bomJson || !bomJson.components) {
183
182
  return;
184
183
  }
185
- for (const comp of bomJson.components) {
186
- if (!comp.evidence || !comp.evidence.occurrences) {
187
- continue;
188
- }
189
- data.push([
190
- comp.group || "",
191
- comp.name,
192
- comp.version || "",
193
- comp.evidence.occurrences
194
- .map((l) => l.location)
195
- .sort(locationComparator)
196
- .join("\n"),
197
- ]);
198
- }
184
+ const data = ["Group", "Name", "Version", "Occurrences"];
199
185
  const config = {
200
- header: {
201
- alignment: "center",
202
- content: "Component Evidence\nGenerated with \u2665 by cdxgen",
186
+ columnDefault: {
187
+ width: 30,
203
188
  },
189
+ columnCount: 4,
190
+ columns: [
191
+ { width: 30 },
192
+ { width: 30 },
193
+ { width: 25, alignment: "right" },
194
+ { width: 80 },
195
+ ],
204
196
  };
205
- if (data.length > 1) {
206
- console.log(table(data, config));
197
+ const stream = createStream(config); // Create stream with the config
198
+ const header = "Component Evidence\nGenerated with \u2665 by cdxgen";
199
+ console.log(header);
200
+ stream.write(data);
201
+ // Stream the components
202
+ for (const comp of bomJson.components) {
203
+ if (comp.evidence?.occurrences) {
204
+ const row = [
205
+ comp.group || "",
206
+ comp.name,
207
+ comp.version || "",
208
+ comp.evidence.occurrences
209
+ .map((l) => l.location)
210
+ .sort(locationComparator)
211
+ .join("\n"),
212
+ ];
213
+ stream.write(row);
214
+ }
207
215
  }
216
+ console.log();
208
217
  }
218
+
209
219
  export function printCallStack(bomJson) {
210
220
  const data = [["Group", "Name", "Version", "Call Stack"]];
211
221
  if (!bomJson || !bomJson.components) {
@@ -267,6 +267,7 @@ export const PROJECT_TYPE_ALIASES = {
267
267
  "maven",
268
268
  "sbt",
269
269
  "bazel",
270
+ "quarkus",
270
271
  ],
271
272
  android: ["android", "apk", "aab"],
272
273
  jar: ["jar", "war", "ear"],
@@ -401,15 +402,12 @@ export function isFeatureEnabled(cliOptions, feature) {
401
402
  return true;
402
403
  }
403
404
  // Retry by replacing hyphens with underscore
404
- if (
405
+ return !!(
405
406
  process.env[feature.replaceAll("-", "_").toUpperCase()] &&
406
407
  ["true", "1"].includes(
407
408
  process.env[feature.replaceAll("-", "_").toUpperCase()],
408
409
  )
409
- ) {
410
- return true;
411
- }
412
- return false;
410
+ );
413
411
  }
414
412
 
415
413
  /**
@@ -618,16 +616,10 @@ export function isSpdxLicenseExpression(license) {
618
616
  if (!license) {
619
617
  return false;
620
618
  }
621
-
622
619
  if (/[(\s]+/g.test(license)) {
623
620
  return true;
624
621
  }
625
-
626
- if (license.endsWith("+")) {
627
- return true; // GPL-2.0+ means GPL-2.0 or any later version, at the licensee’s option.
628
- }
629
-
630
- return false;
622
+ return !!license.endsWith("+");
631
623
  }
632
624
 
633
625
  /**
@@ -1064,8 +1056,8 @@ export async function parsePkgLock(pkgLockFile, options = {}) {
1064
1056
  const scope = node.dev === true ? "optional" : undefined;
1065
1057
  const integrity = node.integrity ? node.integrity : undefined;
1066
1058
 
1067
- let pkg = {};
1068
- let purlString = "";
1059
+ let pkg;
1060
+ let purlString;
1069
1061
  const author = node.package.author;
1070
1062
  const authorString =
1071
1063
  author instanceof Object
@@ -2515,9 +2507,14 @@ export async function parseMinJs(minJsFile) {
2515
2507
  * Parse pom file
2516
2508
  *
2517
2509
  * @param {string} pomFile pom file to parse
2510
+ * @returns {Object} Object containing pom properties, modules, and array of dependencies
2518
2511
  */
2519
2512
  export function parsePom(pomFile) {
2520
2513
  const deps = [];
2514
+ let modules;
2515
+ let pomPurl;
2516
+ const properties = {};
2517
+ let isQuarkus = false;
2521
2518
  const xmlData = readFileSync(pomFile, "utf-8");
2522
2519
  const project = xml2js(xmlData, {
2523
2520
  compact: true,
@@ -2526,6 +2523,69 @@ export function parsePom(pomFile) {
2526
2523
  attributesKey: "$",
2527
2524
  commentKey: "value",
2528
2525
  }).project;
2526
+ for (const aprop of [
2527
+ "groupId",
2528
+ "artifactId",
2529
+ "version",
2530
+ "name",
2531
+ "description",
2532
+ "url",
2533
+ "packaging",
2534
+ ]) {
2535
+ if (project?.[aprop]?._) {
2536
+ properties[aprop] = project[aprop]._;
2537
+ }
2538
+ }
2539
+ // Take the version from the parent if available
2540
+ if (!properties.version && project.parent) {
2541
+ properties.version = project.parent.version._;
2542
+ }
2543
+ // Take the groupId from the parent if available
2544
+ if (!properties.groupId && project.parent) {
2545
+ properties.groupId = project.parent.groupId._;
2546
+ }
2547
+ if (project?.scm?.url?._) {
2548
+ properties.scm = project.scm.url._;
2549
+ }
2550
+ if (properties.groupId || properties.artifactId) {
2551
+ pomPurl = new PackageURL(
2552
+ "maven",
2553
+ properties.groupId || "",
2554
+ properties.artifactId,
2555
+ properties.version,
2556
+ { type: properties.packaging || "jar" },
2557
+ null,
2558
+ ).toString();
2559
+ }
2560
+ if (project?.modules?.module) {
2561
+ modules = project.modules.module.map((m) => m?._);
2562
+ }
2563
+ if (project?.properties) {
2564
+ for (const aprop of Object.keys(project.properties)) {
2565
+ properties[aprop] = project.properties[aprop]?._;
2566
+ if (!isQuarkus && aprop.startsWith("quarkus.platform")) {
2567
+ isQuarkus = true;
2568
+ }
2569
+ }
2570
+ }
2571
+ // Check the plugins for quarkus
2572
+ if (!isQuarkus && project?.build?.plugins?.plugin) {
2573
+ if (Array.isArray(project.build.plugins.plugin)) {
2574
+ for (const aplugin of project.build.plugins.plugin) {
2575
+ if (aplugin?.groupId?._?.includes("quarkus.platform")) {
2576
+ isQuarkus = true;
2577
+ break;
2578
+ }
2579
+ }
2580
+ } else if (
2581
+ Object.keys(project.build.plugins.plugin).length &&
2582
+ project.build.plugins.plugin?.groupId?._
2583
+ ) {
2584
+ if (project.build.plugins.plugin.groupId._.includes("quarkus.platform")) {
2585
+ isQuarkus = true;
2586
+ }
2587
+ }
2588
+ }
2529
2589
  if (project?.dependencies) {
2530
2590
  let dependencies = project.dependencies.dependency;
2531
2591
  // Convert to an array
@@ -2537,38 +2597,42 @@ export function parsePom(pomFile) {
2537
2597
  for (const adep of dependencies) {
2538
2598
  const version = adep.version;
2539
2599
  let versionStr = undefined;
2540
- if (version?._ && version._.indexOf("$") === -1) {
2600
+ if (version?._) {
2541
2601
  versionStr = version._;
2542
- if (includeMavenTestScope || !adep.scope || adep.scope !== "test")
2543
- deps.push({
2544
- group: adep.groupId ? adep.groupId._ : "",
2545
- name: adep.artifactId ? adep.artifactId._ : "",
2546
- version: versionStr,
2547
- qualifiers: { type: "jar" },
2548
- properties: [
2549
- {
2550
- name: "SrcFile",
2551
- value: pomFile,
2552
- },
2553
- ],
2554
- evidence: {
2555
- identity: {
2556
- field: "purl",
2557
- confidence: 1,
2558
- methods: [
2559
- {
2560
- technique: "manifest-analysis",
2561
- confidence: 1,
2562
- value: pomFile,
2563
- },
2564
- ],
2565
- },
2602
+ }
2603
+ if (versionStr?.includes("$")) {
2604
+ versionStr = properties[versionStr?.replace(/[${}]/g, "")];
2605
+ }
2606
+ if (includeMavenTestScope || !adep.scope || adep.scope !== "test") {
2607
+ deps.push({
2608
+ group: adep.groupId ? adep.groupId._ : "",
2609
+ name: adep.artifactId ? adep.artifactId._ : "",
2610
+ version: versionStr,
2611
+ qualifiers: { type: "jar" },
2612
+ properties: [
2613
+ {
2614
+ name: "SrcFile",
2615
+ value: pomFile,
2566
2616
  },
2567
- });
2617
+ ],
2618
+ evidence: {
2619
+ identity: {
2620
+ field: "purl",
2621
+ confidence: 1,
2622
+ methods: [
2623
+ {
2624
+ technique: "manifest-analysis",
2625
+ confidence: !versionStr ? 0 : 0.6,
2626
+ value: pomFile,
2627
+ },
2628
+ ],
2629
+ },
2630
+ },
2631
+ });
2568
2632
  }
2569
2633
  }
2570
2634
  }
2571
- return deps;
2635
+ return { isQuarkus, pomPurl, modules, properties, dependencies: deps };
2572
2636
  }
2573
2637
 
2574
2638
  /**
@@ -3553,10 +3617,7 @@ export async function getMvnMetadata(
3553
3617
  */
3554
3618
  export function composePomXmlUrl({ urlPrefix, group, name, version }) {
3555
3619
  const groupPart = group.replace(/\./g, "/");
3556
- const fullUrl = `${
3557
- urlPrefix + groupPart
3558
- }/${name}/${version}/${name}-${version}.pom`;
3559
- return fullUrl;
3620
+ return `${urlPrefix + groupPart}/${name}/${version}/${name}-${version}.pom`;
3560
3621
  }
3561
3622
 
3562
3623
  /**
@@ -3593,8 +3654,7 @@ export async function fetchPomXmlAsJson({ urlPrefix, group, name, version }) {
3593
3654
  return undefined;
3594
3655
  }
3595
3656
  const parentJson = xml2js(parentXml, options).project;
3596
- const result = { ...parentJson, ...pomJson };
3597
- return result;
3657
+ return { ...parentJson, ...pomJson };
3598
3658
  }
3599
3659
  return pomJson;
3600
3660
  }
@@ -4418,7 +4478,7 @@ export async function parseReqFile(reqData, fetchDepsInfo) {
4418
4478
  export async function getPyModules(src, epkgList, options) {
4419
4479
  const allImports = {};
4420
4480
  const dependenciesList = [];
4421
- let modList = [];
4481
+ let modList;
4422
4482
  const slicesFile = resolve(
4423
4483
  options.depsSlicesFile || options.usagesSlicesFile,
4424
4484
  );
@@ -4540,10 +4600,10 @@ export function parsePixiLockFile(pixiLockFileName, path) {
4540
4600
  const pixiLockData = _load(pixiFileData);
4541
4601
 
4542
4602
  // this function returns
4543
- let pkgList = [];
4603
+ let pkgList;
4544
4604
  const formulationList = [];
4545
4605
  const rootList = [];
4546
- let dependenciesList = [];
4606
+ let dependenciesList;
4547
4607
  // we do not set false because we have assumed that pixi lock is accurate
4548
4608
  const frozen = true;
4549
4609
 
@@ -4791,8 +4851,7 @@ export function getGithubUrlParts(repoUrl) {
4791
4851
  repoUrl = repoUrl.slice(0, -4);
4792
4852
  }
4793
4853
  repoUrl.replace(/\/$/, "");
4794
- const parts = repoUrl.split("/");
4795
- return parts;
4854
+ return repoUrl.split("/");
4796
4855
  }
4797
4856
 
4798
4857
  /**
@@ -4940,7 +4999,6 @@ export async function getGoPkgLicense(repoMetadata) {
4940
4999
  }
4941
5000
 
4942
5001
  export async function getGoPkgComponent(group, name, version, hash) {
4943
- let pkg = {};
4944
5002
  let license = undefined;
4945
5003
  if (shouldFetchLicense()) {
4946
5004
  if (DEBUG_MODE) {
@@ -4957,7 +5015,7 @@ export async function getGoPkgComponent(group, name, version, hash) {
4957
5015
  const purlString = new PackageURL("golang", group, name, version)
4958
5016
  .toString()
4959
5017
  .replace(/%2F/g, "/");
4960
- pkg = {
5018
+ return {
4961
5019
  group: group,
4962
5020
  name: name,
4963
5021
  version: version,
@@ -4966,7 +5024,6 @@ export async function getGoPkgComponent(group, name, version, hash) {
4966
5024
  purl: purlString,
4967
5025
  "bom-ref": decodeURIComponent(purlString),
4968
5026
  };
4969
- return pkg;
4970
5027
  }
4971
5028
 
4972
5029
  /**
@@ -7698,7 +7755,7 @@ export function parseNuspecData(nupkgFile, nuspecData) {
7698
7755
  }
7699
7756
  dependenciesMap[pkg["bom-ref"]] = dependsOn;
7700
7757
  } else if (m?.dependencies?.group) {
7701
- let dependencyGroups = [];
7758
+ let dependencyGroups;
7702
7759
  if (Array.isArray(m.dependencies.group)) {
7703
7760
  dependencyGroups = m.dependencies.group;
7704
7761
  } else {
@@ -8604,16 +8661,15 @@ export function parseComposerJson(composerJsonFile) {
8604
8661
  expression: composerData.license,
8605
8662
  });
8606
8663
  }
8607
- moduleParent["bom-ref"] = decodeURIComponent(
8608
- new PackageURL(
8609
- "composer",
8610
- moduleParent.group,
8611
- moduleParent.name,
8612
- moduleParent.version,
8613
- null,
8614
- null,
8615
- ).toString(),
8616
- );
8664
+ moduleParent.purl = new PackageURL(
8665
+ "composer",
8666
+ moduleParent.group,
8667
+ moduleParent.name,
8668
+ moduleParent.version,
8669
+ null,
8670
+ null,
8671
+ ).toString();
8672
+ moduleParent["bom-ref"] = decodeURIComponent(moduleParent.purl);
8617
8673
  }
8618
8674
  return { rootRequires, moduleParent };
8619
8675
  }
@@ -9485,8 +9541,7 @@ export async function collectGradleDependencies(
9485
9541
  for (const apom of pomFiles) {
9486
9542
  pomPathMap[basename(apom)] = apom;
9487
9543
  }
9488
- const jarNSMapping = await collectJarNS(GRADLE_CACHE_DIR, pomPathMap);
9489
- return jarNSMapping;
9544
+ return await collectJarNS(GRADLE_CACHE_DIR, pomPathMap);
9490
9545
  }
9491
9546
 
9492
9547
  /**
@@ -9516,10 +9571,9 @@ export async function collectJarNS(jarPath, pomPathMap = {}) {
9516
9571
  const jarFiles = getAllFiles(jarPath, "**/*.jar");
9517
9572
  if (jarFiles?.length) {
9518
9573
  for (const jf of jarFiles) {
9519
- const jarname = jf;
9520
9574
  let pomname =
9521
9575
  pomPathMap[basename(jf).replace(".jar", ".pom")] ||
9522
- jarname.replace(".jar", ".pom");
9576
+ jf.replace(".jar", ".pom");
9523
9577
  let pomData = undefined;
9524
9578
  let purl = undefined;
9525
9579
  // In some cases, the pom name might be slightly different to the jar name
@@ -9536,6 +9590,7 @@ export async function collectJarNS(jarPath, pomPathMap = {}) {
9536
9590
  }
9537
9591
  }
9538
9592
  if (existsSync(pomname)) {
9593
+ // TODO: Replace with parsePom which contains pomPurl
9539
9594
  pomData = parsePomXml(readFileSync(pomname, { encoding: "utf-8" }));
9540
9595
  if (pomData) {
9541
9596
  const purlObj = new PackageURL(
@@ -9715,6 +9770,13 @@ export function convertJarNSToPackages(jarNSMapping) {
9715
9770
  return pkgList;
9716
9771
  }
9717
9772
 
9773
+ /**
9774
+ * Deprecated function to parse pom.xml. Use parsePom instead.
9775
+ *
9776
+ * @deprecated
9777
+ * @param pomXmlData XML contents
9778
+ * @returns {Object} Parent component data
9779
+ */
9718
9780
  export function parsePomXml(pomXmlData) {
9719
9781
  if (!pomXmlData) {
9720
9782
  return undefined;
@@ -10253,7 +10315,7 @@ export async function readZipEntry(
10253
10315
  break;
10254
10316
  }
10255
10317
  }
10256
- zip.close();
10318
+ await zip.close();
10257
10319
  } catch (e) {
10258
10320
  console.log(e);
10259
10321
  }
@@ -10298,7 +10360,7 @@ export async function getJarClasses(jarFile) {
10298
10360
  );
10299
10361
  }
10300
10362
  }
10301
- zip.close();
10363
+ await zip.close();
10302
10364
  } catch (e) {
10303
10365
  // node-stream-zip seems to fail on deno with a RangeError.
10304
10366
  // So we fallback to using jar -tf command
@@ -11726,7 +11788,7 @@ export function parseCmakeLikeFile(cmakeListFile, pkgType, options = {}) {
11726
11788
  const tmpB = (tmpA[1] || "")
11727
11789
  .trim()
11728
11790
  .replace(/["']/g, "")
11729
- .replace(/[ ]/g, ",")
11791
+ .replace(/ /g, ",")
11730
11792
  .split(")")[0]
11731
11793
  .split(",")
11732
11794
  .filter((v) => v.length > 1);
@@ -11797,7 +11859,7 @@ export function parseCmakeLikeFile(cmakeListFile, pkgType, options = {}) {
11797
11859
  // find_package(Boost 1.79 COMPONENTS date_time)
11798
11860
  // find_library(PTHREADPOOL_LIB pthreadpool REQUIRED)
11799
11861
  if (tmpB) {
11800
- let working_name = undefined;
11862
+ let working_name;
11801
11863
  if (l.startsWith("find_library")) {
11802
11864
  name_list.push(tmpB[1]);
11803
11865
  working_name = tmpB[1];
@@ -11985,7 +12047,7 @@ export function getCppModules(src, options, osPkgsList, epkgList) {
11985
12047
  const pkgType = "generic";
11986
12048
  const pkgList = [];
11987
12049
  const pkgAddedMap = {};
11988
- let sliceData = {};
12050
+ let sliceData;
11989
12051
  const epkgMap = {};
11990
12052
  let parentComponent = undefined;
11991
12053
  const dependsOn = new Set();
@@ -12730,10 +12792,7 @@ export function isValidIriReference(iri) {
12730
12792
  iriIsValid = false;
12731
12793
  }
12732
12794
  }
12733
- if (iriIsValid) {
12734
- return true;
12735
- }
12736
- return false;
12795
+ return iriIsValid;
12737
12796
  }
12738
12797
 
12739
12798
  /**
@@ -2640,14 +2640,25 @@ test("get nget metadata", async () => {
2640
2640
  }, 240000);
2641
2641
 
2642
2642
  test("parsePomFile", () => {
2643
- const data = parsePom("./test/pom.xml");
2644
- expect(data.length).toEqual(13);
2643
+ let data = parsePom("./test/data/pom-quarkus.xml");
2644
+ expect(data.dependencies.length).toEqual(46);
2645
+ expect(data.modules).toBeUndefined();
2646
+ expect(data.properties).toBeDefined();
2647
+ expect(data.isQuarkus).toBeTruthy();
2648
+ data = parsePom("./test/data/pom-quarkus-modules.xml");
2649
+ expect(data.dependencies.length).toEqual(0);
2650
+ expect(data.modules.length).toEqual(105);
2651
+ expect(data.properties).toBeDefined();
2652
+ expect(data.isQuarkus).toBeFalsy();
2653
+ data = parsePom("./test/pom.xml");
2654
+ expect(data.dependencies.length).toEqual(13);
2655
+ expect(data.isQuarkus).toBeFalsy();
2645
2656
  });
2646
2657
 
2647
2658
  test("parsePomMetadata", async () => {
2648
2659
  const deps = parsePom("./test/pom.xml");
2649
- const data = await getMvnMetadata(deps);
2650
- expect(data.length).toEqual(deps.length);
2660
+ const data = await getMvnMetadata(deps.dependencies);
2661
+ expect(data.length).toEqual(deps.dependencies.length);
2651
2662
  });
2652
2663
 
2653
2664
  // These tests are disabled because they are returning undefined
@@ -2689,7 +2700,6 @@ test("get repo license", async () => {
2689
2700
  url: "https://github.com/ugorji/go/blob/master/LICENSE"
2690
2701
  });
2691
2702
  });
2692
- */
2693
2703
 
2694
2704
  test("get go pkg license", async () => {
2695
2705
  let license = await getGoPkgLicense({
@@ -2725,6 +2735,7 @@ test("get go pkg license", async () => {
2725
2735
  },
2726
2736
  ]);
2727
2737
  });
2738
+ */
2728
2739
 
2729
2740
  test("get licenses", () => {
2730
2741
  let licenses = getLicenses({ license: "MIT" });
@@ -253,6 +253,7 @@ const OS_DISTRO_ALIAS = {
253
253
  "ubuntu-23.04": "lunar",
254
254
  "ubuntu-23.10": "mantic",
255
255
  "ubuntu-24.04": "noble",
256
+ "ubuntu-24.10": "oracular",
256
257
  "debian-14": "forky",
257
258
  "debian-14.5": "forky",
258
259
  "debian-13": "trixie",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyclonedx/cdxgen",
3
- "version": "11.0.4",
3
+ "version": "11.0.6",
4
4
  "description": "Creates CycloneDX Software Bill of Materials (SBOM) from source or container image",
5
5
  "homepage": "http://github.com/cyclonedx/cdxgen",
6
6
  "author": "Prabhu Subramanian <prabhu@appthreat.com>",
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/cli/index.js"],"names":[],"mappings":"AA4wBA;;;;;;;;GAQG;AACH,gFAFW,MAAM,SAchB;AAyVD;;;;;;;GAOG;AACH,mCALW,MAAM,qBAiEhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM;;;;EAKhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM;;;;EAkBhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAs5BhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA2ehB;AAED;;;;;;;;;;GAUG;AACH,+DAsEC;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA6bhB;AAED;;;;;GAKG;AACH,kCAHW,MAAM,8BA+YhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAqIhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAiDhB;AAED;;;;;GAKG;AACH,mCAHW,MAAM,qBA+KhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM,qBAsHhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM,qBA2BhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,qBA2BhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,qBA2BhB;AAED;;;;;GAKG;AACH,0CAHW,MAAM,qBAuBhB;AAED;;;;;GAKG;AACH,mCAHW,MAAM,8BAqDhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM,8BA4ChB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,qBA2BhB;AAED;;;;;GAKG;AACH,qCAHW,MAAM,8BA6FhB;AAED;;;;;GAKG;AACH,iDAHW,MAAM,qBAiUhB;AAED;;;;;GAKG;AACH,mCAHW,MAAM,qBAqJhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAmFhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA4XhB;AAED;;;;;GAKG;AACH,2CAHW,MAAM;;;;;;;;;;;;;;;;;;;;GAoChB;AAED;;;;;;;;KA+DC;AAED;;;;;;GAMG;AACH,yDAuCC;AAED;;;;;;;;;GASG;AACH,2GA6BC;AAED;;;;;GAKG;AACH,0CAHW,MAAM,EAAE,8BAmclB;AAED;;;;;GAKG;AACH,iCAHW,MAAM,8BAgUhB;AAED;;;;;GAKG;AACH,gCAHW,MAAM,qBAqOhB;AAED;;;;;;GAMG;AACH,wDAFY,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,CAAC,CAwHxE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/cli/index.js"],"names":[],"mappings":"AA4wBA;;;;;;;;GAQG;AACH,gFAFW,MAAM,SAchB;AA8WD;;;;;;;GAOG;AACH,mCALW,MAAM,qBAiEhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM;;;;EAKhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM;;;;EAkBhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAs7BhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BAwfhB;AAED;;;;;;;;;;GAUG;AACH,+DAsEC;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA6bhB;AAED;;;;;GAKG;AACH,kCAHW,MAAM,8BA+YhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAqIhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAiDhB;AAED;;;;;GAKG;AACH,mCAHW,MAAM,qBA+KhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM,qBAsHhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM,qBA2BhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,qBA2BhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,qBA2BhB;AAED;;;;;GAKG;AACH,0CAHW,MAAM,qBAuBhB;AAED;;;;;GAKG;AACH,mCAHW,MAAM,8BAqDhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM,8BA4ChB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,qBA2BhB;AAED;;;;;GAKG;AACH,qCAHW,MAAM,8BA6FhB;AAED;;;;;GAKG;AACH,iDAHW,MAAM,qBAiUhB;AAED;;;;;GAKG;AACH,mCAHW,MAAM,qBAiJhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAmFhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA4XhB;AAED;;;;;GAKG;AACH,2CAHW,MAAM;;;;;;;;;;;;;;;;;;;;GAoChB;AAED;;;;;;;;KA+DC;AAED;;;;;;GAMG;AACH,yDA4EC;AAED;;;;;;;;;GASG;AACH,2GA6BC;AAED;;;;;GAKG;AACH,0CAHW,MAAM,EAAE,8BAqdlB;AAED;;;;;GAKG;AACH,iCAHW,MAAM,8BAgUhB;AAED;;;;;GAKG;AACH,gCAHW,MAAM,qBAqOhB;AAED;;;;;;GAMG;AACH,wDAFY,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,CAAC,CAwHxE"}
@@ -1 +1 @@
1
- {"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../../lib/helpers/display.js"],"names":[],"mappings":"AAoBA,mFAuEC;AAQD,iDAmBC;AACD,kDAsBC;AAED,qDAqBC;AAeD,qDA4BC;AACD,mDA8CC;AACD,wFA0CC;AA4DD,2DA+BC;AAED,iEA0BC;AAED,uDAoBC;AAED,iDA8CC"}
1
+ {"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../../lib/helpers/display.js"],"names":[],"mappings":"AAoBA,mFAuEC;AAQD,iDAmBC;AACD,kDAsBC;AAED,qDAqBC;AAeD,qDAqCC;AAED,mDA8CC;AACD,wFA0CC;AA4DD,2DA+BC;AAED,iEA0BC;AAED,uDAoBC;AAED,iDA8CC"}
@@ -186,30 +186,9 @@ export function parseMinJs(minJsFile: string): Promise<any[]>;
186
186
  * Parse pom file
187
187
  *
188
188
  * @param {string} pomFile pom file to parse
189
+ * @returns {Object} Object containing pom properties, modules, and array of dependencies
189
190
  */
190
- export function parsePom(pomFile: string): {
191
- group: any;
192
- name: any;
193
- version: any;
194
- qualifiers: {
195
- type: string;
196
- };
197
- properties: {
198
- name: string;
199
- value: string;
200
- }[];
201
- evidence: {
202
- identity: {
203
- field: string;
204
- confidence: number;
205
- methods: {
206
- technique: string;
207
- confidence: number;
208
- value: string;
209
- }[];
210
- };
211
- };
212
- }[];
191
+ export function parsePom(pomFile: string): any;
213
192
  /**
214
193
  * Parse maven tree output
215
194
  * @param {string} rawOutput Raw string output
@@ -527,7 +506,15 @@ export function getRepoLicense(repoUrl: string, repoMetadata: any): Promise<stri
527
506
  * @param {Object} repoMetadata Repo metadata
528
507
  */
529
508
  export function getGoPkgLicense(repoMetadata: any): Promise<any>;
530
- export function getGoPkgComponent(group: any, name: any, version: any, hash: any): Promise<{}>;
509
+ export function getGoPkgComponent(group: any, name: any, version: any, hash: any): Promise<{
510
+ group: any;
511
+ name: any;
512
+ version: any;
513
+ _integrity: any;
514
+ license: any;
515
+ purl: string;
516
+ "bom-ref": string;
517
+ }>;
531
518
  /**
532
519
  * Method to parse go.mod files
533
520
  *
@@ -546,7 +533,15 @@ export function parseGoModData(goModData: string, gosumMap: any): any;
546
533
  */
547
534
  export function parseGoListDep(rawOutput: string, gosumMap: any): Promise<{
548
535
  parentComponent: {};
549
- pkgList: {}[];
536
+ pkgList: {
537
+ group: any;
538
+ name: any;
539
+ version: any;
540
+ _integrity: any;
541
+ license: any;
542
+ purl: string;
543
+ "bom-ref": string;
544
+ }[];
550
545
  }>;
551
546
  /**
552
547
  * Parse go mod graph
@@ -965,14 +960,14 @@ export function convertJarNSToPackages(jarNSMapping: any): {
965
960
  value: any;
966
961
  }[];
967
962
  }[];
968
- export function parsePomXml(pomXmlData: any): {
969
- artifactId: any;
970
- groupId: any;
971
- version: any;
972
- description: any;
973
- url: any;
974
- scm: any;
975
- };
963
+ /**
964
+ * Deprecated function to parse pom.xml. Use parsePom instead.
965
+ *
966
+ * @deprecated
967
+ * @param pomXmlData XML contents
968
+ * @returns {Object} Parent component data
969
+ */
970
+ export function parsePomXml(pomXmlData: any): any;
976
971
  export function parseJarManifest(jarMetadata: any): {};
977
972
  export function parsePomProperties(pomProperties: any): {};
978
973
  export function encodeForPurl(s: any): any;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/helpers/utils.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/helpers/utils.js"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../../lib/managers/binary.js"],"names":[],"mappings":"AAgSA,iDA6BC;AAED,wDAkBC;AAED;;;;;GAKG;AACH,kDAFa,SAAS,MAAO,CAqB5B;AAED;;;;;;;EAqXC;AAkCD,gDAoDC;AAED;;;;;;GAMG;AACH,qCAJW,MAAM,cACN,MAAM,WA2BhB;AAED;;;;;;;;GAQG;AACH,kCANW,MAAM,iBACN,MAAM,YACN,OAAO,GAEN,OAAO,CA8BlB"}
1
+ {"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../../lib/managers/binary.js"],"names":[],"mappings":"AAiSA,iDA6BC;AAED,wDAkBC;AAED;;;;;GAKG;AACH,kDAFa,SAAS,MAAO,CAqB5B;AAED;;;;;;;EAqXC;AAkCD,gDAoDC;AAED;;;;;;GAMG;AACH,qCAJW,MAAM,cACN,MAAM,WA2BhB;AAED;;;;;;;;GAQG;AACH,kCANW,MAAM,iBACN,MAAM,YACN,OAAO,GAEN,OAAO,CA8BlB"}