@cyclonedx/cdxgen 12.1.2 → 12.1.3

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.
Files changed (35) hide show
  1. package/README.md +10 -8
  2. package/bin/cdxgen.js +1 -1
  3. package/lib/cli/index.js +2 -2
  4. package/lib/evinser/evinser.js +2 -8
  5. package/lib/helpers/display.js +1 -1
  6. package/lib/helpers/envcontext.js +10 -2
  7. package/lib/helpers/utils.js +421 -86
  8. package/lib/helpers/utils.poku.js +179 -2
  9. package/lib/helpers/validator.js +8 -5
  10. package/lib/managers/docker.getConnection.poku.js +61 -0
  11. package/lib/managers/docker.js +36 -23
  12. package/lib/parsers/iri.js +1 -2
  13. package/lib/server/server.js +164 -34
  14. package/lib/server/server.poku.js +232 -10
  15. package/lib/stages/postgen/annotator.js +281 -3
  16. package/lib/stages/postgen/postgen.js +4 -7
  17. package/lib/third-party/arborist/lib/diff.js +1 -1
  18. package/lib/third-party/arborist/lib/node.js +1 -1
  19. package/lib/third-party/arborist/lib/yarn-lock.js +1 -1
  20. package/package.json +20 -326
  21. package/types/bin/dependencies.d.ts.map +1 -1
  22. package/types/lib/evinser/evinser.d.ts.map +1 -1
  23. package/types/lib/helpers/envcontext.d.ts.map +1 -1
  24. package/types/lib/helpers/utils.d.ts.map +1 -1
  25. package/types/lib/helpers/validator.d.ts.map +1 -1
  26. package/types/lib/managers/docker.d.ts.map +1 -1
  27. package/types/lib/parsers/iri.d.ts.map +1 -1
  28. package/types/lib/server/server.d.ts +14 -0
  29. package/types/lib/server/server.d.ts.map +1 -1
  30. package/types/lib/stages/postgen/annotator.d.ts.map +1 -1
  31. package/types/lib/stages/postgen/postgen.d.ts.map +1 -1
  32. package/bin/dependencies.js +0 -131
  33. package/bin/licenses.js +0 -78
  34. package/lib/helpers/dependencies.poku.js +0 -11
  35. package/lib/helpers/licenses.poku.js +0 -11
