@cyclonedx/cdxgen 11.2.3 → 11.2.4
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 +0 -4
- package/bin/verify.js +0 -4
- package/index.cjs +15 -0
- package/lib/cli/index.js +154 -15
- package/lib/helpers/utils.js +172 -11
- package/lib/helpers/utils.test.js +48 -2
- package/lib/helpers/validator.js +1 -4
- package/lib/managers/binary.js +5 -4
- package/package.json +8 -6
- package/types/lib/cli/index.d.ts.map +1 -1
- package/types/lib/helpers/utils.d.ts +17 -0
- 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/bin/cdxgen.js
CHANGED
package/bin/verify.js
CHANGED
|
@@ -9,10 +9,6 @@ import yargs from "yargs";
|
|
|
9
9
|
import { hideBin } from "yargs/helpers";
|
|
10
10
|
import { dirNameStr } from "../lib/helpers/utils.js";
|
|
11
11
|
|
|
12
|
-
let url = import.meta.url;
|
|
13
|
-
if (!url.startsWith("file://")) {
|
|
14
|
-
url = new URL(`file://${import.meta.url}`).toString();
|
|
15
|
-
}
|
|
16
12
|
const dirName = dirNameStr;
|
|
17
13
|
|
|
18
14
|
const args = yargs(hideBin(process.argv))
|
package/index.cjs
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// this file is a wrapper of ./lib/cli/index.js that can be used by commonjs projects importing this module
|
|
2
|
+
// that prefer to use require instead of await import()
|
|
3
|
+
const importPromise = import("./lib/cli/index.js");
|
|
4
|
+
|
|
5
|
+
module.exports = new Proxy(
|
|
6
|
+
{},
|
|
7
|
+
{
|
|
8
|
+
get:
|
|
9
|
+
(_, prop) =>
|
|
10
|
+
async (...args) => {
|
|
11
|
+
const mod = await importPromise;
|
|
12
|
+
return typeof mod[prop] === "function" ? mod[prop](...args) : mod[prop];
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
);
|
package/lib/cli/index.js
CHANGED
|
@@ -73,6 +73,7 @@ import {
|
|
|
73
73
|
getGradleCommand,
|
|
74
74
|
getLicenses,
|
|
75
75
|
getMavenCommand,
|
|
76
|
+
getMillCommand,
|
|
76
77
|
getMvnMetadata,
|
|
77
78
|
getNugetMetadata,
|
|
78
79
|
getPipFrozenTree,
|
|
@@ -130,6 +131,7 @@ import {
|
|
|
130
131
|
parseLeiningenData,
|
|
131
132
|
parseMakeDFile,
|
|
132
133
|
parseMavenTree,
|
|
134
|
+
parseMillDependency,
|
|
133
135
|
parseMinJs,
|
|
134
136
|
parseMixLockData,
|
|
135
137
|
parseNodeShrinkwrap,
|
|
@@ -180,10 +182,6 @@ import {
|
|
|
180
182
|
parseImageName,
|
|
181
183
|
} from "../managers/docker.js";
|
|
182
184
|
|
|
183
|
-
let url = import.meta.url;
|
|
184
|
-
if (!url.startsWith("file://")) {
|
|
185
|
-
url = new URL(`file://${import.meta.url}`).toString();
|
|
186
|
-
}
|
|
187
185
|
const dirName = dirNameStr;
|
|
188
186
|
|
|
189
187
|
const selfPJson = JSON.parse(
|
|
@@ -416,7 +414,10 @@ const addLifecyclesSection = (options) => {
|
|
|
416
414
|
if (inspectData) {
|
|
417
415
|
lifecycles.push({ phase: "post-build" });
|
|
418
416
|
}
|
|
419
|
-
} else if (
|
|
417
|
+
} else if (
|
|
418
|
+
options?.projectType?.length &&
|
|
419
|
+
options?.projectType?.includes("binary")
|
|
420
|
+
) {
|
|
420
421
|
lifecycles.push({ phase: "post-build" });
|
|
421
422
|
}
|
|
422
423
|
if (options.projectType?.includes("os")) {
|
|
@@ -1393,8 +1394,8 @@ export async function createJarBom(path, options) {
|
|
|
1393
1394
|
if (hpiFiles.length) {
|
|
1394
1395
|
jarFiles = jarFiles.concat(hpiFiles);
|
|
1395
1396
|
}
|
|
1396
|
-
const tempDir = mkdtempSync(join(getTmpDir(), "jar-deps-"));
|
|
1397
1397
|
for (const jar of jarFiles) {
|
|
1398
|
+
const tempDir = mkdtempSync(join(getTmpDir(), "jar-deps-"));
|
|
1398
1399
|
if (DEBUG_MODE) {
|
|
1399
1400
|
console.log(`Parsing ${jar}`);
|
|
1400
1401
|
}
|
|
@@ -1405,10 +1406,10 @@ export async function createJarBom(path, options) {
|
|
|
1405
1406
|
if (pkgList.length) {
|
|
1406
1407
|
pkgList = await getMvnMetadata(pkgList);
|
|
1407
1408
|
}
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1409
|
+
// Clean up
|
|
1410
|
+
if (tempDir?.startsWith(getTmpDir()) && rmSync) {
|
|
1411
|
+
rmSync(tempDir, { recursive: true, force: true });
|
|
1412
|
+
}
|
|
1412
1413
|
}
|
|
1413
1414
|
pkgList = pkgList.concat(convertJarNSToPackages(nsMapping));
|
|
1414
1415
|
return buildBomNSData(options, pkgList, "maven", {
|
|
@@ -1513,10 +1514,20 @@ export async function createJavaBom(path, options) {
|
|
|
1513
1514
|
`${options.multiProject ? "**/" : ""}build.gradle*`,
|
|
1514
1515
|
options,
|
|
1515
1516
|
);
|
|
1517
|
+
// mill
|
|
1518
|
+
const millFiles = getAllFiles(
|
|
1519
|
+
path,
|
|
1520
|
+
`${options.multiProject ? "**/" : ""}build.mill`,
|
|
1521
|
+
options,
|
|
1522
|
+
);
|
|
1516
1523
|
let bomJsonFiles = [];
|
|
1517
1524
|
if (
|
|
1518
1525
|
pomFiles?.length &&
|
|
1519
|
-
isPackageManagerAllowed(
|
|
1526
|
+
isPackageManagerAllowed(
|
|
1527
|
+
"maven",
|
|
1528
|
+
["bazel", "sbt", "gradle", "mill"],
|
|
1529
|
+
options,
|
|
1530
|
+
)
|
|
1520
1531
|
) {
|
|
1521
1532
|
if (gradleFiles.length) {
|
|
1522
1533
|
thoughtLog(
|
|
@@ -1942,7 +1953,11 @@ export async function createJavaBom(path, options) {
|
|
|
1942
1953
|
// Execute gradle properties
|
|
1943
1954
|
if (
|
|
1944
1955
|
gradleFiles?.length &&
|
|
1945
|
-
isPackageManagerAllowed(
|
|
1956
|
+
isPackageManagerAllowed(
|
|
1957
|
+
"gradle",
|
|
1958
|
+
["maven", "bazel", "sbt", "mill"],
|
|
1959
|
+
options,
|
|
1960
|
+
)
|
|
1946
1961
|
) {
|
|
1947
1962
|
let rootProjects = [null];
|
|
1948
1963
|
let allProjectsStr = [];
|
|
@@ -2078,7 +2093,11 @@ export async function createJavaBom(path, options) {
|
|
|
2078
2093
|
if (
|
|
2079
2094
|
gradleFiles?.length &&
|
|
2080
2095
|
options.installDeps &&
|
|
2081
|
-
isPackageManagerAllowed(
|
|
2096
|
+
isPackageManagerAllowed(
|
|
2097
|
+
"gradle",
|
|
2098
|
+
["maven", "bazel", "sbt", "mill"],
|
|
2099
|
+
options,
|
|
2100
|
+
)
|
|
2082
2101
|
) {
|
|
2083
2102
|
allProjects.push(parentComponent);
|
|
2084
2103
|
const gradleCmd = getGradleCommand(gradleRootPath, null);
|
|
@@ -2214,7 +2233,11 @@ export async function createJavaBom(path, options) {
|
|
|
2214
2233
|
if (
|
|
2215
2234
|
bazelFiles?.length &&
|
|
2216
2235
|
!hasAnyProjectType(["docker", "oci", "container", "os"], options, false) &&
|
|
2217
|
-
isPackageManagerAllowed(
|
|
2236
|
+
isPackageManagerAllowed(
|
|
2237
|
+
"bazel",
|
|
2238
|
+
["maven", "gradle", "sbt", "mill"],
|
|
2239
|
+
options,
|
|
2240
|
+
)
|
|
2218
2241
|
) {
|
|
2219
2242
|
let BAZEL_CMD = "bazel";
|
|
2220
2243
|
if (process.env.BAZEL_HOME) {
|
|
@@ -2356,7 +2379,11 @@ export async function createJavaBom(path, options) {
|
|
|
2356
2379
|
safeMkdirSync(tempCacheDir, { recursive: true });
|
|
2357
2380
|
if (
|
|
2358
2381
|
sbtProjects?.length &&
|
|
2359
|
-
isPackageManagerAllowed(
|
|
2382
|
+
isPackageManagerAllowed(
|
|
2383
|
+
"sbt",
|
|
2384
|
+
["bazel", "maven", "gradle", "mill"],
|
|
2385
|
+
options,
|
|
2386
|
+
)
|
|
2360
2387
|
) {
|
|
2361
2388
|
// If the project use sbt lock files
|
|
2362
2389
|
if (sbtLockFiles?.length) {
|
|
@@ -2537,6 +2564,118 @@ export async function createJavaBom(path, options) {
|
|
|
2537
2564
|
force: true,
|
|
2538
2565
|
});
|
|
2539
2566
|
}
|
|
2567
|
+
|
|
2568
|
+
if (
|
|
2569
|
+
millFiles?.length &&
|
|
2570
|
+
isPackageManagerAllowed(
|
|
2571
|
+
"mill",
|
|
2572
|
+
["bazel", "sbt", "gradle", "maven"],
|
|
2573
|
+
options,
|
|
2574
|
+
)
|
|
2575
|
+
) {
|
|
2576
|
+
const millRootPath = dirname(millFiles[0]);
|
|
2577
|
+
parentComponent = createDefaultParentComponent(
|
|
2578
|
+
millRootPath,
|
|
2579
|
+
"maven",
|
|
2580
|
+
options,
|
|
2581
|
+
);
|
|
2582
|
+
const millCmd = getMillCommand(millRootPath);
|
|
2583
|
+
const millCommonArgs = [
|
|
2584
|
+
"--no-server",
|
|
2585
|
+
"--silent",
|
|
2586
|
+
"--disable-prompt",
|
|
2587
|
+
"--disable-callgraph",
|
|
2588
|
+
"-k",
|
|
2589
|
+
"--color",
|
|
2590
|
+
"false",
|
|
2591
|
+
];
|
|
2592
|
+
const millArgs = [...millCommonArgs, "__.ivyDepsTree"];
|
|
2593
|
+
if (DEBUG_MODE) {
|
|
2594
|
+
console.log("Executing", millCmd, millArgs.join(" "), "in", millRootPath);
|
|
2595
|
+
}
|
|
2596
|
+
let sresult = spawnSync(millCmd, millArgs, {
|
|
2597
|
+
cwd: millRootPath,
|
|
2598
|
+
encoding: "utf-8",
|
|
2599
|
+
shell: isWin,
|
|
2600
|
+
timeout: TIMEOUT_MS,
|
|
2601
|
+
maxBuffer: MAX_BUFFER * 10,
|
|
2602
|
+
});
|
|
2603
|
+
if (sresult.status !== 0 || sresult.error) {
|
|
2604
|
+
if (options.failOnError || DEBUG_MODE) {
|
|
2605
|
+
console.error(sresult.stdout, sresult.stderr);
|
|
2606
|
+
}
|
|
2607
|
+
options.failOnError && process.exit(1);
|
|
2608
|
+
}
|
|
2609
|
+
const millResolveArgs = [...millCommonArgs, "resolve", "__.ivyDepsTree"];
|
|
2610
|
+
if (DEBUG_MODE) {
|
|
2611
|
+
console.log(
|
|
2612
|
+
"Executing",
|
|
2613
|
+
millCmd,
|
|
2614
|
+
millResolveArgs.join(" "),
|
|
2615
|
+
"in",
|
|
2616
|
+
millRootPath,
|
|
2617
|
+
);
|
|
2618
|
+
}
|
|
2619
|
+
sresult = spawnSync(millCmd, millResolveArgs, {
|
|
2620
|
+
cwd: millRootPath,
|
|
2621
|
+
encoding: "utf-8",
|
|
2622
|
+
shell: isWin,
|
|
2623
|
+
timeout: TIMEOUT_MS,
|
|
2624
|
+
maxBuffer: MAX_BUFFER,
|
|
2625
|
+
});
|
|
2626
|
+
if (sresult.status !== 0 || sresult.error) {
|
|
2627
|
+
if (options.failOnError || DEBUG_MODE) {
|
|
2628
|
+
console.error(sresult.stdout, sresult.stderr);
|
|
2629
|
+
}
|
|
2630
|
+
options.failOnError && process.exit(1);
|
|
2631
|
+
}
|
|
2632
|
+
const sstdout = sresult.stdout;
|
|
2633
|
+
if (sstdout) {
|
|
2634
|
+
parentComponent.components = [];
|
|
2635
|
+
const modules = sstdout
|
|
2636
|
+
.trim()
|
|
2637
|
+
.split("\n")
|
|
2638
|
+
.map((a) => a.substring(0, a.lastIndexOf(".")))
|
|
2639
|
+
.filter((a) =>
|
|
2640
|
+
["true", "1"].includes(process.env.MILL_EXCLUDE_TEST)
|
|
2641
|
+
? !a.endsWith(".test")
|
|
2642
|
+
: true,
|
|
2643
|
+
);
|
|
2644
|
+
const moduleBomRefs = [];
|
|
2645
|
+
const packages = new Map();
|
|
2646
|
+
const relations = new Map();
|
|
2647
|
+
relations.set(parentComponent["bom-ref"], []);
|
|
2648
|
+
for (const module of modules) {
|
|
2649
|
+
moduleBomRefs.push(
|
|
2650
|
+
parseMillDependency(module, packages, relations, millRootPath),
|
|
2651
|
+
);
|
|
2652
|
+
}
|
|
2653
|
+
for (const module of moduleBomRefs) {
|
|
2654
|
+
parentComponent.components.push(packages.get(module));
|
|
2655
|
+
relations.get(parentComponent["bom-ref"]).push(module);
|
|
2656
|
+
packages.delete(module);
|
|
2657
|
+
}
|
|
2658
|
+
const newDependencies = [];
|
|
2659
|
+
for (const [ref, dependsOn] of relations.entries()) {
|
|
2660
|
+
newDependencies.push({
|
|
2661
|
+
ref,
|
|
2662
|
+
dependsOn,
|
|
2663
|
+
});
|
|
2664
|
+
}
|
|
2665
|
+
if (DEBUG_MODE) {
|
|
2666
|
+
console.log(
|
|
2667
|
+
`Obtained ${packages.size} components and ${relations.size} dependencies from mill.`,
|
|
2668
|
+
);
|
|
2669
|
+
}
|
|
2670
|
+
pkgList = pkgList.concat(...packages.values());
|
|
2671
|
+
dependencies = mergeDependencies(
|
|
2672
|
+
dependencies,
|
|
2673
|
+
newDependencies,
|
|
2674
|
+
parentComponent,
|
|
2675
|
+
);
|
|
2676
|
+
}
|
|
2677
|
+
}
|
|
2678
|
+
|
|
2540
2679
|
pkgList = trimComponents(pkgList);
|
|
2541
2680
|
pkgList = await getMvnMetadata(pkgList, jarNSMapping, options.deep);
|
|
2542
2681
|
return buildBomNSData(options, pkgList, "maven", {
|
package/lib/helpers/utils.js
CHANGED
|
@@ -53,13 +53,13 @@ import { xml2js } from "xml-js";
|
|
|
53
53
|
import { getTreeWithPlugin } from "../managers/piptree.js";
|
|
54
54
|
import { thoughtLog } from "./logger.js";
|
|
55
55
|
|
|
56
|
-
let url = import.meta
|
|
57
|
-
if (!url.startsWith("file://")) {
|
|
56
|
+
let url = import.meta?.url;
|
|
57
|
+
if (url && !url.startsWith("file://")) {
|
|
58
58
|
url = new URL(`file://${import.meta.url}`).toString();
|
|
59
59
|
}
|
|
60
60
|
// TODO: verify if this is a good method (Prabhu)
|
|
61
61
|
// this is due to dirNameStr being "cdxgen/lib/helpers" which causes errors
|
|
62
|
-
export const dirNameStr =
|
|
62
|
+
export const dirNameStr = url
|
|
63
63
|
? dirname(dirname(dirname(fileURLToPath(url))))
|
|
64
64
|
: __dirname;
|
|
65
65
|
|
|
@@ -159,8 +159,7 @@ const RUBY_KNOWN_MODULES = JSON.parse(
|
|
|
159
159
|
// Debug mode flag
|
|
160
160
|
export const DEBUG_MODE =
|
|
161
161
|
["debug", "verbose"].includes(process.env.CDXGEN_DEBUG_MODE) ||
|
|
162
|
-
process.env.SCAN_DEBUG_MODE === "debug"
|
|
163
|
-
process.env.NODE_ENV === "development";
|
|
162
|
+
process.env.SCAN_DEBUG_MODE === "debug";
|
|
164
163
|
|
|
165
164
|
// Timeout milliseconds. Default 20 mins
|
|
166
165
|
export const TIMEOUT_MS =
|
|
@@ -346,6 +345,7 @@ export const PROJECT_TYPE_ALIASES = {
|
|
|
346
345
|
"sbt",
|
|
347
346
|
"bazel",
|
|
348
347
|
"quarkus",
|
|
348
|
+
"mill",
|
|
349
349
|
],
|
|
350
350
|
android: ["android", "apk", "aab"],
|
|
351
351
|
jar: ["jar", "war", "ear"],
|
|
@@ -3414,6 +3414,140 @@ export function parseMavenTree(rawOutput, pomFile) {
|
|
|
3414
3414
|
};
|
|
3415
3415
|
}
|
|
3416
3416
|
|
|
3417
|
+
/**
|
|
3418
|
+
* Parse mill dependencies from file
|
|
3419
|
+
*
|
|
3420
|
+
* @param {string} module name of the module
|
|
3421
|
+
* @param {map} dependencies the parsed dependencies
|
|
3422
|
+
* @param {map} relations a map containing all relations
|
|
3423
|
+
* @param {string} millRootPath root of the project
|
|
3424
|
+
*
|
|
3425
|
+
* @returns the bom-ref of the module
|
|
3426
|
+
*/
|
|
3427
|
+
export function parseMillDependency(
|
|
3428
|
+
module,
|
|
3429
|
+
dependencies,
|
|
3430
|
+
relations,
|
|
3431
|
+
millRootPath,
|
|
3432
|
+
) {
|
|
3433
|
+
const treeRegex = /^(?<treeIndentation>(?:[?├│└─ ]{3})+)(?<dependency>.*)/m;
|
|
3434
|
+
const ESC = "\\x1B";
|
|
3435
|
+
const versionRegex = new RegExp(
|
|
3436
|
+
`^(?:${ESC}\\[\\d+m.+ -> )?(?<version>[^\\ ${ESC}]+)(?:.*${ESC}\\[0m)?`,
|
|
3437
|
+
"m",
|
|
3438
|
+
);
|
|
3439
|
+
const levelCache = new Map();
|
|
3440
|
+
const moduleComponent = completeComponent({
|
|
3441
|
+
name: module,
|
|
3442
|
+
version: "latest",
|
|
3443
|
+
});
|
|
3444
|
+
dependencies.set(moduleComponent["bom-ref"], moduleComponent);
|
|
3445
|
+
relations.set(moduleComponent["bom-ref"], []);
|
|
3446
|
+
levelCache.set(0, moduleComponent["bom-ref"]);
|
|
3447
|
+
let moduleFilePath = module;
|
|
3448
|
+
const versionNumbers = [];
|
|
3449
|
+
let indexOfBracket = moduleFilePath.indexOf("[");
|
|
3450
|
+
for (let versionIndex = 0; indexOfBracket !== -1; versionIndex++) {
|
|
3451
|
+
// Special handling for modules called something like 'main.init.sbt.models[2.12.20]'
|
|
3452
|
+
// This needs to be turned into a path like 'main/init/sbt/models/2.12.20'
|
|
3453
|
+
// However, since all other periods need to be changed to slashes, this needs something more...
|
|
3454
|
+
versionNumbers.push(
|
|
3455
|
+
moduleFilePath.substring(
|
|
3456
|
+
indexOfBracket + 1,
|
|
3457
|
+
moduleFilePath.indexOf("]", indexOfBracket + 1),
|
|
3458
|
+
),
|
|
3459
|
+
);
|
|
3460
|
+
moduleFilePath = moduleFilePath.replace(
|
|
3461
|
+
`[${versionNumbers[versionIndex]}]`,
|
|
3462
|
+
"[]",
|
|
3463
|
+
);
|
|
3464
|
+
indexOfBracket = moduleFilePath.indexOf("[", indexOfBracket + 1);
|
|
3465
|
+
}
|
|
3466
|
+
moduleFilePath = moduleFilePath.replaceAll(".", "/");
|
|
3467
|
+
for (const versionNumber of versionNumbers) {
|
|
3468
|
+
// Now put the versions we removed above back into the path and replace the brackets at the same time
|
|
3469
|
+
moduleFilePath = moduleFilePath.replace("[]", `/${versionNumber}/`);
|
|
3470
|
+
}
|
|
3471
|
+
moduleFilePath = resolve(
|
|
3472
|
+
millRootPath,
|
|
3473
|
+
"out",
|
|
3474
|
+
moduleFilePath,
|
|
3475
|
+
"ivyDepsTree.log",
|
|
3476
|
+
);
|
|
3477
|
+
moduleComponent.properties = [
|
|
3478
|
+
{
|
|
3479
|
+
name: "SrcFile",
|
|
3480
|
+
value: moduleFilePath,
|
|
3481
|
+
},
|
|
3482
|
+
];
|
|
3483
|
+
moduleComponent.evidence = {
|
|
3484
|
+
identity: {
|
|
3485
|
+
field: "purl",
|
|
3486
|
+
confidence: 0.6,
|
|
3487
|
+
methods: [
|
|
3488
|
+
{
|
|
3489
|
+
technique: "manifest-analysis",
|
|
3490
|
+
confidence: 0.6,
|
|
3491
|
+
value: moduleFilePath,
|
|
3492
|
+
},
|
|
3493
|
+
],
|
|
3494
|
+
},
|
|
3495
|
+
};
|
|
3496
|
+
const dependencyTreeLog = readFileSync(moduleFilePath, "utf-8");
|
|
3497
|
+
const dependencyTreeLines = dependencyTreeLog
|
|
3498
|
+
.trim()
|
|
3499
|
+
.split("\n")
|
|
3500
|
+
.map((dependency) => dependency.replaceAll("\r", ""));
|
|
3501
|
+
for (const line of dependencyTreeLines) {
|
|
3502
|
+
const match = treeRegex.exec(line);
|
|
3503
|
+
if (match === null) {
|
|
3504
|
+
continue;
|
|
3505
|
+
}
|
|
3506
|
+
const level = match.groups.treeIndentation.length / 3;
|
|
3507
|
+
let group;
|
|
3508
|
+
let name;
|
|
3509
|
+
let version;
|
|
3510
|
+
if (match.groups.dependency.indexOf(":") === -1) {
|
|
3511
|
+
name = match.groups.dependency;
|
|
3512
|
+
version = "latest";
|
|
3513
|
+
} else {
|
|
3514
|
+
[group, name, version] = match.groups.dependency.split(":");
|
|
3515
|
+
version = versionRegex.exec(version).groups.version;
|
|
3516
|
+
}
|
|
3517
|
+
const component = completeComponent({
|
|
3518
|
+
group,
|
|
3519
|
+
name,
|
|
3520
|
+
version,
|
|
3521
|
+
});
|
|
3522
|
+
if (!dependencies.has(component["bom-ref"])) {
|
|
3523
|
+
dependencies.set(component["bom-ref"], component);
|
|
3524
|
+
relations.set(component["bom-ref"], []);
|
|
3525
|
+
}
|
|
3526
|
+
if (
|
|
3527
|
+
!relations.get(levelCache.get(level - 1)).includes(component["bom-ref"])
|
|
3528
|
+
) {
|
|
3529
|
+
relations.get(levelCache.get(level - 1)).push(component["bom-ref"]);
|
|
3530
|
+
}
|
|
3531
|
+
levelCache.set(level, component["bom-ref"]);
|
|
3532
|
+
}
|
|
3533
|
+
return moduleComponent["bom-ref"];
|
|
3534
|
+
}
|
|
3535
|
+
|
|
3536
|
+
function completeComponent(component) {
|
|
3537
|
+
component["type"] = component.group ? "library" : "application";
|
|
3538
|
+
const purl = new PackageURL(
|
|
3539
|
+
"maven",
|
|
3540
|
+
component.group,
|
|
3541
|
+
component.name,
|
|
3542
|
+
component.version,
|
|
3543
|
+
{ type: "jar" },
|
|
3544
|
+
null,
|
|
3545
|
+
).toString();
|
|
3546
|
+
component["purl"] = purl;
|
|
3547
|
+
component["bom-ref"] = decodeURIComponent(purl);
|
|
3548
|
+
return component;
|
|
3549
|
+
}
|
|
3550
|
+
|
|
3417
3551
|
/**
|
|
3418
3552
|
* Parse gradle dependencies output
|
|
3419
3553
|
* @param {string} rawOutput Raw string output
|
|
@@ -5519,7 +5653,7 @@ export async function parseReqFile(reqData, fetchDepsInfo) {
|
|
|
5519
5653
|
export async function getPyModules(src, epkgList, options) {
|
|
5520
5654
|
const allImports = {};
|
|
5521
5655
|
const dependenciesList = [];
|
|
5522
|
-
let modList;
|
|
5656
|
+
let modList = [];
|
|
5523
5657
|
const slicesFile = resolve(
|
|
5524
5658
|
options.depsSlicesFile || options.usagesSlicesFile,
|
|
5525
5659
|
);
|
|
@@ -9597,9 +9731,8 @@ export function parseCsProjAssetsData(csProjData, assetsJsonFile) {
|
|
|
9597
9731
|
if (!inputStr) {
|
|
9598
9732
|
return null;
|
|
9599
9733
|
}
|
|
9600
|
-
const extractNameOperatorVersion = /([\w.-]+)\s*([><=!]+)\s*(
|
|
9601
|
-
|
|
9602
|
-
|
|
9734
|
+
const extractNameOperatorVersion = /([\w.-]+)\s*([><=!]+)\s*(.*)/;
|
|
9735
|
+
let match = inputStr.match(extractNameOperatorVersion);
|
|
9603
9736
|
if (match) {
|
|
9604
9737
|
return {
|
|
9605
9738
|
name: match[1],
|
|
@@ -9607,6 +9740,14 @@ export function parseCsProjAssetsData(csProjData, assetsJsonFile) {
|
|
|
9607
9740
|
version: match[3],
|
|
9608
9741
|
};
|
|
9609
9742
|
}
|
|
9743
|
+
match = inputStr.split(" ");
|
|
9744
|
+
if (match && match.length === 3) {
|
|
9745
|
+
return {
|
|
9746
|
+
name: match[1],
|
|
9747
|
+
operator: match[2],
|
|
9748
|
+
version: match[3],
|
|
9749
|
+
};
|
|
9750
|
+
}
|
|
9610
9751
|
return null;
|
|
9611
9752
|
}
|
|
9612
9753
|
|
|
@@ -9664,7 +9805,7 @@ export function parseCsProjAssetsData(csProjData, assetsJsonFile) {
|
|
|
9664
9805
|
const tversion = tmpParts[1];
|
|
9665
9806
|
if (
|
|
9666
9807
|
tname.toLowerCase() === nameOperatorVersion.name.toLowerCase() &&
|
|
9667
|
-
tversion === nameOperatorVersion.version
|
|
9808
|
+
tversion === nameOperatorVersion.version.replace("-*", "")
|
|
9668
9809
|
) {
|
|
9669
9810
|
nameToUse = tname;
|
|
9670
9811
|
matchFound = true;
|
|
@@ -11698,7 +11839,7 @@ export async function extractJarArchive(jarFile, tempDir, jarNSMapping = {}) {
|
|
|
11698
11839
|
if (jarFiles.length !== pkgList.length) {
|
|
11699
11840
|
if (pkgList.length) {
|
|
11700
11841
|
console.log(
|
|
11701
|
-
`Obtained only ${pkgList.length} components from ${jarFiles.length} jars.`,
|
|
11842
|
+
`Obtained only ${pkgList.length} components from ${jarFiles.length} jars at ${tempDir}.`,
|
|
11702
11843
|
);
|
|
11703
11844
|
} else {
|
|
11704
11845
|
console.log(
|
|
@@ -11952,6 +12093,26 @@ export function getGradleCommand(srcPath, rootPath) {
|
|
|
11952
12093
|
return gradleCmd;
|
|
11953
12094
|
}
|
|
11954
12095
|
|
|
12096
|
+
/**
|
|
12097
|
+
* Method to return the mill command to use.
|
|
12098
|
+
*
|
|
12099
|
+
* @param {string} srcPath Path to look for mill wrapper
|
|
12100
|
+
*/
|
|
12101
|
+
export function getMillCommand(srcPath) {
|
|
12102
|
+
let millCmd = `mill${platform() === "win32" ? ".bat" : ""}`;
|
|
12103
|
+
if (safeExistsSync(join(srcPath, millCmd))) {
|
|
12104
|
+
// Use local mill wrapper if available
|
|
12105
|
+
// Enable execute permission
|
|
12106
|
+
try {
|
|
12107
|
+
chmodSync(join(srcPath, millCmd), 0o775);
|
|
12108
|
+
} catch (e) {
|
|
12109
|
+
// continue regardless of error
|
|
12110
|
+
}
|
|
12111
|
+
millCmd = resolve(join(srcPath, millCmd));
|
|
12112
|
+
}
|
|
12113
|
+
return millCmd;
|
|
12114
|
+
}
|
|
12115
|
+
|
|
11955
12116
|
/**
|
|
11956
12117
|
* Method to combine the general gradle arguments, the sub-commands and the sub-commands' arguments in the correct way
|
|
11957
12118
|
*
|
|
@@ -68,6 +68,7 @@ import {
|
|
|
68
68
|
parseLeiningenData,
|
|
69
69
|
parseMakeDFile,
|
|
70
70
|
parseMavenTree,
|
|
71
|
+
parseMillDependency,
|
|
71
72
|
parseMixLockData,
|
|
72
73
|
parseNodeShrinkwrap,
|
|
73
74
|
parseNupkg,
|
|
@@ -3784,8 +3785,8 @@ test("parsePnpmLock", async () => {
|
|
|
3784
3785
|
expect(parsedList.dependenciesList).toHaveLength(462);
|
|
3785
3786
|
expect(parsedList.pkgList.filter((pkg) => !pkg.scope)).toHaveLength(3);
|
|
3786
3787
|
parsedList = await parsePnpmLock("./pnpm-lock.yaml");
|
|
3787
|
-
expect(parsedList.pkgList.length).toEqual(
|
|
3788
|
-
expect(parsedList.dependenciesList.length).toEqual(
|
|
3788
|
+
expect(parsedList.pkgList.length).toEqual(622);
|
|
3789
|
+
expect(parsedList.dependenciesList.length).toEqual(622);
|
|
3789
3790
|
expect(parsedList.pkgList[0]).toEqual({
|
|
3790
3791
|
group: "@ampproject",
|
|
3791
3792
|
name: "remapping",
|
|
@@ -6169,3 +6170,48 @@ test("buildObjectForCocoaPod tests", async () => {
|
|
|
6169
6170
|
"bom-ref": "pkg:cocoapods/boost@= 1.59.0#graph-includes",
|
|
6170
6171
|
});
|
|
6171
6172
|
});
|
|
6173
|
+
|
|
6174
|
+
test("parseMillDependency test", () => {
|
|
6175
|
+
const millTestDataRoot = "./test/data/mill/";
|
|
6176
|
+
const dependencies = new Map();
|
|
6177
|
+
const relations = new Map();
|
|
6178
|
+
|
|
6179
|
+
expect(dependencies.has("pkg:maven/bar@latest?type=jar")).toBeftoBeFalsy;
|
|
6180
|
+
expect(dependencies.has("pkg:maven/bar.test@latest?type=jar")).toBeftoBeFalsy;
|
|
6181
|
+
expect(dependencies.has("pkg:maven/foo@latest?type=jar")).toBeftoBeFalsy;
|
|
6182
|
+
expect(dependencies.has("pkg:maven/foo.test@latest?type=jar")).toBeftoBeFalsy;
|
|
6183
|
+
expect(dependencies.size).toEqual(0);
|
|
6184
|
+
expect(relations.size).toEqual(0);
|
|
6185
|
+
|
|
6186
|
+
parseMillDependency("bar", dependencies, relations, millTestDataRoot);
|
|
6187
|
+
expect(dependencies.has("pkg:maven/bar@latest?type=jar")).toBeTruthy;
|
|
6188
|
+
expect(dependencies.has("pkg:maven/bar.test@latest?type=jar")).toBeftoBeFalsy;
|
|
6189
|
+
expect(dependencies.has("pkg:maven/foo@latest?type=jar")).toBeftoBeFalsy;
|
|
6190
|
+
expect(dependencies.has("pkg:maven/foo.test@latest?type=jar")).toBeftoBeFalsy;
|
|
6191
|
+
expect(dependencies.size).toEqual(8);
|
|
6192
|
+
expect(relations.size).toEqual(8);
|
|
6193
|
+
|
|
6194
|
+
parseMillDependency("bar.test", dependencies, relations, millTestDataRoot);
|
|
6195
|
+
expect(dependencies.has("pkg:maven/bar@latest?type=jar")).toBeTruthy;
|
|
6196
|
+
expect(dependencies.has("pkg:maven/bar.test@latest?type=jar")).toBeTruthy;
|
|
6197
|
+
expect(dependencies.has("pkg:maven/foo@latest?type=jar")).toBeftoBeFalsy;
|
|
6198
|
+
expect(dependencies.has("pkg:maven/foo.test@latest?type=jar")).toBeftoBeFalsy;
|
|
6199
|
+
expect(dependencies.size).toEqual(13);
|
|
6200
|
+
expect(relations.size).toEqual(13);
|
|
6201
|
+
|
|
6202
|
+
parseMillDependency("foo", dependencies, relations, millTestDataRoot);
|
|
6203
|
+
expect(dependencies.has("pkg:maven/bar@latest?type=jar")).toBeTruthy;
|
|
6204
|
+
expect(dependencies.has("pkg:maven/bar.test@latest?type=jar")).toBeTruthy;
|
|
6205
|
+
expect(dependencies.has("pkg:maven/foo@latest?type=jar")).toBeTruthy;
|
|
6206
|
+
expect(dependencies.has("pkg:maven/foo.test@latest?type=jar")).toBeftoBeFalsy;
|
|
6207
|
+
expect(dependencies.size).toEqual(14);
|
|
6208
|
+
expect(relations.size).toEqual(14);
|
|
6209
|
+
|
|
6210
|
+
parseMillDependency("foo.test", dependencies, relations, millTestDataRoot);
|
|
6211
|
+
expect(dependencies.has("pkg:maven/bar@latest?type=jar")).toBeTruthy;
|
|
6212
|
+
expect(dependencies.has("pkg:maven/bar.test@latest?type=jar")).toBeTruthy;
|
|
6213
|
+
expect(dependencies.has("pkg:maven/foo@latest?type=jar")).toBeTruthy;
|
|
6214
|
+
expect(dependencies.has("pkg:maven/foo.test@latest?type=jar")).toBeTruthy;
|
|
6215
|
+
expect(dependencies.size).toEqual(15);
|
|
6216
|
+
expect(relations.size).toEqual(15);
|
|
6217
|
+
});
|
package/lib/helpers/validator.js
CHANGED
|
@@ -7,10 +7,7 @@ import { DEBUG_MODE, dirNameStr, isPartialTree } from "./utils.js";
|
|
|
7
7
|
|
|
8
8
|
import { URL } from "node:url";
|
|
9
9
|
import { thoughtLog } from "./logger.js";
|
|
10
|
-
|
|
11
|
-
if (!url.startsWith("file://")) {
|
|
12
|
-
url = new URL(`file://${import.meta.url}`).toString();
|
|
13
|
-
}
|
|
10
|
+
|
|
14
11
|
const dirName = dirNameStr;
|
|
15
12
|
|
|
16
13
|
/**
|
package/lib/managers/binary.js
CHANGED
|
@@ -30,10 +30,6 @@ import {
|
|
|
30
30
|
|
|
31
31
|
import { URL } from "node:url";
|
|
32
32
|
|
|
33
|
-
let url = import.meta.url;
|
|
34
|
-
if (!url.startsWith("file://")) {
|
|
35
|
-
url = new URL(`file://${import.meta.url}`).toString();
|
|
36
|
-
}
|
|
37
33
|
const dirName = dirNameStr;
|
|
38
34
|
|
|
39
35
|
const isWin = _platform() === "win32";
|
|
@@ -228,7 +224,10 @@ const OS_DISTRO_ALIAS = {
|
|
|
228
224
|
"ubuntu-19.10": "eoan",
|
|
229
225
|
"ubuntu-20.04": "focal",
|
|
230
226
|
"ubuntu-20.10": "groovy",
|
|
227
|
+
"ubuntu-21.04": "hirsute",
|
|
228
|
+
"ubuntu-21.10": "impish",
|
|
231
229
|
"ubuntu-22.04": "jammy",
|
|
230
|
+
"ubuntu-22.10": "kinetic",
|
|
232
231
|
"ubuntu-23.04": "lunar",
|
|
233
232
|
"ubuntu-23.10": "mantic",
|
|
234
233
|
"ubuntu-24.04": "noble",
|
|
@@ -262,6 +261,8 @@ const OS_DISTRO_ALIAS = {
|
|
|
262
261
|
"debian-1.2": "rex",
|
|
263
262
|
"debian-1.1": "buzz",
|
|
264
263
|
"red hat enterprise linux": "rhel",
|
|
264
|
+
"red hat enterprise linux 6": "rhel-6",
|
|
265
|
+
"red hat enterprise linux 7": "rhel-7",
|
|
265
266
|
"red hat enterprise linux 8": "rhel-8",
|
|
266
267
|
"red hat enterprise linux 9": "rhel-9",
|
|
267
268
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyclonedx/cdxgen",
|
|
3
|
-
"version": "11.2.
|
|
3
|
+
"version": "11.2.4",
|
|
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>",
|
|
@@ -39,7 +39,8 @@
|
|
|
39
39
|
"type": "module",
|
|
40
40
|
"exports": {
|
|
41
41
|
"import": "./lib/cli/index.js",
|
|
42
|
-
"types": "./types/lib/cli/index.d.ts"
|
|
42
|
+
"types": "./types/lib/cli/index.d.ts",
|
|
43
|
+
"require": "./index.cjs"
|
|
43
44
|
},
|
|
44
45
|
"types": "./types/lib/cli/index.d.ts",
|
|
45
46
|
"bin": {
|
|
@@ -69,7 +70,7 @@
|
|
|
69
70
|
"@babel/parser": "^7.27.0",
|
|
70
71
|
"@babel/traverse": "^7.27.0",
|
|
71
72
|
"@iarna/toml": "2.2.5",
|
|
72
|
-
"@npmcli/arborist": "9.0.
|
|
73
|
+
"@npmcli/arborist": "9.0.2",
|
|
73
74
|
"ajv": "^8.17.1",
|
|
74
75
|
"ajv-formats": "^3.0.1",
|
|
75
76
|
"cheerio": "^1.0.0",
|
|
@@ -77,7 +78,7 @@
|
|
|
77
78
|
"find-up": "7.0.0",
|
|
78
79
|
"glob": "^11.0.0",
|
|
79
80
|
"global-agent": "^3.0.0",
|
|
80
|
-
"got": "^14.4.
|
|
81
|
+
"got": "^14.4.7",
|
|
81
82
|
"iconv-lite": "^0.6.3",
|
|
82
83
|
"js-yaml": "^4.1.0",
|
|
83
84
|
"jws": "^4.0.0",
|
|
@@ -119,12 +120,13 @@
|
|
|
119
120
|
"lib/**",
|
|
120
121
|
"bin/",
|
|
121
122
|
"data/",
|
|
122
|
-
"types/"
|
|
123
|
+
"types/",
|
|
124
|
+
"index.cjs"
|
|
123
125
|
],
|
|
124
126
|
"devDependencies": {
|
|
125
127
|
"@biomejs/biome": "1.9.4",
|
|
126
128
|
"jest": "^29.7.0",
|
|
127
|
-
"typescript": "^5.8.
|
|
129
|
+
"typescript": "^5.8.3"
|
|
128
130
|
},
|
|
129
131
|
"overrides": {
|
|
130
132
|
"glob": "^11.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":"AAk7BA;;;;;;;;GAQG;AACH,gFAFW,MAAM,SAchB;AAuXD;;;;;;;GAOG;AACH,mCALW,MAAM,qBAyEhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM;;;;EAKhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM;;;;EAkBhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BA+sChB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BAuvBhB;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,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,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,yDA+FC;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"}
|
|
@@ -226,6 +226,17 @@ export function parsePom(pomFile: string): any;
|
|
|
226
226
|
* @returns {Object} Object containing packages and dependencies
|
|
227
227
|
*/
|
|
228
228
|
export function parseMavenTree(rawOutput: string, pomFile: string): any;
|
|
229
|
+
/**
|
|
230
|
+
* Parse mill dependencies from file
|
|
231
|
+
*
|
|
232
|
+
* @param {string} module name of the module
|
|
233
|
+
* @param {map} dependencies the parsed dependencies
|
|
234
|
+
* @param {map} relations a map containing all relations
|
|
235
|
+
* @param {string} millRootPath root of the project
|
|
236
|
+
*
|
|
237
|
+
* @returns the bom-ref of the module
|
|
238
|
+
*/
|
|
239
|
+
export function parseMillDependency(module: string, dependencies: map, relations: map, millRootPath: string): any;
|
|
229
240
|
/**
|
|
230
241
|
* Parse gradle dependencies output
|
|
231
242
|
* @param {string} rawOutput Raw string output
|
|
@@ -1131,6 +1142,12 @@ export function getJarClasses(jarFile: string): Promise<any[]>;
|
|
|
1131
1142
|
* @param {string|null} rootPath Root directory to look for gradlew wrapper
|
|
1132
1143
|
*/
|
|
1133
1144
|
export function getGradleCommand(srcPath: string, rootPath: string | null): string;
|
|
1145
|
+
/**
|
|
1146
|
+
* Method to return the mill command to use.
|
|
1147
|
+
*
|
|
1148
|
+
* @param {string} srcPath Path to look for mill wrapper
|
|
1149
|
+
*/
|
|
1150
|
+
export function getMillCommand(srcPath: string): string;
|
|
1134
1151
|
/**
|
|
1135
1152
|
* Method to combine the general gradle arguments, the sub-commands and the sub-commands' arguments in the correct way
|
|
1136
1153
|
*
|
|
@@ -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;
|
|
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":"AA8TA;;;;GAIG;AACH,uCAFW,MAAM,WA0FhB;AAxYM,qCAJI,MAAM,WAkDhB;AAOM,0CAFI,MAAM,WA2DhB;AAOM,uCAFI,MAAM,WAmEhB;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":"AA2SA,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"}
|