@cyclonedx/cdxgen 10.10.0 → 10.10.2

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
@@ -54,7 +54,6 @@ import {
54
54
  determineSbtVersion,
55
55
  dirNameStr,
56
56
  encodeForPurl,
57
- executeGradleProperties,
58
57
  executeParallelGradleProperties,
59
58
  extractJarArchive,
60
59
  frameworksList,
@@ -1316,6 +1315,7 @@ export async function createJavaBom(path, options) {
1316
1315
  mvnArgs = mvnArgs.concat("-DschemaVersion=1.4");
1317
1316
  }
1318
1317
  const firstPom = pomFiles.length ? pomFiles[0] : undefined;
1318
+ let mavenCmd = getMavenCommand(path, path);
1319
1319
  for (const f of pomFiles) {
1320
1320
  const basePath = dirname(f);
1321
1321
  const settingsXml = join(basePath, "settings.xml");
@@ -1324,7 +1324,9 @@ export async function createJavaBom(path, options) {
1324
1324
  `maven settings.xml found in ${basePath}. Please set the MVN_ARGS environment variable based on the full mvn build command used for this project.\nExample: MVN_ARGS='--settings ${settingsXml}'`,
1325
1325
  );
1326
1326
  }
1327
- const mavenCmd = getMavenCommand(basePath, path);
1327
+ if (mavenCmd?.endsWith("mvn")) {
1328
+ mavenCmd = getMavenCommand(basePath, path);
1329
+ }
1328
1330
  // Should we attempt to resolve class names
1329
1331
  if (options.resolveClass || options.deep) {
1330
1332
  const tmpjarNSMapping = await collectMvnDependencies(
@@ -1635,16 +1637,50 @@ export async function createJavaBom(path, options) {
1635
1637
  gradleFiles?.length &&
1636
1638
  isPackageManagerAllowed("gradle", ["maven", "bazel", "sbt"], options)
1637
1639
  ) {
1638
- const retMap = executeGradleProperties(gradleRootPath, null);
1639
- const allProjectsStr = retMap.projects || [];
1640
- const rootProject = retMap.rootProject;
1641
- if (rootProject) {
1642
- parentComponent = await buildObjectForGradleModule(
1643
- rootProject,
1644
- retMap.metadata,
1640
+ let rootProjects = [null];
1641
+ let allProjectsStr = [];
1642
+ let rootGradleModule = {};
1643
+ if (process.env.GRADLE_INCLUDED_BUILDS) {
1644
+ rootProjects = rootProjects.concat(
1645
+ process.env.GRADLE_INCLUDED_BUILDS.split(","),
1645
1646
  );
1646
- gradleModules.set(rootProject, parentComponent);
1647
1647
  }
1648
+ const parallelPropTaskOut = executeParallelGradleProperties(
1649
+ gradleRootPath,
1650
+ rootProjects,
1651
+ );
1652
+ const splitPropTaskOut = splitOutputByGradleProjects(parallelPropTaskOut, [
1653
+ "properties",
1654
+ ]);
1655
+
1656
+ for (const [key, propTaskOut] of splitPropTaskOut.entries()) {
1657
+ const retMap = parseGradleProperties(propTaskOut);
1658
+ const rootProject = retMap.rootProject;
1659
+ if (rootProject) {
1660
+ const rootComponent = await buildObjectForGradleModule(
1661
+ rootProject,
1662
+ retMap.metadata,
1663
+ );
1664
+ gradleModules.set(key, rootComponent);
1665
+ if (!rootProjects.includes(key)) {
1666
+ if (rootGradleModule.name) {
1667
+ console.error(
1668
+ "Found more than 1 root-components! Maybe you made a mistake in the name of an included-build module?",
1669
+ );
1670
+ throw new Error(
1671
+ "Found more than 1 root-components! Maybe you made a mistake in the name of an included-build module?",
1672
+ );
1673
+ }
1674
+ rootGradleModule = rootComponent;
1675
+ } else if (!allProjectsAddedPurls.includes(rootComponent["purl"])) {
1676
+ allProjects.push(rootComponent);
1677
+ rootDependsOn.push(rootComponent["bom-ref"]);
1678
+ allProjectsAddedPurls.push(rootComponent["purl"]);
1679
+ }
1680
+ allProjectsStr = allProjectsStr.concat(retMap.projects);
1681
+ }
1682
+ }
1683
+ parentComponent = rootGradleModule;
1648
1684
  // Get the sub-project properties and set the root dependencies
1649
1685
  if (allProjectsStr?.length) {
1650
1686
  const parallelPropTaskOut = executeParallelGradleProperties(
@@ -1741,7 +1777,7 @@ export async function createJavaBom(path, options) {
1741
1777
  const perProjectOutput = splitOutputByGradleProjects(cmdOutput, [
1742
1778
  gradleDepTask,
1743
1779
  ]);
1744
- for (const [key, sp] of gradleModules) {
1780
+ for (const key of gradleModules.keys()) {
1745
1781
  const parsedList = await parseGradleDep(
1746
1782
  perProjectOutput.has(key) ? perProjectOutput.get(key) : "",
1747
1783
  key,
@@ -1804,7 +1840,7 @@ export async function createJavaBom(path, options) {
1804
1840
  // NOTE: This can match BUILD files used by perl, so could lead to errors in some projects
1805
1841
  const bazelFiles = getAllFiles(
1806
1842
  path,
1807
- `${options.multiProject ? "**/" : ""}BUILD{,.bazel}`,
1843
+ `${options.multiProject ? "**/" : ""}{WORKSPACE{,.bazel},MODULE.bazel}`,
1808
1844
  options,
1809
1845
  );
1810
1846
  if (
@@ -5660,7 +5696,7 @@ export async function createMultiXBom(pathList, options) {
5660
5696
  }
5661
5697
  if (hasAnyProjectType(["oci", "rust"], options)) {
5662
5698
  bomData = await createRustBom(path, options);
5663
- if (bomData?.bomJson?.components) {
5699
+ if (bomData?.bomJson?.components?.length) {
5664
5700
  if (DEBUG_MODE) {
5665
5701
  console.log(
5666
5702
  `Found ${bomData.bomJson.components.length} rust packages at ${path}`,
@@ -5684,7 +5720,7 @@ export async function createMultiXBom(pathList, options) {
5684
5720
  }
5685
5721
  if (hasAnyProjectType(["oci", "php"], options)) {
5686
5722
  bomData = createPHPBom(path, options);
5687
- if (bomData?.bomJson?.components) {
5723
+ if (bomData?.bomJson?.components?.length) {
5688
5724
  if (DEBUG_MODE) {
5689
5725
  console.log(
5690
5726
  `Found ${bomData.bomJson.components.length} php packages at ${path}`,
@@ -5702,7 +5738,7 @@ export async function createMultiXBom(pathList, options) {
5702
5738
  }
5703
5739
  if (hasAnyProjectType(["oci", "ruby"], options)) {
5704
5740
  bomData = await createRubyBom(path, options);
5705
- if (bomData?.bomJson?.components) {
5741
+ if (bomData?.bomJson?.components?.length) {
5706
5742
  if (DEBUG_MODE) {
5707
5743
  console.log(
5708
5744
  `Found ${bomData.bomJson.components.length} ruby packages at ${path}`,
@@ -5742,7 +5778,7 @@ export async function createMultiXBom(pathList, options) {
5742
5778
  }
5743
5779
  if (hasAnyProjectType(["oci", "dart"], options)) {
5744
5780
  bomData = await createDartBom(path, options);
5745
- if (bomData?.bomJson?.components) {
5781
+ if (bomData?.bomJson?.components?.length) {
5746
5782
  if (DEBUG_MODE) {
5747
5783
  console.log(
5748
5784
  `Found ${bomData.bomJson.components.length} pub packages at ${path}`,
@@ -5760,7 +5796,7 @@ export async function createMultiXBom(pathList, options) {
5760
5796
  }
5761
5797
  if (hasAnyProjectType(["oci", "haskell"], options)) {
5762
5798
  bomData = createHaskellBom(path, options);
5763
- if (bomData?.bomJson?.components) {
5799
+ if (bomData?.bomJson?.components?.length) {
5764
5800
  if (DEBUG_MODE) {
5765
5801
  console.log(
5766
5802
  `Found ${bomData.bomJson.components.length} hackage packages at ${path}`,
@@ -5778,7 +5814,7 @@ export async function createMultiXBom(pathList, options) {
5778
5814
  }
5779
5815
  if (hasAnyProjectType(["oci", "elixir"], options)) {
5780
5816
  bomData = createElixirBom(path, options);
5781
- if (bomData?.bomJson?.components) {
5817
+ if (bomData?.bomJson?.components?.length) {
5782
5818
  if (DEBUG_MODE) {
5783
5819
  console.log(
5784
5820
  `Found ${bomData.bomJson.components.length} mix packages at ${path}`,
@@ -5796,7 +5832,7 @@ export async function createMultiXBom(pathList, options) {
5796
5832
  }
5797
5833
  if (hasAnyProjectType(["oci", "c"], options)) {
5798
5834
  bomData = createCppBom(path, options);
5799
- if (bomData?.bomJson?.components) {
5835
+ if (bomData?.bomJson?.components?.length) {
5800
5836
  if (DEBUG_MODE) {
5801
5837
  console.log(
5802
5838
  `Found ${bomData.bomJson.components.length} cpp packages at ${path}`,
@@ -5814,7 +5850,7 @@ export async function createMultiXBom(pathList, options) {
5814
5850
  }
5815
5851
  if (hasAnyProjectType(["oci", "clojure"], options)) {
5816
5852
  bomData = createClojureBom(path, options);
5817
- if (bomData?.bomJson?.components) {
5853
+ if (bomData?.bomJson?.components?.length) {
5818
5854
  if (DEBUG_MODE) {
5819
5855
  console.log(
5820
5856
  `Found ${bomData.bomJson.components.length} clojure packages at ${path}`,
@@ -5832,7 +5868,7 @@ export async function createMultiXBom(pathList, options) {
5832
5868
  }
5833
5869
  if (hasAnyProjectType(["oci", "github"], options)) {
5834
5870
  bomData = createGitHubBom(path, options);
5835
- if (bomData?.bomJson?.components) {
5871
+ if (bomData?.bomJson?.components?.length) {
5836
5872
  if (DEBUG_MODE) {
5837
5873
  console.log(
5838
5874
  `Found ${bomData.bomJson.components.length} GitHub action packages at ${path}`,
@@ -5850,7 +5886,7 @@ export async function createMultiXBom(pathList, options) {
5850
5886
  }
5851
5887
  if (hasAnyProjectType(["oci", "cloudbuild"], options)) {
5852
5888
  bomData = createCloudBuildBom(path, options);
5853
- if (bomData?.bomJson?.components) {
5889
+ if (bomData?.bomJson?.components?.length) {
5854
5890
  if (DEBUG_MODE) {
5855
5891
  console.log(
5856
5892
  `Found ${bomData.bomJson.components.length} CloudBuild configuration at ${path}`,
@@ -5884,22 +5920,22 @@ export async function createMultiXBom(pathList, options) {
5884
5920
  }
5885
5921
  }
5886
5922
  }
5887
- // Jar scanning is enabled by default
5888
- // See #330
5889
- bomData = await createJarBom(path, options);
5890
- if (bomData?.bomJson?.components?.length) {
5891
- if (DEBUG_MODE) {
5892
- console.log(
5893
- `Found ${bomData.bomJson.components.length} jar packages at ${path}`,
5894
- );
5895
- }
5896
- components = components.concat(bomData.bomJson.components);
5897
- dependencies = dependencies.concat(bomData.bomJson.dependencies);
5898
- if (
5899
- bomData.parentComponent &&
5900
- Object.keys(bomData.parentComponent).length
5901
- ) {
5902
- parentSubComponents.push(bomData.parentComponent);
5923
+ if (hasAnyProjectType(["oci", "jar", "war", "ear"], options)) {
5924
+ bomData = await createJarBom(path, options);
5925
+ if (bomData?.bomJson?.components?.length) {
5926
+ if (DEBUG_MODE) {
5927
+ console.log(
5928
+ `Found ${bomData.bomJson.components.length} jar packages at ${path}`,
5929
+ );
5930
+ }
5931
+ components = components.concat(bomData.bomJson.components);
5932
+ dependencies = dependencies.concat(bomData.bomJson.dependencies);
5933
+ if (
5934
+ bomData.parentComponent &&
5935
+ Object.keys(bomData.parentComponent).length
5936
+ ) {
5937
+ parentSubComponents.push(bomData.parentComponent);
5938
+ }
5903
5939
  }
5904
5940
  }
5905
5941
  // Collect any crypto keys
@@ -398,6 +398,23 @@ export function hasAnyProjectType(projectTypes, options, defaultStatus = true) {
398
398
  ) {
399
399
  return defaultStatus;
400
400
  }
401
+ // If only exclude type is specified, then do not allow oci type
402
+ if (
403
+ (projectTypes?.length === 1 || !defaultStatus) &&
404
+ !options.projectType?.length &&
405
+ options.excludeType?.length
406
+ ) {
407
+ const ret =
408
+ !projectTypes.includes("oci") &&
409
+ !projectTypes.includes("oci-dir") &&
410
+ !projectTypes.includes("os") &&
411
+ !projectTypes.includes("docker") &&
412
+ !options.excludeType.includes("oci");
413
+ if (ret && DEBUG_MODE) {
414
+ console.log("Project types", projectTypes);
415
+ }
416
+ return ret;
417
+ }
401
418
  const allProjectTypes = [...projectTypes];
402
419
  // Convert the project types into base types
403
420
  const baseProjectTypes = [];
@@ -439,6 +456,9 @@ export function hasAnyProjectType(projectTypes, options, defaultStatus = true) {
439
456
  .length
440
457
  );
441
458
  }
459
+ if (shouldInclude && DEBUG_MODE) {
460
+ console.log("Project types", projectTypes);
461
+ }
442
462
  return shouldInclude;
443
463
  }
444
464
 
@@ -2433,6 +2453,7 @@ export function parseMavenTree(rawOutput, pomFile) {
2433
2453
  const tmpA = rawOutput.split("\n");
2434
2454
  let last_level = 0;
2435
2455
  let last_purl = "";
2456
+ let first_purl = undefined;
2436
2457
  const stack = [];
2437
2458
  tmpA.forEach((l) => {
2438
2459
  l = l.replace("\r", "");
@@ -2485,6 +2506,9 @@ export function parseMavenTree(rawOutput, pomFile) {
2485
2506
  null,
2486
2507
  ).toString();
2487
2508
  const key = purlString;
2509
+ if (!first_purl) {
2510
+ first_purl = purlString;
2511
+ }
2488
2512
  if (!keys_cache[key]) {
2489
2513
  keys_cache[key] = key;
2490
2514
  const properties = [];
@@ -2540,7 +2564,9 @@ export function parseMavenTree(rawOutput, pomFile) {
2540
2564
  for (let i = level; i <= last_level; i++) {
2541
2565
  stack.pop();
2542
2566
  }
2543
- const last_stack = stack[stack.length - 1];
2567
+ const last_stack = stack.length
2568
+ ? stack[stack.length - 1]
2569
+ : first_purl;
2544
2570
  const cnodes = level_trees[last_stack] || [];
2545
2571
  cnodes.push(purlString);
2546
2572
  level_trees[last_stack] = cnodes;
@@ -2558,7 +2584,11 @@ export function parseMavenTree(rawOutput, pomFile) {
2558
2584
  dependsOn: level_trees[lk],
2559
2585
  });
2560
2586
  }
2587
+ const parentComponent = deps?.length
2588
+ ? { ...deps[0], type: "application" }
2589
+ : {};
2561
2590
  return {
2591
+ parentComponent,
2562
2592
  pkgList: deps,
2563
2593
  dependenciesList,
2564
2594
  };
@@ -2955,6 +2985,16 @@ export function parseGradleProperties(rawOutput, gradleModuleName = null) {
2955
2985
  const tmpA = rawOutput.split("\n");
2956
2986
  tmpA.forEach((l) => {
2957
2987
  l = l.replace("\r", "");
2988
+ if (
2989
+ !gradleModuleName &&
2990
+ (l.startsWith("Root project '") || l.startsWith("Project '"))
2991
+ ) {
2992
+ metadata.properties.push({
2993
+ name: "GradleModule",
2994
+ value: l.split("'")[1],
2995
+ });
2996
+ return;
2997
+ }
2958
2998
  if (l.startsWith("----") || l.startsWith(">") || !l.includes(": ")) {
2959
2999
  return;
2960
3000
  }
@@ -2997,7 +3037,9 @@ export function executeParallelGradleProperties(dir, allProjectsStr) {
2997
3037
  const gradleCmd = getGradleCommand(dir, null);
2998
3038
  const gradleArgs = buildGradleCommandArguments(
2999
3039
  process.env.GRADLE_ARGS ? process.env.GRADLE_ARGS.split(" ") : [],
3000
- allProjectsStr.map((project) => `${project}:properties`),
3040
+ allProjectsStr.map((project) =>
3041
+ project ? `${project}:properties` : "properties",
3042
+ ),
3001
3043
  process.env.GRADLE_ARGS_PROPERTIES
3002
3044
  ? process.env.GRADLE_ARGS_PROPERTIES.split(" ")
3003
3045
  : [],
@@ -3036,66 +3078,6 @@ export function executeParallelGradleProperties(dir, allProjectsStr) {
3036
3078
  return "";
3037
3079
  }
3038
3080
 
3039
- /**
3040
- * Execute gradle properties command and return parsed output
3041
- *
3042
- * @param {string} dir Directory to execute the command
3043
- * @param {string} subProject Sub project name
3044
- */
3045
- export function executeGradleProperties(dir, subProject) {
3046
- const defaultProps = {
3047
- rootProject: subProject,
3048
- projects: [],
3049
- metadata: {
3050
- version: "latest",
3051
- },
3052
- };
3053
- const gradleCmd = getGradleCommand(dir, null);
3054
- const gradleArguments = buildGradleCommandArguments(
3055
- process.env.GRADLE_ARGS ? process.env.GRADLE_ARGS.split(" ") : [],
3056
- [subProject ? `${subProject}:properties` : "properties"],
3057
- process.env.GRADLE_ARGS_PROPERTIES
3058
- ? process.env.GRADLE_ARGS_PROPERTIES.split(" ")
3059
- : [],
3060
- );
3061
- console.log("Executing", gradleCmd, gradleArguments.join(" "), "in", dir);
3062
- const result = spawnSync(gradleCmd, gradleArguments, {
3063
- cwd: dir,
3064
- encoding: "utf-8",
3065
- shell: isWin,
3066
- maxBuffer: 10 * 1024 * 1024,
3067
- });
3068
- if (result.status !== 0 || result.error) {
3069
- if (result.stderr) {
3070
- if (result.stderr?.includes("does not exist")) {
3071
- return defaultProps;
3072
- }
3073
- console.error(result.stdout, result.stderr);
3074
- console.log(
3075
- "1. Check if the correct version of java and gradle are installed and available in PATH. For example, some project might require Java 11 with gradle 7.\n cdxgen container image bundles Java 23 with gradle 8 which might be incompatible.",
3076
- );
3077
- console.log(
3078
- "2. Try running cdxgen with the unofficial JDK11-based image `ghcr.io/appthreat/cdxgen-java:v10`.",
3079
- );
3080
- if (result.stderr?.includes("not get unknown property")) {
3081
- console.log(
3082
- "3. Check if the SBOM is generated for the correct root project for your application.",
3083
- );
3084
- } else if (result.stderr?.includes("Unable to find Git repository")) {
3085
- console.log(
3086
- "3. A plugin might be requiring a valid git repository. Retry by cloning this repo or performing 'git init' as a workaround.",
3087
- );
3088
- }
3089
- }
3090
- }
3091
- const stdout = result.stdout;
3092
- if (stdout) {
3093
- const cmdOutput = Buffer.from(stdout).toString();
3094
- return parseGradleProperties(cmdOutput, subProject);
3095
- }
3096
- return {};
3097
- }
3098
-
3099
3081
  /**
3100
3082
  * Parse bazel action graph output
3101
3083
  * @param {string} rawOutput Raw string output
@@ -10208,7 +10190,7 @@ export function splitOutputByGradleProjects(rawOutput, relevantTasks) {
10208
10190
  const outputSplitBySubprojects = new Map();
10209
10191
  let subProjectOut = "";
10210
10192
  const outSplitByLine = rawOutput.split("\n");
10211
- let currentProjectName = "";
10193
+ let currentProjectName = "root";
10212
10194
  const regexPatternForRelevantTasks = `.*:(${relevantTasks.join("|")})(?=\s|\r|$)`;
10213
10195
  const regexForRelevantTasks = new RegExp(regexPatternForRelevantTasks);
10214
10196
  for (const [i, line] of outSplitByLine.entries()) {
@@ -604,6 +604,10 @@ test("parse gradle properties", () => {
604
604
  group: "com.ajmalab",
605
605
  version: "0.0.1-SNAPSHOT",
606
606
  properties: [
607
+ {
608
+ name: "GradleModule",
609
+ value: "dependency-diff-check",
610
+ },
607
611
  {
608
612
  name: "buildFile",
609
613
  value:
@@ -632,6 +636,10 @@ test("parse gradle properties", () => {
632
636
  group: "com.ajmalab.demo",
633
637
  version: "latest",
634
638
  properties: [
639
+ {
640
+ name: "GradleModule",
641
+ value: "java-test",
642
+ },
635
643
  {
636
644
  name: "buildFile",
637
645
  value: "/home/almalinux/work/sandbox/java-test/build.gradle",
@@ -656,6 +664,10 @@ test("parse gradle properties", () => {
656
664
  group: "com.ajmalab.demo",
657
665
  version: "latest",
658
666
  properties: [
667
+ {
668
+ name: "GradleModule",
669
+ value: "java-test",
670
+ },
659
671
  {
660
672
  name: "buildFile",
661
673
  value: "/home/almalinux/work/sandbox/java-test/build.gradle",
@@ -807,6 +819,56 @@ test("parse maven tree", () => {
807
819
  "pkg:maven/example.group/org.tycho.demo.rootfiles.win@1.0.0-SNAPSHOT?type=p2-installable-unit",
808
820
  ],
809
821
  });
822
+ parsedList = parseMavenTree(
823
+ readFileSync("./test/data/mvn-metrics-tree.txt", {
824
+ encoding: "utf-8",
825
+ }),
826
+ );
827
+ expect(parsedList.pkgList.length).toEqual(58);
828
+ expect(parsedList.parentComponent["bom-ref"]).toEqual(
829
+ "pkg:maven/org.apache.dubbo/dubbo-metrics@3.3.0?type=pom",
830
+ );
831
+ expect(parsedList.dependenciesList.length).toEqual(58);
832
+ expect(parsedList.dependenciesList[0]).toEqual({
833
+ ref: "pkg:maven/org.apache.dubbo/dubbo-metrics@3.3.0?type=pom",
834
+ dependsOn: [
835
+ "pkg:maven/org.apache.dubbo/dubbo-test-check@3.3.0?type=jar",
836
+ "pkg:maven/org.junit.jupiter/junit-jupiter-engine@5.9.3?type=jar",
837
+ "pkg:maven/org.junit.jupiter/junit-jupiter-params@5.9.3?type=jar",
838
+ "pkg:maven/org.awaitility/awaitility@4.2.0?type=jar",
839
+ "pkg:maven/org.hamcrest/hamcrest@2.2?type=jar",
840
+ "pkg:maven/org.mockito/mockito-core@4.11.0?type=jar",
841
+ "pkg:maven/org.mockito/mockito-inline@4.11.0?type=jar",
842
+ ],
843
+ });
844
+ parsedList = parseMavenTree(
845
+ readFileSync("./test/data/mvn-sbstarter-tree.txt", {
846
+ encoding: "utf-8",
847
+ }),
848
+ );
849
+ expect(parsedList.pkgList.length).toEqual(90);
850
+ expect(parsedList.parentComponent["bom-ref"]).toEqual(
851
+ "pkg:maven/org.apache.dubbo/dubbo-spring-boot-starter@3.3.0?type=jar",
852
+ );
853
+ expect(parsedList.dependenciesList.length).toEqual(90);
854
+ expect(parsedList.dependenciesList[0]).toEqual({
855
+ ref: "pkg:maven/org.apache.dubbo/dubbo-spring-boot-starter@3.3.0?type=jar",
856
+ dependsOn: [
857
+ "pkg:maven/org.yaml/snakeyaml@1.30?type=jar",
858
+ "pkg:maven/org.apache.dubbo/dubbo-spring-boot-autoconfigure@3.3.0?type=jar",
859
+ "pkg:maven/org.junit.vintage/junit-vintage-engine@5.8.2?type=jar",
860
+ "pkg:maven/net.bytebuddy/byte-buddy@1.15.0?type=jar",
861
+ "pkg:maven/net.bytebuddy/byte-buddy-agent@1.15.0?type=jar",
862
+ "pkg:maven/org.apache.dubbo/dubbo-test-check@3.3.0?type=jar",
863
+ "pkg:maven/org.apache.logging.log4j/log4j-slf4j-impl@2.17.2?type=jar",
864
+ "pkg:maven/org.junit.jupiter/junit-jupiter-engine@5.8.2?type=jar",
865
+ "pkg:maven/org.junit.jupiter/junit-jupiter-params@5.8.2?type=jar",
866
+ "pkg:maven/org.awaitility/awaitility@4.2.0?type=jar",
867
+ "pkg:maven/org.hamcrest/hamcrest@2.2?type=jar",
868
+ "pkg:maven/org.mockito/mockito-core@4.11.0?type=jar",
869
+ "pkg:maven/org.mockito/mockito-inline@4.11.0?type=jar",
870
+ ],
871
+ });
810
872
  });
811
873
 
812
874
  // Slow test
@@ -3214,8 +3276,8 @@ test("parsePnpmLock", async () => {
3214
3276
  expect(parsedList.dependenciesList).toHaveLength(462);
3215
3277
  expect(parsedList.pkgList.filter((pkg) => !pkg.scope)).toHaveLength(3);
3216
3278
  parsedList = await parsePnpmLock("./pnpm-lock.yaml");
3217
- expect(parsedList.pkgList.length).toEqual(648);
3218
- expect(parsedList.dependenciesList.length).toEqual(648);
3279
+ expect(parsedList.pkgList.length).toEqual(647);
3280
+ expect(parsedList.dependenciesList.length).toEqual(647);
3219
3281
  expect(parsedList.pkgList[0]).toEqual({
3220
3282
  group: "@ampproject",
3221
3283
  name: "remapping",
@@ -4905,4 +4967,50 @@ test("hasAnyProjectType tests", () => {
4905
4967
  excludeType: ["js"],
4906
4968
  }),
4907
4969
  ).toBeFalsy();
4970
+ expect(
4971
+ hasAnyProjectType(["universal"], {
4972
+ projectType: undefined,
4973
+ excludeType: ["github"],
4974
+ }),
4975
+ ).toBeTruthy();
4976
+ expect(
4977
+ hasAnyProjectType(["oci"], {
4978
+ projectType: undefined,
4979
+ excludeType: ["github"],
4980
+ }),
4981
+ ).toBeFalsy();
4982
+ expect(
4983
+ hasAnyProjectType(["os"], {
4984
+ projectType: undefined,
4985
+ excludeType: ["jar"],
4986
+ }),
4987
+ ).toBeFalsy();
4988
+ expect(
4989
+ hasAnyProjectType(["docker"], {
4990
+ projectType: undefined,
4991
+ excludeType: ["jar"],
4992
+ }),
4993
+ ).toBeFalsy();
4994
+ expect(
4995
+ hasAnyProjectType(["oci", "java"], {
4996
+ projectType: undefined,
4997
+ excludeType: ["jar"],
4998
+ }),
4999
+ ).toBeTruthy();
5000
+ expect(
5001
+ hasAnyProjectType(["oci", "ear"], {
5002
+ projectType: undefined,
5003
+ excludeType: ["jar"],
5004
+ }),
5005
+ ).toBeFalsy();
5006
+ expect(
5007
+ hasAnyProjectType(
5008
+ ["docker", "oci", "container", "os"],
5009
+ {
5010
+ projectType: undefined,
5011
+ excludeType: ["github"],
5012
+ },
5013
+ false,
5014
+ ),
5015
+ ).toBeFalsy();
4908
5016
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyclonedx/cdxgen",
3
- "version": "10.10.0",
3
+ "version": "10.10.2",
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":"AA2wBA;;;;;;;;GAQG;AACH,gFAFW,MAAM,SAchB;AAyUD;;;;;;;GAOG;AACH,mCALW,MAAM,qBAiEhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM;;;;EAKhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM;;;;EAkBhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAq2BhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA2chB;AAED;;;;;;;;;;GAUG;AACH,+DAyEC;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA6bhB;AAED;;;;;GAKG;AACH,kCAHW,MAAM,8BA6YhB;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,oEAkDC;AAED;;;;;GAKG;AACH,uCAHW,MAAM,8BA4ChB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,qBA2BhB;AAED;;;;;GAKG;AACH,qCAHW,MAAM,8BAwFhB;AAED;;;;;GAKG;AACH,iDAHW,MAAM,qBAiUhB;AAED;;;;;GAKG;AACH,mCAHW,MAAM,qBAwJhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAmFhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA6XhB;AAED;;;;;GAKG;AACH,2CAHW,MAAM;;;;;;;;;;;;;;;;;;;;GAoChB;AAED;;;;;;;;KA+DC;AAED;;;;;;GAMG;AACH,yDA2CC;AAED;;;;;;;;;GASG;AACH,2GA6BC;AAED;;;;;GAKG;AACH,0CAHW,MAAM,EAAE,8BAmclB;AAED;;;;;GAKG;AACH,iCAHW,MAAM,8BAiUhB;AAED;;;;;GAKG;AACH,gCAHW,MAAM,qBAsOhB;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":"AA0wBA;;;;;;;;GAQG;AACH,gFAFW,MAAM,SAchB;AAyUD;;;;;;;GAOG;AACH,mCALW,MAAM,qBAiEhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM;;;;EAKhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM;;;;EAkBhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BA04BhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA2chB;AAED;;;;;;;;;;GAUG;AACH,+DAyEC;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA6bhB;AAED;;;;;GAKG;AACH,kCAHW,MAAM,8BA6YhB;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,oEAkDC;AAED;;;;;GAKG;AACH,uCAHW,MAAM,8BA4ChB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,qBA2BhB;AAED;;;;;GAKG;AACH,qCAHW,MAAM,8BAwFhB;AAED;;;;;GAKG;AACH,iDAHW,MAAM,qBAiUhB;AAED;;;;;GAKG;AACH,mCAHW,MAAM,qBAwJhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAmFhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA6XhB;AAED;;;;;GAKG;AACH,2CAHW,MAAM;;;;;;;;;;;;;;;;;;;;GAoChB;AAED;;;;;;;;KA+DC;AAED;;;;;;GAMG;AACH,yDA2CC;AAED;;;;;;;;;GASG;AACH,2GA6BC;AAED;;;;;GAKG;AACH,0CAHW,MAAM,EAAE,8BAmclB;AAED;;;;;GAKG;AACH,iCAHW,MAAM,8BAiUhB;AAED;;;;;GAKG;AACH,gCAHW,MAAM,qBAsOhB;AAED;;;;;;GAMG;AACH,wDAFY,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,CAAC,CAwHxE"}
@@ -268,13 +268,6 @@ export function parseGradleProperties(rawOutput: string, gradleModuleName?: stri
268
268
  * @returns {string} The combined output for all subprojects of the Gradle properties task
269
269
  */
270
270
  export function executeParallelGradleProperties(dir: string, allProjectsStr: any[]): string;
271
- /**
272
- * Execute gradle properties command and return parsed output
273
- *
274
- * @param {string} dir Directory to execute the command
275
- * @param {string} subProject Sub project name
276
- */
277
- export function executeGradleProperties(dir: string, subProject: string): {};
278
271
  /**
279
272
  * Parse bazel action graph output
280
273
  * @param {string} rawOutput Raw string output
@@ -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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"}