@cyclonedx/cdxgen 10.10.0 → 10.10.1
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,
|
|
@@ -1635,16 +1634,50 @@ export async function createJavaBom(path, options) {
|
|
|
1635
1634
|
gradleFiles?.length &&
|
|
1636
1635
|
isPackageManagerAllowed("gradle", ["maven", "bazel", "sbt"], options)
|
|
1637
1636
|
) {
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
if (
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
retMap.metadata,
|
|
1637
|
+
let rootProjects = [null];
|
|
1638
|
+
let allProjectsStr = [];
|
|
1639
|
+
let rootGradleModule = {};
|
|
1640
|
+
if (process.env.GRADLE_INCLUDED_BUILDS) {
|
|
1641
|
+
rootProjects = rootProjects.concat(
|
|
1642
|
+
process.env.GRADLE_INCLUDED_BUILDS.split(","),
|
|
1645
1643
|
);
|
|
1646
|
-
gradleModules.set(rootProject, parentComponent);
|
|
1647
1644
|
}
|
|
1645
|
+
const parallelPropTaskOut = executeParallelGradleProperties(
|
|
1646
|
+
gradleRootPath,
|
|
1647
|
+
rootProjects,
|
|
1648
|
+
);
|
|
1649
|
+
const splitPropTaskOut = splitOutputByGradleProjects(parallelPropTaskOut, [
|
|
1650
|
+
"properties",
|
|
1651
|
+
]);
|
|
1652
|
+
|
|
1653
|
+
for (const [key, propTaskOut] of splitPropTaskOut.entries()) {
|
|
1654
|
+
const retMap = parseGradleProperties(propTaskOut);
|
|
1655
|
+
const rootProject = retMap.rootProject;
|
|
1656
|
+
if (rootProject) {
|
|
1657
|
+
const rootComponent = await buildObjectForGradleModule(
|
|
1658
|
+
rootProject,
|
|
1659
|
+
retMap.metadata,
|
|
1660
|
+
);
|
|
1661
|
+
gradleModules.set(key, rootComponent);
|
|
1662
|
+
if (!rootProjects.includes(key)) {
|
|
1663
|
+
if (rootGradleModule.name) {
|
|
1664
|
+
console.error(
|
|
1665
|
+
"Found more than 1 root-components! Maybe you made a mistake in the name of an included-build module?",
|
|
1666
|
+
);
|
|
1667
|
+
throw new Error(
|
|
1668
|
+
"Found more than 1 root-components! Maybe you made a mistake in the name of an included-build module?",
|
|
1669
|
+
);
|
|
1670
|
+
}
|
|
1671
|
+
rootGradleModule = rootComponent;
|
|
1672
|
+
} else if (!allProjectsAddedPurls.includes(rootComponent["purl"])) {
|
|
1673
|
+
allProjects.push(rootComponent);
|
|
1674
|
+
rootDependsOn.push(rootComponent["bom-ref"]);
|
|
1675
|
+
allProjectsAddedPurls.push(rootComponent["purl"]);
|
|
1676
|
+
}
|
|
1677
|
+
allProjectsStr = allProjectsStr.concat(retMap.projects);
|
|
1678
|
+
}
|
|
1679
|
+
}
|
|
1680
|
+
parentComponent = rootGradleModule;
|
|
1648
1681
|
// Get the sub-project properties and set the root dependencies
|
|
1649
1682
|
if (allProjectsStr?.length) {
|
|
1650
1683
|
const parallelPropTaskOut = executeParallelGradleProperties(
|
|
@@ -1741,7 +1774,7 @@ export async function createJavaBom(path, options) {
|
|
|
1741
1774
|
const perProjectOutput = splitOutputByGradleProjects(cmdOutput, [
|
|
1742
1775
|
gradleDepTask,
|
|
1743
1776
|
]);
|
|
1744
|
-
for (const
|
|
1777
|
+
for (const key of gradleModules.keys()) {
|
|
1745
1778
|
const parsedList = await parseGradleDep(
|
|
1746
1779
|
perProjectOutput.has(key) ? perProjectOutput.get(key) : "",
|
|
1747
1780
|
key,
|
package/lib/helpers/utils.js
CHANGED
|
@@ -2955,6 +2955,16 @@ export function parseGradleProperties(rawOutput, gradleModuleName = null) {
|
|
|
2955
2955
|
const tmpA = rawOutput.split("\n");
|
|
2956
2956
|
tmpA.forEach((l) => {
|
|
2957
2957
|
l = l.replace("\r", "");
|
|
2958
|
+
if (
|
|
2959
|
+
!gradleModuleName &&
|
|
2960
|
+
(l.startsWith("Root project '") || l.startsWith("Project '"))
|
|
2961
|
+
) {
|
|
2962
|
+
metadata.properties.push({
|
|
2963
|
+
name: "GradleModule",
|
|
2964
|
+
value: l.split("'")[1],
|
|
2965
|
+
});
|
|
2966
|
+
return;
|
|
2967
|
+
}
|
|
2958
2968
|
if (l.startsWith("----") || l.startsWith(">") || !l.includes(": ")) {
|
|
2959
2969
|
return;
|
|
2960
2970
|
}
|
|
@@ -2997,7 +3007,9 @@ export function executeParallelGradleProperties(dir, allProjectsStr) {
|
|
|
2997
3007
|
const gradleCmd = getGradleCommand(dir, null);
|
|
2998
3008
|
const gradleArgs = buildGradleCommandArguments(
|
|
2999
3009
|
process.env.GRADLE_ARGS ? process.env.GRADLE_ARGS.split(" ") : [],
|
|
3000
|
-
allProjectsStr.map((project) =>
|
|
3010
|
+
allProjectsStr.map((project) =>
|
|
3011
|
+
project ? `${project}:properties` : "properties",
|
|
3012
|
+
),
|
|
3001
3013
|
process.env.GRADLE_ARGS_PROPERTIES
|
|
3002
3014
|
? process.env.GRADLE_ARGS_PROPERTIES.split(" ")
|
|
3003
3015
|
: [],
|
|
@@ -3036,66 +3048,6 @@ export function executeParallelGradleProperties(dir, allProjectsStr) {
|
|
|
3036
3048
|
return "";
|
|
3037
3049
|
}
|
|
3038
3050
|
|
|
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
3051
|
/**
|
|
3100
3052
|
* Parse bazel action graph output
|
|
3101
3053
|
* @param {string} rawOutput Raw string output
|
|
@@ -10208,7 +10160,7 @@ export function splitOutputByGradleProjects(rawOutput, relevantTasks) {
|
|
|
10208
10160
|
const outputSplitBySubprojects = new Map();
|
|
10209
10161
|
let subProjectOut = "";
|
|
10210
10162
|
const outSplitByLine = rawOutput.split("\n");
|
|
10211
|
-
let currentProjectName = "";
|
|
10163
|
+
let currentProjectName = "root";
|
|
10212
10164
|
const regexPatternForRelevantTasks = `.*:(${relevantTasks.join("|")})(?=\s|\r|$)`;
|
|
10213
10165
|
const regexForRelevantTasks = new RegExp(regexPatternForRelevantTasks);
|
|
10214
10166
|
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",
|
|
@@ -3214,8 +3226,8 @@ test("parsePnpmLock", async () => {
|
|
|
3214
3226
|
expect(parsedList.dependenciesList).toHaveLength(462);
|
|
3215
3227
|
expect(parsedList.pkgList.filter((pkg) => !pkg.scope)).toHaveLength(3);
|
|
3216
3228
|
parsedList = await parsePnpmLock("./pnpm-lock.yaml");
|
|
3217
|
-
expect(parsedList.pkgList.length).toEqual(
|
|
3218
|
-
expect(parsedList.dependenciesList.length).toEqual(
|
|
3229
|
+
expect(parsedList.pkgList.length).toEqual(647);
|
|
3230
|
+
expect(parsedList.dependenciesList.length).toEqual(647);
|
|
3219
3231
|
expect(parsedList.pkgList[0]).toEqual({
|
|
3220
3232
|
group: "@ampproject",
|
|
3221
3233
|
name: "remapping",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyclonedx/cdxgen",
|
|
3
|
-
"version": "10.10.
|
|
3
|
+
"version": "10.10.1",
|
|
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":"
|
|
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,8BAu4BhB;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":"AA+JA,yCAYC;AAED,2CAQC;AA8KD;;;;;;;GAOG;AACH,4EAoBC;AAED;;;;;;GAMG;AACH,mGAkDC;AAED;;;;;;;;GAQG;AACH,yGASC;AAgBD;;;;;GAKG;AACH,qCAHW,MAAM,WACN,MAAM,0BAqBhB;AAED;;;;;;GAMG;AACH,+CAJW,MAAM,WACN,MAAM,+BAoBhB;AAYD;;;;GAIG;AACH,gCAFa,MAAM,CAIlB;AAED;;;;;;IAMI;AACJ,iDAJW,MAAM,GACJ,OAAO,CAiBnB;AAED;;;;;;;;;GASG;AACH,iEA2BC;AAED;;;;;GAKG;AACH,6CAqDC;AAED;;;;;;GAMG;AACH,sEA0DC;AAED;;;;GAIG;AACH,4EAoCC;AAED;;;GAGG;AACH;;EAUC;AAED,sEA0BC;AAED;;;;GAIG;AACH,+DA4CC;AAED;;;;;GAKG;AACH,0CAHW,MAAM,WACN,OAAO,kBAkFjB;AAED;;;;;GAKG;AACH,0CAHW,MAAM,YACN,MAAM;;;GAqVhB;AAED;;;;;;;GAOG;AACH,6CAFW,MAAM,MA2DhB;AAwBD;;;;GAIG;AACH,4CAFW,MAAM;;;GAkOhB;AAED;;;;GAIG;AACH,4CAFW,MAAM,kBAiEhB;AAuCD;;;;;GAKG;AACH,wCAHW,MAAM,oBACN,MAAM;;;;;;;;;GA0dhB;AAED;;;;GAIG;AACH,8CAFW,MAAM,kBA+ChB;AAED;;;;GAIG;AACH,sCAFW,MAAM,kBAgFhB;AAED;;;;GAIG;AACH;;;;;;;;;;;;;;;;;;;;;;IAqDC;AAED;;;;;;GAMG;AACH,0CALW,MAAM,WACN,MAAM,OAgJhB;AAED;;;;;;GAMG;AACH,0CALW,MAAM,oBACN,MAAM,kBACN,GAAG,mBACH,MAAM;;;;;;;;;GA+NhB;AAED;;;GAGG;AACH,uCAFW,MAAM,SAoChB;AAED;;;GAGG;AACH,wCAFW,MAAM,OAahB;AAED,yEAwBC;AAED;;;;GAIG;AACH,+CAFW,MAAM;;;EAwDhB;AAED;;;;;GAKG;AACH,iDAHW,MAAM,qBACN,MAAM;;;;;;;;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/helpers/utils.js"],"names":[],"mappings":"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"}
|