@cyclonedx/cdxgen 10.2.2 → 10.2.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.
package/index.js CHANGED
@@ -4299,6 +4299,11 @@ export async function createCsharpBom(path, options) {
4299
4299
  return createBinaryBom(path, options);
4300
4300
  }
4301
4301
  const parentComponent = createDefaultParentComponent(path, "nuget", options);
4302
+ const slnFiles = getAllFiles(
4303
+ path,
4304
+ (options.multiProject ? "**/" : "") + "*.sln",
4305
+ options
4306
+ );
4302
4307
  let csProjFiles = getAllFiles(
4303
4308
  path,
4304
4309
  (options.multiProject ? "**/" : "") + "*.csproj",
@@ -4315,7 +4320,7 @@ export async function createCsharpBom(path, options) {
4315
4320
  (options.multiProject ? "**/" : "") + "packages.config",
4316
4321
  options
4317
4322
  );
4318
- const projAssetsFiles = getAllFiles(
4323
+ let projAssetsFiles = getAllFiles(
4319
4324
  path,
4320
4325
  (options.multiProject ? "**/" : "") + "project.assets.json",
4321
4326
  options
@@ -4335,6 +4340,45 @@ export async function createCsharpBom(path, options) {
4335
4340
  (options.multiProject ? "**/" : "") + "*.nupkg",
4336
4341
  options
4337
4342
  );
4343
+ // Support for automatic restore
4344
+ if (
4345
+ options.installDeps &&
4346
+ !projAssetsFiles.length &&
4347
+ !pkgLockFiles.length &&
4348
+ !paketLockFiles.length
4349
+ ) {
4350
+ const filesToRestore = slnFiles.length > 0 ? slnFiles : csProjFiles;
4351
+ for (const f of filesToRestore) {
4352
+ if (DEBUG_MODE) {
4353
+ const basePath = dirname(f);
4354
+ console.log("Executing 'dotnet restore' in", basePath);
4355
+ }
4356
+ const result = spawnSync(
4357
+ "dotnet",
4358
+ ["restore", "--force", "--ignore-failed-sources", f],
4359
+ {
4360
+ cwd: path,
4361
+ encoding: "utf-8"
4362
+ }
4363
+ );
4364
+ if (DEBUG_MODE && (result.status !== 0 || result.error)) {
4365
+ console.error(
4366
+ "Restore has failed. Check if dotnet is installed and available in PATH."
4367
+ );
4368
+ console.log(
4369
+ "Authenticate with any private registries such as Azure Artifacts feed before running cdxgen."
4370
+ );
4371
+ console.log(result.stderr);
4372
+ options.failOnError && process.exit(1);
4373
+ }
4374
+ }
4375
+ // Collect the assets file generated from restore
4376
+ projAssetsFiles = getAllFiles(
4377
+ path,
4378
+ (options.multiProject ? "**/" : "") + "project.assets.json",
4379
+ options
4380
+ );
4381
+ }
4338
4382
  let pkgList = [];
4339
4383
  if (nupkgFiles.length && projAssetsFiles.length === 0) {
4340
4384
  manifestFiles = manifestFiles.concat(nupkgFiles);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyclonedx/cdxgen",
3
- "version": "10.2.2",
3
+ "version": "10.2.3",
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>",
@@ -67,7 +67,7 @@
67
67
  "find-up": "7.0.0",
68
68
  "glob": "^10.3.10",
69
69
  "global-agent": "^3.0.0",
70
- "got": "14.2.0",
70
+ "got": "14.2.1",
71
71
  "iconv-lite": "^0.6.3",
72
72
  "js-yaml": "^4.1.0",
73
73
  "jws": "^4.0.0",
@@ -114,6 +114,6 @@
114
114
  "eslint-plugin-prettier": "^5.1.3",
115
115
  "jest": "^29.7.0",
116
116
  "prettier": "3.2.5",
117
- "typescript": "^5.3.3"
117
+ "typescript": "^5.4.2"
118
118
  }
119
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../analyzer.js"],"names":[],"mappings":"AAgSO;;;GAkBN"}
1
+ {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../analyzer.js"],"names":[],"mappings":"AAkSO;;;GAkBN"}
package/types/binary.d.ts CHANGED
@@ -9,5 +9,22 @@ export function getOSPackages(src: any): {
9
9
  allTypes: any[];
10
10
  };
11
11
  export function executeOsQuery(query: any): any;
12
+ /**
13
+ * Method to execute dosai to create slices for dotnet
14
+ *
15
+ * @param {string} src Source Path
16
+ * @param {string} slicesFile Slices file name
17
+ * @returns boolean
18
+ */
12
19
  export function getDotnetSlices(src: string, slicesFile: string): boolean;
20
+ /**
21
+ * Method to generate binary SBOM using blint
22
+ *
23
+ * @param {string} src Path to binary or its directory
24
+ * @param {string} binaryBomFile Path to binary
25
+ * @param {boolean} deepMode Deep mode flag
26
+ *
27
+ * @return {boolean} Result of the generation
28
+ */
29
+ export function getBinaryBom(src: string, binaryBomFile: string, deepMode: boolean): boolean;
13
30
  //# sourceMappingURL=binary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../binary.js"],"names":[],"mappings":"AA0QO,iDA8BN;AAEM,wDAmBN;AAEM;;;;;;;EA+UN;AAiCM,gDAgDN;AASM,qCAJI,MAAM,cACN,MAAM,WA2BhB"}
1
+ {"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../binary.js"],"names":[],"mappings":"AA6QA,iDA8BC;AAED,wDAmBC;AAED;;;;;;;EA+UC;AAiCD,gDAgDC;AAED;;;;;;GAMG;AACH,qCAJW,MAAM,cACN,MAAM,WA2BhB;AAED;;;;;;;;GAQG;AACH,kCANW,MAAM,iBACN,MAAM,YACN,OAAO,GAEN,OAAO,CA6BlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"evinser.d.ts","sourceRoot":"","sources":["../evinser.js"],"names":[],"mappings":"AAwBO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEN;AAEM,6GAiDN;AAEM,gGAkCN;AAEM,wGAqBN;AAEM;;;;EA4DN;AAEM,iEAoBN;AAEM;;;EA8BN;AAQM;;;;;;;;;;GAyGN;AAEM,2JA4CN;AAcM,2CARI,MAAM,iHAkNhB;AAEM,sGAoEN;AASM,mDAJI,MAAM,wCA6DhB;AASM,gDAJI,MAAM,mDA8DhB;AAEM,wEAWN;AAEM,gEAmDN;AASM,yEAgHN;AAaM,gDAPI,MAAM,uHAyHhB;AASM,iDAHI,MAAM,4BAqChB;AAQM,kDAaN;AAQM,2CAHI,MAAM,UAKhB;AAEM,oFAsCN"}
1
+ {"version":3,"file":"evinser.d.ts","sourceRoot":"","sources":["../evinser.js"],"names":[],"mappings":"AAwBO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEN;AAEM,6GAiDN;AAEM,gGAkCN;AAEM,wGAqBN;AAEM;;;;EAiEN;AAEM,iEAoBN;AAEM;;;EA8BN;AAQM;;;;;;;;;;GAyGN;AAEM,2JA4CN;AAcM,2CARI,MAAM,iHAkNhB;AAEM,sGAoEN;AASM,mDAJI,MAAM,wCA6DhB;AASM,gDAJI,MAAM,mDA8DhB;AAEM,wEAWN;AAEM,gEAmDN;AASM,yEAgHN;AAaM,gDAPI,MAAM,uHAyHhB;AASM,iDAHI,MAAM,4BAqChB;AAQM,kDAaN;AAQM,2CAHI,MAAM,UAKhB;AAEM,oFAsCN"}
package/types/index.d.ts CHANGED
@@ -9,40 +9,218 @@
9
9
  */
10
10
  export function listComponents(options: any, allImports: any, pkg: any, ptype?: string): any[];
11
11
  /**
12
- * Method to submit the generated bom to dependency-track or cyclonedx server
12
+ * Function to create bom string for Java jars
13
13
  *
14
- * @param {Object} args CLI args
15
- * @param {Object} bomContents BOM Json
14
+ * @param {string} path to the project
15
+ * @param {Object} options Parse options from the cli
16
+ *
17
+ * @returns {Object} BOM with namespace mapping
16
18
  */
17
- export function submitBom(args: any, bomContents: any): Promise<any>;
18
19
  export function createJarBom(path: string, options: any): any;
20
+ /**
21
+ * Function to create bom string for Android apps using blint
22
+ *
23
+ * @param {string} path to the project
24
+ * @param {Object} options Parse options from the cli
25
+ */
26
+ export function createAndroidBom(path: string, options: any): {
27
+ bomJson: any;
28
+ dependencies: any;
29
+ parentComponent: any;
30
+ };
31
+ /**
32
+ * Function to create bom string for binaries using blint
33
+ *
34
+ * @param {string} path to the project
35
+ * @param {Object} options Parse options from the cli
36
+ */
37
+ export function createBinaryBom(path: string, options: any): {
38
+ bomJson: any;
39
+ dependencies: any;
40
+ parentComponent: any;
41
+ };
42
+ /**
43
+ * Function to create bom string for Java projects
44
+ *
45
+ * @param {string} path to the project
46
+ * @param {Object} options Parse options from the cli
47
+ */
19
48
  export function createJavaBom(path: string, options: any): Promise<any>;
49
+ /**
50
+ * Function to create bom string for Node.js projects
51
+ *
52
+ * @param {string} path to the project
53
+ * @param {Object} options Parse options from the cli
54
+ */
20
55
  export function createNodejsBom(path: string, options: any): Promise<any>;
56
+ /**
57
+ * Function to create bom string for Python projects
58
+ *
59
+ * @param {string} path to the project
60
+ * @param {Object} options Parse options from the cli
61
+ */
21
62
  export function createPythonBom(path: string, options: any): Promise<any>;
63
+ /**
64
+ * Function to create bom string for Go projects
65
+ *
66
+ * @param {string} path to the project
67
+ * @param {Object} options Parse options from the cli
68
+ */
22
69
  export function createGoBom(path: string, options: any): Promise<any>;
70
+ /**
71
+ * Function to create bom string for Rust projects
72
+ *
73
+ * @param {string} path to the project
74
+ * @param {Object} options Parse options from the cli
75
+ */
23
76
  export function createRustBom(path: string, options: any): Promise<any>;
77
+ /**
78
+ * Function to create bom string for Dart projects
79
+ *
80
+ * @param {string} path to the project
81
+ * @param {Object} options Parse options from the cli
82
+ */
24
83
  export function createDartBom(path: string, options: any): Promise<any>;
84
+ /**
85
+ * Function to create bom string for cpp projects
86
+ *
87
+ * @param {string} path to the project
88
+ * @param {Object} options Parse options from the cli
89
+ */
25
90
  export function createCppBom(path: string, options: any): any;
91
+ /**
92
+ * Function to create bom string for clojure projects
93
+ *
94
+ * @param {string} path to the project
95
+ * @param {Object} options Parse options from the cli
96
+ */
26
97
  export function createClojureBom(path: string, options: any): any;
98
+ /**
99
+ * Function to create bom string for Haskell projects
100
+ *
101
+ * @param {string} path to the project
102
+ * @param {Object} options Parse options from the cli
103
+ */
27
104
  export function createHaskellBom(path: string, options: any): any;
105
+ /**
106
+ * Function to create bom string for Elixir projects
107
+ *
108
+ * @param {string} path to the project
109
+ * @param {Object} options Parse options from the cli
110
+ */
28
111
  export function createElixirBom(path: string, options: any): any;
112
+ /**
113
+ * Function to create bom string for GitHub action workflows
114
+ *
115
+ * @param {string} path to the project
116
+ * @param {Object} options Parse options from the cli
117
+ */
29
118
  export function createGitHubBom(path: string, options: any): any;
119
+ /**
120
+ * Function to create bom string for cloudbuild yaml
121
+ *
122
+ * @param {string} path to the project
123
+ * @param {Object} options Parse options from the cli
124
+ */
30
125
  export function createCloudBuildBom(path: string, options: any): any;
126
+ /**
127
+ * Function to create obom string for the current OS using osquery
128
+ *
129
+ * @param {string} path to the project
130
+ * @param {Object} options Parse options from the cli
131
+ */
31
132
  export function createOSBom(path: string, options: any): Promise<any>;
133
+ /**
134
+ * Function to create bom string for Jenkins plugins
135
+ *
136
+ * @param {string} path to the project
137
+ * @param {Object} options Parse options from the cli
138
+ */
32
139
  export function createJenkinsBom(path: string, options: any): Promise<any>;
140
+ /**
141
+ * Function to create bom string for Helm charts
142
+ *
143
+ * @param {string} path to the project
144
+ * @param {Object} options Parse options from the cli
145
+ */
33
146
  export function createHelmBom(path: string, options: any): any;
147
+ /**
148
+ * Function to create bom string for swift projects
149
+ *
150
+ * @param {string} path to the project
151
+ * @param {Object} options Parse options from the cli
152
+ */
34
153
  export function createSwiftBom(path: string, options: any): Promise<any>;
154
+ /**
155
+ * Function to create bom string for docker compose
156
+ *
157
+ * @param {string} path to the project
158
+ * @param {Object} options Parse options from the cli
159
+ */
35
160
  export function createContainerSpecLikeBom(path: string, options: any): any;
161
+ /**
162
+ * Function to create bom string for php projects
163
+ *
164
+ * @param {string} path to the project
165
+ * @param {Object} options Parse options from the cli
166
+ */
36
167
  export function createPHPBom(path: string, options: any): any;
168
+ /**
169
+ * Function to create bom string for ruby projects
170
+ *
171
+ * @param {string} path to the project
172
+ * @param {Object} options Parse options from the cli
173
+ */
37
174
  export function createRubyBom(path: string, options: any): Promise<any>;
175
+ /**
176
+ * Function to create bom string for csharp projects
177
+ *
178
+ * @param {string} path to the project
179
+ * @param {Object} options Parse options from the cli
180
+ */
38
181
  export function createCsharpBom(path: string, options: any): Promise<any>;
39
182
  export function mergeDependencies(dependencies: any, newDependencies: any, parentComponent?: {}): {
40
183
  ref: string;
41
184
  dependsOn: any[];
42
185
  }[];
43
186
  export function trimComponents(components: any): any[];
187
+ /**
188
+ * Dedupe components
189
+ *
190
+ * @param {Object} options Options
191
+ * @param {Array} components Components
192
+ * @param {Object} parentComponent Parent component
193
+ * @param {Array} dependencies Dependencies
194
+ *
195
+ * @returns {Object} Object including BOM Json
196
+ */
44
197
  export function dedupeBom(options: any, components: any[], parentComponent: any, dependencies: any[]): any;
198
+ /**
199
+ * Function to create bom string for all languages
200
+ *
201
+ * @param {string} pathList list of to the project
202
+ * @param {Object} options Parse options from the cli
203
+ */
45
204
  export function createMultiXBom(pathList: string, options: any): Promise<any>;
46
- export function createXBom(path: string, options: any): any;
205
+ /**
206
+ * Function to create bom string for various languages
207
+ *
208
+ * @param {string} path to the project
209
+ * @param {Object} options Parse options from the cli
210
+ */
211
+ export function createXBom(path: string, options: any): Promise<any>;
212
+ /**
213
+ * Function to create bom string for various languages
214
+ *
215
+ * @param {string} path to the project
216
+ * @param {Object} options Parse options from the cli
217
+ */
47
218
  export function createBom(path: string, options: any): any;
219
+ /**
220
+ * Method to submit the generated bom to dependency-track or cyclonedx server
221
+ *
222
+ * @param {Object} args CLI args
223
+ * @param {Object} bomContents BOM Json
224
+ */
225
+ export function submitBom(args: any, bomContents: any): Promise<any>;
48
226
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.js"],"names":[],"mappings":"AA4oBA;;;;;;;;GAQG;AACH,gFAFW,MAAM,SAchB;AAyyJD;;;;;GAKG;AACH,qEAyFC;AAjmJM,mCALI,MAAM,qBAiEhB;AAQM,oCAHI,MAAM,8BAuvBhB;AAQM,sCAHI,MAAM,8BAkZhB;AAQM,sCAHI,MAAM,8BAgWhB;AAQM,kCAHI,MAAM,8BAiUhB;AAQM,oCAHI,MAAM,8BAiFhB;AAQM,oCAHI,MAAM,8BAgDhB;AAQM,mCAHI,MAAM,qBA+KhB;AAQM,uCAHI,MAAM,qBAqHhB;AAQM,uCAHI,MAAM,qBA2BhB;AAQM,sCAHI,MAAM,qBA2BhB;AAQM,sCAHI,MAAM,qBA2BhB;AAQM,0CAHI,MAAM,qBAuBhB;AAQM,kCAHI,MAAM,8BAqDhB;AAQM,uCAHI,MAAM,8BA4ChB;AAQM,oCAHI,MAAM,qBA2BhB;AAQM,qCAHI,MAAM,8BAwFhB;AAQM,iDAHI,MAAM,qBAkUhB;AAQM,mCAHI,MAAM,qBAwJhB;AAQM,oCAHI,MAAM,8BAmFhB;AAQM,sCAHI,MAAM,8BAoMhB;AAEM;;;IAkCN;AAEM,uDAWN;AAYM,2GAkCN;AAQM,0CAHI,MAAM,8BAgbhB;AAQM,iCAHI,MAAM,qBAmUhB;AAQM,gCAHI,MAAM,qBAmQhB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.js"],"names":[],"mappings":"AA6oBA;;;;;;;;GAQG;AACH,gFAFW,MAAM,SAchB;AA+RD;;;;;;;GAOG;AACH,mCALW,MAAM,qBAiEhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM;;;;EAKhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM;;;;EAkBhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAuvBhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BAkZhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BAgWhB;AAED;;;;;GAKG;AACH,kCAHW,MAAM,8BAiUhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAiFhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAgDhB;AAED;;;;;GAKG;AACH,mCAHW,MAAM,qBA+KhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM,qBAqHhB;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,kCAHW,MAAM,8BAqDhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM,8BA4ChB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,qBA2BhB;AAED;;;;;GAKG;AACH,qCAHW,MAAM,8BAwFhB;AAED;;;;;GAKG;AACH,iDAHW,MAAM,qBAkUhB;AAED;;;;;GAKG;AACH,mCAHW,MAAM,qBAwJhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAmFhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BAmPhB;AAED;;;IAkCC;AAED,uDAWC;AAED;;;;;;;;;GASG;AACH,2GA6BC;AAED;;;;;GAKG;AACH,0CAHW,MAAM,8BAgbhB;AAED;;;;;GAKG;AACH,iCAHW,MAAM,8BAmUhB;AAED;;;;;GAKG;AACH,gCAHW,MAAM,qBAiRhB;AAED;;;;;GAKG;AACH,qEAyFC"}
package/types/utils.d.ts CHANGED
@@ -1,3 +1,18 @@
1
+ /**
2
+ * Method to get files matching a pattern
3
+ *
4
+ * @param {string} dirPath Root directory for search
5
+ * @param {string} pattern Glob pattern (eg: *.gradle)
6
+ */
7
+ export function getAllFiles(dirPath: string, pattern: string, options?: {}): string[];
8
+ /**
9
+ * Method to get files matching a pattern
10
+ *
11
+ * @param {string} dirPath Root directory for search
12
+ * @param {string} pattern Glob pattern (eg: *.gradle)
13
+ * @param {Array} ignoreList Directory patterns to ignore
14
+ */
15
+ export function getAllFilesWithIgnore(dirPath: string, pattern: string, ignoreList: any[]): string[];
1
16
  /**
2
17
  * Performs a lookup + validation of the license specified in the
3
18
  * package. If the license is a valid SPDX license ID, set the 'id'
@@ -5,6 +20,14 @@
5
20
  * object.
6
21
  */
7
22
  export function getLicenses(pkg: any): any;
23
+ /**
24
+ * Method to retrieve known license by known-licenses.json
25
+ *
26
+ * @param {String} licenseUrl Repository url
27
+ * @param {String} pkg Bom ref
28
+ * @return {Object} Objetct with SPDX license id or license name
29
+ */
30
+ export function getKnownLicense(licenseUrl: string, pkg: string): any;
8
31
  /**
9
32
  * Tries to find a file containing the license text based on commonly
10
33
  * used naming and content types. If a candidate file is found, add
@@ -18,56 +41,61 @@ export function addLicenseText(pkg: any, l: any, licenseContent: any): void;
18
41
  export function readLicenseText(licenseFilepath: any, licenseContentType: any): {
19
42
  content: string;
20
43
  };
44
+ export function getSwiftPackageMetadata(pkgList: any): Promise<any[]>;
21
45
  /**
22
- * Method to parse requirements.txt data
46
+ * Method to retrieve metadata for npm packages by querying npmjs
23
47
  *
24
- * @param {Object} reqData Requirements.txt data
25
- * @param {Boolean} fetchDepsInfo Fetch dependencies info from pypi
48
+ * @param {Array} pkgList Package list
26
49
  */
27
- export function parseReqFile(reqData: any, fetchDepsInfo: boolean): Promise<any[]>;
28
- export const dirNameStr: string;
29
- export const isWin: boolean;
30
- export const isMac: boolean;
31
- export let ATOM_DB: string;
32
- export const frameworksList: any;
33
- export const DEBUG_MODE: boolean;
34
- export const TIMEOUT_MS: number;
35
- export const MAX_BUFFER: number;
36
- export let metadata_cache: {};
37
- export const includeMavenTestScope: boolean;
38
- export const FETCH_LICENSE: boolean;
39
- export const SEARCH_MAVEN_ORG: boolean;
40
- export let JAVA_CMD: string;
41
- export let PYTHON_CMD: string;
42
- export let DOTNET_CMD: string;
43
- export let NODE_CMD: string;
44
- export let NPM_CMD: string;
45
- export let YARN_CMD: string;
46
- export let GCC_CMD: string;
47
- export let RUSTC_CMD: string;
48
- export let GO_CMD: string;
49
- export let CARGO_CMD: string;
50
- export let CLJ_CMD: string;
51
- export let LEIN_CMD: string;
52
- export let SWIFT_CMD: string;
53
- export const cdxgenAgent: any;
54
- export function getAllFiles(dirPath: string, pattern: string, options?: {}): string[];
55
- export function getAllFilesWithIgnore(dirPath: string, pattern: string, ignoreList: any[]): string[];
56
- export function getKnownLicense(licenseUrl: string, pkg: string): any;
57
- export function getSwiftPackageMetadata(pkgList: any): Promise<any[]>;
58
50
  export function getNpmMetadata(pkgList: any[]): Promise<any[]>;
51
+ /**
52
+ * Parse nodejs package json file
53
+ *
54
+ * @param {string} pkgJsonFile package.json file
55
+ * @param {boolean} simple Return a simpler representation of the component by skipping extended attributes and license fetch.
56
+ */
59
57
  export function parsePkgJson(pkgJsonFile: string, simple?: boolean): Promise<any[]>;
58
+ /**
59
+ * Parse nodejs package lock file
60
+ *
61
+ * @param {string} pkgLockFile package-lock.json file
62
+ * @param {object} options Command line options
63
+ */
60
64
  export function parsePkgLock(pkgLockFile: string, options?: object): Promise<{
61
65
  pkgList: any;
62
66
  dependenciesList: any;
63
67
  }>;
68
+ /**
69
+ * Given a lock file this method would return an Object with the identiy as the key and parsed name and value
70
+ * eg: "@actions/core@^1.2.6", "@actions/core@^1.6.0":
71
+ * version "1.6.0"
72
+ * would result in two entries
73
+ *
74
+ * @param {string} lockData Yarn Lockfile data
75
+ */
64
76
  export function yarnLockToIdentMap(lockData: string): {};
77
+ /**
78
+ * Parse nodejs yarn lock file
79
+ *
80
+ * @param {string} yarnLockFile yarn.lock file
81
+ */
65
82
  export function parseYarnLock(yarnLockFile: string): Promise<{
66
83
  pkgList: any[];
67
84
  dependenciesList: any[];
68
85
  }>;
86
+ /**
87
+ * Parse nodejs shrinkwrap deps file
88
+ *
89
+ * @param {string} swFile shrinkwrap-deps.json file
90
+ */
69
91
  export function parseNodeShrinkwrap(swFile: string): Promise<any[]>;
70
- export function parsePnpmLock(pnpmLock: string, parentComponent?: any): Promise<{
92
+ /**
93
+ * Parse nodejs pnpm lock file
94
+ *
95
+ * @param {string} pnpmLock pnpm-lock.yaml file
96
+ * @param {object} parentComponent parent component
97
+ */
98
+ export function parsePnpmLock(pnpmLock: string, parentComponent?: object): Promise<{
71
99
  pkgList?: undefined;
72
100
  dependenciesList?: undefined;
73
101
  } | {
@@ -77,8 +105,23 @@ export function parsePnpmLock(pnpmLock: string, parentComponent?: any): Promise<
77
105
  dependsOn: string[];
78
106
  }[];
79
107
  }>;
108
+ /**
109
+ * Parse bower json file
110
+ *
111
+ * @param {string} bowerJsonFile bower.json file
112
+ */
80
113
  export function parseBowerJson(bowerJsonFile: string): Promise<any[]>;
114
+ /**
115
+ * Parse minified js file
116
+ *
117
+ * @param {string} minJsFile min.js file
118
+ */
81
119
  export function parseMinJs(minJsFile: string): Promise<any[]>;
120
+ /**
121
+ * Parse pom file
122
+ *
123
+ * @param {string} pom file to parse
124
+ */
82
125
  export function parsePom(pomFile: any): {
83
126
  group: any;
84
127
  name: any;
@@ -102,6 +145,10 @@ export function parsePom(pomFile: any): {
102
145
  };
103
146
  };
104
147
  }[];
148
+ /**
149
+ * Parse maven tree output
150
+ * @param {string} rawOutput Raw string output
151
+ */
105
152
  export function parseMavenTree(rawOutput: string): {
106
153
  pkgList?: undefined;
107
154
  dependenciesList?: undefined;
@@ -112,6 +159,13 @@ export function parseMavenTree(rawOutput: string): {
112
159
  dependsOn: any;
113
160
  }[];
114
161
  };
162
+ /**
163
+ * Parse gradle dependencies output
164
+ * @param {string} rawOutput Raw string output
165
+ * @param {string} rootProjectGroup Root project group
166
+ * @param {string} rootProjectName Root project name
167
+ * @param {string} rootProjectVersion Root project version
168
+ */
115
169
  export function parseGradleDep(rawOutput: string, rootProjectGroup?: string, rootProjectName?: string, rootProjectVersion?: string): {
116
170
  pkgList: {
117
171
  group: any;
@@ -129,13 +183,31 @@ export function parseGradleDep(rawOutput: string, rootProjectGroup?: string, roo
129
183
  pkgList?: undefined;
130
184
  dependenciesList?: undefined;
131
185
  };
186
+ /**
187
+ * Parse clojure cli dependencies output
188
+ * @param {string} rawOutput Raw string output
189
+ */
132
190
  export function parseCljDep(rawOutput: string): any[];
191
+ /**
192
+ * Parse lein dependency tree output
193
+ * @param {string} rawOutput Raw string output
194
+ */
133
195
  export function parseLeinDep(rawOutput: string): any;
134
196
  export function parseLeinMap(node: any, keys_cache: any, deps: any): any;
197
+ /**
198
+ * Parse gradle projects output
199
+ *
200
+ * @param {string} rawOutput Raw string output
201
+ */
135
202
  export function parseGradleProjects(rawOutput: string): {
136
203
  rootProject: string;
137
204
  projects: any[];
138
205
  };
206
+ /**
207
+ * Parse gradle properties output
208
+ *
209
+ * @param {string} rawOutput Raw string output
210
+ */
139
211
  export function parseGradleProperties(rawOutput: string): {
140
212
  rootProject: string;
141
213
  projects: any[];
@@ -145,28 +217,149 @@ export function parseGradleProperties(rawOutput: string): {
145
217
  properties: any[];
146
218
  };
147
219
  };
220
+ /**
221
+ * Execute gradle properties command and return parsed output
222
+ *
223
+ * @param {string} dir Directory to execute the command
224
+ * @param {string} rootPath Root directory
225
+ * @param {string} subProject Sub project name
226
+ */
148
227
  export function executeGradleProperties(dir: string, rootPath: string, subProject: string): {};
228
+ /**
229
+ * Parse bazel action graph output
230
+ * @param {string} rawOutput Raw string output
231
+ */
149
232
  export function parseBazelActionGraph(rawOutput: string): any[];
233
+ /**
234
+ * Parse bazel skyframe state output
235
+ * @param {string} rawOutput Raw string output
236
+ */
150
237
  export function parseBazelSkyframe(rawOutput: string): any[];
238
+ /**
239
+ * Parse bazel BUILD file
240
+ * @param {string} rawOutput Raw string output
241
+ */
151
242
  export function parseBazelBuild(rawOutput: string): any[];
243
+ /**
244
+ * Parse dependencies in Key:Value format
245
+ */
152
246
  export function parseKVDep(rawOutput: any): any[];
247
+ /**
248
+ * Method to find the spdx license id from name
249
+ *
250
+ * @param {string} name License full name
251
+ */
153
252
  export function findLicenseId(name: string): any;
253
+ /**
254
+ * Method to guess the spdx license id from license contents
255
+ *
256
+ * @param {string} name License file contents
257
+ */
154
258
  export function guessLicenseId(content: any): any;
259
+ /**
260
+ * Method to retrieve metadata for maven packages by querying maven central
261
+ *
262
+ * @param {Array} pkgList Package list
263
+ * @param {Object} jarNSMapping Jar Namespace mapping object
264
+ */
155
265
  export function getMvnMetadata(pkgList: any[], jarNSMapping?: any): Promise<any[]>;
266
+ /**
267
+ * Method to compose URL of pom.xml
268
+ *
269
+ * @param {String} urlPrefix
270
+ * @param {String} group
271
+ * @param {String} name
272
+ * @param {String} version
273
+ *
274
+ * @return {String} fullUrl
275
+ */
156
276
  export function composePomXmlUrl({ urlPrefix, group, name, version }: string): string;
277
+ /**
278
+ * Method to fetch pom.xml data and parse it to JSON
279
+ *
280
+ * @param {String} urlPrefix
281
+ * @param {String} group
282
+ * @param {String} name
283
+ * @param {String} version
284
+ *
285
+ * @return {Object|undefined}
286
+ */
157
287
  export function fetchPomXmlAsJson({ urlPrefix, group, name, version }: string): any | undefined;
288
+ /**
289
+ * Method to fetch pom.xml data
290
+ *
291
+ * @param {String} urlPrefix
292
+ * @param {String} group
293
+ * @param {String} name
294
+ * @param {String} version
295
+ *
296
+ * @return {Promise<String>}
297
+ */
158
298
  export function fetchPomXml({ urlPrefix, group, name, version }: string): Promise<string>;
299
+ /**
300
+ * Method extract single or multiple license entries that might appear in pom.xml
301
+ *
302
+ * @param {Object|Array} license
303
+ */
159
304
  export function parseLicenseEntryOrArrayFromPomXml(license: any | any[]): any[];
305
+ /**
306
+ * Method to parse pom.xml in search of a comment containing license text
307
+ *
308
+ * @param {String} urlPrefix
309
+ * @param {String} group
310
+ * @param {String} name
311
+ * @param {String} version
312
+ *
313
+ * @return {Promise<String>} License ID
314
+ */
160
315
  export function extractLicenseCommentFromPomXml({ urlPrefix, group, name, version }: string): Promise<string>;
316
+ /**
317
+ * Method to parse python requires_dist attribute found in pypi setup.py
318
+ *
319
+ * @param requires_dist string
320
+ */
161
321
  export function parsePyRequiresDist(dist_string: any): {
162
322
  name: string;
163
323
  version: string;
164
324
  };
325
+ /**
326
+ * Method to mimic pip version solver using node-semver
327
+ *
328
+ * @param {Array} versionsList List of version numbers available
329
+ * @param {*} versionSpecifiers pip version specifier
330
+ */
165
331
  export function guessPypiMatchingVersion(versionsList: any[], versionSpecifiers: any): any;
332
+ /**
333
+ * Method to retrieve metadata for python packages by querying pypi
334
+ *
335
+ * @param {Array} pkgList Package list
336
+ * @param {Boolean} fetchDepsInfo Fetch dependencies info from pypi
337
+ */
166
338
  export function getPyMetadata(pkgList: any[], fetchDepsInfo: boolean): Promise<any[]>;
339
+ /**
340
+ * Method to parse bdist_wheel metadata
341
+ *
342
+ * @param {Object} mData bdist_wheel metadata
343
+ */
167
344
  export function parseBdistMetadata(mData: any): {}[];
345
+ /**
346
+ * Method to parse pipfile.lock data
347
+ *
348
+ * @param {Object} lockData JSON data from Pipfile.lock
349
+ */
168
350
  export function parsePiplockData(lockData: any): Promise<any[]>;
351
+ /**
352
+ * Method to parse python pyproject.toml file
353
+ *
354
+ * @param {string} tomlFile Toml file
355
+ */
169
356
  export function parsePyProjectToml(tomlFile: string): {};
357
+ /**
358
+ * Method to parse poetry.lock data
359
+ *
360
+ * @param {Object} lockData JSON data from poetry.lock
361
+ * @param {string} lockFile Lock file name for evidence
362
+ */
170
363
  export function parsePoetrylockData(lockData: any, lockFile: string): Promise<any[] | {
171
364
  pkgList: any[];
172
365
  rootList: any[];
@@ -175,6 +368,20 @@ export function parsePoetrylockData(lockData: any, lockFile: string): Promise<an
175
368
  dependsOn: any[];
176
369
  }[];
177
370
  }>;
371
+ /**
372
+ * Method to parse requirements.txt data
373
+ *
374
+ * @param {Object} reqData Requirements.txt data
375
+ * @param {Boolean} fetchDepsInfo Fetch dependencies info from pypi
376
+ */
377
+ export function parseReqFile(reqData: any, fetchDepsInfo: boolean): Promise<any[]>;
378
+ /**
379
+ * Method to find python modules by parsing the imports and then checking with PyPI to obtain the latest version
380
+ *
381
+ * @param {string} src directory
382
+ * @param {Array} epkgList Existing package list
383
+ * @returns List of packages
384
+ */
178
385
  export function getPyModules(src: string, epkgList: any[], options: any): Promise<{
179
386
  allImports: {};
180
387
  pkgList: any;
@@ -184,18 +391,67 @@ export function getPyModules(src: string, epkgList: any[], options: any): Promis
184
391
  }[];
185
392
  modList: any;
186
393
  }>;
394
+ /**
395
+ * Method to parse setup.py data
396
+ *
397
+ * @param {Object} setupPyData Contents of setup.py
398
+ */
187
399
  export function parseSetupPyFile(setupPyData: any): Promise<any[]>;
400
+ /**
401
+ * Method to construct a GitHub API url for the given repo metadata
402
+ * @param {Object} repoMetadata Repo metadata with group and name
403
+ * @return {String|undefined} github api url (or undefined - if not enough data)
404
+ */
188
405
  export function repoMetadataToGitHubApiUrl(repoMetadata: any): string | undefined;
406
+ /**
407
+ * Method to split GitHub url into its parts
408
+ * @param {String} repoUrl Repository url
409
+ * @return {[String]} parts from url
410
+ */
189
411
  export function getGithubUrlParts(repoUrl: string): [string];
412
+ /**
413
+ * Method to construct GitHub api url from repo metadata or one of multiple formats of repo URLs
414
+ * @param {String} repoUrl Repository url
415
+ * @param {Object} repoMetadata Object containing group and package name strings
416
+ * @return {String|undefined} github api url (or undefined - if not a GitHub repo)
417
+ */
190
418
  export function toGitHubApiUrl(repoUrl: string, repoMetadata: any): string | undefined;
419
+ /**
420
+ * Method to retrieve repo license by querying github api
421
+ *
422
+ * @param {String} repoUrl Repository url
423
+ * @param {Object} repoMetadata Object containing group and package name strings
424
+ * @return {Promise<String>} SPDX license id
425
+ */
191
426
  export function getRepoLicense(repoUrl: string, repoMetadata: any): Promise<string>;
427
+ /**
428
+ * Method to get go pkg license from go.dev site.
429
+ *
430
+ * @param {Object} repoMetadata Repo metadata
431
+ */
192
432
  export function getGoPkgLicense(repoMetadata: any): Promise<any>;
193
433
  export function getGoPkgComponent(group: any, name: any, version: any, hash: any): Promise<{}>;
194
434
  export function parseGoModData(goModData: any, gosumMap: any): Promise<any[]>;
435
+ /**
436
+ * Parse go list output
437
+ *
438
+ * @param {string} rawOutput Output from go list invocation
439
+ * @returns Object with parent component and List of packages
440
+ */
195
441
  export function parseGoListDep(rawOutput: string, gosumMap: any): Promise<{
196
442
  parentComponent: {};
197
443
  pkgList: {}[];
198
444
  }>;
445
+ /**
446
+ * Parse go mod graph
447
+ *
448
+ * @param {string} rawOutput Output from go mod graph invocation
449
+ * @param {string} goModFile go.mod file
450
+ * @param {Object} goSumMap Hashes from gosum for lookups
451
+ * @param {Array} epkgList Existing package list
452
+ *
453
+ * @returns Object containing List of packages and dependencies
454
+ */
199
455
  export function parseGoModGraph(rawOutput: string, goModFile: string, gosumMap: any, epkgList?: any[], parentComponent?: {}): Promise<{
200
456
  pkgList: any[];
201
457
  dependenciesList: {
@@ -203,13 +459,38 @@ export function parseGoModGraph(rawOutput: string, goModFile: string, gosumMap:
203
459
  dependsOn: any[];
204
460
  }[];
205
461
  }>;
462
+ /**
463
+ * Parse go mod why output
464
+ * @param {string} rawOutput Output from go mod why
465
+ * @returns package name or none
466
+ */
206
467
  export function parseGoModWhy(rawOutput: string): any;
207
- export function parseGosumData(gosumData: any): Promise<any[]>;
468
+ /**
469
+ * Parse go sum data
470
+ * @param {string} gosumData Content of go.sum
471
+ * @returns package list
472
+ */
473
+ export function parseGosumData(gosumData: string): Promise<any[]>;
208
474
  export function parseGopkgData(gopkgData: any): Promise<any[]>;
209
475
  export function parseGoVersionData(buildInfoData: any): Promise<any[]>;
210
- export const RUBY_PLATFORM_PREFIXES: string[];
476
+ /**
477
+ * Method to query rubygems api for gems details
478
+ *
479
+ * @param {Array} pkgList List of packages with metadata
480
+ */
211
481
  export function getRubyGemsMetadata(pkgList: any[]): Promise<any[]>;
482
+ /**
483
+ * Method to parse Gemspec
484
+ *
485
+ * @param {string} gemspecData Gemspec data
486
+ */
212
487
  export function parseGemspecData(gemspecData: string): Promise<any[]>;
488
+ /**
489
+ * Method to parse Gemfile.lock
490
+ *
491
+ * @param {object} gemLockData Gemfile.lock data
492
+ * @param {string} lockFile Lock file
493
+ */
213
494
  export function parseGemfileLockData(gemLockData: object, lockFile: string): Promise<any[] | {
214
495
  pkgList: any[];
215
496
  dependenciesList: {
@@ -225,9 +506,25 @@ export function parseGemfileLockData(gemLockData: object, lockFile: string): Pro
225
506
  }[];
226
507
  rootList: any[];
227
508
  }>;
509
+ /**
510
+ * Method to retrieve metadata for rust packages by querying crates
511
+ *
512
+ * @param {Array} pkgList Package list
513
+ */
228
514
  export function getCratesMetadata(pkgList: any[]): Promise<any[]>;
515
+ /**
516
+ * Method to retrieve metadata for dart packages by querying pub.dev
517
+ *
518
+ * @param {Array} pkgList Package list
519
+ */
229
520
  export function getDartMetadata(pkgList: any[]): Promise<any[]>;
230
- export function parseCargoTomlData(cargoData: any): Promise<any[]>;
521
+ /**
522
+ * Method to parse cargo.toml data
523
+ *
524
+ * @param {string} cargoData Content of cargo.toml
525
+ * @returns {array} Package list
526
+ */
527
+ export function parseCargoTomlData(cargoData: string): any[];
231
528
  export function parseCargoData(cargoData: any): Promise<any[]>;
232
529
  export function parseCargoAuditableData(cargoData: any): Promise<any[]>;
233
530
  export function parsePubLockData(pubLockData: any): Promise<any[]>;
@@ -269,6 +566,12 @@ export function parsePaketLockData(paketLockData: any, pkgLockFile: any): {
269
566
  pkgList: any[];
270
567
  dependenciesList: any[];
271
568
  };
569
+ /**
570
+ * Parse composer lock file
571
+ *
572
+ * @param {string} pkgLockFile composer.lock file
573
+ * @param {array} rootRequires require section from composer.json
574
+ */
272
575
  export function parseComposerLock(pkgLockFile: string, rootRequires: any[]): any[] | {
273
576
  pkgList: {
274
577
  group: string;
@@ -334,6 +637,11 @@ export function parseSbtTree(sbtTreeFile: any): {
334
637
  dependsOn: any;
335
638
  }[];
336
639
  };
640
+ /**
641
+ * Parse sbt lock file
642
+ *
643
+ * @param {string} pkgLockFile build.sbt.lock file
644
+ */
337
645
  export function parseSbtLock(pkgLockFile: string): {
338
646
  group: any;
339
647
  name: any;
@@ -356,11 +664,49 @@ export function parseSbtLock(pkgLockFile: string): {
356
664
  };
357
665
  };
358
666
  }[];
667
+ /**
668
+ * Method to execute dpkg --listfiles to determine the files provided by a given package
669
+ *
670
+ * @param {string} pkgName deb package name
671
+ * @returns
672
+ */
359
673
  export function executeDpkgList(pkgName: string): string[];
674
+ /**
675
+ * Method to execute dnf repoquery to determine the files provided by a given package
676
+ *
677
+ * @param {string} pkgName deb package name
678
+ * @returns
679
+ */
360
680
  export function executeRpmList(pkgName: string): string[];
681
+ /**
682
+ * Method to execute apk -L info to determine the files provided by a given package
683
+ *
684
+ * @param {string} pkgName deb package name
685
+ * @returns
686
+ */
361
687
  export function executeApkList(pkgName: string): string[];
688
+ /**
689
+ * Method to execute alpm -Ql to determine the files provided by a given package
690
+ *
691
+ * @param {string} pkgName deb package name
692
+ * @returns
693
+ */
362
694
  export function executeAlpmList(pkgName: string): string[];
695
+ /**
696
+ * Method to execute equery files to determine the files provided by a given package
697
+ *
698
+ * @param {string} pkgName deb package name
699
+ * @returns
700
+ */
363
701
  export function executeEqueryList(pkgName: string): string[];
702
+ /**
703
+ * Convert OS query results
704
+ *
705
+ * @param {string} Query category
706
+ * @param {Object} queryObj Query Object from the queries.json configuration
707
+ * @param {Array} results Query Results
708
+ * @param {Boolean} enhance Optionally enhance results by invoking additional package manager commands
709
+ */
364
710
  export function convertOSQueryResults(queryCategory: any, queryObj: any, results: any[], enhance?: boolean): {
365
711
  name: any;
366
712
  group: string;
@@ -372,7 +718,17 @@ export function convertOSQueryResults(queryCategory: any, queryObj: any, results
372
718
  scope: any;
373
719
  type: any;
374
720
  }[];
721
+ /**
722
+ * Parse swift dependency tree output json object
723
+ * @param {string} jsonObject Swift dependencies json object
724
+ * @param {string} pkgFile Package.swift file
725
+ */
375
726
  export function parseSwiftJsonTreeObject(pkgList: any, dependenciesList: any, jsonObject: string, pkgFile: string): string;
727
+ /**
728
+ * Parse swift dependency tree output
729
+ * @param {string} rawOutput Swift dependencies json output
730
+ * @param {string} pkgFile Package.swift file
731
+ */
376
732
  export function parseSwiftJsonTree(rawOutput: string, pkgFile: string): {
377
733
  pkgList?: undefined;
378
734
  dependenciesList?: undefined;
@@ -380,6 +736,10 @@ export function parseSwiftJsonTree(rawOutput: string, pkgFile: string): {
380
736
  pkgList: any[];
381
737
  dependenciesList: any[];
382
738
  };
739
+ /**
740
+ * Parse swift package resolved file
741
+ * @param {string} resolvedFile Package.resolved file
742
+ */
383
743
  export function parseSwiftResolved(resolvedFile: string): {
384
744
  name: string;
385
745
  group: string;
@@ -402,8 +762,24 @@ export function parseSwiftResolved(resolvedFile: string): {
402
762
  };
403
763
  };
404
764
  }[];
765
+ /**
766
+ * Collect maven dependencies
767
+ *
768
+ * @param {string} mavenCmd Maven command to use
769
+ * @param {string} basePath Path to the maven project
770
+ * @param {boolean} cleanup Remove temporary directories
771
+ * @param {boolean} includeCacheDir Include maven and gradle cache directories
772
+ */
405
773
  export function collectMvnDependencies(mavenCmd: string, basePath: string, cleanup?: boolean, includeCacheDir?: boolean): Promise<{}>;
406
774
  export function collectGradleDependencies(gradleCmd: any, basePath: any, cleanup?: boolean, includeCacheDir?: boolean): Promise<{}>;
775
+ /**
776
+ * Method to collect class names from all jars in a directory
777
+ *
778
+ * @param {string} jarPath Path containing jars
779
+ * @param {object} pomPathMap Map containing jar to pom names. Required to successfully parse gradle cache.
780
+ *
781
+ * @return object containing jar name and class list
782
+ */
407
783
  export function collectJarNS(jarPath: string, pomPathMap?: object): Promise<{}>;
408
784
  export function convertJarNSToPackages(jarNSMapping: any): {
409
785
  name: any;
@@ -439,19 +815,115 @@ export function parsePomXml(pomXmlData: any): {
439
815
  export function parseJarManifest(jarMetadata: any): {};
440
816
  export function parsePomProperties(pomProperties: any): {};
441
817
  export function encodeForPurl(s: any): any;
818
+ /**
819
+ * Method to get pom properties from maven directory
820
+ *
821
+ * @param {string} mavenDir Path to maven directory
822
+ *
823
+ * @return array with pom properties
824
+ */
442
825
  export function getPomPropertiesFromMavenDir(mavenDir: string): {};
826
+ /**
827
+ * Method to extract a war or ear file
828
+ *
829
+ * @param {string} jarFile Path to jar file
830
+ * @param {string} tempDir Temporary directory to use for extraction
831
+ * @param {object} jarNSMapping Jar class names mapping object
832
+ *
833
+ * @return pkgList Package list
834
+ */
443
835
  export function extractJarArchive(jarFile: string, tempDir: string, jarNSMapping?: object): Promise<any[]>;
836
+ /**
837
+ * Determine the version of SBT used in compilation of this project.
838
+ * By default it looks into a standard SBT location i.e.
839
+ * <path-project>/project/build.properties
840
+ * Returns `null` if the version cannot be determined.
841
+ *
842
+ * @param {string} projectPath Path to the SBT project
843
+ */
444
844
  export function determineSbtVersion(projectPath: string): any;
845
+ /**
846
+ * Adds a new plugin to the SBT project by amending its plugins list.
847
+ * Only recommended for SBT < 1.2.0 or otherwise use `addPluginSbtFile`
848
+ * parameter.
849
+ * The change manipulates the existing plugins' file by creating a copy of it
850
+ * and returning a path where it is moved to.
851
+ * Once the SBT task is complete one must always call `cleanupPlugin` to remove
852
+ * the modifications made in place.
853
+ *
854
+ * @param {string} projectPath Path to the SBT project
855
+ * @param {string} plugin Name of the plugin to add
856
+ */
445
857
  export function addPlugin(projectPath: string, plugin: string): string;
858
+ /**
859
+ * Cleans up modifications to the project's plugins' file made by the
860
+ * `addPlugin` function.
861
+ *
862
+ * @param {string} projectPath Path to the SBT project
863
+ * @param {string} originalPluginsFile Location of the original plugins file, if any
864
+ */
446
865
  export function cleanupPlugin(projectPath: string, originalPluginsFile: string): boolean;
866
+ /**
867
+ * Returns a default location of the plugins file.
868
+ *
869
+ * @param {string} projectPath Path to the SBT project
870
+ */
447
871
  export function sbtPluginsPath(projectPath: string): string;
872
+ /**
873
+ * Method to read a single file entry from a zip file
874
+ *
875
+ * @param {string} zipFile Zip file to read
876
+ * @param {string} filePattern File pattern
877
+ * @param {string} contentEncoding Encoding. Defaults to utf-8
878
+ *
879
+ * @returns File contents
880
+ */
448
881
  export function readZipEntry(zipFile: string, filePattern: string, contentEncoding?: string): Promise<any>;
882
+ /**
883
+ * Method to get the classes and relevant sources in a jar file
884
+ *
885
+ * @param {string} jarFile Jar file to read
886
+ *
887
+ * @returns List of classes and sources matching certain known patterns
888
+ */
449
889
  export function getJarClasses(jarFile: string): Promise<any[]>;
890
+ /**
891
+ * Method to return the gradle command to use.
892
+ *
893
+ * @param {string} srcPath Path to look for gradlew wrapper
894
+ * @param {string} rootPath Root directory to look for gradlew wrapper
895
+ */
450
896
  export function getGradleCommand(srcPath: string, rootPath: string): string;
897
+ /**
898
+ * Method to return the maven command to use.
899
+ *
900
+ * @param {string} srcPath Path to look for maven wrapper
901
+ * @param {string} rootPath Root directory to look for maven wrapper
902
+ */
451
903
  export function getMavenCommand(srcPath: string, rootPath: string): string;
904
+ /**
905
+ * Retrieves the atom command by referring to various environment variables
906
+ */
452
907
  export function getAtomCommand(): any;
453
908
  export function executeAtom(src: any, args: any): boolean;
909
+ /**
910
+ * Find the imported modules in the application with atom parsedeps command
911
+ *
912
+ * @param {string} src
913
+ * @param {string} language
914
+ * @param {string} methodology
915
+ * @param {string} slicesFile
916
+ * @returns List of imported modules
917
+ */
454
918
  export function findAppModules(src: string, language: string, methodology?: string, slicesFile?: string): any;
919
+ /**
920
+ * Execute pip freeze by creating a virtual env in a temp directory and construct the dependency tree
921
+ *
922
+ * @param {string} basePath Base path
923
+ * @param {string} reqOrSetupFile Requirements or setup.py file
924
+ * @param {string} tempVenvDir Temp venv dir
925
+ * @returns List of packages from the virtual env
926
+ */
455
927
  export function getPipFrozenTree(basePath: string, reqOrSetupFile: string, tempVenvDir: string): {
456
928
  pkgList: {
457
929
  name: any;
@@ -486,6 +958,13 @@ export function parsePackageJsonName(name: any): {
486
958
  projectName: string;
487
959
  moduleName: string;
488
960
  };
961
+ /**
962
+ * Method to add occurrence evidence for components based on import statements. Currently useful for js
963
+ *
964
+ * @param {array} pkgList List of package
965
+ * @param {object} allImports Import statements object with package name as key and an object with file and location details
966
+ * @param {object} allExports Exported modules if available from node_modules
967
+ */
489
968
  export function addEvidenceForImports(pkgList: any[], allImports: object, allExports: object, deep: any): Promise<any[]>;
490
969
  export function componentSorter(a: any, b: any): any;
491
970
  export function parseCmakeDotFile(dotFile: any, pkgType: any, options?: {}): {
@@ -501,6 +980,14 @@ export function parseCmakeLikeFile(cmakeListFile: any, pkgType: any, options?: {
501
980
  pkgList: any[];
502
981
  };
503
982
  export function getOSPackageForFile(afile: any, osPkgsList: any): any;
983
+ /**
984
+ * Method to find c/c++ modules by collecting usages with atom
985
+ *
986
+ * @param {string} src directory
987
+ * @param {object} options Command line options
988
+ * @param {array} osPkgsList Array of OS pacakges represented as components
989
+ * @param {array} epkgList Existing packages list
990
+ */
504
991
  export function getCppModules(src: string, options: object, osPkgsList: any[], epkgList: any[]): {
505
992
  parentComponent: {};
506
993
  pkgList: any[];
@@ -509,11 +996,50 @@ export function getCppModules(src: string, options: object, osPkgsList: any[], e
509
996
  dependsOn: any[];
510
997
  }[];
511
998
  };
999
+ /**
1000
+ * NOT IMPLEMENTED YET.
1001
+ * A future method to locate a generic package given some name and properties
1002
+ *
1003
+ * @param {object} apkg Package to locate
1004
+ * @returns Located project with precise purl or the original unmodified input.
1005
+ */
512
1006
  export function locateGenericPackage(apkg: object): any;
513
1007
  export function parseCUsageSlice(sliceData: any): {};
1008
+ /**
1009
+ * Method to retrieve metadata for nuget packages
1010
+ *
1011
+ * @param {Array} pkgList Package list
1012
+ */
514
1013
  export function getNugetMetadata(pkgList: any[], dependencies?: any): Promise<{
515
1014
  pkgList: any[];
516
1015
  dependencies: any[];
517
1016
  }>;
518
1017
  export function addEvidenceForDotnet(pkgList: any, slicesFile: any): any;
1018
+ export const dirNameStr: string;
1019
+ export const isWin: boolean;
1020
+ export const isMac: boolean;
1021
+ export let ATOM_DB: string;
1022
+ export const frameworksList: any;
1023
+ export const DEBUG_MODE: boolean;
1024
+ export const TIMEOUT_MS: number;
1025
+ export const MAX_BUFFER: number;
1026
+ export let metadata_cache: {};
1027
+ export const includeMavenTestScope: boolean;
1028
+ export const FETCH_LICENSE: boolean;
1029
+ export const SEARCH_MAVEN_ORG: boolean;
1030
+ export let JAVA_CMD: string;
1031
+ export let PYTHON_CMD: string;
1032
+ export let DOTNET_CMD: string;
1033
+ export let NODE_CMD: string;
1034
+ export let NPM_CMD: string;
1035
+ export let YARN_CMD: string;
1036
+ export let GCC_CMD: string;
1037
+ export let RUSTC_CMD: string;
1038
+ export let GO_CMD: string;
1039
+ export let CARGO_CMD: string;
1040
+ export let CLJ_CMD: string;
1041
+ export let LEIN_CMD: string;
1042
+ export let SWIFT_CMD: string;
1043
+ export const cdxgenAgent: any;
1044
+ export const RUBY_PLATFORM_PREFIXES: string[];
519
1045
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../utils.js"],"names":[],"mappings":"AA8QA;;;;;GAKG;AACH,2CAkDC;AAqED;;;;GAIG;AACH,4EAoCC;AAED;;;GAGG;AACH;;EAUC;AAsqFD;;;;;GAKG;AACH,mFA+IC;AAxsGD,gCAAgF;AAChF,4BAA4C;AAC5C,4BAA6C;AAC7C,2BAAmE;AAsBnE,iCAEE;AAiBF,iCAIyC;AAGzC,gCAC4D;AAG5D,gCAC+D;AAG/D,8BAA+B;AAK/B,4CAEmE;AAGnE,oCAEoD;AAGpD,uCAEuD;AAYvD,4BAA6B;AAU7B,8BAAiC;AAMjC,8BAAiC;AAIjC,4BAA6B;AAI7B,2BAA2B;AAI3B,4BAA6B;AAI7B,2BAA2B;AAI3B,6BAA+B;AAI/B,0BAAyB;AAIzB,6BAA+B;AAM/B,2BAA2B;AAK3B,4BAA6B;AAK7B,6BAA+B;AAM/B,8BAIG;AAQI,qCAHI,MAAM,WACN,MAAM,0BAmBhB;AASM,+CAJI,MAAM,WACN,MAAM,+BAoBhB;AAuEM,sEA0DN;AA6DM,sEA0BN;AAOM,+DA4CN;AAQM,0CAHI,MAAM,WACN,OAAO,kBAkFjB;AAQM,0CAHI,MAAM,YACN,MAAM;;;GAwUhB;AAUM,6CAFI,MAAM,MAwDhB;AA6BM,4CAFI,MAAM;;;GAqMhB;AAOM,4CAFI,MAAM,kBAiEhB;AAOM,wCAFI,MAAM;;;;;;;;;GA8KhB;AAOM,8CAFI,MAAM,kBA+ChB;AAOM,sCAFI,MAAM,kBAgFhB;AAOM;;;;;;;;;;;;;;;;;;;;;;IAqDN;AAMM,0CAFI,MAAM;;;;;;;;;EAwFhB;AASM,0CALI,MAAM,qBACN,MAAM,oBACN,MAAM,uBACN,MAAM;;;;;;;;;;;;;;;;EAkNhB;AAMM,uCAFI,MAAM,SAoChB;AAMM,wCAFI,MAAM,OAahB;AAEM,yEAwBN;AAOM,+CAFI,MAAM;;;EA6ChB;AAOM,iDAFI,MAAM;;;;;;;;EAsChB;AASM,6CAJI,MAAM,YACN,MAAM,cACN,MAAM,MAoEhB;AAMM,iDAFI,MAAM,SA4ChB;AAMM,8CAFI,MAAM,SAsDhB;AAMM,2CAFI,MAAM,SAiBhB;AAKM,kDAoCN;AAOM,oCAFI,MAAM,OAchB;AAOM,kDAUN;AAQM,mFAgGN;AAYM,sFAeN;AAYM,gFAFK,MAAO,SAAS,CA6B3B;AAYM,0EAFK,eAAe,CAW1B;AAOM,4DAFI,WAAY,SAWtB;AAYM,8FAFK,eAAe,CAc1B;AAOM;;;EAoBN;AAQM,2FAkBN;AAQM,sFAoNN;AAOM,qDAmBN;AAOM,gEAeN;AAOM,6CAFI,MAAM,MA6ChB;AAQM,6DAFI,MAAM;;;;;;;GAqHhB;AAgKM,kCAJI,MAAM;;;;;;;;GA2EhB;AAOM,mEAqBN;AAOM,+DAFK,SAAO,SAAS,CAe3B;AAOM,oDAFK,QAAQ,CASnB;AAQM,oEAFK,SAAO,SAAS,CAe3B;AASM,oEAFK,eAAe,CA4D1B;AAOM,iEAgDN;AAEM,+FAyBN;AAEM,8EAyEN;AAQM,0CAHI,MAAM;;;GAqDhB;AAoCM,2CAPI,MAAM,aACN,MAAM;;;;;;GA6FhB;AAOM,yCAHI,MAAM,OAehB;AAEM,+DAoCN;AAEM,+DA+CN;AAEM,uEAwBN;AAED,8CAUE;AAsBK,oEAiGN;AAOM,8CAFI,MAAM,kBAiChB;AAQM,kDAHI,MAAM,YACN,MAAM;;;;;;;;;;;;;;GAuPhB;AAOM,kEAiCN;AAOM,gEA0DN;AAEM,mEAmFN;AAEM,+DA8CN;AAEM,wEA2BN;AAEM,mEAsCN;AAEM,0DAkBN;AAEM,wDA+DN;AAEM,0FA6DN;AAEM;;IAqCN;AAEM;;IA4DN;AAEM,2DAiEN;AAEM,yDAaN;AAaM,gDAmFN;AAEM,yDAoDN;AAEM,sDA0BN;AAEM,sDAyBN;AAEM,6DAwCN;AAEM,yDAmCN;AAEM,8DAsCN;AAEM,sDAqDN;AAEM,yDAgCN;AAEM,qDAkDN;AAEM,2DASN;AAEM,wEAmDN;AAEM,oDAyBN;AAEM,uEA0FN;AAEM;;;EAkNN;AAEM;;;;EAyFN;AAEM;;;EA+GN;AAQM,+CAHI,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2IhB;AAEM;;;;;;EA+HN;AAOM,0CAFI,MAAM;;;;;;;;;;;;;;;;;;;;;IAqDhB;AAyBM,yCAHI,MAAM,YAQhB;AAQM,wCAHI,MAAM,YAchB;AAQM,wCAHI,MAAM,YAQhB;AAQM,yCAHI,MAAM,YAQhB;AAQM,2CAHI,MAAM,YAQhB;AAUM;;;;;;;;;;IA2IN;AAuCM,0FAHI,MAAM,WACN,MAAM,UAuDhB;AAOM,8CAHI,MAAM,WACN,MAAM;;;;;;EAqBhB;AAMM,iDAFI,MAAM;;;;;;;;;;;;;;;;;;;;;IAwDhB;AAUM,iDALI,MAAM,YACN,MAAM,YACN,OAAO,oBACP,OAAO,eA6DjB;AAEM,oIAgCN;AAUM,sCALI,MAAM,eACN,MAAM,eA6JhB;AAEM;;;;;;;;;;;;;;;;;;;;;;IA6DN;AAEM;;;;;;;EA8BN;AAEM,uDAeN;AAEM,2DAeN;AAEM,2CAIN;AASM,uDAJI,MAAM,MAgBhB;AA2BM,2CANI,MAAM,WACN,MAAM,iBACN,MAAM,kBA2ThB;AAUM,iDAFI,MAAM,OAehB;AAcM,uCAHI,MAAM,UACN,MAAM,UAYhB;AASM,2CAHI,MAAM,uBACN,MAAM,WAsBhB;AAOM,4CAFI,MAAM,UAIhB;AAWM,sCANI,MAAM,eACN,MAAM,oBACN,MAAM,gBAgChB;AASM,uCAJI,MAAM,kBA0ChB;AAQM,0CAHI,MAAM,YACN,MAAM,UAiChB;AAQM,yCAHI,MAAM,YACN,MAAM,UAsEhB;AAKM,sCAmBN;AAEM,0DAyEN;AAWM,oCANI,MAAM,YACN,MAAM,gBACN,MAAM,eACN,MAAM,OAgDhB;AAkEM,2CALI,MAAM,kBACN,MAAM,eACN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoShB;AAGM;;;;;EAmBN;AASM,kEAHI,MAAM,cACN,MAAM,6BA2IhB;AAEM,qDASN;AAEM;;;;;;;EA2GN;AAEM;;;EA6PN;AAEM,sEA6BN;AAUM,mCALI,MAAM,WACN,MAAM;;;;;;;EAgQhB;AASM,2CAHI,MAAM,OAKhB;AAEM,qDA0CN;AA2HM;;;GA0HN;AAEM,yEAkGN"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../utils.js"],"names":[],"mappings":"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"}