diff --git a/bin/cdxgen.js b/bin/cdxgen.js index d77dc82c0..bd01e877c 100755 --- a/bin/cdxgen.js +++ b/bin/cdxgen.js @@ -167,6 +167,7 @@ const args = yargs(hideBin(process.argv)) }) .option("install-deps", { type: "boolean", + default: true, description: "Install dependencies automatically for some projects. Defaults to true but disabled for containers and oci scans. Use --no-install-deps to disable this feature.", }) @@ -506,7 +507,6 @@ const applyAdvancedOptions = (options) => { options.installDeps = true; break; default: - options.installDeps = true; break; } // When the user specifies source-code-analysis as a technique, then enable deep and evidence mode. diff --git a/lib/cli/index.js b/lib/cli/index.js index cbe8be6bc..d33d1ae78 100644 --- a/lib/cli/index.js +++ b/lib/cli/index.js @@ -2533,9 +2533,9 @@ export async function createNodejsBom(path, options) { const apkgRef = `pkg:npm/${adep}`; workspaceDirectDeps[workspaceRef].add(apkgRef); if (!depsWorkspaceRefs[apkgRef]) { - depsWorkspaceRefs[apkgRef] = new Set(); + depsWorkspaceRefs[apkgRef] = []; } - depsWorkspaceRefs[apkgRef].add(workspaceRef); + depsWorkspaceRefs[apkgRef].push(workspaceRef); } } } @@ -5986,7 +5986,11 @@ export function trimComponents(components) { const keyCache = {}; const filteredComponents = []; for (const comp of components) { - const key = comp.purl || comp["bom-ref"] || comp.name + comp.version; + const key = ( + comp.purl || + comp["bom-ref"] || + comp.name + comp.version + ).toLowerCase(); if (!keyCache[key]) { keyCache[key] = comp; } else { diff --git a/lib/helpers/utils.js b/lib/helpers/utils.js index 7591f9452..a488a4604 100644 --- a/lib/helpers/utils.js +++ b/lib/helpers/utils.js @@ -1968,6 +1968,59 @@ function _markTreeOptional( } } +function _setTreeWorkspaceRef( + dependenciesMap, + depref, + pkgRefMap, + wref, + wsrcFile, + depsWorkspaceRefs, +) { + for (const dref of dependenciesMap[depref] || []) { + const addedMap = {}; + const depPkg = pkgRefMap[dref]; + if (!depPkg) { + continue; + } + const wsprops = depPkg.properties.filter( + (p) => p.name === "internal:workspaceRef", + ); + if (wsprops.length) { + continue; + } + depPkg.properties = depPkg.properties || []; + for (const prop of depPkg.properties) { + addedMap[prop.value] = true; + } + if (!addedMap[wref]) { + depPkg.properties.push({ + name: "internal:workspaceRef", + value: wref, + }); + addedMap[wref] = true; + } + if (wsrcFile && !addedMap[wsrcFile]) { + depPkg.properties.push({ + name: "internal:workspaceSrcFile", + value: wsrcFile, + }); + addedMap[wsrcFile] = true; + } + depsWorkspaceRefs[dref] = depsWorkspaceRefs[dref] || []; + depsWorkspaceRefs[dref] = depsWorkspaceRefs[dref].concat( + dependenciesMap[depref] || [], + ); + _setTreeWorkspaceRef( + dependenciesMap, + dref, + pkgRefMap, + wref, + wsrcFile, + depsWorkspaceRefs, + ); + } +} + async function getVersionNumPnpm(depPkg, relativePath) { let version = depPkg; if (typeof version === "object" && depPkg.version) { @@ -2059,6 +2112,7 @@ export async function parsePnpmLock( const parentSubComponents = []; const srcFilesMap = {}; const workspacePackageNames = {}; + const pkgRefMap = {}; // Track references to packages that are directly installed from github.com const gitPkgRefs = {}; // pnpm could refer to packages from git sources @@ -2569,6 +2623,7 @@ export async function parsePnpmLock( } } const purlNoVersion = new PackageURL("npm", group, name).toString(); + let packageType = "library"; const theBomRef = decodeURIComponent(purlString); if ( workspacePackageNames[decodeURIComponent(purlNoVersion)] || @@ -2578,6 +2633,7 @@ export async function parsePnpmLock( name: "internal:is_workspace", value: "true", }); + packageType = "application"; const wsSrcFile = workspaceSrcFiles[decodeURIComponent(purlNoVersion)] || workspaceSrcFiles[theBomRef]; @@ -2634,6 +2690,7 @@ export async function parsePnpmLock( version: version, purl: purlString, "bom-ref": theBomRef, + type: packageType, scope, _integrity: integrity, properties, @@ -2651,7 +2708,11 @@ export async function parsePnpmLock( }, }, }; - pkgList.push(thePkg); + // Don't add internal workspace packages to the components list + if (thePkg.type !== "application") { + pkgList.push(thePkg); + } + pkgRefMap[thePkg["bom-ref"]] = thePkg; } } } @@ -2703,35 +2764,53 @@ export async function parsePnpmLock( if (requiredDependencies[apkg["bom-ref"]]) { apkg.scope = undefined; } - if (depsWorkspaceRefs[apkg["bom-ref"]]?.length) { + // There are no workspaces so exit early + if (!Object.keys(workspacePackageNames).length) { + continue; + } + const purlNoVersion = decodeURIComponent( + new PackageURL("npm", apkg.group, apkg.name).toString(), + ); + const wsRefs = + depsWorkspaceRefs[apkg["bom-ref"]] || depsWorkspaceRefs[purlNoVersion]; + // There is a workspace reference + if (wsRefs?.length) { const wsprops = apkg.properties.filter( (p) => p.name === "internal:workspaceRef", ); - if (!wsprops.length) { - for (const wref of depsWorkspaceRefs[apkg["bom-ref"]]) { - // Such a cycle should never happen, but we can't sure - if (wref === apkg["bom-ref"]) { - continue; - } + // workspace properties are already set. + if (wsprops.length) { + continue; + } + for (const wref of wsRefs) { + // Such a cycle should never happen, but we can't sure + if (wref === apkg["bom-ref"]) { + continue; + } + apkg.properties.push({ + name: "internal:workspaceRef", + value: wref, + }); + const purlObj = PackageURL.fromString(apkg.purl); + purlObj.version = undefined; + const wrefNoVersion = decodeURIComponent(purlObj.toString()); + const wsrcFile = + workspaceSrcFiles[wref] || workspaceSrcFiles[wrefNoVersion]; + if (wsrcFile) { apkg.properties.push({ - name: "internal:workspaceRef", - value: wref, + name: "internal:workspaceSrcFile", + value: wsrcFile, }); - const purlObj = PackageURL.fromString(apkg.purl); - purlObj.version = undefined; - const wrefNoVersion = decodeURIComponent(purlObj.toString()); - if (workspaceSrcFiles[wref]) { - apkg.properties.push({ - name: "internal:workspaceSrcFile", - value: workspaceSrcFiles[wref], - }); - } else if (workspaceSrcFiles[wrefNoVersion]) { - apkg.properties.push({ - name: "internal:workspaceSrcFile", - value: workspaceSrcFiles[wrefNoVersion], - }); - } } + // Repeat for the children + _setTreeWorkspaceRef( + dependenciesMap, + apkg["bom-ref"], + pkgRefMap, + wref, + wsrcFile, + depsWorkspaceRefs, + ); } } } @@ -4915,7 +4994,11 @@ export async function parsePyLockData(lockData, lockFile, pyProjectFile) { // This would help the lookup existingPkgMap[pkg.name.toLowerCase()] = pkg["bom-ref"]; pkgBomRefMap[pkg["bom-ref"]] = pkg; - pkgList.push(pkg); + // Do not repeat workspace components again under components + // This will reduce false positives, when a downstream tool attempts to analyze all components + if (pkg.type !== "application") { + pkgList.push(pkg); + } if (!depsMap[pkg["bom-ref"]]) { depsMap[pkg["bom-ref"]] = new Set(); } @@ -4928,10 +5011,33 @@ export async function parsePyLockData(lockData, lockFile, pyProjectFile) { depsMap[pkgParentRef].add(pkg["bom-ref"]); } } - if (apkg.dependencies) { + let optionalDependencies = []; + let devDependencies = []; + if (apkg["dev-dependencies"]) { + for (const agroup of Object.keys(apkg["dev-dependencies"])) { + devDependencies = devDependencies.concat( + apkg["dev-dependencies"][agroup], + ); + } + } + if (apkg["optional-dependencies"]) { + for (const agroup of Object.keys(apkg["optional-dependencies"])) { + optionalDependencies = optionalDependencies.concat( + apkg["optional-dependencies"][agroup], + ); + } + } + if ( + apkg.dependencies || + devDependencies.length || + optionalDependencies.length + ) { if (Array.isArray(apkg.dependencies)) { // pdm.lock files - for (const apkgDep of apkg.dependencies) { + let allDeps = apkg.dependencies; + allDeps = allDeps.concat(devDependencies); + allDeps = allDeps.concat(optionalDependencies); + for (const apkgDep of allDeps) { // Example: "msgpack>=0.5.2" const nameStr = apkgDep.name || apkgDep.split(/(==|<=|~=|>=)/)[0].split(" ")[0]; @@ -4944,6 +5050,18 @@ export async function parsePyLockData(lockData, lockFile, pyProjectFile) { const dependentPkg = pkgBomRefMap[existingPkgMap[nameStr]]; dependentPkg.properties = dependentPkg.properties || []; const addedValue = {}; + // Is the parent a workspace + if (workspaceComponentMap[pkg.name]) { + dependentPkg.properties.push({ + name: "internal:workspaceRef", + value: pkg["bom-ref"], + }); + dependentPkg.properties.push({ + name: "internal:workspaceSrcFile", + value: workspaceRefPyProjMap[pkg["bom-ref"]], + }); + addedValue[pkg["bom-ref"]] = true; + } for (const pprop of pkg.properties) { if ( pprop.name.startsWith("internal:workspace") && @@ -4955,14 +5073,13 @@ export async function parsePyLockData(lockData, lockFile, pyProjectFile) { } } } - } else if (Object.keys(apkg.dependencies).length) { + } else if (pkg.dependencies && Object.keys(apkg.dependencies).length) { for (const apkgDep of Object.keys(apkg.dependencies)) { depsMap[pkg["bom-ref"]].add(existingPkgMap[apkgDep] || apkgDep); } } } } - pkgList = await getPyMetadata(pkgList, false); for (const key of Object.keys(depsMap)) { const dependsOnList = new Set(); const parentPkg = pkgBomRefMap[key]; @@ -4995,6 +5112,35 @@ export async function parsePyLockData(lockData, lockFile, pyProjectFile) { ) { dependentPkg.properties.push(pprop); addedValue[pprop.value] = true; + } else if (pprop.name === "internal:is_workspace") { + dependentPkg.properties.push({ + name: "internal:workspaceRef", + value: parentPkg["bom-ref"], + }); + dependentPkg.properties.push({ + name: "internal:workspaceSrcFile", + value: workspaceRefPyProjMap[parentPkg["bom-ref"]], + }); + addedValue[parentPkg["bom-ref"]] = true; + addedValue[workspaceRefPyProjMap[parentPkg["bom-ref"]]] = true; + const childDeps = depsMap[dependentPkg["bom-ref"]]; + for (const childRef of childDeps) { + if (!childRef.startsWith("pkg:")) { + continue; + } + const childPkg = pkgBomRefMap[childRef]; + if (childPkg) { + childPkg.properties = childPkg.properties || []; + childPkg.properties.push({ + name: "internal:workspaceRef", + value: parentPkg["bom-ref"], + }); + childPkg.properties.push({ + name: "internal:workspaceSrcFile", + value: workspaceRefPyProjMap[parentPkg["bom-ref"]], + }); + } + } } } } @@ -5004,6 +5150,7 @@ export async function parsePyLockData(lockData, lockFile, pyProjectFile) { dependsOn: [...dependsOnList].sort(), }); } + pkgList = await getPyMetadata(pkgList, false); return { parentComponent, pkgList, @@ -9367,17 +9514,43 @@ export function parseCsProjAssetsData(csProjData, assetsJsonFile) { continue; } const targetNameVersion = `${nameOperatorVersion.name}/${nameOperatorVersion.version}`; - - // skip if the dep is not in the targets for whatever reason + let nameToUse = nameOperatorVersion.name; + // Due to the difference in casing, we might arrive this case where a simple lookup doesn't succeed. + // Instead of skipping, let's work harder to find a match. if (!csProjData.targets[frameworkTarget][targetNameVersion]) { - continue; + let matchFound = false; + for (const fkeys of Object.keys( + csProjData.targets[frameworkTarget], + )) { + const tmpParts = fkeys.split("/"); + const tname = tmpParts[0]; + const tversion = tmpParts[1]; + if ( + tname.toLowerCase() === nameOperatorVersion.name.toLowerCase() && + tversion === nameOperatorVersion.version + ) { + nameToUse = tname; + matchFound = true; + break; + } + } + if (!matchFound) { + if (DEBUG_MODE) { + console.log( + "Unable to match", + dependencyName, + "with a target name. The dependency tree will be imprecise.", + ); + } + continue; + } } const dpurl = decodeURIComponent( new PackageURL( "nuget", "", - nameOperatorVersion.name, + nameToUse, nameOperatorVersion.version, null, null, diff --git a/lib/helpers/utils.test.js b/lib/helpers/utils.test.js index d696f6f5a..110f0df08 100644 --- a/lib/helpers/utils.test.js +++ b/lib/helpers/utils.test.js @@ -3498,6 +3498,7 @@ test("parsePnpmLock", async () => { "bom-ref": "pkg:npm/@babel/code-frame@7.10.1", purl: "pkg:npm/%40babel/code-frame@7.10.1", scope: undefined, + type: "library", version: "7.10.1", properties: [ { @@ -3530,6 +3531,7 @@ test("parsePnpmLock", async () => { "bom-ref": "pkg:npm/@babel/code-frame@7.16.7", purl: "pkg:npm/%40babel/code-frame@7.16.7", scope: "optional", + type: "library", version: "7.16.7", properties: [ { @@ -3561,6 +3563,7 @@ test("parsePnpmLock", async () => { "bom-ref": "pkg:npm/ansi-regex@2.1.1", purl: "pkg:npm/ansi-regex@2.1.1", scope: undefined, + type: "library", _integrity: "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", properties: [{ name: "SrcFile", value: "./test/data/pnpm-lock2.yaml" }], evidence: { @@ -3597,6 +3600,7 @@ test("parsePnpmLock", async () => { "bom-ref": "pkg:npm/@nodelib/fs.scandir@2.1.5", purl: "pkg:npm/%40nodelib/fs.scandir@2.1.5", scope: undefined, + type: "library", _integrity: "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", properties: [{ name: "SrcFile", value: "./test/data/pnpm-lock3.yaml" }], @@ -3632,6 +3636,7 @@ test("parsePnpmLock", async () => { "bom-ref": "pkg:npm/@babel/code-frame@7.18.6", purl: "pkg:npm/%40babel/code-frame@7.18.6", scope: "optional", + type: "library", _integrity: "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", properties: [{ name: "SrcFile", value: "./test/data/pnpm-lock6.yaml" }], @@ -3656,6 +3661,7 @@ test("parsePnpmLock", async () => { "bom-ref": "pkg:npm/yargs@17.7.1", purl: "pkg:npm/yargs@17.7.1", scope: "optional", + type: "library", _integrity: "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", properties: [{ name: "SrcFile", value: "./test/data/pnpm-lock6.yaml" }], @@ -3683,6 +3689,7 @@ test("parsePnpmLock", async () => { "bom-ref": "pkg:npm/@babel/code-frame@7.18.6", purl: "pkg:npm/%40babel/code-frame@7.18.6", scope: "optional", + type: "library", _integrity: "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", properties: [{ name: "SrcFile", value: "./test/data/pnpm-lock6a.yaml" }], @@ -3764,6 +3771,7 @@ test("parsePnpmLock", async () => { version: "2.3.0", purl: "pkg:npm/%40ampproject/remapping@2.3.0", "bom-ref": "pkg:npm/@ampproject/remapping@2.3.0", + type: "library", _integrity: "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", properties: [{ name: "SrcFile", value: "./pnpm-lock.yaml" }], diff --git a/lib/helpers/validator.js b/lib/helpers/validator.js index 71cfa44aa..511de56a1 100644 --- a/lib/helpers/validator.js +++ b/lib/helpers/validator.js @@ -1,11 +1,11 @@ import { readFileSync } from "node:fs"; -import { dirname, join } from "node:path"; +import { join } from "node:path"; import Ajv from "ajv"; import addFormats from "ajv-formats"; import { PackageURL } from "packageurl-js"; import { DEBUG_MODE, dirNameStr, isPartialTree } from "./utils.js"; -import { URL, fileURLToPath } from "node:url"; +import { URL } from "node:url"; let url = import.meta.url; if (!url.startsWith("file://")) { url = new URL(`file://${import.meta.url}`).toString(); @@ -58,7 +58,10 @@ export const validateBom = (bomJson) => { } // Deep validation tests return ( - validateMetadata(bomJson) && validatePurls(bomJson) && validateRefs(bomJson) + validateMetadata(bomJson) && + validatePurls(bomJson) && + validateRefs(bomJson) && + validateProps(bomJson) ); }; @@ -266,3 +269,61 @@ export const validateRefs = (bomJson) => { } return true; }; + +/** + * Validate the component properties + * + * @param {object} bomJson Bom json object + */ +export function validateProps(bomJson) { + const errorList = []; + const warningsList = []; + let isWorkspaceMode = false; + if (bomJson?.components) { + for (const comp of bomJson.components) { + if (!["library", "framework"].includes(comp.type)) { + continue; + } + if (!comp.properties) { + warningsList.push(`${comp["bom-ref"]} lacks properties.`); + } else { + let srcFilePropFound = false; + let workspacePropFound = false; + for (const p of comp.properties) { + if (p.name === "SrcFile") { + srcFilePropFound = true; + } + if (p.name === "internal:workspaceRef") { + isWorkspaceMode = true; + workspacePropFound = true; + } + } + if ( + isWorkspaceMode && + !workspacePropFound && + !srcFilePropFound && + comp?.scope !== "optional" + ) { + warningsList.push( + `${comp["bom-ref"]} lacks workspace-related properties.`, + ); + } + if (!srcFilePropFound) { + warningsList.push(`${comp["bom-ref"]} lacks SrcFile property.`); + } + } + if (!comp.evidence) { + warningsList.push(`${comp["bom-ref"]} lacks evidence.`); + } + } + } + if (DEBUG_MODE && warningsList.length !== 0) { + console.log("===== WARNINGS ====="); + console.log(warningsList); + } + if (errorList.length !== 0) { + console.log(errorList); + return false; + } + return true; +} diff --git a/types/lib/cli/index.d.ts.map b/types/lib/cli/index.d.ts.map index bbe2c4568..b6d9f4655 100644 --- a/types/lib/cli/index.d.ts.map +++ b/types/lib/cli/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/cli/index.js"],"names":[],"mappings":"AAqxBA;;;;;;;;GAQG;AACH,gFAFW,MAAM,SAchB;AAuXD;;;;;;;GAOG;AACH,mCALW,MAAM,qBAiEhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM;;;;EAKhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM;;;;EAkBhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAs7BhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BAopBhB;AAED;;;;;;;;;;GAUG;AACH,+DAsEC;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA+dhB;AAED;;;;;GAKG;AACH,kCAHW,MAAM,8BA+YhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAqIhB;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,8BA6FhB;AAED;;;;;GAKG;AACH,iDAHW,MAAM,qBAmUhB;AAED;;;;;GAKG;AACH,mCAHW,MAAM,qBAiJhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAqNhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BAkahB;AAED;;;;;GAKG;AACH,2CAHW,MAAM;;;;;;;;;;;;;;;;;;;;GAoChB;AAED;;;;;;;;KA+DC;AAED;;;;;;GAMG;AACH,yDAqFC;AAED;;;;;;;;;GASG;AACH,2GA6BC;AAED;;;;;GAKG;AACH,0CAHW,MAAM,EAAE,8BA2iBlB;AAED;;;;;GAKG;AACH,iCAHW,MAAM,8BAgUhB;AAED;;;;;GAKG;AACH,gCAHW,MAAM,qBAiPhB;AAED;;;;;;GAMG;AACH,wDAFY,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,CAAC,CAwHxE"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/cli/index.js"],"names":[],"mappings":"AAqxBA;;;;;;;;GAQG;AACH,gFAFW,MAAM,SAchB;AAuXD;;;;;;;GAOG;AACH,mCALW,MAAM,qBAiEhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM;;;;EAKhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM;;;;EAkBhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAs7BhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BAopBhB;AAED;;;;;;;;;;GAUG;AACH,+DAsEC;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA+dhB;AAED;;;;;GAKG;AACH,kCAHW,MAAM,8BA+YhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAqIhB;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,8BA6FhB;AAED;;;;;GAKG;AACH,iDAHW,MAAM,qBAmUhB;AAED;;;;;GAKG;AACH,mCAHW,MAAM,qBAiJhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAqNhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BAkahB;AAED;;;;;GAKG;AACH,2CAHW,MAAM;;;;;;;;;;;;;;;;;;;;GAoChB;AAED;;;;;;;;KA+DC;AAED;;;;;;GAMG;AACH,yDAyFC;AAED;;;;;;;;;GASG;AACH,2GA6BC;AAED;;;;;GAKG;AACH,0CAHW,MAAM,EAAE,8BA2iBlB;AAED;;;;;GAKG;AACH,iCAHW,MAAM,8BAgUhB;AAED;;;;;GAKG;AACH,gCAHW,MAAM,qBAiPhB;AAED;;;;;;GAMG;AACH,wDAFY,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,CAAC,CAwHxE"} \ No newline at end of file diff --git a/types/lib/helpers/utils.d.ts.map b/types/lib/helpers/utils.d.ts.map index c69821b8f..7aeb058e7 100644 --- a/types/lib/helpers/utils.d.ts.map +++ b/types/lib/helpers/utils.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/helpers/utils.js"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/helpers/utils.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/types/lib/helpers/validator.d.ts b/types/lib/helpers/validator.d.ts index 85c1b2115..5323a67a0 100644 --- a/types/lib/helpers/validator.d.ts +++ b/types/lib/helpers/validator.d.ts @@ -1,3 +1,9 @@ +/** + * Validate the component properties + * + * @param {object} bomJson Bom json object + */ +export function validateProps(bomJson: object): boolean; export function validateBom(bomJson: object): boolean; export function validateMetadata(bomJson: object): boolean; export function validatePurls(bomJson: object): boolean; diff --git a/types/lib/helpers/validator.d.ts.map b/types/lib/helpers/validator.d.ts.map index 15126e622..3b38ac9c9 100644 --- a/types/lib/helpers/validator.d.ts.map +++ b/types/lib/helpers/validator.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../lib/helpers/validator.js"],"names":[],"mappings":"AAmBO,qCAFI,MAAM,WA6ChB;AAOM,0CAFI,MAAM,WAwDhB;AAOM,uCAFI,MAAM,WAgEhB;AA6BM,sCAFI,MAAM,WAgDhB"} \ No newline at end of file +{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../lib/helpers/validator.js"],"names":[],"mappings":"AAgRA;;;;GAIG;AACH,uCAFW,MAAM,WAqDhB;AArTM,qCAFI,MAAM,WAgDhB;AAOM,0CAFI,MAAM,WAwDhB;AAOM,uCAFI,MAAM,WAgEhB;AA6BM,sCAFI,MAAM,WAgDhB"} \ No newline at end of file