@cyclonedx/cdxgen 11.2.6 → 11.3.0
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/bin/cdxgen.js +14 -4
- package/data/frameworks-list.json +9 -7
- package/data/pypi-pkg-aliases.json +1 -0
- package/lib/cli/index.js +19 -3
- package/lib/evinser/evinser.js +2 -2
- package/lib/helpers/utils.js +30 -52
- package/lib/helpers/utils.test.js +8 -8
- package/lib/helpers/validator.js +9 -0
- package/lib/managers/binary.js +69 -45
- package/lib/managers/docker.js +13 -5
- package/lib/managers/piptree.js +3 -1
- package/lib/server/openapi.yaml +10 -2
- package/lib/server/server.js +32 -6
- package/lib/stages/pregen/pregen.js +5 -1
- package/package.json +16 -15
- package/types/lib/cli/index.d.ts.map +1 -1
- package/types/lib/helpers/utils.d.ts.map +1 -1
- package/types/lib/helpers/validator.d.ts.map +1 -1
- package/types/lib/managers/binary.d.ts.map +1 -1
- package/types/lib/managers/docker.d.ts.map +1 -1
- package/types/lib/managers/piptree.d.ts.map +1 -1
- package/types/lib/server/server.d.ts.map +1 -1
- package/types/lib/stages/pregen/pregen.d.ts.map +1 -1
package/bin/cdxgen.js
CHANGED
|
@@ -437,6 +437,15 @@ const options = Object.assign({}, args, {
|
|
|
437
437
|
? resolve(join(filePath, args.output))
|
|
438
438
|
: args.output,
|
|
439
439
|
});
|
|
440
|
+
// Should we create the output directory?
|
|
441
|
+
const outputDirectory = dirname(options.output);
|
|
442
|
+
if (
|
|
443
|
+
outputDirectory &&
|
|
444
|
+
outputDirectory !== process.cwd() &&
|
|
445
|
+
!safeExistsSync(outputDirectory)
|
|
446
|
+
) {
|
|
447
|
+
fs.mkdirSync(outputDirectory, { recursive: true });
|
|
448
|
+
}
|
|
440
449
|
// Filter duplicate types. Eg: -t gradle -t gradle
|
|
441
450
|
if (options.projectType && Array.isArray(options.projectType)) {
|
|
442
451
|
options.projectType = Array.from(new Set(options.projectType));
|
|
@@ -658,6 +667,11 @@ const checkPermissions = (filePath, options) => {
|
|
|
658
667
|
}
|
|
659
668
|
// Secure mode checks
|
|
660
669
|
if (isSecureMode) {
|
|
670
|
+
if (process.env?.GITHUB_TOKEN) {
|
|
671
|
+
console.log(
|
|
672
|
+
"Ensure that the GitHub token provided to cdxgen is restricted to read-only scopes.",
|
|
673
|
+
);
|
|
674
|
+
}
|
|
661
675
|
if (process.permission.has("fs.read", "*")) {
|
|
662
676
|
console.log(
|
|
663
677
|
"\x1b[1;35mSECURE MODE: DO NOT run cdxgen with FileSystemRead permission set to wildcard.\x1b[0m",
|
|
@@ -785,10 +799,6 @@ const checkPermissions = (filePath, options) => {
|
|
|
785
799
|
}
|
|
786
800
|
return;
|
|
787
801
|
}
|
|
788
|
-
// This will prevent people from accidentally using the usages slices belonging to a different project
|
|
789
|
-
if (!options.usagesSlicesFile) {
|
|
790
|
-
options.usagesSlicesFile = `${options.projectName}-usages.json`;
|
|
791
|
-
}
|
|
792
802
|
prepareEnv(filePath, options);
|
|
793
803
|
thoughtLog("Getting ready to generate the BOM ⚡️.");
|
|
794
804
|
let bomNSData = (await createBom(filePath, options)) || {};
|
|
@@ -36,13 +36,15 @@
|
|
|
36
36
|
"play",
|
|
37
37
|
"spark",
|
|
38
38
|
"struts",
|
|
39
|
-
"
|
|
40
|
-
"react",
|
|
41
|
-
"next",
|
|
42
|
-
"ember",
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
39
|
+
"pkg:npm/%40angular",
|
|
40
|
+
"pkg:npm/react",
|
|
41
|
+
"pkg:npm/next",
|
|
42
|
+
"pkg:npm/ember",
|
|
43
|
+
"pkg:npm/%40electron",
|
|
44
|
+
"pkg:npm/%40protobufjs",
|
|
45
|
+
"pkg:npm/express",
|
|
46
|
+
"pkg:npm/knex",
|
|
47
|
+
"pkg:npm/vue",
|
|
46
48
|
"pkg:pypi/aiohttp",
|
|
47
49
|
"pkg:pypi/bottle",
|
|
48
50
|
"pkg:pypi/cherrypy",
|
package/lib/cli/index.js
CHANGED
|
@@ -785,6 +785,10 @@ function addMetadata(parentComponent = {}, options = {}, context = {}) {
|
|
|
785
785
|
"PNPM_STORE_PATH",
|
|
786
786
|
"PNPM_HOME",
|
|
787
787
|
"PNPM_CONFIG_",
|
|
788
|
+
"GIO_MODULE_DIR",
|
|
789
|
+
"GST_PLUGIN_PATH",
|
|
790
|
+
"GST_PLUGIN_SYSTEM_PATH",
|
|
791
|
+
"APPDIR_LIBRARY_PATH", // appimage specific which gets prepended to LD_LIBRARY_PATH
|
|
788
792
|
]) {
|
|
789
793
|
if (evalue.includes(senvValue)) {
|
|
790
794
|
mproperties.push({
|
|
@@ -1202,6 +1206,13 @@ function determinePackageType(pkg) {
|
|
|
1202
1206
|
return "application";
|
|
1203
1207
|
}
|
|
1204
1208
|
}
|
|
1209
|
+
// See #1760
|
|
1210
|
+
if (
|
|
1211
|
+
purl.namespace?.startsWith("@types") ||
|
|
1212
|
+
(purl.namespace?.includes("-types") && pkg?.type === "npm")
|
|
1213
|
+
) {
|
|
1214
|
+
return "library";
|
|
1215
|
+
}
|
|
1205
1216
|
for (const cf of frameworksList.all) {
|
|
1206
1217
|
if (
|
|
1207
1218
|
pkg.purl.startsWith(cf) ||
|
|
@@ -2308,7 +2319,7 @@ export async function createJavaBom(path, options) {
|
|
|
2308
2319
|
query = ["--bazelrc=.bazelrc"];
|
|
2309
2320
|
}
|
|
2310
2321
|
if (["true", "1"].includes(process.env.BAZEL_USE_ACTION_GRAPH)) {
|
|
2311
|
-
query = query.concat(["
|
|
2322
|
+
query = query.concat(["query", `deps(${target})`, "--output=label"]);
|
|
2312
2323
|
bazelParser = parseBazelActionGraph;
|
|
2313
2324
|
} else {
|
|
2314
2325
|
query = query.concat([
|
|
@@ -4838,7 +4849,10 @@ export function createCppBom(path, options) {
|
|
|
4838
4849
|
parentComponent = retMap.parentComponent;
|
|
4839
4850
|
} else {
|
|
4840
4851
|
parentComponent.components = parentComponent.components || [];
|
|
4841
|
-
if (
|
|
4852
|
+
if (
|
|
4853
|
+
retMap?.parentComponent?.name &&
|
|
4854
|
+
!addedParentComponentsMap[retMap.parentComponent.name]
|
|
4855
|
+
) {
|
|
4842
4856
|
parentComponent.components.push(retMap.parentComponent);
|
|
4843
4857
|
addedParentComponentsMap[retMap.parentComponent.name] = true;
|
|
4844
4858
|
}
|
|
@@ -6727,7 +6741,7 @@ export function mergeDependencies(
|
|
|
6727
6741
|
}
|
|
6728
6742
|
if (adep["dependsOn"]) {
|
|
6729
6743
|
for (const eachDepends of adep["dependsOn"]) {
|
|
6730
|
-
if (parentRef) {
|
|
6744
|
+
if (parentRef && eachDepends) {
|
|
6731
6745
|
if (eachDepends.toLowerCase() !== parentRef.toLowerCase()) {
|
|
6732
6746
|
deps_map[adep.ref].add(eachDepends);
|
|
6733
6747
|
}
|
|
@@ -6807,6 +6821,8 @@ export function trimComponents(components) {
|
|
|
6807
6821
|
if (comp?.evidence?.identity) {
|
|
6808
6822
|
if (!existingComponent.evidence) {
|
|
6809
6823
|
existingComponent.evidence = { identity: [] };
|
|
6824
|
+
} else if (!existingComponent?.evidence?.identity) {
|
|
6825
|
+
existingComponent.evidence.identity = [];
|
|
6810
6826
|
} else if (
|
|
6811
6827
|
existingComponent?.evidence?.identity &&
|
|
6812
6828
|
!Array.isArray(existingComponent.evidence.identity)
|
package/lib/evinser/evinser.js
CHANGED
|
@@ -259,7 +259,7 @@ export async function createSlice(
|
|
|
259
259
|
const openapiSpecFile = basename(
|
|
260
260
|
options.openapiSpecFile ||
|
|
261
261
|
process.env?.ATOM_TOOLS_OPENAPI_FILENAME ||
|
|
262
|
-
`${language}-openapi.json
|
|
262
|
+
join(sliceOutputDir, `${language}-openapi.json`),
|
|
263
263
|
);
|
|
264
264
|
// For some languages such as scala, semantics slices file would get created during usages slicing.
|
|
265
265
|
let semanticsSlicesFile;
|
|
@@ -277,7 +277,7 @@ export async function createSlice(
|
|
|
277
277
|
console.log(
|
|
278
278
|
`Creating ${sliceType} slice for ${resolve(filePath)}. Please wait ...`,
|
|
279
279
|
);
|
|
280
|
-
const atomFile = join(sliceOutputDir,
|
|
280
|
+
const atomFile = join(sliceOutputDir, `${language}-app.atom`);
|
|
281
281
|
let args = [sliceType];
|
|
282
282
|
// Support for crypto slices aka CBOM
|
|
283
283
|
if (sliceType === "reachables" && options.includeCrypto) {
|
package/lib/helpers/utils.js
CHANGED
|
@@ -1192,13 +1192,12 @@ export async function parsePkgLock(pkgLockFile, options = {}) {
|
|
|
1192
1192
|
}`
|
|
1193
1193
|
: author;
|
|
1194
1194
|
if (node === rootNode) {
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
options.
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
null,
|
|
1195
|
+
const projectGroup = options.projectGroup;
|
|
1196
|
+
const projectName =
|
|
1197
|
+
"project-name" in options ? options.projectName : node.packageName;
|
|
1198
|
+
const projectVersion = options.projectVersion || node.version;
|
|
1199
|
+
purlString = PackageURL.fromString(
|
|
1200
|
+
`pkg:npm/${projectGroup ? `${encodeURIComponent(projectGroup).replace(/%2F/g, "/")}/` : ""}${encodeURIComponent(projectName).replace(/%2F/g, "/")}@${projectVersion}`,
|
|
1202
1201
|
)
|
|
1203
1202
|
.toString()
|
|
1204
1203
|
.replace(/%2F/g, "/");
|
|
@@ -1213,13 +1212,8 @@ export async function parsePkgLock(pkgLockFile, options = {}) {
|
|
|
1213
1212
|
"bom-ref": decodeURIComponent(purlString),
|
|
1214
1213
|
};
|
|
1215
1214
|
} else {
|
|
1216
|
-
purlString =
|
|
1217
|
-
|
|
1218
|
-
"",
|
|
1219
|
-
node.packageName,
|
|
1220
|
-
node.version,
|
|
1221
|
-
null,
|
|
1222
|
-
null,
|
|
1215
|
+
purlString = PackageURL.fromString(
|
|
1216
|
+
`pkg:npm/${encodeURIComponent(node.packageName).replace(/%2F/g, "/")}@${node.version}`,
|
|
1223
1217
|
)
|
|
1224
1218
|
.toString()
|
|
1225
1219
|
.replace(/%2F/g, "/");
|
|
@@ -1558,7 +1552,9 @@ export async function parsePkgLock(pkgLockFile, options = {}) {
|
|
|
1558
1552
|
continue;
|
|
1559
1553
|
}
|
|
1560
1554
|
const depPurlString = decodeURIComponent(
|
|
1561
|
-
|
|
1555
|
+
PackageURL.fromString(
|
|
1556
|
+
`pkg:npm/${encodeURIComponent(targetName).replace(/%2F/g, "/")}@${targetVersion}`,
|
|
1557
|
+
)
|
|
1562
1558
|
.toString()
|
|
1563
1559
|
.replace(/%2F/g, "/"),
|
|
1564
1560
|
);
|
|
@@ -1945,13 +1941,8 @@ export async function parseYarnLock(yarnLockFile) {
|
|
|
1945
1941
|
// Handle case where the dependency name is really an alias.
|
|
1946
1942
|
// Eg: legacy-swc-helpers "npm:@swc/helpers@=0.4.14". Here the dgroupname=@swc/helpers
|
|
1947
1943
|
|
|
1948
|
-
const depPurlString =
|
|
1949
|
-
|
|
1950
|
-
null,
|
|
1951
|
-
dgroupnameToUse,
|
|
1952
|
-
resolvedVersion,
|
|
1953
|
-
null,
|
|
1954
|
-
null,
|
|
1944
|
+
const depPurlString = PackageURL.fromString(
|
|
1945
|
+
`pkg:npm/${encodeURIComponent(dgroupnameToUse).replace(/%2F/g, "/")}@${resolvedVersion}`,
|
|
1955
1946
|
).toString();
|
|
1956
1947
|
deplist.add(decodeURIComponent(depPurlString));
|
|
1957
1948
|
}
|
|
@@ -2556,13 +2547,8 @@ export async function parsePnpmLock(
|
|
|
2556
2547
|
if (vers?.includes("(")) {
|
|
2557
2548
|
vers = vers.split("(")[0];
|
|
2558
2549
|
}
|
|
2559
|
-
const opurlString =
|
|
2560
|
-
|
|
2561
|
-
"",
|
|
2562
|
-
opkgName,
|
|
2563
|
-
vers,
|
|
2564
|
-
null,
|
|
2565
|
-
null,
|
|
2550
|
+
const opurlString = PackageURL.fromString(
|
|
2551
|
+
`pkg:npm/${encodeURIComponent(opkgName).replace(/%2F/g, "/")}@${vers}`,
|
|
2566
2552
|
).toString();
|
|
2567
2553
|
const obomRef = decodeURIComponent(opurlString);
|
|
2568
2554
|
if (possibleOptionalDeps[obomRef] === undefined) {
|
|
@@ -2700,13 +2686,8 @@ export async function parsePnpmLock(
|
|
|
2700
2686
|
.replace(/^\//, "");
|
|
2701
2687
|
vers = overrideVersion;
|
|
2702
2688
|
}
|
|
2703
|
-
const dpurlString =
|
|
2704
|
-
|
|
2705
|
-
"",
|
|
2706
|
-
dpkgName,
|
|
2707
|
-
vers,
|
|
2708
|
-
null,
|
|
2709
|
-
null,
|
|
2689
|
+
const dpurlString = PackageURL.fromString(
|
|
2690
|
+
`pkg:npm/${encodeURIComponent(dpkgName).replace(/%2F/g, "/")}@${vers}`,
|
|
2710
2691
|
).toString();
|
|
2711
2692
|
const dbomRef = decodeURIComponent(dpurlString);
|
|
2712
2693
|
deplist.push(dbomRef);
|
|
@@ -4091,12 +4072,7 @@ export function executeParallelGradleProperties(
|
|
|
4091
4072
|
* @param {string} rawOutput Raw string output
|
|
4092
4073
|
*/
|
|
4093
4074
|
export function parseBazelActionGraph(rawOutput) {
|
|
4094
|
-
const mavenPrefixRegex =
|
|
4095
|
-
`^.*v1/https/[^/]*(?:${
|
|
4096
|
-
process.env.BAZEL_STRIP_MAVEN_PREFIX || "/maven2/"
|
|
4097
|
-
})?(.*)/(.*)/(.*)/(.*.jar)(?:"| \\\\)?$`,
|
|
4098
|
-
"g",
|
|
4099
|
-
);
|
|
4075
|
+
const mavenPrefixRegex = /^@maven\/\/:(.*)\/(.*)\/(.*)\/(.*\.jar)$/g;
|
|
4100
4076
|
|
|
4101
4077
|
if (typeof rawOutput === "string") {
|
|
4102
4078
|
const deps = [];
|
|
@@ -4104,10 +4080,7 @@ export function parseBazelActionGraph(rawOutput) {
|
|
|
4104
4080
|
const tmpA = rawOutput.split("\n");
|
|
4105
4081
|
tmpA.forEach((l) => {
|
|
4106
4082
|
l = l.replace("\r", "");
|
|
4107
|
-
if (
|
|
4108
|
-
l.trim().startsWith("arguments") ||
|
|
4109
|
-
l.trim().startsWith("bazel-out")
|
|
4110
|
-
) {
|
|
4083
|
+
if (l.trim().startsWith("@maven//:")) {
|
|
4111
4084
|
const matches = Array.from(l.matchAll(mavenPrefixRegex));
|
|
4112
4085
|
|
|
4113
4086
|
if (matches[0]?.[1]) {
|
|
@@ -5075,8 +5048,8 @@ export async function parsePyLockData(lockData, lockFile, pyProjectFile) {
|
|
|
5075
5048
|
);
|
|
5076
5049
|
}
|
|
5077
5050
|
const pyProjMap = parsePyProjectTomlFile(pyProjectFile);
|
|
5078
|
-
directDepsKeys = pyProjMap.directDepsKeys;
|
|
5079
|
-
groupDepsKeys = pyProjMap.groupDepsKeys;
|
|
5051
|
+
directDepsKeys = pyProjMap.directDepsKeys || {};
|
|
5052
|
+
groupDepsKeys = pyProjMap.groupDepsKeys || {};
|
|
5080
5053
|
parentComponent = pyProjMap.parentComponent;
|
|
5081
5054
|
workspacePaths = pyProjMap.workspacePaths;
|
|
5082
5055
|
if (workspacePaths?.length) {
|
|
@@ -5258,7 +5231,7 @@ export async function parsePyLockData(lockData, lockFile, pyProjectFile) {
|
|
|
5258
5231
|
],
|
|
5259
5232
|
},
|
|
5260
5233
|
};
|
|
5261
|
-
if (groupDepsKeys[pkg.name]) {
|
|
5234
|
+
if (groupDepsKeys?.[pkg.name]) {
|
|
5262
5235
|
pkg.scope = "optional";
|
|
5263
5236
|
pkg.properties = pkg.properties.concat(
|
|
5264
5237
|
groupDepsKeys[pkg.name].map((g) => {
|
|
@@ -13036,7 +13009,6 @@ export function executeAtom(src, args, extra_env = {}) {
|
|
|
13036
13009
|
cwd,
|
|
13037
13010
|
encoding: "utf-8",
|
|
13038
13011
|
timeout: TIMEOUT_MS,
|
|
13039
|
-
detached: !isWin && !process.env.CI,
|
|
13040
13012
|
shell: isWin,
|
|
13041
13013
|
killSignal: "SIGKILL",
|
|
13042
13014
|
env,
|
|
@@ -13056,7 +13028,7 @@ export function executeAtom(src, args, extra_env = {}) {
|
|
|
13056
13028
|
console.log(`Current JAVA_HOME: ${env["JAVA_HOME"] || ""}`);
|
|
13057
13029
|
} else if (result.stderr?.includes("astgen")) {
|
|
13058
13030
|
console.warn(
|
|
13059
|
-
"WARN: Unable to locate astgen command. Install atom globally using sudo npm install -g @appthreat/atom to resolve this issue.",
|
|
13031
|
+
"WARN: Unable to locate astgen command. Install atom globally using sudo npm install -g @appthreat/atom-parsetools to resolve this issue.",
|
|
13060
13032
|
);
|
|
13061
13033
|
} else if (
|
|
13062
13034
|
result.stderr?.includes(
|
|
@@ -13066,6 +13038,12 @@ export function executeAtom(src, args, extra_env = {}) {
|
|
|
13066
13038
|
console.warn(
|
|
13067
13039
|
"WARN: The binary plugin used by atom has crashed. Please try an alternative container image and file an issue with steps to reproduce at: https://github.com/AppThreat/atom/issues",
|
|
13068
13040
|
);
|
|
13041
|
+
} else if (
|
|
13042
|
+
result.stderr?.includes("Could not parse command line options")
|
|
13043
|
+
) {
|
|
13044
|
+
console.warn(
|
|
13045
|
+
"Invalid command-line options passed to atom. Please file a bug in the cdxgen repository.",
|
|
13046
|
+
);
|
|
13069
13047
|
}
|
|
13070
13048
|
}
|
|
13071
13049
|
if (result.stdout) {
|
|
@@ -13112,7 +13090,7 @@ export function findAppModules(
|
|
|
13112
13090
|
slicesFile = undefined,
|
|
13113
13091
|
) {
|
|
13114
13092
|
const tempDir = mkdtempSync(join(tmpdir(), "atom-deps-"));
|
|
13115
|
-
const atomFile = join(tempDir,
|
|
13093
|
+
const atomFile = join(tempDir, `${language}-app.atom`);
|
|
13116
13094
|
if (!slicesFile) {
|
|
13117
13095
|
slicesFile = join(tempDir, "slices.json");
|
|
13118
13096
|
}
|
|
@@ -1318,7 +1318,7 @@ describe("go data with licenses", () => {
|
|
|
1318
1318
|
afterAll(() => {
|
|
1319
1319
|
delete process.env.FETCH_LICENSE;
|
|
1320
1320
|
});
|
|
1321
|
-
test("parseGoSumData with licenses", async () => {
|
|
1321
|
+
test.skip("parseGoSumData with licenses", async () => {
|
|
1322
1322
|
let dep_list = await parseGosumData(null);
|
|
1323
1323
|
expect(dep_list).toEqual([]);
|
|
1324
1324
|
dep_list = await parseGosumData(
|
|
@@ -2447,7 +2447,7 @@ test("parse github actions workflow data", () => {
|
|
|
2447
2447
|
let dep_list = parseGitHubWorkflowData(
|
|
2448
2448
|
readFileSync("./.github/workflows/nodejs.yml", { encoding: "utf-8" }),
|
|
2449
2449
|
);
|
|
2450
|
-
expect(dep_list.length).toEqual(
|
|
2450
|
+
expect(dep_list.length).toEqual(5);
|
|
2451
2451
|
expect(dep_list[0]).toEqual({
|
|
2452
2452
|
group: "actions",
|
|
2453
2453
|
name: "checkout",
|
|
@@ -2456,7 +2456,7 @@ test("parse github actions workflow data", () => {
|
|
|
2456
2456
|
dep_list = parseGitHubWorkflowData(
|
|
2457
2457
|
readFileSync("./.github/workflows/repotests.yml", { encoding: "utf-8" }),
|
|
2458
2458
|
);
|
|
2459
|
-
expect(dep_list.length).toEqual(
|
|
2459
|
+
expect(dep_list.length).toEqual(13);
|
|
2460
2460
|
expect(dep_list[0]).toEqual({
|
|
2461
2461
|
group: "actions",
|
|
2462
2462
|
name: "checkout",
|
|
@@ -3779,8 +3779,8 @@ test("parsePnpmLock", async () => {
|
|
|
3779
3779
|
expect(parsedList.dependenciesList).toHaveLength(462);
|
|
3780
3780
|
expect(parsedList.pkgList.filter((pkg) => !pkg.scope)).toHaveLength(3);
|
|
3781
3781
|
parsedList = await parsePnpmLock("./pnpm-lock.yaml");
|
|
3782
|
-
expect(parsedList.pkgList.length).toEqual(
|
|
3783
|
-
expect(parsedList.dependenciesList.length).toEqual(
|
|
3782
|
+
expect(parsedList.pkgList.length).toEqual(625);
|
|
3783
|
+
expect(parsedList.dependenciesList.length).toEqual(625);
|
|
3784
3784
|
expect(parsedList.pkgList[0]).toEqual({
|
|
3785
3785
|
group: "@ampproject",
|
|
3786
3786
|
name: "remapping",
|
|
@@ -5178,13 +5178,13 @@ test("parse bazel action graph", () => {
|
|
|
5178
5178
|
encoding: "utf-8",
|
|
5179
5179
|
}),
|
|
5180
5180
|
);
|
|
5181
|
-
expect(deps.length).toEqual(
|
|
5181
|
+
expect(deps.length).toEqual(2);
|
|
5182
5182
|
expect(deps[0].group).toEqual("org.scala-lang");
|
|
5183
5183
|
expect(deps[0].name).toEqual("scala-library");
|
|
5184
|
-
expect(deps[0].version).toEqual("2.13.
|
|
5184
|
+
expect(deps[0].version).toEqual("2.13.16");
|
|
5185
5185
|
expect(deps[1].group).toEqual("org.jline");
|
|
5186
5186
|
expect(deps[1].name).toEqual("jline");
|
|
5187
|
-
expect(deps[1].version).toEqual("3.
|
|
5187
|
+
expect(deps[1].version).toEqual("3.26.3");
|
|
5188
5188
|
});
|
|
5189
5189
|
|
|
5190
5190
|
test("parse bazel build", () => {
|
package/lib/helpers/validator.js
CHANGED
|
@@ -137,8 +137,12 @@ export const validateMetadata = (bomJson) => {
|
|
|
137
137
|
export const validatePurls = (bomJson) => {
|
|
138
138
|
const errorList = [];
|
|
139
139
|
const warningsList = [];
|
|
140
|
+
let frameworksCount = 0;
|
|
140
141
|
if (bomJson?.components) {
|
|
141
142
|
for (const comp of bomJson.components) {
|
|
143
|
+
if (comp.type === "framework") {
|
|
144
|
+
frameworksCount += 1;
|
|
145
|
+
}
|
|
142
146
|
if (comp.type === "cryptographic-asset") {
|
|
143
147
|
if (comp.purl?.length) {
|
|
144
148
|
errorList.push(
|
|
@@ -187,6 +191,11 @@ export const validatePurls = (bomJson) => {
|
|
|
187
191
|
}
|
|
188
192
|
}
|
|
189
193
|
}
|
|
194
|
+
if (frameworksCount > 20) {
|
|
195
|
+
warningsList.push(
|
|
196
|
+
`BOM likey has too many framework components. Count: ${frameworksCount}`,
|
|
197
|
+
);
|
|
198
|
+
}
|
|
190
199
|
if (DEBUG_MODE && warningsList.length !== 0) {
|
|
191
200
|
console.log("===== WARNINGS =====");
|
|
192
201
|
console.log(warningsList);
|
package/lib/managers/binary.js
CHANGED
|
@@ -29,7 +29,6 @@ import {
|
|
|
29
29
|
} from "../helpers/utils.js";
|
|
30
30
|
|
|
31
31
|
const dirName = dirNameStr;
|
|
32
|
-
|
|
33
32
|
const isWin = _platform() === "win32";
|
|
34
33
|
|
|
35
34
|
let platform = _platform();
|
|
@@ -63,6 +62,7 @@ const CDXGEN_PLUGINS_VERSION = "1.6.10";
|
|
|
63
62
|
|
|
64
63
|
// Retrieve the cdxgen plugins directory
|
|
65
64
|
let CDXGEN_PLUGINS_DIR = process.env.CDXGEN_PLUGINS_DIR;
|
|
65
|
+
let extraNMBinPath;
|
|
66
66
|
// Is there a non-empty local plugins directory
|
|
67
67
|
if (
|
|
68
68
|
!CDXGEN_PLUGINS_DIR &&
|
|
@@ -101,6 +101,9 @@ if (
|
|
|
101
101
|
`cdxgen-plugins-bin${pluginsBinSuffix}`,
|
|
102
102
|
"plugins",
|
|
103
103
|
);
|
|
104
|
+
if (existsSync(join(dirName, "node_modules", ".bin"))) {
|
|
105
|
+
extraNMBinPath = join(dirName, "node_modules", ".bin");
|
|
106
|
+
}
|
|
104
107
|
}
|
|
105
108
|
if (!CDXGEN_PLUGINS_DIR) {
|
|
106
109
|
let globalNodePath = process.env.GLOBAL_NODE_MODULES_PATH || undefined;
|
|
@@ -120,65 +123,86 @@ if (!CDXGEN_PLUGINS_DIR) {
|
|
|
120
123
|
}
|
|
121
124
|
}
|
|
122
125
|
}
|
|
126
|
+
let globalPlugins;
|
|
123
127
|
if (globalNodePath) {
|
|
124
|
-
|
|
128
|
+
globalPlugins = join(
|
|
125
129
|
globalNodePath,
|
|
126
130
|
"@cyclonedx",
|
|
127
131
|
`cdxgen-plugins-bin${pluginsBinSuffix}`,
|
|
128
132
|
"plugins",
|
|
129
133
|
);
|
|
130
|
-
|
|
131
|
-
let altGlobalPlugins;
|
|
132
|
-
if (dirName.includes(join("node_modules", ".pnpm", "@cyclonedx+cdxgen"))) {
|
|
133
|
-
const tmpA = dirName.split(join("node_modules", ".pnpm"));
|
|
134
|
-
altGlobalPlugins = join(
|
|
135
|
-
tmpA[0],
|
|
136
|
-
"node_modules",
|
|
137
|
-
".pnpm",
|
|
138
|
-
`@cyclonedx+cdxgen-plugins-bin${pluginsBinSuffix}@${CDXGEN_PLUGINS_VERSION}`,
|
|
139
|
-
"node_modules",
|
|
140
|
-
"@cyclonedx",
|
|
141
|
-
`cdxgen-plugins-bin${pluginsBinSuffix}`,
|
|
142
|
-
"plugins",
|
|
143
|
-
);
|
|
144
|
-
} else if (dirName.includes(join(".pnpm", "@cyclonedx+cdxgen"))) {
|
|
145
|
-
// pnpm dlx
|
|
146
|
-
const tmpA = dirName.split(".pnpm");
|
|
147
|
-
altGlobalPlugins = join(
|
|
148
|
-
tmpA[0],
|
|
149
|
-
".pnpm",
|
|
150
|
-
`@cyclonedx+cdxgen-plugins-bin${pluginsBinSuffix}@${CDXGEN_PLUGINS_VERSION}`,
|
|
151
|
-
"node_modules",
|
|
152
|
-
"@cyclonedx",
|
|
153
|
-
`cdxgen-plugins-bin${pluginsBinSuffix}`,
|
|
154
|
-
"plugins",
|
|
155
|
-
);
|
|
156
|
-
}
|
|
157
|
-
const extraNMBinPath = join(
|
|
134
|
+
extraNMBinPath = join(
|
|
158
135
|
globalNodePath,
|
|
159
136
|
"..",
|
|
160
137
|
".pnpm",
|
|
161
138
|
"node_modules",
|
|
162
139
|
".bin",
|
|
163
140
|
);
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
141
|
+
}
|
|
142
|
+
// pnpm add -g
|
|
143
|
+
let altGlobalPlugins;
|
|
144
|
+
if (dirName.includes(join("node_modules", ".pnpm", "@cyclonedx+cdxgen"))) {
|
|
145
|
+
const tmpA = dirName.split(join("node_modules", ".pnpm"));
|
|
146
|
+
altGlobalPlugins = join(
|
|
147
|
+
tmpA[0],
|
|
148
|
+
"node_modules",
|
|
149
|
+
".pnpm",
|
|
150
|
+
`@cyclonedx+cdxgen-plugins-bin${pluginsBinSuffix}@${CDXGEN_PLUGINS_VERSION}`,
|
|
151
|
+
"node_modules",
|
|
152
|
+
"@cyclonedx",
|
|
153
|
+
`cdxgen-plugins-bin${pluginsBinSuffix}`,
|
|
154
|
+
"plugins",
|
|
155
|
+
);
|
|
156
|
+
if (existsSync(join(tmpA[0], "node_modules", ".bin"))) {
|
|
157
|
+
extraNMBinPath = join(tmpA[0], "node_modules", ".bin");
|
|
158
|
+
}
|
|
159
|
+
} else if (dirName.includes(join(".pnpm", "@cyclonedx+cdxgen"))) {
|
|
160
|
+
// pnpm dlx
|
|
161
|
+
const tmpA = dirName.split(".pnpm");
|
|
162
|
+
altGlobalPlugins = join(
|
|
163
|
+
tmpA[0],
|
|
164
|
+
".pnpm",
|
|
165
|
+
`@cyclonedx+cdxgen-plugins-bin${pluginsBinSuffix}@${CDXGEN_PLUGINS_VERSION}`,
|
|
166
|
+
"node_modules",
|
|
167
|
+
"@cyclonedx",
|
|
168
|
+
`cdxgen-plugins-bin${pluginsBinSuffix}`,
|
|
169
|
+
"plugins",
|
|
170
|
+
);
|
|
171
|
+
if (existsSync(join(tmpA[0], ".bin"))) {
|
|
172
|
+
extraNMBinPath = join(tmpA[0], ".bin");
|
|
173
|
+
}
|
|
174
|
+
} else if (dirName.includes(join("caxa", "applications"))) {
|
|
175
|
+
// sae binaries
|
|
176
|
+
altGlobalPlugins = join(
|
|
177
|
+
dirName,
|
|
178
|
+
"node_modules",
|
|
179
|
+
"pnpm",
|
|
180
|
+
`@cyclonedx+cdxgen-plugins-bin${pluginsBinSuffix}@${CDXGEN_PLUGINS_VERSION}`,
|
|
181
|
+
"node_modules",
|
|
182
|
+
"@cyclonedx",
|
|
183
|
+
`cdxgen-plugins-bin${pluginsBinSuffix}`,
|
|
184
|
+
"plugins",
|
|
185
|
+
);
|
|
186
|
+
extraNMBinPath = join(dirName, "node_modules", ".bin");
|
|
187
|
+
}
|
|
188
|
+
// Set the plugins directory
|
|
189
|
+
if (globalPlugins && existsSync(globalPlugins)) {
|
|
190
|
+
CDXGEN_PLUGINS_DIR = globalPlugins;
|
|
191
|
+
if (DEBUG_MODE) {
|
|
192
|
+
console.log("Found global plugins", CDXGEN_PLUGINS_DIR);
|
|
193
|
+
}
|
|
194
|
+
} else if (altGlobalPlugins && existsSync(altGlobalPlugins)) {
|
|
195
|
+
CDXGEN_PLUGINS_DIR = altGlobalPlugins;
|
|
196
|
+
// To help detect bin commands such as atom, astgen, etc, we need to set this to the PATH variable.
|
|
197
|
+
if (DEBUG_MODE) {
|
|
198
|
+
console.log("Found global plugins", CDXGEN_PLUGINS_DIR);
|
|
178
199
|
}
|
|
179
200
|
}
|
|
180
201
|
}
|
|
181
|
-
|
|
202
|
+
// Set bin path for commands such as atom, astgen etc.
|
|
203
|
+
if (extraNMBinPath && !process.env?.PATH?.includes(extraNMBinPath)) {
|
|
204
|
+
process.env.PATH = `${extraNMBinPath}${delimiter}${process.env.PATH}`;
|
|
205
|
+
}
|
|
182
206
|
if (!CDXGEN_PLUGINS_DIR) {
|
|
183
207
|
if (DEBUG_MODE) {
|
|
184
208
|
console.warn(
|
package/lib/managers/docker.js
CHANGED
|
@@ -13,12 +13,13 @@ import { platform as _platform, userInfo as _userInfo, homedir } from "node:os";
|
|
|
13
13
|
import { basename, join, resolve, win32 } from "node:path";
|
|
14
14
|
import process from "node:process";
|
|
15
15
|
import stream from "node:stream/promises";
|
|
16
|
-
import {
|
|
16
|
+
import { URL } from "node:url";
|
|
17
17
|
import { globSync } from "glob";
|
|
18
18
|
import got from "got";
|
|
19
19
|
import { x } from "tar";
|
|
20
20
|
import {
|
|
21
21
|
DEBUG_MODE,
|
|
22
|
+
TIMEOUT_MS,
|
|
22
23
|
extractPathEnv,
|
|
23
24
|
getAllFiles,
|
|
24
25
|
getTmpDir,
|
|
@@ -557,11 +558,13 @@ export const parseImageName = (fullImageName) => {
|
|
|
557
558
|
fullImageName.includes("/") &&
|
|
558
559
|
(fullImageName.includes(".") || fullImageName.includes(":"))
|
|
559
560
|
) {
|
|
560
|
-
|
|
561
|
-
|
|
561
|
+
let urlObj;
|
|
562
|
+
if (URL.canParse(fullImageName)) {
|
|
563
|
+
urlObj = new URL(fullImageName);
|
|
564
|
+
}
|
|
562
565
|
const tmpA = fullImageName.split("/");
|
|
563
566
|
if (
|
|
564
|
-
urlObj.
|
|
567
|
+
(urlObj && urlObj.pathname !== fullImageName) ||
|
|
565
568
|
tmpA[0].includes(".") ||
|
|
566
569
|
tmpA[0].includes(":")
|
|
567
570
|
) {
|
|
@@ -674,6 +677,7 @@ export const getImage = async (fullImageName) => {
|
|
|
674
677
|
if (needsPull) {
|
|
675
678
|
result = spawnSync(dockerCmd, ["pull", fullImageName], {
|
|
676
679
|
encoding: "utf-8",
|
|
680
|
+
timeout: TIMEOUT_MS,
|
|
677
681
|
});
|
|
678
682
|
if (result.status !== 0 || result.error) {
|
|
679
683
|
if (result.stderr?.includes("docker daemon is not running")) {
|
|
@@ -876,6 +880,7 @@ export const extractTar = async (fullImageName, dir, options) => {
|
|
|
876
880
|
path.includes("usr/share/doc/") ||
|
|
877
881
|
path.includes("usr/share/i18n/") ||
|
|
878
882
|
path.includes("var/lib/ca-certificates") ||
|
|
883
|
+
path.includes("root/.gnupg") ||
|
|
879
884
|
basename(path).startsWith(".") ||
|
|
880
885
|
path.includes("usr/share/licenses/device-mapper-libs") ||
|
|
881
886
|
[
|
|
@@ -887,6 +892,7 @@ export const extractTar = async (fullImageName, dir, options) => {
|
|
|
887
892
|
"SymbolicLink",
|
|
888
893
|
"RenamedOrSymlinked",
|
|
889
894
|
"HardLink",
|
|
895
|
+
"Link",
|
|
890
896
|
].includes(entry.type)
|
|
891
897
|
);
|
|
892
898
|
},
|
|
@@ -1388,7 +1394,9 @@ export const getCredsFromHelper = (exeSuffix, serverAddress) => {
|
|
|
1388
1394
|
encoding: "utf-8",
|
|
1389
1395
|
});
|
|
1390
1396
|
if (result.status !== 0 || result.error) {
|
|
1391
|
-
|
|
1397
|
+
if (result.stdout || result.stderr) {
|
|
1398
|
+
console.log(result.stdout, result.stderr);
|
|
1399
|
+
}
|
|
1392
1400
|
} else if (result.stdout) {
|
|
1393
1401
|
const cmdOutput = Buffer.from(result.stdout).toString();
|
|
1394
1402
|
try {
|
package/lib/managers/piptree.js
CHANGED
|
@@ -147,7 +147,9 @@ export const getTreeWithPlugin = (env, python_cmd, basePath) => {
|
|
|
147
147
|
env,
|
|
148
148
|
});
|
|
149
149
|
if (result.status !== 0 || result.error) {
|
|
150
|
-
|
|
150
|
+
if (result.stdout || result.stderr) {
|
|
151
|
+
console.log(result.stdout, result.stderr);
|
|
152
|
+
}
|
|
151
153
|
}
|
|
152
154
|
if (existsSync(pipTreeJson)) {
|
|
153
155
|
tree = JSON.parse(
|
package/lib/server/openapi.yaml
CHANGED
|
@@ -338,6 +338,10 @@ components:
|
|
|
338
338
|
$ref: '#/components/schemas/Services'
|
|
339
339
|
dependencies:
|
|
340
340
|
$ref: '#/components/schemas/Dependencies'
|
|
341
|
+
annotations:
|
|
342
|
+
$ref: '#/components/schemas/Annotations'
|
|
343
|
+
formulation:
|
|
344
|
+
$ref: '#/components/schemas/Formulation'
|
|
341
345
|
|
|
342
346
|
ErrorResponse:
|
|
343
347
|
type: object
|
|
@@ -362,5 +366,9 @@ components:
|
|
|
362
366
|
|
|
363
367
|
Dependencies:
|
|
364
368
|
type: object
|
|
365
|
-
|
|
366
|
-
|
|
369
|
+
|
|
370
|
+
Annotations:
|
|
371
|
+
type: object
|
|
372
|
+
|
|
373
|
+
Formulation:
|
|
374
|
+
type: object
|
package/lib/server/server.js
CHANGED
|
@@ -178,6 +178,14 @@ const start = (options) => {
|
|
|
178
178
|
process.exit(1);
|
|
179
179
|
}
|
|
180
180
|
}
|
|
181
|
+
if (!process.env.CDXGEN_SERVER_ALLOWED_HOSTS) {
|
|
182
|
+
console.log(
|
|
183
|
+
"No allowlist for hosts has been specified. This is a security risk that could expose the system to SSRF vulnerabilities!",
|
|
184
|
+
);
|
|
185
|
+
if (isSecureMode) {
|
|
186
|
+
process.exit(1);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
181
189
|
const cdxgenServer = http
|
|
182
190
|
.createServer(app)
|
|
183
191
|
.listen(options.serverPort, options.serverHost);
|
|
@@ -189,6 +197,15 @@ const start = (options) => {
|
|
|
189
197
|
});
|
|
190
198
|
|
|
191
199
|
app.use("/sbom", async (req, res) => {
|
|
200
|
+
// Limit to only GET and POST requests
|
|
201
|
+
if (req.method && !["GET", "POST"].includes(req.method.toUpperCase())) {
|
|
202
|
+
res.writeHead(405, { "Content-Type": "application/json" });
|
|
203
|
+
return res.end(
|
|
204
|
+
JSON.stringify({
|
|
205
|
+
error: "Method Not Allowed",
|
|
206
|
+
}),
|
|
207
|
+
);
|
|
208
|
+
}
|
|
192
209
|
const requestUrl = new URL(req.url, `http://${req.headers.host}`);
|
|
193
210
|
const q = Object.fromEntries(requestUrl.searchParams.entries());
|
|
194
211
|
let cleanup = false;
|
|
@@ -202,7 +219,7 @@ const start = (options) => {
|
|
|
202
219
|
res.writeHead(500, { "Content-Type": "application/json" });
|
|
203
220
|
return res.end(
|
|
204
221
|
JSON.stringify({
|
|
205
|
-
error: "
|
|
222
|
+
error: "Path or URL is required.",
|
|
206
223
|
}),
|
|
207
224
|
);
|
|
208
225
|
}
|
|
@@ -215,7 +232,7 @@ const start = (options) => {
|
|
|
215
232
|
return res.end(
|
|
216
233
|
JSON.stringify({
|
|
217
234
|
error: "Host Not Allowed",
|
|
218
|
-
details:
|
|
235
|
+
details: "The Git URL host is not allowed as per the allowlist.",
|
|
219
236
|
}),
|
|
220
237
|
);
|
|
221
238
|
}
|
|
@@ -227,20 +244,20 @@ const start = (options) => {
|
|
|
227
244
|
return res.end(
|
|
228
245
|
JSON.stringify({
|
|
229
246
|
error: "Path Not Allowed",
|
|
230
|
-
details:
|
|
247
|
+
details: "Path is not allowed as per the allowlist.",
|
|
231
248
|
}),
|
|
232
249
|
);
|
|
233
250
|
}
|
|
234
251
|
}
|
|
235
252
|
if (srcDir !== path.resolve(srcDir)) {
|
|
236
253
|
console.log(
|
|
237
|
-
`Invoke the API with an absolute path '${path.resolve(srcDir)}'
|
|
254
|
+
`Invoke the API with an absolute path '${path.resolve(srcDir)}' to reduce security risks.`,
|
|
238
255
|
);
|
|
239
256
|
if (isSecureMode) {
|
|
240
257
|
res.writeHead(500, { "Content-Type": "application/json" });
|
|
241
258
|
return res.end(
|
|
242
259
|
JSON.stringify({
|
|
243
|
-
error:
|
|
260
|
+
error: "Absolute path needed",
|
|
244
261
|
details: "Relative paths are not supported in secure mode.",
|
|
245
262
|
}),
|
|
246
263
|
);
|
|
@@ -250,6 +267,15 @@ const start = (options) => {
|
|
|
250
267
|
let bomNSData = (await createBom(srcDir, reqOptions)) || {};
|
|
251
268
|
bomNSData = postProcess(bomNSData, reqOptions);
|
|
252
269
|
if (reqOptions.serverUrl && reqOptions.apiKey) {
|
|
270
|
+
if (!isAllowedHost(reqOptions.serverUrl)) {
|
|
271
|
+
res.writeHead(403, { "Content-Type": "application/json" });
|
|
272
|
+
return res.end(
|
|
273
|
+
JSON.stringify({
|
|
274
|
+
error: "Host Not Allowed",
|
|
275
|
+
details: "The URL host is not allowed as per the allowlist.",
|
|
276
|
+
}),
|
|
277
|
+
);
|
|
278
|
+
}
|
|
253
279
|
if (isSecureMode && !reqOptions.serverUrl?.startsWith("https://")) {
|
|
254
280
|
console.log(
|
|
255
281
|
"Dependency Track API server is used with a non-https url, which poses a security risk.",
|
|
@@ -267,7 +293,7 @@ const start = (options) => {
|
|
|
267
293
|
res.writeHead(500, { "Content-Type": "application/json" });
|
|
268
294
|
return res.end(
|
|
269
295
|
JSON.stringify({
|
|
270
|
-
error:
|
|
296
|
+
error: "Unable to submit the SBOM to the Dependency-Track server",
|
|
271
297
|
details: errorMessages,
|
|
272
298
|
}),
|
|
273
299
|
);
|
|
@@ -79,7 +79,11 @@ export function prepareSdkmanBuild(projectType) {
|
|
|
79
79
|
*/
|
|
80
80
|
export function preparePythonEnv(_filePath, options) {
|
|
81
81
|
if (hasAnyProjectType(["python"], options, false)) {
|
|
82
|
-
if (
|
|
82
|
+
if (
|
|
83
|
+
DEBUG_MODE &&
|
|
84
|
+
process.env?.CDXGEN_IN_CONTAINER !== "true" &&
|
|
85
|
+
arch() !== "x64"
|
|
86
|
+
) {
|
|
83
87
|
console.log(
|
|
84
88
|
`INFO: Many pypi packages have limited support for ${arch()} architecture. Run the cdxgen container image with --platform=linux/amd64 for best experience.`,
|
|
85
89
|
);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyclonedx/cdxgen",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.3.0",
|
|
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>",
|
|
@@ -71,8 +71,8 @@
|
|
|
71
71
|
"*": "biome check --fix --no-errors-on-unmatched"
|
|
72
72
|
},
|
|
73
73
|
"dependencies": {
|
|
74
|
-
"@babel/parser": "^7.27.
|
|
75
|
-
"@babel/traverse": "^7.27.
|
|
74
|
+
"@babel/parser": "^7.27.2",
|
|
75
|
+
"@babel/traverse": "^7.27.1",
|
|
76
76
|
"@iarna/toml": "2.2.5",
|
|
77
77
|
"@npmcli/arborist": "9.0.2",
|
|
78
78
|
"ajv": "^8.17.1",
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
"cheerio": "^1.0.0",
|
|
81
81
|
"edn-data": "1.1.2",
|
|
82
82
|
"find-up": "7.0.0",
|
|
83
|
-
"glob": "^11.0.
|
|
83
|
+
"glob": "^11.0.2",
|
|
84
84
|
"global-agent": "^3.0.0",
|
|
85
85
|
"got": "^14.4.7",
|
|
86
86
|
"iconv-lite": "^0.6.3",
|
|
@@ -101,17 +101,17 @@
|
|
|
101
101
|
"yoctocolors": "^2.1.1"
|
|
102
102
|
},
|
|
103
103
|
"optionalDependencies": {
|
|
104
|
-
"@appthreat/atom": "2.
|
|
104
|
+
"@appthreat/atom": "2.2.3",
|
|
105
105
|
"@appthreat/cdx-proto": "1.0.1",
|
|
106
|
-
"@cyclonedx/cdxgen-plugins-bin": "1.6.
|
|
107
|
-
"@cyclonedx/cdxgen-plugins-bin-linux-arm": "1.6.
|
|
108
|
-
"@cyclonedx/cdxgen-plugins-bin-linux-amd64": "1.6.
|
|
109
|
-
"@cyclonedx/cdxgen-plugins-bin-linux-arm64": "1.6.
|
|
110
|
-
"@cyclonedx/cdxgen-plugins-bin-darwin-amd64": "1.6.
|
|
111
|
-
"@cyclonedx/cdxgen-plugins-bin-darwin-arm64": "1.6.
|
|
112
|
-
"@cyclonedx/cdxgen-plugins-bin-linux-ppc64": "1.6.
|
|
113
|
-
"@cyclonedx/cdxgen-plugins-bin-windows-amd64": "1.6.
|
|
114
|
-
"@cyclonedx/cdxgen-plugins-bin-windows-arm64": "1.6.
|
|
106
|
+
"@cyclonedx/cdxgen-plugins-bin": "1.6.11",
|
|
107
|
+
"@cyclonedx/cdxgen-plugins-bin-linux-arm": "1.6.11",
|
|
108
|
+
"@cyclonedx/cdxgen-plugins-bin-linux-amd64": "1.6.11",
|
|
109
|
+
"@cyclonedx/cdxgen-plugins-bin-linux-arm64": "1.6.11",
|
|
110
|
+
"@cyclonedx/cdxgen-plugins-bin-darwin-amd64": "1.6.11",
|
|
111
|
+
"@cyclonedx/cdxgen-plugins-bin-darwin-arm64": "1.6.11",
|
|
112
|
+
"@cyclonedx/cdxgen-plugins-bin-linux-ppc64": "1.6.11",
|
|
113
|
+
"@cyclonedx/cdxgen-plugins-bin-windows-amd64": "1.6.11",
|
|
114
|
+
"@cyclonedx/cdxgen-plugins-bin-windows-arm64": "1.6.11",
|
|
115
115
|
"body-parser": "^2.2.0",
|
|
116
116
|
"compression": "^1.7.5",
|
|
117
117
|
"connect": "^3.7.0",
|
|
@@ -133,7 +133,8 @@
|
|
|
133
133
|
"typescript": "^5.8.3"
|
|
134
134
|
},
|
|
135
135
|
"overrides": {
|
|
136
|
-
"
|
|
136
|
+
"jwa": "^2.0.1",
|
|
137
|
+
"glob": "^11.0.2",
|
|
137
138
|
"node-gyp": "^10.2.0",
|
|
138
139
|
"prebuild": "^13.0.0",
|
|
139
140
|
"pacote": "^20.0.0",
|
|
@@ -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":"AA27BA;;;;;;;;GAQG;AACH,gFAFW,MAAM,SAchB;AAqYD;;;;;;;GAOG;AACH,mCALW,MAAM,qBAyEhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM;;;;EAKhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM;;;;EAkBhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAgvChB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BAmvBhB;AAED;;;;;;;;;;GAUG;AACH,+DAsEC;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BAkehB;AAED;;;;;GAKG;AACH,kCAHW,MAAM,8BA+YhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAuIhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAkEhB;AAED;;;;;GAKG;AACH,mCAHW,MAAM,qBAkLhB;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,8BA8IhB;AAED;;;;;GAKG;AACH,qCAHW,MAAM,8BAmJhB;AAED;;;;;GAKG;AACH,iDAHW,MAAM,qBAmUhB;AAED;;;;;GAKG;AACH,mCAHW,MAAM,qBAiJhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAwNhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA8ZhB;AAED;;;;;GAKG;AACH,2CAHW,MAAM;;;;;;;;;;;;;;;;;;;;GAoChB;AAED;;;;;;;;KA+DC;AAED;;;;;;GAMG;AACH,yDAiGC;AAED;;;;;;;;;GASG;AACH,2GAuCC;AAED;;;;;GAKG;AACH,0CAHW,MAAM,EAAE,8BA6vBlB;AAED;;;;;GAKG;AACH,iCAHW,MAAM,8BAqUhB;AAED;;;;;GAKG;AACH,gCAHW,MAAM,qBA2QhB;AAED;;;;;;;GAOG;AACH,wDAHY,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CA2HjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/helpers/utils.js"],"names":[],"mappings":"AA8EA;;;;;GAKG;AACH,0DAUC;AAED;;;;;;GAMG;AACH,yDAHmB,OAAO,UAazB;AAmFD,8CAKC;AAED,0CAIC;AAsBD,yCAYC;AAID,2CAQC;AAiOD;;;;;;;GAOG;AACH,4EAiBC;AAED;;;;;;GAMG;AACH,mGA2EC;AAED;;;;;;;;GAQG;AACH,yGAeC;AAyBD;;;;;;GAMG;AACH,qCAJW,MAAM,WACN,MAAM,2BA8BhB;AAED;;;;;;GAMG;AACH,+CAJW,MAAM,WACN,MAAM,+BA0BhB;AAYD;;;;GAIG;AACH,gCAFa,MAAM,CAIlB;AAED,iCAQC;AAED;;;;;;IAMI;AACJ,iDAJW,MAAM,GACJ,OAAO,CAWnB;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,kBA+EjB;AAED;;;;;GAKG;AACH,0CAHW,MAAM,YACN,MAAM;;;
|
|
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":"validator.d.ts","sourceRoot":"","sources":["../../../lib/helpers/validator.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../lib/helpers/validator.js"],"names":[],"mappings":"AAuUA;;;;GAIG;AACH,uCAFW,MAAM,WA0FhB;AAjZM,qCAJI,MAAM,WAkDhB;AAOM,0CAFI,MAAM,WA2DhB;AAOM,uCAFI,MAAM,WA4EhB;AA6BM,sCAFI,MAAM,WAwFhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../../lib/managers/binary.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../../lib/managers/binary.js"],"names":[],"mappings":"AAgXA,wDAkBC;AAED;;;;;GAKG;AACH,kDAFa,SAAS,MAAO,CAqB5B;AAED;;;;;;;GAOG;AACH,kEAqaC;AAsDD,gDAoDC;AAED;;;;;;GAMG;AACH,qCAJW,MAAM,cACN,MAAM,WA0ChB;AAED;;;;;;;;GAQG;AACH,kCANW,MAAM,iBACN,MAAM,YACN,OAAO,GAEN,OAAO,CA8BlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../../lib/managers/docker.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../../lib/managers/docker.js"],"names":[],"mappings":"AAkFA;;GAEG;AACH,oCAmBC;AAED;;GAEG;AACH,4CA6CC;AA7HD,4BAA6C;AAC7C,kCAAmC,WAAW,CAAC;AAmCxC,kDAeN;AAqFM,iCAHI,MAAM,WACN,MAAM,iDAehB;AAqBM,6DAmBN;AAgLM,4EAsGN;AAEM,oFAwBN;AAUM;;;;;;;;EA2EN;AAsBM,2DAuMN;AAgBM,yFAuGN;AAMM;;;;;;;;;;;;;;GAwDN;AAEM;;;;;;;;GAyGN;AAMM,4EA+IN;AAKM,4EA2GN;AAEM,+EAEN;AAEM,4EA2CN;AAEM,iFA0BN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"piptree.d.ts","sourceRoot":"","sources":["../../../lib/managers/piptree.js"],"names":[],"mappings":"AAgIO,
|
|
1
|
+
{"version":3,"file":"piptree.d.ts","sourceRoot":"","sources":["../../../lib/managers/piptree.js"],"names":[],"mappings":"AAgIO,uFAoCN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../lib/server/server.js"],"names":[],"mappings":"AA8IA,yDAKC;AAED,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../lib/server/server.js"],"names":[],"mappings":"AA8IA,yDAKC;AAED,0CA0KC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pregen.d.ts","sourceRoot":"","sources":["../../../../lib/stages/pregen/pregen.js"],"names":[],"mappings":"AA+BA;;;;;GAKG;AACH,iEAkBC;AAED;;;;GAIG;AACH,iEASC;AAED;;;;;GAKG;AACH,
|
|
1
|
+
{"version":3,"file":"pregen.d.ts","sourceRoot":"","sources":["../../../../lib/stages/pregen/pregen.js"],"names":[],"mappings":"AA+BA;;;;;GAKG;AACH,iEAkBC;AAED;;;;GAIG;AACH,iEASC;AAED;;;;;GAKG;AACH,wEAyCC;AAED;;;;;GAKG;AACH,qEAyDC;AAED;;;;;;;;GAQG;AACH,uEAmBC;AAED;;;;;GAKG;AACH,0EAyCC;AAED;;;;;GAKG;AACH,sEA6EC;AAED;;;;;GAKG;AACH,qEA8PC"}
|