@cyclonedx/cdxgen 12.2.1 → 12.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/README.md +239 -90
- package/bin/audit.js +191 -0
- package/bin/cdxgen.js +513 -167
- package/bin/convert.js +99 -0
- package/bin/evinse.js +23 -0
- package/bin/repl.js +339 -8
- package/bin/sign.js +8 -0
- package/bin/validate.js +8 -0
- package/bin/verify.js +8 -0
- package/data/container-knowledge-index.json +125 -0
- package/data/gtfobins-index.json +6296 -0
- package/data/lolbas-index.json +150 -0
- package/data/queries-darwin.json +63 -3
- package/data/queries-win.json +45 -3
- package/data/queries.json +74 -2
- package/data/rules/chrome-extensions.yaml +240 -0
- package/data/rules/ci-permissions.yaml +478 -18
- package/data/rules/container-risk.yaml +270 -0
- package/data/rules/obom-runtime.yaml +891 -0
- package/data/rules/package-integrity.yaml +49 -0
- package/data/spdx-export.schema.json +6794 -0
- package/data/spdx-model-v3.0.1.jsonld +15999 -0
- package/lib/audit/index.js +1924 -0
- package/lib/audit/index.poku.js +1488 -0
- package/lib/audit/progress.js +137 -0
- package/lib/audit/progress.poku.js +188 -0
- package/lib/audit/reporters.js +618 -0
- package/lib/audit/scoring.js +310 -0
- package/lib/audit/scoring.poku.js +341 -0
- package/lib/audit/targets.js +260 -0
- package/lib/audit/targets.poku.js +331 -0
- package/lib/cli/index.js +154 -11
- package/lib/cli/index.poku.js +251 -0
- package/lib/helpers/analyzer.js +446 -2
- package/lib/helpers/analyzer.poku.js +72 -1
- package/lib/helpers/annotationFormatter.js +49 -0
- package/lib/helpers/annotationFormatter.poku.js +44 -0
- package/lib/helpers/bomUtils.js +36 -0
- package/lib/helpers/bomUtils.poku.js +51 -0
- package/lib/helpers/caxa.js +2 -2
- package/lib/helpers/chromextutils.js +1153 -0
- package/lib/helpers/chromextutils.poku.js +493 -0
- package/lib/helpers/ciParsers/githubActions.js +1632 -45
- package/lib/helpers/ciParsers/githubActions.poku.js +853 -1
- package/lib/helpers/containerRisk.js +186 -0
- package/lib/helpers/containerRisk.poku.js +52 -0
- package/lib/helpers/display.js +241 -59
- package/lib/helpers/display.poku.js +162 -2
- package/lib/helpers/exportUtils.js +123 -0
- package/lib/helpers/exportUtils.poku.js +60 -0
- package/lib/helpers/formulationParsers.js +69 -0
- package/lib/helpers/formulationParsers.poku.js +44 -0
- package/lib/helpers/gtfobins.js +189 -0
- package/lib/helpers/gtfobins.poku.js +49 -0
- package/lib/helpers/lolbas.js +267 -0
- package/lib/helpers/lolbas.poku.js +39 -0
- package/lib/helpers/osqueryTransform.js +84 -0
- package/lib/helpers/osqueryTransform.poku.js +49 -0
- package/lib/helpers/provenanceUtils.js +193 -0
- package/lib/helpers/provenanceUtils.poku.js +145 -0
- package/lib/helpers/pylockutils.js +281 -0
- package/lib/helpers/pylockutils.poku.js +48 -0
- package/lib/helpers/registryProvenance.js +793 -0
- package/lib/helpers/registryProvenance.poku.js +452 -0
- package/lib/helpers/source.js +1267 -0
- package/lib/helpers/source.poku.js +771 -0
- package/lib/helpers/spdxUtils.js +97 -0
- package/lib/helpers/spdxUtils.poku.js +70 -0
- package/lib/helpers/unicodeScan.js +147 -0
- package/lib/helpers/unicodeScan.poku.js +45 -0
- package/lib/helpers/utils.js +700 -128
- package/lib/helpers/utils.poku.js +877 -80
- package/lib/managers/binary.js +29 -5
- package/lib/managers/docker.js +179 -52
- package/lib/managers/docker.poku.js +327 -28
- package/lib/managers/oci.js +107 -23
- package/lib/managers/oci.poku.js +132 -0
- package/lib/server/openapi.yaml +17 -0
- package/lib/server/server.js +225 -336
- package/lib/server/server.poku.js +16 -10
- package/lib/stages/postgen/annotator.js +7 -0
- package/lib/stages/postgen/annotator.poku.js +40 -0
- package/lib/stages/postgen/auditBom.js +19 -3
- package/lib/stages/postgen/auditBom.poku.js +1729 -67
- package/lib/stages/postgen/postgen.js +40 -0
- package/lib/stages/postgen/postgen.poku.js +47 -0
- package/lib/stages/postgen/ruleEngine.js +80 -2
- package/lib/stages/postgen/spdxConverter.js +796 -0
- package/lib/stages/postgen/spdxConverter.poku.js +341 -0
- package/lib/validator/bomValidator.js +232 -0
- package/lib/validator/bomValidator.poku.js +70 -0
- package/lib/validator/complianceRules.js +70 -7
- package/lib/validator/complianceRules.poku.js +30 -0
- package/lib/validator/reporters/annotations.js +2 -2
- package/lib/validator/reporters/console.js +11 -0
- package/lib/validator/reporters.poku.js +13 -0
- package/package.json +10 -7
- package/types/bin/audit.d.ts +3 -0
- package/types/bin/audit.d.ts.map +1 -0
- package/types/bin/convert.d.ts +3 -0
- package/types/bin/convert.d.ts.map +1 -0
- package/types/bin/repl.d.ts.map +1 -1
- package/types/lib/audit/index.d.ts +115 -0
- package/types/lib/audit/index.d.ts.map +1 -0
- package/types/lib/audit/progress.d.ts +27 -0
- package/types/lib/audit/progress.d.ts.map +1 -0
- package/types/lib/audit/reporters.d.ts +35 -0
- package/types/lib/audit/reporters.d.ts.map +1 -0
- package/types/lib/audit/scoring.d.ts +35 -0
- package/types/lib/audit/scoring.d.ts.map +1 -0
- package/types/lib/audit/targets.d.ts +63 -0
- package/types/lib/audit/targets.d.ts.map +1 -0
- package/types/lib/cli/index.d.ts +8 -0
- package/types/lib/cli/index.d.ts.map +1 -1
- package/types/lib/helpers/analyzer.d.ts +13 -0
- package/types/lib/helpers/analyzer.d.ts.map +1 -1
- package/types/lib/helpers/annotationFormatter.d.ts +23 -0
- package/types/lib/helpers/annotationFormatter.d.ts.map +1 -0
- package/types/lib/helpers/bomUtils.d.ts +5 -0
- package/types/lib/helpers/bomUtils.d.ts.map +1 -0
- package/types/lib/helpers/chromextutils.d.ts +97 -0
- package/types/lib/helpers/chromextutils.d.ts.map +1 -0
- package/types/lib/helpers/ciParsers/githubActions.d.ts +3 -8
- package/types/lib/helpers/ciParsers/githubActions.d.ts.map +1 -1
- package/types/lib/helpers/containerRisk.d.ts +17 -0
- package/types/lib/helpers/containerRisk.d.ts.map +1 -0
- package/types/lib/helpers/display.d.ts +4 -1
- package/types/lib/helpers/display.d.ts.map +1 -1
- package/types/lib/helpers/exportUtils.d.ts +40 -0
- package/types/lib/helpers/exportUtils.d.ts.map +1 -0
- package/types/lib/helpers/formulationParsers.d.ts.map +1 -1
- package/types/lib/helpers/gtfobins.d.ts +17 -0
- package/types/lib/helpers/gtfobins.d.ts.map +1 -0
- package/types/lib/helpers/lolbas.d.ts +16 -0
- package/types/lib/helpers/lolbas.d.ts.map +1 -0
- package/types/lib/helpers/osqueryTransform.d.ts +7 -0
- package/types/lib/helpers/osqueryTransform.d.ts.map +1 -0
- package/types/lib/helpers/provenanceUtils.d.ts +90 -0
- package/types/lib/helpers/provenanceUtils.d.ts.map +1 -0
- package/types/lib/helpers/pylockutils.d.ts +51 -0
- package/types/lib/helpers/pylockutils.d.ts.map +1 -0
- package/types/lib/helpers/registryProvenance.d.ts +17 -0
- package/types/lib/helpers/registryProvenance.d.ts.map +1 -0
- package/types/lib/helpers/source.d.ts +141 -0
- package/types/lib/helpers/source.d.ts.map +1 -0
- package/types/lib/helpers/spdxUtils.d.ts +2 -0
- package/types/lib/helpers/spdxUtils.d.ts.map +1 -0
- package/types/lib/helpers/unicodeScan.d.ts +46 -0
- package/types/lib/helpers/unicodeScan.d.ts.map +1 -0
- package/types/lib/helpers/utils.d.ts +29 -11
- package/types/lib/helpers/utils.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/oci.d.ts.map +1 -1
- package/types/lib/server/server.d.ts +0 -36
- package/types/lib/server/server.d.ts.map +1 -1
- package/types/lib/stages/postgen/annotator.d.ts.map +1 -1
- package/types/lib/stages/postgen/auditBom.d.ts.map +1 -1
- package/types/lib/stages/postgen/postgen.d.ts.map +1 -1
- package/types/lib/stages/postgen/ruleEngine.d.ts.map +1 -1
- package/types/lib/stages/postgen/spdxConverter.d.ts +11 -0
- package/types/lib/stages/postgen/spdxConverter.d.ts.map +1 -0
- package/types/lib/validator/bomValidator.d.ts +1 -0
- package/types/lib/validator/bomValidator.d.ts.map +1 -1
- package/types/lib/validator/complianceRules.d.ts.map +1 -1
- package/types/lib/validator/reporters/console.d.ts.map +1 -1
- package/types/bin/dependencies.d.ts +0 -3
- package/types/bin/dependencies.d.ts.map +0 -1
- package/types/bin/licenses.d.ts +0 -3
- package/types/bin/licenses.d.ts.map +0 -1
|
@@ -211,6 +211,20 @@ function manual(message, extras = {}) {
|
|
|
211
211
|
return { status: "manual", message, ...extras };
|
|
212
212
|
}
|
|
213
213
|
|
|
214
|
+
const CDX_AUDIT_MANUAL_COMMAND = "cdx-audit --bom bom.json --scope required";
|
|
215
|
+
|
|
216
|
+
function buildCdxAuditAssistMitigation(reviewFocus) {
|
|
217
|
+
return `${reviewFocus} To support manual verification, run \`${CDX_AUDIT_MANUAL_COMMAND}\` against the same SBOM and review the resulting repository, workflow, provenance, and publishing findings.`;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
function buildCdxAuditAssistEvidence(controlId) {
|
|
221
|
+
return {
|
|
222
|
+
reviewMode: "manual-with-cdx-audit",
|
|
223
|
+
standardRef: `SCVS-${controlId}`,
|
|
224
|
+
suggestedCommand: CDX_AUDIT_MANUAL_COMMAND,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
|
|
214
228
|
/**
|
|
215
229
|
* Factory for SCVS manual-review rules. These are emitted so that benchmark
|
|
216
230
|
* reports can accurately reflect per-level coverage even when the rule cannot
|
|
@@ -220,9 +234,10 @@ function manual(message, extras = {}) {
|
|
|
220
234
|
* @param {string} name
|
|
221
235
|
* @param {string} description
|
|
222
236
|
* @param {{ l1: boolean, l2: boolean, l3: boolean }} levels
|
|
237
|
+
* @param {{ mitigation?: string, evidence?: object }} [options]
|
|
223
238
|
* @returns {object}
|
|
224
239
|
*/
|
|
225
|
-
function scvsManual(id, name, description, levels) {
|
|
240
|
+
function scvsManual(id, name, description, levels, options = {}) {
|
|
226
241
|
const required = [];
|
|
227
242
|
if (levels.l1) required.push("L1");
|
|
228
243
|
if (levels.l2) required.push("L2");
|
|
@@ -241,7 +256,8 @@ function scvsManual(id, name, description, levels) {
|
|
|
241
256
|
manual(
|
|
242
257
|
`${name} is not automatable from the BOM and requires manual review.`,
|
|
243
258
|
{
|
|
244
|
-
|
|
259
|
+
evidence: options.evidence,
|
|
260
|
+
mitigation: options.mitigation || description,
|
|
245
261
|
},
|
|
246
262
|
),
|
|
247
263
|
};
|
|
@@ -546,11 +562,22 @@ const SCVS_RULES = [
|
|
|
546
562
|
return pass(`metadata.timestamp present (${ts}).`);
|
|
547
563
|
},
|
|
548
564
|
},
|
|
549
|
-
scvsManual(
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
565
|
+
scvsManual(
|
|
566
|
+
"2.8",
|
|
567
|
+
"SBOM is analyzed for risk",
|
|
568
|
+
"SBOM is analyzed for risk.",
|
|
569
|
+
{
|
|
570
|
+
l1: true,
|
|
571
|
+
l2: true,
|
|
572
|
+
l3: true,
|
|
573
|
+
},
|
|
574
|
+
{
|
|
575
|
+
evidence: buildCdxAuditAssistEvidence("2.8"),
|
|
576
|
+
mitigation: buildCdxAuditAssistMitigation(
|
|
577
|
+
"Use predictive audit evidence to show how the SBOM is being reviewed for workflow, provenance, and publishing risk.",
|
|
578
|
+
),
|
|
579
|
+
},
|
|
580
|
+
),
|
|
554
581
|
{
|
|
555
582
|
id: "SCVS-2.9",
|
|
556
583
|
name: "Complete and accurate inventory",
|
|
@@ -838,6 +865,12 @@ const SCVS_RULES = [
|
|
|
838
865
|
"Application uses CI build pipeline",
|
|
839
866
|
"Application uses a continuous integration build pipeline.",
|
|
840
867
|
{ l1: true, l2: true, l3: true },
|
|
868
|
+
{
|
|
869
|
+
evidence: buildCdxAuditAssistEvidence("3.3"),
|
|
870
|
+
mitigation: buildCdxAuditAssistMitigation(
|
|
871
|
+
"Review the resolved repository workflows to confirm a CI build pipeline is present and corresponds to the released package.",
|
|
872
|
+
),
|
|
873
|
+
},
|
|
841
874
|
),
|
|
842
875
|
scvsManual(
|
|
843
876
|
"3.4",
|
|
@@ -856,6 +889,12 @@ const SCVS_RULES = [
|
|
|
856
889
|
"No arbitrary code execution",
|
|
857
890
|
"Application build pipeline prohibits the execution of arbitrary code outside of the context of a jobs build script.",
|
|
858
891
|
{ l1: false, l2: true, l3: true },
|
|
892
|
+
{
|
|
893
|
+
evidence: buildCdxAuditAssistEvidence("3.6"),
|
|
894
|
+
mitigation: buildCdxAuditAssistMitigation(
|
|
895
|
+
"Review workflow and publishing findings for risky scripts, hidden Unicode, and legacy token-based release steps that may indicate unsafe build execution paths.",
|
|
896
|
+
),
|
|
897
|
+
},
|
|
859
898
|
),
|
|
860
899
|
scvsManual(
|
|
861
900
|
"3.7",
|
|
@@ -1063,12 +1102,24 @@ const SCVS_RULES = [
|
|
|
1063
1102
|
"Version-to-source correlation",
|
|
1064
1103
|
"Package repository provides a verifiable way of correlating component versions to specific source codes in version control.",
|
|
1065
1104
|
{ l1: false, l2: true, l3: true },
|
|
1105
|
+
{
|
|
1106
|
+
evidence: buildCdxAuditAssistEvidence("4.10"),
|
|
1107
|
+
mitigation: buildCdxAuditAssistMitigation(
|
|
1108
|
+
"Review the resolved repository URL, version mapping, and source correlation details for the component version under review.",
|
|
1109
|
+
),
|
|
1110
|
+
},
|
|
1066
1111
|
),
|
|
1067
1112
|
scvsManual(
|
|
1068
1113
|
"4.11",
|
|
1069
1114
|
"Package repository auditability",
|
|
1070
1115
|
"Package repository provides auditability when components are updated.",
|
|
1071
1116
|
{ l1: true, l2: true, l3: true },
|
|
1117
|
+
{
|
|
1118
|
+
evidence: buildCdxAuditAssistEvidence("4.11"),
|
|
1119
|
+
mitigation: buildCdxAuditAssistMitigation(
|
|
1120
|
+
"Review provenance, publisher drift, publish timing, and trusted-publishing signals to assess whether package updates are auditable.",
|
|
1121
|
+
),
|
|
1122
|
+
},
|
|
1072
1123
|
),
|
|
1073
1124
|
scvsManual(
|
|
1074
1125
|
"4.12",
|
|
@@ -1235,12 +1286,24 @@ const SCVS_RULES = [
|
|
|
1235
1286
|
"Point of origin verifiable",
|
|
1236
1287
|
"Point of origin is verifiable for source code and binary components.",
|
|
1237
1288
|
{ l1: false, l2: true, l3: true },
|
|
1289
|
+
{
|
|
1290
|
+
evidence: buildCdxAuditAssistEvidence("6.1"),
|
|
1291
|
+
mitigation: buildCdxAuditAssistMitigation(
|
|
1292
|
+
"Review the resolved repository and registry provenance signals to confirm the package point of origin is verifiable.",
|
|
1293
|
+
),
|
|
1294
|
+
},
|
|
1238
1295
|
),
|
|
1239
1296
|
scvsManual(
|
|
1240
1297
|
"6.2",
|
|
1241
1298
|
"Chain of custody auditable",
|
|
1242
1299
|
"Chain of custody if auditable for source code and binary components.",
|
|
1243
1300
|
{ l1: false, l2: false, l3: true },
|
|
1301
|
+
{
|
|
1302
|
+
evidence: buildCdxAuditAssistEvidence("6.2"),
|
|
1303
|
+
mitigation: buildCdxAuditAssistMitigation(
|
|
1304
|
+
"Review provenance, publisher identity changes, trusted-publishing status, and source-repository correlation to assess auditable chain-of-custody evidence.",
|
|
1305
|
+
),
|
|
1306
|
+
},
|
|
1244
1307
|
),
|
|
1245
1308
|
{
|
|
1246
1309
|
id: "SCVS-6.3",
|
|
@@ -282,6 +282,36 @@ describe("SCVS automatable rules on a clean BOM", () => {
|
|
|
282
282
|
});
|
|
283
283
|
});
|
|
284
284
|
|
|
285
|
+
describe("SCVS manual controls with predictive audit assistance", () => {
|
|
286
|
+
it("includes cdx-audit guidance for mapped manual-review controls", () => {
|
|
287
|
+
const mappedRuleIds = [
|
|
288
|
+
"SCVS-2.8",
|
|
289
|
+
"SCVS-3.3",
|
|
290
|
+
"SCVS-3.6",
|
|
291
|
+
"SCVS-4.10",
|
|
292
|
+
"SCVS-4.11",
|
|
293
|
+
"SCVS-6.1",
|
|
294
|
+
"SCVS-6.2",
|
|
295
|
+
];
|
|
296
|
+
|
|
297
|
+
mappedRuleIds.forEach((ruleId) => {
|
|
298
|
+
const rule = getScvsRules().find((entry) => entry.id === ruleId);
|
|
299
|
+
assert.ok(rule, `missing rule ${ruleId}`);
|
|
300
|
+
const result = rule.evaluate(baseBom());
|
|
301
|
+
assert.strictEqual(result.status, "manual");
|
|
302
|
+
assert.match(
|
|
303
|
+
result.mitigation,
|
|
304
|
+
/cdx-audit --bom bom\.json --scope required/,
|
|
305
|
+
);
|
|
306
|
+
assert.strictEqual(
|
|
307
|
+
result.evidence?.suggestedCommand,
|
|
308
|
+
"cdx-audit --bom bom.json --scope required",
|
|
309
|
+
);
|
|
310
|
+
assert.strictEqual(result.evidence?.reviewMode, "manual-with-cdx-audit");
|
|
311
|
+
});
|
|
312
|
+
});
|
|
313
|
+
});
|
|
314
|
+
|
|
285
315
|
describe("CRA rules", () => {
|
|
286
316
|
const rules = getCraRules();
|
|
287
317
|
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
* CycloneDX supports the annotation schema from spec version 1.5 onward.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
+
import { buildAnnotationText } from "../../helpers/annotationFormatter.js";
|
|
8
9
|
import { DEBUG_MODE, getTimestamp } from "../../helpers/utils.js";
|
|
9
10
|
|
|
10
11
|
const SUPPORTED_FROM = 1.5;
|
|
11
|
-
const CODE_BLOCK = "```";
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Render a set of findings into CycloneDX annotations.
|
|
@@ -81,7 +81,7 @@ export function buildAnnotations(findings, bomJson) {
|
|
|
81
81
|
component: cdxgenAnnotator[0],
|
|
82
82
|
},
|
|
83
83
|
timestamp,
|
|
84
|
-
text:
|
|
84
|
+
text: buildAnnotationText(f.message, properties),
|
|
85
85
|
};
|
|
86
86
|
});
|
|
87
87
|
}
|
|
@@ -144,6 +144,17 @@ export function render(report) {
|
|
|
144
144
|
title: `Manual review required (${manual.length})`,
|
|
145
145
|
}),
|
|
146
146
|
);
|
|
147
|
+
if (
|
|
148
|
+
manual.some((finding) =>
|
|
149
|
+
finding?.mitigation?.includes(
|
|
150
|
+
"cdx-audit --bom bom.json --scope required",
|
|
151
|
+
),
|
|
152
|
+
)
|
|
153
|
+
) {
|
|
154
|
+
pieces.push(
|
|
155
|
+
"Tip: some manual SCVS controls can be supported with predictive audit evidence. Run `cdx-audit --bom bom.json --scope required` against the same SBOM and review the flagged repositories, workflows, provenance, and publishing signals.",
|
|
156
|
+
);
|
|
157
|
+
}
|
|
147
158
|
}
|
|
148
159
|
return pieces.filter(Boolean).join("\n");
|
|
149
160
|
}
|
|
@@ -82,6 +82,18 @@ describe("reporter dispatcher", () => {
|
|
|
82
82
|
assert.match(out, /SCVS-2\.4/);
|
|
83
83
|
});
|
|
84
84
|
|
|
85
|
+
it("console reporter suggests cdx-audit when manual controls include predictive-audit guidance", () => {
|
|
86
|
+
const report = sampleReport();
|
|
87
|
+
report.findings[1].mitigation =
|
|
88
|
+
"To support manual verification, run `cdx-audit --bom bom.json --scope required` against the same SBOM.";
|
|
89
|
+
const out = render("console", report);
|
|
90
|
+
assert.match(
|
|
91
|
+
out,
|
|
92
|
+
/Tip: some manual SCVS controls can be supported with predictive audit evidence/,
|
|
93
|
+
);
|
|
94
|
+
assert.match(out, /cdx-audit --bom bom\.json --scope required/);
|
|
95
|
+
});
|
|
96
|
+
|
|
85
97
|
it("json reporter emits stable schema", () => {
|
|
86
98
|
const out = render("json", sampleReport());
|
|
87
99
|
const parsed = JSON.parse(out);
|
|
@@ -136,6 +148,7 @@ describe("reporter dispatcher", () => {
|
|
|
136
148
|
const first = parsed.annotations[0];
|
|
137
149
|
assert.ok(first.subjects[0].includes(bomJson.serialNumber));
|
|
138
150
|
assert.ok(first.annotator);
|
|
151
|
+
assert.match(first.text, /\| Property \| Value \|/);
|
|
139
152
|
});
|
|
140
153
|
|
|
141
154
|
it("annotations reporter skips when spec version is below 1.5", () => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyclonedx/cdxgen",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.3.0",
|
|
4
4
|
"description": "Creates CycloneDX Software Bill of Materials (SBOM) from source or container image",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sbom",
|
|
@@ -82,6 +82,8 @@
|
|
|
82
82
|
"types": "./types/lib/cli/index.d.ts",
|
|
83
83
|
"bin": {
|
|
84
84
|
"cbom": "bin/cdxgen.js",
|
|
85
|
+
"cdx-audit": "bin/audit.js",
|
|
86
|
+
"cdx-convert": "bin/convert.js",
|
|
85
87
|
"cdx-validate": "bin/validate.js",
|
|
86
88
|
"cdx-verify": "bin/verify.js",
|
|
87
89
|
"cdx-sign": "bin/sign.js",
|
|
@@ -90,7 +92,8 @@
|
|
|
90
92
|
"cdxi": "bin/repl.js",
|
|
91
93
|
"evinse": "bin/evinse.js",
|
|
92
94
|
"obom": "bin/cdxgen.js",
|
|
93
|
-
"saasbom": "bin/cdxgen.js"
|
|
95
|
+
"saasbom": "bin/cdxgen.js",
|
|
96
|
+
"spdxgen": "bin/cdxgen.js"
|
|
94
97
|
},
|
|
95
98
|
"files": [
|
|
96
99
|
"*.js",
|
|
@@ -109,7 +112,7 @@
|
|
|
109
112
|
"@npmcli/map-workspaces": "5.0.3",
|
|
110
113
|
"@npmcli/name-from-folder": "4.0.0",
|
|
111
114
|
"@npmcli/package-json": "7.0.5",
|
|
112
|
-
"ajv": "8.
|
|
115
|
+
"ajv": "8.20.0",
|
|
113
116
|
"ajv-formats": "3.0.1",
|
|
114
117
|
"bin-links": "6.0.0",
|
|
115
118
|
"cheerio": "1.2.0",
|
|
@@ -131,7 +134,7 @@
|
|
|
131
134
|
"ssri": "13.0.1",
|
|
132
135
|
"tar": "7.5.13",
|
|
133
136
|
"treeverse": "3.0.0",
|
|
134
|
-
"uuid": "
|
|
137
|
+
"uuid": "14.0.0",
|
|
135
138
|
"walk-up-path": "4.0.0",
|
|
136
139
|
"xml-js": "1.6.11",
|
|
137
140
|
"yaml": "2.8.3",
|
|
@@ -139,11 +142,11 @@
|
|
|
139
142
|
"yoctocolors": "2.1.2"
|
|
140
143
|
},
|
|
141
144
|
"devDependencies": {
|
|
142
|
-
"@biomejs/biome": "2.4.
|
|
145
|
+
"@biomejs/biome": "2.4.13",
|
|
143
146
|
"esmock": "2.7.3",
|
|
144
|
-
"poku": "4.
|
|
147
|
+
"poku": "4.3.0",
|
|
145
148
|
"sinon": "21.1.2",
|
|
146
|
-
"typescript": "6.0.
|
|
149
|
+
"typescript": "6.0.3"
|
|
147
150
|
},
|
|
148
151
|
"optionalDependencies": {
|
|
149
152
|
"@appthreat/atom": "2.5.2",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../bin/audit.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../bin/convert.js"],"names":[],"mappings":""}
|
package/types/bin/repl.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../../bin/repl.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../../bin/repl.js"],"names":[],"mappings":";AAsKO,kDAmDN"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read and validate a CycloneDX BOM file.
|
|
3
|
+
*
|
|
4
|
+
* @param {string} bomPath BOM file path
|
|
5
|
+
* @returns {object} parsed CycloneDX BOM
|
|
6
|
+
*/
|
|
7
|
+
export function loadBomFile(bomPath: string): object;
|
|
8
|
+
/**
|
|
9
|
+
* Recursively list JSON files under a BOM directory.
|
|
10
|
+
*
|
|
11
|
+
* @param {string} bomDir directory path
|
|
12
|
+
* @returns {string[]} discovered file paths
|
|
13
|
+
*/
|
|
14
|
+
export function listBomFiles(bomDir: string): string[];
|
|
15
|
+
/**
|
|
16
|
+
* Load input BOM files from either a single file or a directory.
|
|
17
|
+
*
|
|
18
|
+
* @param {object} options CLI options
|
|
19
|
+
* @returns {{ source: string, bomJson: object }[]} loaded input BOMs
|
|
20
|
+
*/
|
|
21
|
+
export function loadInputBoms(options: object): {
|
|
22
|
+
source: string;
|
|
23
|
+
bomJson: object;
|
|
24
|
+
}[];
|
|
25
|
+
/**
|
|
26
|
+
* Build low-noise provenance-aware contextual findings from the root BOM target.
|
|
27
|
+
*
|
|
28
|
+
* These are intentionally conservative and only fire when there is explicit risk
|
|
29
|
+
* posture already present in the target metadata.
|
|
30
|
+
*
|
|
31
|
+
* @param {object} target audit target
|
|
32
|
+
* @returns {object[]} contextual findings
|
|
33
|
+
*/
|
|
34
|
+
export function buildTargetContextFindings(target: object): object[];
|
|
35
|
+
/**
|
|
36
|
+
* Resolve the most specific Python package directory inside a cloned repo.
|
|
37
|
+
*
|
|
38
|
+
* @param {string} cloneDir cloned repository root
|
|
39
|
+
* @param {object} target audit target
|
|
40
|
+
* @returns {{ confidence: string, scanDir: string }} selected directory and confidence
|
|
41
|
+
*/
|
|
42
|
+
export function resolvePythonSourceDirectory(cloneDir: string, target: object): {
|
|
43
|
+
confidence: string;
|
|
44
|
+
scanDir: string;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Resolve the most appropriate scan directory for a cloned target repository.
|
|
48
|
+
*
|
|
49
|
+
* @param {string} cloneDir cloned repository root
|
|
50
|
+
* @param {object} target audit target
|
|
51
|
+
* @param {object} resolution repository resolution metadata
|
|
52
|
+
* @returns {{ confidence: string, scanDir: string }} selected directory and confidence
|
|
53
|
+
*/
|
|
54
|
+
export function resolveTargetSourceDirectory(cloneDir: string, target: object, resolution: object): {
|
|
55
|
+
confidence: string;
|
|
56
|
+
scanDir: string;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Build shallow predictive findings for suspicious Python packaging files.
|
|
60
|
+
*
|
|
61
|
+
* Phase 1 intentionally focuses on high-signal packaging surfaces (`setup.py`
|
|
62
|
+
* and package `__init__.py`) until deeper Python static analysis is added.
|
|
63
|
+
*
|
|
64
|
+
* @param {string} scanDir cloned repository scan directory
|
|
65
|
+
* @param {object} target audit target
|
|
66
|
+
* @returns {object[]} predictive findings
|
|
67
|
+
*/
|
|
68
|
+
export function buildPythonSourceHeuristicFindings(scanDir: string, target: object): object[];
|
|
69
|
+
/**
|
|
70
|
+
* Analyze a single purl target by generating a child SBOM and auditing it.
|
|
71
|
+
*
|
|
72
|
+
* @param {object} target audit target
|
|
73
|
+
* @param {object} options CLI options
|
|
74
|
+
* @returns {Promise<object>} analyzed target result
|
|
75
|
+
*/
|
|
76
|
+
export function auditTarget(target: object, options: object): Promise<object>;
|
|
77
|
+
export function groupAuditResults(results: any): any[];
|
|
78
|
+
/**
|
|
79
|
+
* Run the predictive audit flow from one or more already-loaded CycloneDX BOM inputs.
|
|
80
|
+
*
|
|
81
|
+
* @param {{ source: string, bomJson: object }[]} inputBoms loaded CycloneDX BOM objects
|
|
82
|
+
* @param {object} options CLI options
|
|
83
|
+
* @returns {Promise<object>} aggregate audit report
|
|
84
|
+
*/
|
|
85
|
+
export function runAuditFromBoms(inputBoms: {
|
|
86
|
+
source: string;
|
|
87
|
+
bomJson: object;
|
|
88
|
+
}[], options: object): Promise<object>;
|
|
89
|
+
/**
|
|
90
|
+
* Run the predictive audit flow from one or more CycloneDX BOM inputs.
|
|
91
|
+
*
|
|
92
|
+
* @param {object} options CLI options
|
|
93
|
+
* @returns {Promise<object>} aggregate audit report
|
|
94
|
+
*/
|
|
95
|
+
export function runAudit(options: object): Promise<object>;
|
|
96
|
+
/**
|
|
97
|
+
* Render a report and compute the proper process exit code.
|
|
98
|
+
*
|
|
99
|
+
* @param {object} report aggregate report
|
|
100
|
+
* @param {object} options CLI options
|
|
101
|
+
* @returns {{ exitCode: number, output: string }} rendered output and exit code
|
|
102
|
+
*/
|
|
103
|
+
export function finalizeAuditReport(report: object, options: object): {
|
|
104
|
+
exitCode: number;
|
|
105
|
+
output: string;
|
|
106
|
+
};
|
|
107
|
+
/**
|
|
108
|
+
* Build a result file name for user-provided report output paths.
|
|
109
|
+
*
|
|
110
|
+
* @param {object} options CLI options
|
|
111
|
+
* @returns {string | undefined} output file path
|
|
112
|
+
*/
|
|
113
|
+
export function defaultOutputFile(options: object): string | undefined;
|
|
114
|
+
export const DEFAULT_AUDIT_CATEGORIES: string[];
|
|
115
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/audit/index.js"],"names":[],"mappings":"AAyFA;;;;;GAKG;AACH,qCAHW,MAAM,GACJ,MAAM,CAclB;AAED;;;;;GAKG;AACH,qCAHW,MAAM,GACJ,MAAM,EAAE,CAoBpB;AAED;;;;;GAKG;AACH,uCAHW,MAAM,GACJ;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CA0BjD;AAkbD;;;;;;;;GAQG;AACH,mDAHW,MAAM,GACJ,MAAM,EAAE,CAwXpB;AAgJD;;;;;;GAMG;AACH,uDAJW,MAAM,UACN,MAAM,GACJ;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA0CnD;AAED;;;;;;;GAOG;AACH,uDALW,MAAM,UACN,MAAM,cACN,MAAM,GACJ;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAuBnD;AAoED;;;;;;;;;GASG;AACH,4DAJW,MAAM,UACN,MAAM,GACJ,MAAM,EAAE,CAkEpB;AAuBD;;;;;;GAMG;AACH,oCAJW,MAAM,WACN,MAAM,GACJ,OAAO,CAAC,MAAM,CAAC,CAgN3B;AAgJD,uDA2BC;AAoBD;;;;;;GAMG;AACH,4CAJW;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,WACrC,MAAM,GACJ,OAAO,CAAC,MAAM,CAAC,CAkF3B;AAED;;;;;GAKG;AACH,kCAHW,MAAM,GACJ,OAAO,CAAC,MAAM,CAAC,CAe3B;AAED;;;;;;GAMG;AACH,4CAJW,MAAM,WACN,MAAM,GACJ;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAmBhD;AAED;;;;;GAKG;AACH,2CAHW,MAAM,GACJ,MAAM,GAAG,SAAS,CAU9B;AAn1DD,gDAIE"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build a human-readable label for an audit target.
|
|
3
|
+
*
|
|
4
|
+
* @param {object} target audit target
|
|
5
|
+
* @returns {string} formatted target label
|
|
6
|
+
*/
|
|
7
|
+
export function formatTargetLabel(target: object): string;
|
|
8
|
+
/**
|
|
9
|
+
* Decide if interactive progress should be shown.
|
|
10
|
+
*
|
|
11
|
+
* @param {object} [options] progress options
|
|
12
|
+
* @returns {boolean} true when spinner-style progress is appropriate
|
|
13
|
+
*/
|
|
14
|
+
export function shouldRenderProgress(options?: object): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Create a dependency-free progress renderer for cdx-audit.
|
|
17
|
+
*
|
|
18
|
+
* Progress is always written to stderr so JSON/stdout reports remain clean.
|
|
19
|
+
*
|
|
20
|
+
* @param {object} [options] progress options
|
|
21
|
+
* @returns {{ onProgress: Function, stop: Function }} progress controller
|
|
22
|
+
*/
|
|
23
|
+
export function createProgressTracker(options?: object): {
|
|
24
|
+
onProgress: Function;
|
|
25
|
+
stop: Function;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../lib/audit/progress.js"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,0CAHW,MAAM,GACJ,MAAM,CAMlB;AAED;;;;;GAKG;AACH,+CAHW,MAAM,GACJ,OAAO,CAWnB;AAED;;;;;;;GAOG;AACH,gDAHW,MAAM,GACJ;IAAE,UAAU,WAAW;IAAC,IAAI,WAAU;CAAE,CAgGpD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export function renderSarifReport(report: any, options?: {}): string;
|
|
2
|
+
/**
|
|
3
|
+
* Render an audit report as pretty JSON.
|
|
4
|
+
*
|
|
5
|
+
* @param {object} report aggregate report
|
|
6
|
+
* @returns {string} JSON output
|
|
7
|
+
*/
|
|
8
|
+
export function renderJsonReport(report: object): string;
|
|
9
|
+
/**
|
|
10
|
+
* Render an audit report for terminal output.
|
|
11
|
+
*
|
|
12
|
+
* @param {object} report aggregate report
|
|
13
|
+
* @param {object} options render options
|
|
14
|
+
* @returns {string} console report text
|
|
15
|
+
*/
|
|
16
|
+
export function renderConsoleReport(report: object, options?: object): string;
|
|
17
|
+
/**
|
|
18
|
+
* Render the requested report format.
|
|
19
|
+
*
|
|
20
|
+
* @param {string} reportType format name
|
|
21
|
+
* @param {object} report aggregate report
|
|
22
|
+
* @param {object} options render options
|
|
23
|
+
* @returns {string} rendered report
|
|
24
|
+
*/
|
|
25
|
+
export function renderAuditReport(reportType: string, report: object, options?: object): string;
|
|
26
|
+
/**
|
|
27
|
+
* Convert predictive audit results into CycloneDX annotations.
|
|
28
|
+
*
|
|
29
|
+
* @param {object} report aggregate audit report
|
|
30
|
+
* @param {object} bomJson root CycloneDX BOM
|
|
31
|
+
* @param {object} [options] annotation options
|
|
32
|
+
* @returns {object[]} annotations
|
|
33
|
+
*/
|
|
34
|
+
export function formatPredictiveAnnotations(report: object, bomJson: object, options?: object): object[];
|
|
35
|
+
//# sourceMappingURL=reporters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporters.d.ts","sourceRoot":"","sources":["../../../lib/audit/reporters.js"],"names":[],"mappings":"AA0ZA,qEAkDC;AAED;;;;;GAKG;AACH,yCAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;;;;GAMG;AACH,4CAJW,MAAM,YACN,MAAM,GACJ,MAAM,CAkClB;AAED;;;;;;;GAOG;AACH,8CALW,MAAM,UACN,MAAM,YACN,MAAM,GACJ,MAAM,CAUlB;AAED;;;;;;;GAOG;AACH,oDALW,MAAM,WACN,MAAM,YACN,MAAM,GACJ,MAAM,EAAE,CAgFpB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert a numeric confidence score into a human readable label.
|
|
3
|
+
*
|
|
4
|
+
* @param {number} confidence confidence score
|
|
5
|
+
* @returns {string} confidence label
|
|
6
|
+
*/
|
|
7
|
+
export function confidenceLabel(confidence: number): string;
|
|
8
|
+
/**
|
|
9
|
+
* Check if a severity meets the given threshold.
|
|
10
|
+
*
|
|
11
|
+
* @param {string} severity severity to compare
|
|
12
|
+
* @param {string} threshold threshold severity
|
|
13
|
+
* @returns {boolean} true if severity is at or above threshold
|
|
14
|
+
*/
|
|
15
|
+
export function severityMeetsThreshold(severity: string, threshold: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Conservatively score predictive supply-chain risk for a single target.
|
|
18
|
+
*
|
|
19
|
+
* High and critical require corroboration across categories and strong findings,
|
|
20
|
+
* which keeps false positives low.
|
|
21
|
+
*
|
|
22
|
+
* @param {object[]} findings post-generation audit findings
|
|
23
|
+
* @param {object} target target metadata
|
|
24
|
+
* @param {object} context additional scan context
|
|
25
|
+
* @returns {object} conservative risk assessment
|
|
26
|
+
*/
|
|
27
|
+
export function scoreTargetRisk(findings: object[], target: object, context?: object): object;
|
|
28
|
+
export namespace SEVERITY_ORDER {
|
|
29
|
+
let none: number;
|
|
30
|
+
let low: number;
|
|
31
|
+
let medium: number;
|
|
32
|
+
let high: number;
|
|
33
|
+
let critical: number;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=scoring.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scoring.d.ts","sourceRoot":"","sources":["../../../lib/audit/scoring.js"],"names":[],"mappings":"AAyDA;;;;;GAKG;AACH,4CAHW,MAAM,GACJ,MAAM,CAUlB;AAED;;;;;;GAMG;AACH,iDAJW,MAAM,aACN,MAAM,GACJ,OAAO,CAMnB;AAED;;;;;;;;;;GAUG;AACH,0CALW,MAAM,EAAE,UACR,MAAM,YACN,MAAM,GACJ,MAAM,CAsNlB"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Determine whether a CycloneDX component scope should be treated as required.
|
|
3
|
+
*
|
|
4
|
+
* Missing scope is treated as required to match the main BOM filtering flow.
|
|
5
|
+
*
|
|
6
|
+
* @param {string | undefined} scope component scope
|
|
7
|
+
* @returns {boolean} true when the component is required for predictive audit selection
|
|
8
|
+
*/
|
|
9
|
+
export function isRequiredComponentScope(scope: string | undefined): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Normalize package names for safe matching and grouping.
|
|
12
|
+
*
|
|
13
|
+
* @param {string | undefined} packageName package name
|
|
14
|
+
* @returns {string} normalized package name
|
|
15
|
+
*/
|
|
16
|
+
export function normalizePackageName(packageName: string | undefined): string;
|
|
17
|
+
/**
|
|
18
|
+
* Extract npm and PyPI package-url targets from a CycloneDX BOM.
|
|
19
|
+
*
|
|
20
|
+
* @param {object} bomJson CycloneDX BOM
|
|
21
|
+
* @param {string} sourceName source BOM path or label
|
|
22
|
+
* @param {number | object | undefined} [options] selector options
|
|
23
|
+
* @returns {{ targets: object[], skipped: object[] }} extracted targets and skipped components
|
|
24
|
+
*/
|
|
25
|
+
export function extractPurlTargetsFromBom(bomJson: object, sourceName: string, options?: number | object | undefined): {
|
|
26
|
+
targets: object[];
|
|
27
|
+
skipped: object[];
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Merge targets across many BOMs by purl.
|
|
31
|
+
*
|
|
32
|
+
* @param {{ source: string, bomJson: object }[]} inputBoms input BOMs
|
|
33
|
+
* @param {number | object | undefined} [options] selector options or a legacy maxTargets value
|
|
34
|
+
* @returns {{
|
|
35
|
+
* skipped: object[],
|
|
36
|
+
* stats: {
|
|
37
|
+
* availableTargets: number,
|
|
38
|
+
* nonRequiredTargets: number,
|
|
39
|
+
* requiredTargets: number,
|
|
40
|
+
* trustedTargets: number,
|
|
41
|
+
* trustedTargetsExcluded: number,
|
|
42
|
+
* truncatedTargets: number,
|
|
43
|
+
* },
|
|
44
|
+
* targets: object[],
|
|
45
|
+
* }} merged targets and skipped components
|
|
46
|
+
*/
|
|
47
|
+
export function collectAuditTargets(inputBoms: {
|
|
48
|
+
source: string;
|
|
49
|
+
bomJson: object;
|
|
50
|
+
}[], options?: number | object | undefined): {
|
|
51
|
+
skipped: object[];
|
|
52
|
+
stats: {
|
|
53
|
+
availableTargets: number;
|
|
54
|
+
nonRequiredTargets: number;
|
|
55
|
+
requiredTargets: number;
|
|
56
|
+
trustedTargets: number;
|
|
57
|
+
trustedTargetsExcluded: number;
|
|
58
|
+
truncatedTargets: number;
|
|
59
|
+
};
|
|
60
|
+
targets: object[];
|
|
61
|
+
};
|
|
62
|
+
export const SUPPORTED_PURL_TYPES: Set<string>;
|
|
63
|
+
//# sourceMappingURL=targets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../../../lib/audit/targets.js"],"names":[],"mappings":"AAqCA;;;;;;;GAOG;AACH,gDAHW,MAAM,GAAG,SAAS,GAChB,OAAO,CAOnB;AAyBD;;;;;GAKG;AACH,kDAHW,MAAM,GAAG,SAAS,GAChB,MAAM,CAOlB;AAED;;;;;;;GAOG;AACH,mDALW,MAAM,cACN,MAAM,YACN,MAAM,GAAG,MAAM,GAAG,SAAS,GACzB;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CA+DpD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,+CAfW;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,YACrC,MAAM,GAAG,MAAM,GAAG,SAAS,GACzB;IACR,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE;QACL,gBAAgB,EAAE,MAAM,CAAC;QACzB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,eAAe,EAAE,MAAM,CAAC;QACxB,cAAc,EAAE,MAAM,CAAC;QACvB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAkFH;AA7PD,+CAAsD"}
|
package/types/lib/cli/index.d.ts
CHANGED
|
@@ -242,6 +242,14 @@ export function createCsharpBom(path: string, options: Object): Promise<Object |
|
|
|
242
242
|
* @returns {Promise<Object>} Promise resolving to BOM object
|
|
243
243
|
*/
|
|
244
244
|
export function createVscodeExtensionBom(path: string, options: Object): Promise<Object>;
|
|
245
|
+
/**
|
|
246
|
+
* Function to create BOM for installed Chrome and Chromium-based browser extensions.
|
|
247
|
+
*
|
|
248
|
+
* @param {string} path to the project path or a directly provided extension path
|
|
249
|
+
* @param {Object} options Parse options from the cli
|
|
250
|
+
* @returns {Promise<Object>} Promise resolving to BOM object
|
|
251
|
+
*/
|
|
252
|
+
export function createChromeExtensionBom(path: string, options: Object): Promise<Object>;
|
|
245
253
|
/**
|
|
246
254
|
* Function to create bom object for cryptographic certificate files
|
|
247
255
|
*
|
|
@@ -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":"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"}
|