package/README.md CHANGED
@@ -1,3 +1,4 @@
1
+ [![SBOM](https://img.shields.io/badge/SBOM-with_%E2%9D%A4%EF%B8%8F_by_cdxgen-FF753D)](https://github.com/cdxgen/cdxgen)
1
2
  [![JSR][badge-jsr]][jsr-cdxgen]
2
3
  [![NPM][badge-npm]][npmjs-cdxgen]
3
4
  [![GitHub Releases][badge-github-releases]][github-releases]
@@ -50,13 +51,6 @@ Sections include:
50
51
 
51
52
  ## Usage
52
53
 
53
- ## For Contributors / Developers
54
-
55
- ```shell
56
- pnpm install
57
- pnpm dlx cdxgen
58
- ```
59
-
60
54
  ## Installing
61
55
 
62
56
  ```shell
@@ -78,7 +72,7 @@ $ brew install cdxgen
78
72
  If you are a [Winget][winget-homepage] user on windows, you can also install cdxgen via:
79
73
 
80
74
  ```shell
81
- $ winget install cdxgen
75
+ winget install cdxgen
82
76
  ```
83
77
 
84
78
  Deno and bun runtime can be used with limited support.
@@ -604,6 +598,14 @@ cdxgen is an OWASP Foundation production project.
604
598
 
605
599
  [<img src="https://owasp.org/assets/images/logo.png" width="20%" />](https://owasp.org)
606
600
 
601
+ ## cdxgen badge
602
+
603
+ Copy the below block to your markdown files to show your ❤️ for cdxgen.
604
+
605
+ ```markdown
606
+ [![SBOM](https://img.shields.io/badge/SBOM-with_%E2%9D%A4%EF%B8%8F_by_cdxgen-FF753D)](https://github.com/cdxgen/cdxgen)
607
+ ```
608
+
607
609
  <!-- LINK LABELS -->
608
610
  <!-- Badges -->
609
611
 
package/bin/cdxgen.js CHANGED
@@ -1114,7 +1114,7 @@ const needsBomSigning = ({ generateKeyAndSign }) =>
1114
1114
  protobomModule.writeBinary(bomNSData.bomJson, options.protoBinFile);
1115
1115
  thoughtLog("BOM file is also available in .proto format!");
1116
1116
  }
1117
- if (options.print && bomNSData.bomJson && bomNSData.bomJson.components) {
1117
+ if (options.print && bomNSData.bomJson?.components) {
1118
1118
  printSummary(bomNSData.bomJson);
1119
1119
  if (options.includeFormulation) {
1120
1120
  printFormulation(bomNSData.bomJson);
package/lib/cli/index.js CHANGED
@@ -3957,7 +3957,7 @@ export async function createPythonBom(path, options) {
3957
3957
  metadataFilename = reqDirFiles.join(", ");
3958
3958
  } else if (reqFiles?.length) {
3959
3959
  for (const f of reqFiles) {
3960
- const dlist = await parseReqFile(f, true);
3960
+ const dlist = await parseReqFile(f, false);
3961
3961
  if (dlist?.length) {
3962
3962
  pkgList = pkgList.concat(dlist);
3963
3963
  }
@@ -7061,7 +7061,7 @@ export async function createCsharpBom(path, options) {
7061
7061
  }
7062
7062
  }
7063
7063
  // Parent dependency tree
7064
- if (parentDependsOn.size && parentComponent && parentComponent["bom-ref"]) {
7064
+ if (parentDependsOn.size && parentComponent?.["bom-ref"]) {
7065
7065
  dependencies.splice(0, 0, {
7066
7066
  ref: parentComponent["bom-ref"],
7067
7067
  dependsOn: Array.from(parentDependsOn).sort(),
@@ -1248,8 +1248,7 @@ export function detectServicesFromUsages(language, slice, servicesMap = {}) {
1248
1248
  export function detectServicesFromUDT(language, userDefinedTypes, servicesMap) {
1249
1249
  if (
1250
1250
  ["python", "py", "c", "cpp", "c++", "php", "ruby"].includes(language) &&
1251
- userDefinedTypes &&
1252
- userDefinedTypes.length
1251
+ userDefinedTypes?.length
1253
1252
  ) {
1254
1253
  for (const audt of userDefinedTypes) {
1255
1254
  if (
@@ -1270,12 +1269,7 @@ export function detectServicesFromUDT(language, userDefinedTypes, servicesMap) {
1270
1269
  audt.name.toLowerCase().includes("connect")
1271
1270
  ) {
1272
1271
  const fields = audt.fields || [];
1273
- if (
1274
- fields.length &&
1275
- fields[0] &&
1276
- fields[0].name &&
1277
- fields[0].name.length > 1
1278
- ) {
1272
+ if (fields.length && fields[0]?.name && fields[0].name.length > 1) {
1279
1273
  const endpoints = extractEndpoints(language, fields[0].name);
1280
1274
  let serviceName = "service";
1281
1275
  if (audt.fileName) {
@@ -14,7 +14,7 @@ const SYMBOLS_ANSI = {
14
14
 
15
15
  const MAX_TREE_DEPTH = 6;
16
16
  const highlightStr = (s, highlight) => {
17
- if (highlight && s && s.includes(highlight)) {
17
+ if (highlight && s?.includes(highlight)) {
18
18
  s = s.replaceAll(highlight, `\x1b[1;33m${highlight}\x1b[0m`);
19
19
  }
20
20
  return s;
@@ -200,9 +200,17 @@ export function collectDotnetInfo(dir) {
200
200
  * @returns Object containing python details
201
201
  */
202
202
  export function collectPythonInfo(dir) {
203
- const versionDesc = getCommandOutput(getPythonCommand(), dir, ["--version"]);
203
+ const versionDesc = getCommandOutput(getPythonCommand(), dir, [
204
+ "-S",
205
+ "--version",
206
+ ]);
204
207
  const moduleDesc =
205
- getCommandOutput(getPythonCommand(), dir, ["-m", "pip", "--version"]) || "";
208
+ getCommandOutput(getPythonCommand(), dir, [
209
+ "-S",
210
+ "-m",
211
+ "pip",
212
+ "--version",
213
+ ]) || "";
206
214
  if (versionDesc) {
207
215
  return {
208
216
  type: "platform",