@cyclonedx/cdxgen 11.0.2 → 11.0.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/README.md CHANGED
@@ -37,7 +37,7 @@ Our philosophy:
37
37
 
38
38
  ## Documentation
39
39
 
40
- Please visit our [documentation site][docs-homepage] for detailed usage, tutorials, and support documentation.
40
+ Please visit our [GPT app][cdxgen-gpt] or the [documentation site][docs-homepage] for detailed usage, tutorials, and support documentation.
41
41
 
42
42
  Sections include:
43
43
 
@@ -556,3 +556,4 @@ pnpm test
556
556
  [podman-github-rootless]: https://github.com/containers/podman/blob/master/docs/tutorials/rootless_tutorial.md
557
557
  [podman-github-remote]: https://github.com/containers/podman/blob/master/docs/tutorials/mac_win_client.md
558
558
  [swh-cdxgen]: https://archive.softwareheritage.org/browse/origin/?origin_url=https://github.com/CycloneDX/cdxgen
559
+ [cdxgen-gpt]: https://chatgpt.com/g/g-673bfeb4037481919be8a2cd1bf868d2-cyclonedx-generator-cdxgen
@@ -232,7 +232,8 @@
232
232
  "sbom": [
233
233
  {
234
234
  "test": [
235
- "(junit|xmlunit|testng|chai|mocha|jest|test4j|xunit|coverlet|Test\\.Sdk)"
235
+ "(junit|xmlunit|testng|mocha|jest|test4j|xunit|coverlet|Test\\.Sdk)",
236
+ "^(chai)$"
236
237
  ]
237
238
  },
238
239
  {
@@ -244,7 +245,9 @@
244
245
  { "parse": ["(parser)"] },
245
246
  { "transform": ["(transformer)"] },
246
247
  { "telemetry": ["(OpenTelemetry)"] },
247
- { "logging": ["(Microsoft\\.Extensions\\.Logging|Log4net)"] }
248
+ { "logging": ["(Microsoft\\.Extensions\\.Logging|Log4net)"] },
249
+ { "ml": ["^(llama|langchain|openai)", "(generativeai)"] },
250
+ { "devel": ["^(types-|typing-|virtualenv|ruff|poetry)"] }
248
251
  ],
249
252
  "obom": [
250
253
  {
@@ -60,6 +60,9 @@
60
60
  "pkg:pypi/botocore",
61
61
  "pkg:pypi/boto3",
62
62
  "pkg:pypi/azure",
63
+ "pkg:pypi/langchain",
64
+ "pkg:pypi/llama",
65
+ "pkg:pypi/sqlalchemy",
63
66
  "vibora",
64
67
  "koa",
65
68
  "-sdk",
package/lib/cli/index.js CHANGED
@@ -92,6 +92,7 @@ import {
92
92
  parseCljDep,
93
93
  parseCloudBuildData,
94
94
  parseCmakeLikeFile,
95
+ parseComposerJson,
95
96
  parseComposerLock,
96
97
  parseConanData,
97
98
  parseConanLockData,
@@ -240,11 +241,12 @@ const createDefaultParentComponent = (
240
241
  : dirname(path);
241
242
  const tmpA = dirNameStr.split(sep);
242
243
  dirNameStr = tmpA[tmpA.length - 1];
244
+ const compName = options.projectName || dirNameStr;
243
245
  const parentComponent = {
244
246
  group: options.projectGroup || "",
245
- name: options.projectName || dirNameStr,
247
+ name: compName,
246
248
  version: `${options.projectVersion}` || "latest",
247
- type: "application",
249
+ type: compName.endsWith(".tar") ? "container" : "application",
248
250
  };
249
251
  const ppurl = new PackageURL(
250
252
  type,
@@ -816,6 +818,7 @@ function addComponent(
816
818
  if (!isRootPkg) {
817
819
  const pkgIdentifier = parsePackageJsonName(pkg.name);
818
820
  const author = pkg.author || undefined;
821
+ const authors = pkg.authors || undefined;
819
822
  const publisher = pkg.publisher || undefined;
820
823
  let group = pkg.group || pkgIdentifier.scope;
821
824
  // Create empty group
@@ -868,6 +871,7 @@ function addComponent(
868
871
  }
869
872
  const component = {
870
873
  author,
874
+ authors,
871
875
  publisher,
872
876
  group,
873
877
  name,
@@ -919,6 +923,15 @@ function addComponent(
919
923
  component.authors = authorsList;
920
924
  delete component.author;
921
925
  }
926
+ // Downgrade authors section for < 1.5 :(
927
+ if (options.specVersion < 1.6) {
928
+ if (component?.authors?.length) {
929
+ component.author = component.authors
930
+ .map((a) => (a.email ? `${a.name} <${a.email}>` : a.name))
931
+ .join(",");
932
+ }
933
+ delete component.authors;
934
+ }
922
935
  // Retain any tags
923
936
  if (
924
937
  options.specVersion >= 1.6 &&
@@ -957,7 +970,6 @@ function determinePackageType(pkg) {
957
970
  // Retain the exact component type in certain cases.
958
971
  if (
959
972
  [
960
- "application",
961
973
  "container",
962
974
  "platform",
963
975
  "operating-system",
@@ -972,6 +984,12 @@ function determinePackageType(pkg) {
972
984
  ) {
973
985
  return pkg.type;
974
986
  }
987
+ if (pkg.type === "application") {
988
+ if (pkg?.name?.endsWith(".tar")) {
989
+ return "container";
990
+ }
991
+ return pkg.type;
992
+ }
975
993
  if (pkg.purl) {
976
994
  try {
977
995
  const purl = PackageURL.fromString(pkg.purl);
@@ -2253,7 +2271,11 @@ export async function createNodejsBom(path, options) {
2253
2271
  }
2254
2272
  }
2255
2273
  const pkgJsonLockFile = getAllFiles(path, "package-lock.json", options);
2256
- const pkgJsonFile = getAllFiles(path, "package.json", options);
2274
+ const pkgJsonFile = getAllFiles(
2275
+ path,
2276
+ `${options.multiProject ? "**/" : ""}package.json`,
2277
+ options,
2278
+ );
2257
2279
  const yarnLockFile = getAllFiles(path, "yarn.lock", options);
2258
2280
  const pnpmLockFile = getAllFiles(path, "pnpm-lock.yaml", options);
2259
2281
  if (
@@ -2265,7 +2287,7 @@ export async function createNodejsBom(path, options) {
2265
2287
  ) {
2266
2288
  let pkgMgr = "npm";
2267
2289
  const supPkgMgrs = ["npm", "yarn", "yarnpkg", "pnpm", "pnpx"];
2268
- const pkgData = JSON.parse(readFileSync(`${path}/package.json`, "utf8"));
2290
+ const pkgData = JSON.parse(readFileSync(pkgJsonFile[0], "utf8"));
2269
2291
  const mgrData = pkgData.packageManager;
2270
2292
  let mgr = "";
2271
2293
  let installArgs = ["install"];
@@ -2281,9 +2303,10 @@ export async function createNodejsBom(path, options) {
2281
2303
  process.env[`${pkgMgr.toUpperCase()}_INSTALL_ARGS`].split(" ");
2282
2304
  installArgs = installArgs.concat(addArgs);
2283
2305
  }
2284
- console.log(`Executing '${pkgMgr} ${installArgs.join(" ")}' in`, path);
2306
+ const basePath = dirname(pkgJsonFile[0]);
2307
+ console.log(`Executing '${pkgMgr} ${installArgs.join(" ")}' in`, basePath);
2285
2308
  const result = spawnSync(pkgMgr, installArgs, {
2286
- cwd: path,
2309
+ cwd: basePath,
2287
2310
  encoding: "utf-8",
2288
2311
  timeout: TIMEOUT_MS,
2289
2312
  maxBuffer: MAX_BUFFER,
@@ -4844,57 +4867,46 @@ export function createPHPBom(path, options) {
4844
4867
  options,
4845
4868
  );
4846
4869
  if (composerLockFiles.length) {
4870
+ // Look for any root composer.json to capture the parentComponent
4871
+ if (existsSync(join(path, "composer.json"))) {
4872
+ const { moduleParent } = parseComposerJson(join(path, "composer.json"));
4873
+ parentComponent = moduleParent;
4874
+ }
4847
4875
  for (const f of composerLockFiles) {
4848
4876
  const basePath = dirname(f);
4877
+ let moduleParent;
4849
4878
  if (DEBUG_MODE) {
4850
4879
  console.log(`Parsing ${f}`);
4851
4880
  }
4852
- let rootRequires = [];
4853
- // Is there a composer.json to find the parent component
4854
- if (
4855
- !Object.keys(parentComponent).length &&
4856
- existsSync(join(basePath, "composer.json"))
4857
- ) {
4858
- const composerData = JSON.parse(
4859
- readFileSync(join(basePath, "composer.json"), { encoding: "utf-8" }),
4860
- );
4861
- rootRequires = composerData.require;
4862
- const pkgName = composerData.name;
4863
- if (pkgName) {
4864
- parentComponent.group = dirname(pkgName);
4865
- if (parentComponent.group === ".") {
4866
- parentComponent.group = "";
4867
- }
4868
- parentComponent.name = basename(pkgName);
4869
- parentComponent.type = "application";
4870
- parentComponent.version = composerData.version || "latest";
4871
- parentComponent["bom-ref"] = decodeURIComponent(
4872
- new PackageURL(
4873
- "composer",
4874
- parentComponent.group,
4875
- parentComponent.name,
4876
- parentComponent.version,
4877
- null,
4878
- null,
4879
- ).toString(),
4880
- );
4881
+ const rootRequires = [];
4882
+ // Is there a composer.json to find the module parent component
4883
+ if (existsSync(join(basePath, "composer.json"))) {
4884
+ const retMap = parseComposerJson(join(basePath, "composer.json"));
4885
+ moduleParent = retMap.moduleParent;
4886
+ const rootRequires = retMap.rootRequires;
4887
+ // Track all the modules in a mono-repo
4888
+ if (!Object.keys(parentComponent).length) {
4889
+ parentComponent = moduleParent;
4890
+ } else {
4891
+ parentComponent.components = parentComponent.components || [];
4892
+ parentComponent.components.push(moduleParent);
4881
4893
  }
4882
4894
  }
4883
4895
  const retMap = parseComposerLock(f, rootRequires);
4884
4896
  if (retMap.pkgList?.length) {
4885
4897
  pkgList = pkgList.concat(retMap.pkgList);
4886
4898
  }
4899
+ if (!moduleParent) {
4900
+ moduleParent = createDefaultParentComponent(
4901
+ basePath,
4902
+ "composer",
4903
+ options,
4904
+ );
4905
+ }
4887
4906
  if (retMap.dependenciesList) {
4888
- if (!Object.keys(parentComponent).length) {
4889
- parentComponent = createDefaultParentComponent(
4890
- path,
4891
- "composer",
4892
- options,
4893
- );
4894
- }
4895
4907
  // Complete the dependency tree by making parent component depend on the first level
4896
4908
  const pdependencies = {
4897
- ref: parentComponent["bom-ref"],
4909
+ ref: moduleParent["bom-ref"],
4898
4910
  dependsOn: [
4899
4911
  ...new Set(retMap.rootList.map((p) => p["bom-ref"])),
4900
4912
  ].sort(),
@@ -4906,6 +4918,17 @@ export function createPHPBom(path, options) {
4906
4918
  );
4907
4919
  }
4908
4920
  }
4921
+ // Complete the root dependency tree
4922
+ if (parentComponent?.components?.length) {
4923
+ const parentDependsOn = parentComponent.components.map(
4924
+ (d) => d["bom-ref"],
4925
+ );
4926
+ dependencies = mergeDependencies(
4927
+ [{ ref: parentComponent["bom-ref"], dependsOn: parentDependsOn }],
4928
+ dependencies,
4929
+ parentComponent,
4930
+ );
4931
+ }
4909
4932
  return buildBomNSData(options, pkgList, "composer", {
4910
4933
  src: path,
4911
4934
  filename: composerLockFiles.join(", "),
@@ -6052,7 +6075,6 @@ export async function createXBom(path, options) {
6052
6075
  } catch (err) {
6053
6076
  return undefined;
6054
6077
  }
6055
- // node.js - package.json
6056
6078
  if (
6057
6079
  existsSync(join(path, "package.json")) ||
6058
6080
  existsSync(join(path, "rush.json")) ||
@@ -28,7 +28,7 @@ const typePurlsCache = {};
28
28
  *
29
29
  * @param {Object} options Command line options
30
30
  */
31
- export const prepareDB = async (options) => {
31
+ export async function prepareDB(options) {
32
32
  if (!options.dbPath.includes("memory") && !fs.existsSync(options.dbPath)) {
33
33
  try {
34
34
  fs.mkdirSync(options.dbPath, { recursive: true });
@@ -93,14 +93,14 @@ export const prepareDB = async (options) => {
93
93
  await createAndStoreSlice(purl, purlsJars, Usages, options);
94
94
  }
95
95
  return { sequelize, Namespaces, Usages, DataFlows };
96
- };
96
+ }
97
97
 
98
- export const catalogMavenDeps = async (
98
+ export async function catalogMavenDeps(
99
99
  dirPath,
100
100
  purlsJars,
101
101
  Namespaces,
102
102
  options = {},
103
- ) => {
103
+ ) {
104
104
  let jarNSMapping = undefined;
105
105
  if (fs.existsSync(path.join(dirPath, "bom.json.map"))) {
106
106
  try {
@@ -144,9 +144,9 @@ export const catalogMavenDeps = async (
144
144
  });
145
145
  }
146
146
  }
147
- };
147
+ }
148
148
 
149
- export const catalogGradleDeps = async (dirPath, purlsJars, Namespaces) => {
149
+ export async function catalogGradleDeps(dirPath, purlsJars, Namespaces) {
150
150
  console.log(
151
151
  "About to collect jar dependencies from the gradle cache. This would take a while ...",
152
152
  );
@@ -180,14 +180,14 @@ export const catalogGradleDeps = async (dirPath, purlsJars, Namespaces) => {
180
180
  console.log(
181
181
  "To speed up successive re-runs, pass the argument --skip-maven-collector to evinse command.",
182
182
  );
183
- };
183
+ }
184
184
 
185
- export const createAndStoreSlice = async (
185
+ export async function createAndStoreSlice(
186
186
  purl,
187
187
  purlsJars,
188
188
  Usages,
189
189
  options = {},
190
- ) => {
190
+ ) {
191
191
  const retMap = createSlice(purl, purlsJars[purl], "usages", options);
192
192
  let sliceData = undefined;
193
193
  if (retMap?.slicesFile && fs.existsSync(retMap.slicesFile)) {
@@ -203,14 +203,14 @@ export const createAndStoreSlice = async (
203
203
  fs.rmSync(retMap.tempDir, { recursive: true, force: true });
204
204
  }
205
205
  return sliceData;
206
- };
206
+ }
207
207
 
208
- export const createSlice = (
208
+ export async function createSlice(
209
209
  purlOrLanguages,
210
210
  filePath,
211
211
  sliceType = "usages",
212
212
  options = {},
213
- ) => {
213
+ ) {
214
214
  if (!filePath) {
215
215
  return;
216
216
  }
@@ -290,9 +290,9 @@ export const createSlice = (
290
290
  slicesFile,
291
291
  atomFile,
292
292
  };
293
- };
293
+ }
294
294
 
295
- export const purlToLanguage = (purl, filePath) => {
295
+ export function purlToLanguage(purl, filePath) {
296
296
  let language = undefined;
297
297
  const purlObj = PackageURL.fromString(purl);
298
298
  switch (purlObj.type) {
@@ -312,9 +312,9 @@ export const purlToLanguage = (purl, filePath) => {
312
312
  language = "c";
313
313
  }
314
314
  return language;
315
- };
315
+ }
316
316
 
317
- export const initFromSbom = (components, language) => {
317
+ export function initFromSbom(components, language) {
318
318
  const purlLocationMap = {};
319
319
  const purlImportsMap = {};
320
320
  for (const comp of components) {
@@ -344,7 +344,7 @@ export const initFromSbom = (components, language) => {
344
344
  purlLocationMap,
345
345
  purlImportsMap,
346
346
  };
347
- };
347
+ }
348
348
 
349
349
  /**
350
350
  * Function to analyze the project
@@ -352,7 +352,7 @@ export const initFromSbom = (components, language) => {
352
352
  * @param {Object} dbObjMap DB and model instances
353
353
  * @param {Object} options Command line options
354
354
  */
355
- export const analyzeProject = async (dbObjMap, options) => {
355
+ export async function analyzeProject(dbObjMap, options) {
356
356
  const dirPath = options._[0] || ".";
357
357
  const languages = options.language;
358
358
  const language = Array.isArray(languages) ? languages[0] : languages;
@@ -502,16 +502,16 @@ export const analyzeProject = async (dbObjMap, options) => {
502
502
  cryptoComponents,
503
503
  cryptoGeneratePurls,
504
504
  };
505
- };
505
+ }
506
506
 
507
- export const parseObjectSlices = async (
507
+ export async function parseObjectSlices(
508
508
  language,
509
509
  usageSlice,
510
510
  dbObjMap,
511
511
  servicesMap = {},
512
512
  purlLocationMap = {},
513
513
  purlImportsMap = {},
514
- ) => {
514
+ ) {
515
515
  if (!usageSlice || !Object.keys(usageSlice).length) {
516
516
  return purlLocationMap;
517
517
  }
@@ -548,7 +548,7 @@ export const parseObjectSlices = async (
548
548
  servicesMap,
549
549
  userDefinedTypesMap,
550
550
  };
551
- };
551
+ }
552
552
 
553
553
  /**
554
554
  * The implementation of this function is based on the logic proposed in the atom slices specification
@@ -562,14 +562,14 @@ export const parseObjectSlices = async (
562
562
  * @param {Object} purlImportsMap Object to track package urls and their import aliases
563
563
  * @returns
564
564
  */
565
- export const parseSliceUsages = async (
565
+ export async function parseSliceUsages(
566
566
  language,
567
567
  userDefinedTypesMap,
568
568
  slice,
569
569
  dbObjMap,
570
570
  purlLocationMap,
571
571
  purlImportsMap,
572
- ) => {
572
+ ) {
573
573
  const fileName = slice.fileName;
574
574
  const typesToLookup = new Set();
575
575
  const lKeyOverrides = {};
@@ -764,7 +764,7 @@ export const parseSliceUsages = async (
764
764
  }
765
765
  }
766
766
  }
767
- };
767
+ }
768
768
 
769
769
  /**
770
770
  * Method to parse semantic slice data
@@ -887,11 +887,7 @@ function searchSymbolLocations(compSymbols, fileIndexes) {
887
887
  return searchHits;
888
888
  }
889
889
 
890
- export const isFilterableType = (
891
- language,
892
- userDefinedTypesMap,
893
- typeFullName,
894
- ) => {
890
+ export function isFilterableType(language, userDefinedTypesMap, typeFullName) {
895
891
  if (
896
892
  !typeFullName ||
897
893
  ["ANY", "UNKNOWN", "VOID", "IMPORT"].includes(typeFullName.toUpperCase())
@@ -956,7 +952,7 @@ export const isFilterableType = (
956
952
  return true;
957
953
  }
958
954
  return false;
959
- };
955
+ }
960
956
 
961
957
  /**
962
958
  * Method to detect services from annotation objects in the usage slice
@@ -965,7 +961,7 @@ export const isFilterableType = (
965
961
  * @param {Array} slice Usages array for each objectSlice
966
962
  * @param {Object} servicesMap Existing service map
967
963
  */
968
- export const detectServicesFromUsages = (language, slice, servicesMap = {}) => {
964
+ export function detectServicesFromUsages(language, slice, servicesMap = {}) {
969
965
  const usages = slice.usages;
970
966
  if (!usages) {
971
967
  return [];
@@ -1022,7 +1018,7 @@ export const detectServicesFromUsages = (language, slice, servicesMap = {}) => {
1022
1018
  }
1023
1019
  }
1024
1020
  }
1025
- };
1021
+ }
1026
1022
 
1027
1023
  /**
1028
1024
  * Method to detect services from user defined types in the usage slice
@@ -1031,11 +1027,7 @@ export const detectServicesFromUsages = (language, slice, servicesMap = {}) => {
1031
1027
  * @param {Array} userDefinedTypes User defined types
1032
1028
  * @param {Object} servicesMap Existing service map
1033
1029
  */
1034
- export const detectServicesFromUDT = (
1035
- language,
1036
- userDefinedTypes,
1037
- servicesMap,
1038
- ) => {
1030
+ export function detectServicesFromUDT(language, userDefinedTypes, servicesMap) {
1039
1031
  if (
1040
1032
  ["python", "py", "c", "cpp", "c++", "php"].includes(language) &&
1041
1033
  userDefinedTypes &&
@@ -1089,9 +1081,9 @@ export const detectServicesFromUDT = (
1089
1081
  }
1090
1082
  }
1091
1083
  }
1092
- };
1084
+ }
1093
1085
 
1094
- export const constructServiceName = (_language, slice) => {
1086
+ export function constructServiceName(_language, slice) {
1095
1087
  let serviceName = "service";
1096
1088
  if (slice?.fullName) {
1097
1089
  serviceName = slice.fullName.split(":")[0].replace(/\./g, "-");
@@ -1102,9 +1094,9 @@ export const constructServiceName = (_language, slice) => {
1102
1094
  serviceName = `${serviceName}-service`;
1103
1095
  }
1104
1096
  return serviceName;
1105
- };
1097
+ }
1106
1098
 
1107
- export const extractEndpoints = (language, code) => {
1099
+ export function extractEndpoints(language, code) {
1108
1100
  if (!code) {
1109
1101
  return undefined;
1110
1102
  }
@@ -1155,7 +1147,7 @@ export const extractEndpoints = (language, code) => {
1155
1147
  break;
1156
1148
  }
1157
1149
  return endpoints;
1158
- };
1150
+ }
1159
1151
 
1160
1152
  /**
1161
1153
  * Method to create the SBOM with evidence file called evinse file.
@@ -1164,7 +1156,7 @@ export const extractEndpoints = (language, code) => {
1164
1156
  * @param {Object} options Command line options
1165
1157
  * @returns
1166
1158
  */
1167
- export const createEvinseFile = (sliceArtefacts, options) => {
1159
+ export function createEvinseFile(sliceArtefacts, options) {
1168
1160
  const {
1169
1161
  tempDir,
1170
1162
  usagesSlicesFile,
@@ -1311,7 +1303,7 @@ export const createEvinseFile = (sliceArtefacts, options) => {
1311
1303
  }
1312
1304
  // Redo post processing with evinse data
1313
1305
  return bomNSData?.bomJson;
1314
- };
1306
+ }
1315
1307
 
1316
1308
  /**
1317
1309
  * Method to convert dataflow slice into usable callstack frames
@@ -1324,14 +1316,14 @@ export const createEvinseFile = (sliceArtefacts, options) => {
1324
1316
  * @param {Object} _purlLocationMap Object to track locations where purls are used
1325
1317
  * @param {Object} purlImportsMap Object to track package urls and their import aliases
1326
1318
  */
1327
- export const collectDataFlowFrames = async (
1319
+ export async function collectDataFlowFrames(
1328
1320
  language,
1329
1321
  userDefinedTypesMap,
1330
1322
  dataFlowSlice,
1331
1323
  dbObjMap,
1332
1324
  _purlLocationMap,
1333
1325
  purlImportsMap,
1334
- ) => {
1326
+ ) {
1335
1327
  const nodes = dataFlowSlice?.graph?.nodes || [];
1336
1328
  // Cache the nodes based on the id to improve lookup
1337
1329
  const nodeCache = {};
@@ -1438,7 +1430,7 @@ export const collectDataFlowFrames = async (
1438
1430
  }
1439
1431
  }
1440
1432
  return dfFrames;
1441
- };
1433
+ }
1442
1434
 
1443
1435
  /**
1444
1436
  * Method to convert reachable slice into usable callstack frames and crypto components
@@ -1448,7 +1440,7 @@ export const collectDataFlowFrames = async (
1448
1440
  * @param {string} _language Application language
1449
1441
  * @param {Object} reachablesSlice Reachables slice object from atom
1450
1442
  */
1451
- export const collectReachableFrames = (_language, reachablesSlice) => {
1443
+ export function collectReachableFrames(_language, reachablesSlice) {
1452
1444
  const reachableNodes = reachablesSlice?.reachables || [];
1453
1445
  // purl key and an array of frames array
1454
1446
  // CycloneDX 1.5 currently accepts only 1 frame as evidence
@@ -1536,7 +1528,7 @@ export const collectReachableFrames = (_language, reachablesSlice) => {
1536
1528
  cryptoComponents,
1537
1529
  cryptoGeneratePurls,
1538
1530
  };
1539
- };
1531
+ }
1540
1532
 
1541
1533
  /**
1542
1534
  * Method to pick a callstack frame as an evidence. This method is required since CycloneDX 1.5 accepts only a single frame as evidence.
@@ -1544,7 +1536,7 @@ export const collectReachableFrames = (_language, reachablesSlice) => {
1544
1536
  * @param {Array} dfFrames Data flow frames
1545
1537
  * @returns
1546
1538
  */
1547
- export const framePicker = (dfFrames) => {
1539
+ export function framePicker(dfFrames) {
1548
1540
  if (!dfFrames || !dfFrames.length) {
1549
1541
  return undefined;
1550
1542
  }
@@ -1557,7 +1549,7 @@ export const framePicker = (dfFrames) => {
1557
1549
  }
1558
1550
  }
1559
1551
  return aframe;
1560
- };
1552
+ }
1561
1553
 
1562
1554
  /**
1563
1555
  * Method to simplify types. For example, arrays ending with [] could be simplified.
@@ -1565,11 +1557,11 @@ export const framePicker = (dfFrames) => {
1565
1557
  * @param {string} typeFullName Full name of the type to simplify
1566
1558
  * @returns Simplified type string
1567
1559
  */
1568
- export const simplifyType = (typeFullName) => {
1560
+ export function simplifyType(typeFullName) {
1569
1561
  return typeFullName.replace("[]", "");
1570
- };
1562
+ }
1571
1563
 
1572
- export const getClassTypeFromSignature = (language, typeFullName) => {
1564
+ export function getClassTypeFromSignature(language, typeFullName) {
1573
1565
  if (["java", "jar"].includes(language) && typeFullName.includes(":")) {
1574
1566
  typeFullName = typeFullName.split(":")[0];
1575
1567
  const tmpA = typeFullName.split(".");
@@ -1610,11 +1602,11 @@ export const getClassTypeFromSignature = (language, typeFullName) => {
1610
1602
  typeFullName = typeFullName.split("$")[0];
1611
1603
  }
1612
1604
  return simplifyType(typeFullName);
1613
- };
1605
+ }
1614
1606
 
1615
- const addToOverrides = (lKeyOverrides, atype, fileName, ausageLineNumber) => {
1607
+ function addToOverrides(lKeyOverrides, atype, fileName, ausageLineNumber) {
1616
1608
  if (!lKeyOverrides[atype]) {
1617
1609
  lKeyOverrides[atype] = new Set();
1618
1610
  }
1619
1611
  lKeyOverrides[atype].add(`${fileName}#${ausageLineNumber}`);
1620
- };
1612
+ }
@@ -293,7 +293,7 @@ export function printDependencyTree(
293
293
  // https://github.com/nodejs/node/issues/35973
294
294
  console.log(highlightStr(treeGraphics.join("\n"), highlight));
295
295
  } else {
296
- console.log("Dependency tree is too large to print.");
296
+ console.log(highlightStr(treeGraphics.slice(0, 500).join("\n"), highlight));
297
297
  }
298
298
  }
299
299
 
@@ -26,6 +26,7 @@ import path, {
26
26
  } from "node:path";
27
27
  import process from "node:process";
28
28
  import { URL, fileURLToPath } from "node:url";
29
+ import toml from "@iarna/toml";
29
30
  import Arborist from "@npmcli/arborist";
30
31
  import { load } from "cheerio";
31
32
  import { parseEDNString } from "edn-data";
@@ -45,7 +46,6 @@ import {
45
46
  satisfies,
46
47
  valid,
47
48
  } from "semver";
48
- import toml from "toml";
49
49
  import { IriValidationStrategy, validateIri } from "validate-iri";
50
50
  import { xml2js } from "xml-js";
51
51
  import { getTreeWithPlugin } from "../managers/piptree.js";
@@ -538,7 +538,6 @@ export function getAllFiles(dirPath, pattern, options = {}) {
538
538
  "**/.hg/**",
539
539
  "**/.git/**",
540
540
  "**/venv/**",
541
- "**/docs/**",
542
541
  "**/examples/**",
543
542
  "**/site-packages/**",
544
543
  "**/flow-typed/**",
@@ -548,6 +547,15 @@ export function getAllFiles(dirPath, pattern, options = {}) {
548
547
  if (!pattern.includes("package.json")) {
549
548
  ignoreList.push("**/node_modules/**");
550
549
  }
550
+ // ignore docs only for non-lock file lookups
551
+ if (
552
+ !pattern.includes("package.json") &&
553
+ !pattern.includes("package-lock.json") &&
554
+ !pattern.includes("yarn.lock") &&
555
+ !pattern.includes("pnpm-lock.yaml")
556
+ ) {
557
+ ignoreList.push("**/docs/**");
558
+ }
551
559
  if (options?.exclude && Array.isArray(options.exclude)) {
552
560
  ignoreList = ignoreList.concat(options.exclude);
553
561
  }
@@ -3183,8 +3191,6 @@ export function executeParallelGradleProperties(dir, allProjectsStr) {
3183
3191
  ? process.env.GRADLE_ARGS_PROPERTIES.split(" ")
3184
3192
  : [],
3185
3193
  );
3186
-
3187
- console.log("Executing", gradleCmd, gradleArgs.join(" "), "in", dir);
3188
3194
  const result = spawnSync(gradleCmd, gradleArgs, {
3189
3195
  cwd: dir,
3190
3196
  encoding: "utf-8",
@@ -4081,7 +4087,14 @@ export async function parsePoetrylockData(lockData, lockFile, pyProjectFile) {
4081
4087
  pyProjectFile = lockFile.replace("poetry.lock", "pyproject.toml");
4082
4088
  if (existsSync(pyProjectFile)) {
4083
4089
  const pyprojTomlFile = readFileSync(pyProjectFile, { encoding: "utf-8" });
4084
- const tomlData = toml.parse(pyprojTomlFile);
4090
+ let tomlData;
4091
+ try {
4092
+ tomlData = toml.parse(pyprojTomlFile);
4093
+ } catch (err) {
4094
+ console.log(
4095
+ `Error while parsing the file ${pyprojTomlFile}. Dependency tree information might be incorrect.`,
4096
+ );
4097
+ }
4085
4098
  if (tomlData?.tool?.poetry) {
4086
4099
  for (const adep of Object.keys(tomlData?.tool?.poetry?.dependencies)) {
4087
4100
  if (
@@ -6003,57 +6016,46 @@ export async function getCratesMetadata(pkgList) {
6003
6016
  * @param {Array} pkgList Package list
6004
6017
  */
6005
6018
  export async function getDartMetadata(pkgList) {
6006
- const RESPONSE_TYPE = "json";
6007
- const HEADER_ACCEPT = "application/vnd.pub.v2+json";
6008
6019
  const PUB_DEV_URL = process.env.PUB_DEV_URL || "https://pub.dev";
6009
- const PUB_PACKAGES_URL = `${PUB_DEV_URL}/api/packages/`;
6010
6020
  const PUB_LICENSE_REGEX = /^license:/i;
6011
- const cdepList = [];
6021
+ const OPTIONS = {
6022
+ responseType: "json",
6023
+ headers: {
6024
+ Accept: "application/vnd.pub.v2+json",
6025
+ },
6026
+ };
6012
6027
 
6028
+ const cdepList = [];
6013
6029
  for (const p of pkgList) {
6014
6030
  try {
6015
6031
  if (DEBUG_MODE) {
6016
6032
  console.log(`Querying ${PUB_DEV_URL} for ${p.name}`);
6017
6033
  }
6018
- const res = await cdxgenAgent.get(PUB_PACKAGES_URL + p.name, {
6019
- responseType: RESPONSE_TYPE,
6020
- headers: {
6021
- Accept: HEADER_ACCEPT,
6022
- },
6023
- });
6034
+ const PUB_PACKAGE_URL = `${PUB_DEV_URL}/api/packages/${p.name}/versions/${p.version}`;
6035
+ const PUB_PACKAGE_SCORE_URL = `${PUB_PACKAGE_URL}/score`;
6036
+ const res = await cdxgenAgent.get(PUB_PACKAGE_URL, OPTIONS);
6024
6037
  if (res?.body) {
6025
- const version = res.body.versions.find((v) => p.version === v.version);
6026
- if (version) {
6027
- const pubspec = version.pubspec;
6028
- p.description = pubspec.description;
6029
- if (pubspec.repository) {
6030
- p.repository = { url: pubspec.repository };
6031
- }
6032
- if (pubspec.homepage) {
6033
- p.homepage = { url: pubspec.homepage };
6034
- }
6035
- const res2 = await cdxgenAgent.get(
6036
- `${PUB_PACKAGES_URL + p.name}/score`,
6037
- {
6038
- responseType: RESPONSE_TYPE,
6039
- headers: {
6040
- Accept: HEADER_ACCEPT,
6041
- },
6042
- },
6043
- );
6044
- if (res2?.body) {
6045
- const tags = res2.body.tags;
6046
- const license = tags.find((tag) => PUB_LICENSE_REGEX.test(tag));
6047
- if (license) {
6048
- p.license = spdxLicenses.find(
6049
- (spdxLicense) =>
6050
- spdxLicense.toLowerCase() ===
6051
- license.replace(PUB_LICENSE_REGEX, "").toLowerCase(),
6052
- );
6053
- }
6038
+ const pubspec = res.body.pubspec;
6039
+ p.description = pubspec.description;
6040
+ if (pubspec.repository) {
6041
+ p.repository = { url: pubspec.repository };
6042
+ }
6043
+ if (pubspec.homepage) {
6044
+ p.homepage = { url: pubspec.homepage };
6045
+ }
6046
+ const score = await cdxgenAgent.get(PUB_PACKAGE_SCORE_URL, OPTIONS);
6047
+ if (score?.body) {
6048
+ const tags = score.body.tags;
6049
+ const license = tags.find((tag) => PUB_LICENSE_REGEX.test(tag));
6050
+ if (license) {
6051
+ p.license = spdxLicenses.find(
6052
+ (spdxLicense) =>
6053
+ spdxLicense.toLowerCase() ===
6054
+ license.replace(PUB_LICENSE_REGEX, "").toLowerCase(),
6055
+ );
6054
6056
  }
6055
- cdepList.push(p);
6056
6057
  }
6058
+ cdepList.push(p);
6057
6059
  }
6058
6060
  } catch (err) {
6059
6061
  cdepList.push(p);
@@ -8572,6 +8574,50 @@ export function parsePaketLockData(paketLockData, pkgLockFile) {
8572
8574
  };
8573
8575
  }
8574
8576
 
8577
+ /**
8578
+ * Parse composer.json file
8579
+ *
8580
+ * @param {string} composerJsonFile composer.json file
8581
+ *
8582
+ * @returns {Object} Object with rootRequires and parent component
8583
+ */
8584
+ export function parseComposerJson(composerJsonFile) {
8585
+ const moduleParent = {};
8586
+ const composerData = JSON.parse(
8587
+ readFileSync(composerJsonFile, { encoding: "utf-8" }),
8588
+ );
8589
+ const rootRequires = composerData.require;
8590
+ const pkgName = composerData.name;
8591
+ if (pkgName) {
8592
+ moduleParent.group = dirname(pkgName);
8593
+ if (moduleParent.group === ".") {
8594
+ moduleParent.group = "";
8595
+ }
8596
+ moduleParent.name = basename(pkgName);
8597
+ moduleParent.type = "application";
8598
+ moduleParent.version = composerData.version;
8599
+ if (composerData.description) {
8600
+ moduleParent.description = composerData.description;
8601
+ }
8602
+ if (composerData.license) {
8603
+ moduleParent.licenses = getLicenses({
8604
+ expression: composerData.license,
8605
+ });
8606
+ }
8607
+ moduleParent["bom-ref"] = decodeURIComponent(
8608
+ new PackageURL(
8609
+ "composer",
8610
+ moduleParent.group,
8611
+ moduleParent.name,
8612
+ moduleParent.version,
8613
+ null,
8614
+ null,
8615
+ ).toString(),
8616
+ );
8617
+ }
8618
+ return { rootRequires, moduleParent };
8619
+ }
8620
+
8575
8621
  /**
8576
8622
  * Parse composer lock file
8577
8623
  *
@@ -8658,6 +8704,17 @@ export function parseComposerLock(pkgLockFile, rootRequires) {
8658
8704
  },
8659
8705
  },
8660
8706
  };
8707
+ if (pkg?.dist?.url) {
8708
+ apkg.distribution = { url: pkg.dist.url };
8709
+ }
8710
+ if (pkg?.authors?.length) {
8711
+ apkg.authors = pkg.authors.map((a) => {
8712
+ return { name: a.name, email: a.email };
8713
+ });
8714
+ }
8715
+ if (pkg?.keywords?.length) {
8716
+ apkg.tags = pkg.keywords;
8717
+ }
8661
8718
  if (pkg.autoload && Object.keys(pkg.autoload).length) {
8662
8719
  const namespaces = [];
8663
8720
  for (const aaload of Object.keys(pkg.autoload)) {
@@ -10807,11 +10864,6 @@ export function getPipFrozenTree(
10807
10864
  "Install suitable version of python or set the environment variable PYTHON_CMD.",
10808
10865
  );
10809
10866
  }
10810
- if (!result.stderr) {
10811
- console.log(
10812
- "Ensure the virtualenv package is installed using pip. `python -m pip install virtualenv`",
10813
- );
10814
- }
10815
10867
  }
10816
10868
  } else {
10817
10869
  if (DEBUG_MODE) {
@@ -11678,7 +11730,8 @@ export function parseCmakeLikeFile(cmakeListFile, pkgType, options = {}) {
11678
11730
  .split(")")[0]
11679
11731
  .split(",")
11680
11732
  .filter((v) => v.length > 1);
11681
- const parentName = tmpB[0].replace(":", "");
11733
+ const parentName =
11734
+ tmpB.length > 0 ? tmpB[0].replace(":", "").trim() : "";
11682
11735
  let parentVersion = undefined;
11683
11736
  // In case of meson.build we can find the version number after the word version
11684
11737
  // thanks to our replaces and splits
@@ -3720,7 +3720,17 @@ test("parseComposerLock", () => {
3720
3720
  group: "quickbooks",
3721
3721
  name: "v3-php-sdk",
3722
3722
  scope: "required",
3723
+ tags: ["api", "http", "quickbooks", "rest", "smallbusiness"],
3723
3724
  version: "v4.0.6.1",
3725
+ authors: [
3726
+ {
3727
+ email: "Hao_Lu@intuit.com",
3728
+ name: "hlu2",
3729
+ },
3730
+ ],
3731
+ distribution: {
3732
+ url: "https://api.github.com/repos/intuit/QuickBooks-V3-PHP-SDK/zipball/fe42e409bcdc431614f1cfc80cfc4191b926f3ed",
3733
+ },
3724
3734
  purl: "pkg:composer/quickbooks/v3-php-sdk@v4.0.6.1",
3725
3735
  "bom-ref": "pkg:composer/quickbooks/v3-php-sdk@v4.0.6.1",
3726
3736
  repository: {
@@ -3765,13 +3775,45 @@ test("parseComposerLock", () => {
3765
3775
  version: "v2.4.4",
3766
3776
  purl: "pkg:composer/amphp/amp@v2.4.4",
3767
3777
  "bom-ref": "pkg:composer/amphp/amp@v2.4.4",
3778
+ authors: [
3779
+ {
3780
+ email: "rdlowrey@php.net",
3781
+ name: "Daniel Lowrey",
3782
+ },
3783
+ {
3784
+ email: "aaron@trowski.com",
3785
+ name: "Aaron Piotrowski",
3786
+ },
3787
+ {
3788
+ email: "bobwei9@hotmail.com",
3789
+ name: "Bob Weinand",
3790
+ },
3791
+ {
3792
+ email: "me@kelunik.com",
3793
+ name: "Niklas Keller",
3794
+ },
3795
+ ],
3768
3796
  repository: {
3769
3797
  type: "git",
3770
3798
  url: "https://github.com/amphp/amp.git",
3771
3799
  reference: "1e58d53e4af390efc7813e36cd215bd82cba4b06",
3772
3800
  },
3801
+ distribution: {
3802
+ url: "https://api.github.com/repos/amphp/amp/zipball/1e58d53e4af390efc7813e36cd215bd82cba4b06",
3803
+ },
3773
3804
  license: ["MIT"],
3774
3805
  description: "A non-blocking concurrency framework for PHP applications.",
3806
+ tags: [
3807
+ "async",
3808
+ "asynchronous",
3809
+ "awaitable",
3810
+ "concurrency",
3811
+ "event",
3812
+ "event-loop",
3813
+ "future",
3814
+ "non-blocking",
3815
+ "promise",
3816
+ ],
3775
3817
  properties: [
3776
3818
  {
3777
3819
  name: "SrcFile",
@@ -3806,6 +3848,24 @@ test("parseComposerLock", () => {
3806
3848
  version: "v2.6.2",
3807
3849
  purl: "pkg:composer/amphp/amp@v2.6.2",
3808
3850
  "bom-ref": "pkg:composer/amphp/amp@v2.6.2",
3851
+ authors: [
3852
+ {
3853
+ email: "rdlowrey@php.net",
3854
+ name: "Daniel Lowrey",
3855
+ },
3856
+ {
3857
+ email: "aaron@trowski.com",
3858
+ name: "Aaron Piotrowski",
3859
+ },
3860
+ {
3861
+ email: "bobwei9@hotmail.com",
3862
+ name: "Bob Weinand",
3863
+ },
3864
+ {
3865
+ email: "me@kelunik.com",
3866
+ name: "Niklas Keller",
3867
+ },
3868
+ ],
3809
3869
  repository: {
3810
3870
  type: "git",
3811
3871
  url: "https://github.com/amphp/amp.git",
@@ -3813,6 +3873,20 @@ test("parseComposerLock", () => {
3813
3873
  },
3814
3874
  license: ["MIT"],
3815
3875
  description: "A non-blocking concurrency framework for PHP applications.",
3876
+ distribution: {
3877
+ url: "https://api.github.com/repos/amphp/amp/zipball/9d5100cebffa729aaffecd3ad25dc5aeea4f13bb",
3878
+ },
3879
+ tags: [
3880
+ "async",
3881
+ "asynchronous",
3882
+ "awaitable",
3883
+ "concurrency",
3884
+ "event",
3885
+ "event-loop",
3886
+ "future",
3887
+ "non-blocking",
3888
+ "promise",
3889
+ ],
3816
3890
  scope: "required",
3817
3891
  properties: [
3818
3892
  { name: "SrcFile", value: "./test/data/composer-3.lock" },
@@ -3852,6 +3926,7 @@ test("parseComposerLock", () => {
3852
3926
  license: ["Apache-2.0"],
3853
3927
  description: "A versatile logging framework for PHP",
3854
3928
  scope: "required",
3929
+ tags: ["log", "logging", "php"],
3855
3930
  properties: [{ name: "SrcFile", value: "./test/data/composer-4.lock" }],
3856
3931
  evidence: {
3857
3932
  identity: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyclonedx/cdxgen",
3
- "version": "11.0.2",
3
+ "version": "11.0.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>",
@@ -71,7 +71,7 @@
71
71
  "find-up": "7.0.0",
72
72
  "glob": "^11.0.0",
73
73
  "global-agent": "^3.0.0",
74
- "got": "^14.4.4",
74
+ "got": "^14.4.5",
75
75
  "iconv-lite": "^0.6.3",
76
76
  "js-yaml": "^4.1.0",
77
77
  "jws": "^4.0.0",
@@ -83,11 +83,11 @@
83
83
  "ssri": "^12.0.0",
84
84
  "table": "^6.8.2",
85
85
  "tar": "^7.4.3",
86
- "toml": "^3.0.0",
87
86
  "uuid": "^11.0.2",
88
87
  "validate-iri": "^1.0.1",
89
88
  "xml-js": "^1.6.11",
90
- "yargs": "^17.7.2"
89
+ "yargs": "^17.7.2",
90
+ "@iarna/toml": "2.2.5"
91
91
  },
92
92
  "optionalDependencies": {
93
93
  "@appthreat/atom": "2.0.25",
@@ -103,7 +103,7 @@
103
103
  "body-parser": "^2.0.1",
104
104
  "compression": "^1.7.5",
105
105
  "connect": "^3.7.0",
106
- "jsonata": "^2.0.5",
106
+ "jsonata": "^2.0.6",
107
107
  "sequelize": "^6.37.4",
108
108
  "sqlite3": "^5.1.7"
109
109
  },
@@ -117,7 +117,7 @@
117
117
  "devDependencies": {
118
118
  "@biomejs/biome": "1.9.4",
119
119
  "jest": "^29.7.0",
120
- "typescript": "^5.6.2"
120
+ "typescript": "^5.7.2"
121
121
  },
122
122
  "overrides": {
123
123
  "glob": "^11.0.0",
@@ -1 +1 @@
1
- {"version":3,"file":"jest.config.d.ts","sourceRoot":"","sources":["../jest.config.js"],"names":[],"mappings":"AAAA,8BAA+B;AAC/B,2CAA4C;AAC5C,kDAA0E;AAC1E,yCAAkD;AAClD,qCAAsC"}
1
+ {"version":3,"file":"jest.config.d.ts","sourceRoot":"","sources":["../jest.config.js"],"names":[],"mappings":"AAAA,yBAA0B,IAAI,CAAC;AAC/B,gCAAiC,UAAU,CAAC;AAC5C,kDAA0E;AAC1E,yCAAkD;AAClD,8BAA+B,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/cli/index.js"],"names":[],"mappings":"AA0wBA;;;;;;;;GAQG;AACH,gFAFW,MAAM,SAchB;AAyUD;;;;;;;GAOG;AACH,mCALW,MAAM,qBAiEhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM;;;;EAKhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM;;;;EAkBhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAs5BhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BAsehB;AAED;;;;;;;;;;GAUG;AACH,+DAsEC;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA6bhB;AAED;;;;;GAKG;AACH,kCAHW,MAAM,8BA+YhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAqIhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAiDhB;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,qBAiUhB;AAED;;;;;GAKG;AACH,mCAHW,MAAM,qBAqJhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAmFhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA4XhB;AAED;;;;;GAKG;AACH,2CAHW,MAAM;;;;;;;;;;;;;;;;;;;;GAoChB;AAED;;;;;;;;KA+DC;AAED;;;;;;GAMG;AACH,yDAuCC;AAED;;;;;;;;;GASG;AACH,2GA6BC;AAED;;;;;GAKG;AACH,0CAHW,MAAM,EAAE,8BAmclB;AAED;;;;;GAKG;AACH,iCAHW,MAAM,8BAiUhB;AAED;;;;;GAKG;AACH,gCAHW,MAAM,qBAqOhB;AAED;;;;;;GAMG;AACH,wDAFY,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,CAAC,CAwHxE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/cli/index.js"],"names":[],"mappings":"AA4wBA;;;;;;;;GAQG;AACH,gFAFW,MAAM,SAchB;AAyVD;;;;;;;GAOG;AACH,mCALW,MAAM,qBAiEhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM;;;;EAKhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM;;;;EAkBhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAs5BhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA2ehB;AAED;;;;;;;;;;GAUG;AACH,+DAsEC;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA6bhB;AAED;;;;;GAKG;AACH,kCAHW,MAAM,8BA+YhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAqIhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAiDhB;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,qBAiUhB;AAED;;;;;GAKG;AACH,mCAHW,MAAM,qBAqJhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAmFhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA4XhB;AAED;;;;;GAKG;AACH,2CAHW,MAAM;;;;;;;;;;;;;;;;;;;;GAoChB;AAED;;;;;;;;KA+DC;AAED;;;;;;GAMG;AACH,yDAuCC;AAED;;;;;;;;;GASG;AACH,2GA6BC;AAED;;;;;GAKG;AACH,0CAHW,MAAM,EAAE,8BAmclB;AAED;;;;;GAKG;AACH,iCAHW,MAAM,8BAgUhB;AAED;;;;;GAKG;AACH,gCAHW,MAAM,qBAqOhB;AAED;;;;;;GAMG;AACH,wDAFY,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,CAAC,CAwHxE"}
@@ -716,6 +716,14 @@ export function parsePaketLockData(paketLockData: any, pkgLockFile: any): {
716
716
  pkgList: any[];
717
717
  dependenciesList: any[];
718
718
  };
719
+ /**
720
+ * Parse composer.json file
721
+ *
722
+ * @param {string} composerJsonFile composer.json file
723
+ *
724
+ * @returns {Object} Object with rootRequires and parent component
725
+ */
726
+ export function parseComposerJson(composerJsonFile: string): any;
719
727
  /**
720
728
  * Parse composer lock file
721
729
  *
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/helpers/utils.js"],"names":[],"mappings":"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"}
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":"docker.d.ts","sourceRoot":"","sources":["../../../lib/managers/docker.js"],"names":[],"mappings":"AAoDA;;GAEG;AACH,4CA6CC;AAxED,4BAA6C;AAC7C,8CAA+C;AAkFxC,iCAHI,MAAM,WACN,MAAM,iDAehB;AAqBM,6DAmBN;AAgLM,4EAsGN;AAEM,oFAwBN;AAUM;;;;;;;;EAwEN;AAsBM,2DA6KN;AAEM,2EA4FN;AAMM;;;;;;;;;;;;;GAqDN;AAEM;;;;;;;GAqGN;AAMM,8DAqIN;AAKM,4EAmGN;AAEM,+EAMN;AAEM,4EAyCN;AAEM,iFA0BN"}
1
+ {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../../lib/managers/docker.js"],"names":[],"mappings":"AAoDA;;GAEG;AACH,4CA6CC;AAxED,4BAA6C;AAC7C,kCAAmC,WAAW,CAAC;AAkFxC,iCAHI,MAAM,WACN,MAAM,iDAehB;AAqBM,6DAmBN;AAgLM,4EAsGN;AAEM,oFAwBN;AAUM;;;;;;;;EAwEN;AAsBM,2DA6KN;AAEM,2EA4FN;AAMM;;;;;;;;;;;;;GAqDN;AAEM;;;;;;;GAqGN;AAMM,8DAqIN;AAKM,4EAmGN;AAEM,+EAMN;AAEM,4EAyCN;AAEM,iFA0BN"}