scanoss 0.2.7 → 0.2.11
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/CHANGELOG.md +2 -0
- package/LICENSE +20 -18
- package/README.md +6 -5
- package/build/main/bin/cli-bin.js +10 -3
- package/build/main/commands/dep.d.ts +1 -0
- package/build/main/commands/dep.js +26 -0
- package/build/main/commands/scan.js +20 -38
- package/build/main/index.d.ts +3 -1
- package/build/main/index.js +4 -2
- package/build/main/lib/dependencies/Dependency.d.ts +9 -0
- package/build/main/lib/dependencies/Dependency.js +50 -0
- package/build/main/lib/dependencies/DependencyTypes.d.ts +19 -0
- package/build/main/lib/dependencies/DependencyTypes.js +3 -0
- package/build/main/lib/dependencies/PurlGenerator.d.ts +2 -0
- package/build/main/lib/dependencies/PurlGenerator.js +39 -0
- package/build/main/lib/dependencies/parsers/golangParser.d.ts +0 -0
- package/build/main/lib/dependencies/parsers/golangParser.js +3 -0
- package/build/main/lib/dependencies/parsers/mavenParser.d.ts +2 -0
- package/build/main/lib/dependencies/parsers/mavenParser.js +44 -0
- package/build/main/lib/dependencies/parsers/npmParser.d.ts +3 -0
- package/build/main/lib/dependencies/parsers/npmParser.js +45 -0
- package/build/main/lib/dependencies/parsers/pyParser.d.ts +2 -0
- package/build/main/lib/dependencies/parsers/pyParser.js +51 -0
- package/build/main/lib/dependencies/parsers/rubyParser.d.ts +3 -0
- package/build/main/lib/dependencies/parsers/rubyParser.js +135 -0
- package/build/main/lib/dependencies/parsers/types.d.ts +15 -0
- package/build/main/lib/dependencies/parsers/types.js +33 -0
- package/build/main/lib/dependencies/parsers/utils.d.ts +2 -0
- package/build/main/lib/dependencies/parsers/utils.js +20 -0
- package/build/main/lib/dependencies/src/PurlGenerator.d.ts +2 -0
- package/build/main/lib/dependencies/src/PurlGenerator.js +62 -0
- package/build/main/lib/dependencies/src/parsers/golangParser.d.ts +0 -0
- package/build/main/lib/dependencies/src/parsers/golangParser.js +3 -0
- package/build/main/lib/dependencies/src/parsers/mavenParser.d.ts +2 -0
- package/build/main/lib/dependencies/src/parsers/mavenParser.js +44 -0
- package/build/main/lib/dependencies/src/parsers/npmParser.d.ts +3 -0
- package/build/main/lib/dependencies/src/parsers/npmParser.js +45 -0
- package/build/main/lib/dependencies/src/parsers/pyParser.d.ts +2 -0
- package/build/main/lib/dependencies/src/parsers/pyParser.js +51 -0
- package/build/main/lib/dependencies/src/parsers/rubyParser.d.ts +3 -0
- package/build/main/lib/dependencies/src/parsers/rubyParser.js +135 -0
- package/build/main/lib/dependencies/src/parsers/types.d.ts +15 -0
- package/build/main/lib/dependencies/src/parsers/types.js +33 -0
- package/build/main/lib/dependencies/src/parsers/utils.d.ts +2 -0
- package/build/main/lib/dependencies/src/parsers/utils.js +19 -0
- package/build/main/lib/dependencyScan/dependencyScan.d.ts +2 -0
- package/build/main/lib/dependencyScan/dependencyScan.js +37 -0
- package/build/main/lib/dependencyScan/parser.d.ts +7 -0
- package/build/main/lib/dependencyScan/parser.js +41 -0
- package/build/main/lib/dependencyScan/utils.d.ts +1 -0
- package/build/main/lib/dependencyScan/utils.js +16 -0
- package/build/main/lib/scanner/Dependency/dependency.d.ts +9 -0
- package/build/main/lib/scanner/Dependency/dependency.js +46 -0
- package/build/main/lib/scanner/Dependency/dependencyScan.d.ts +9 -0
- package/build/main/lib/scanner/Dependency/dependencyScan.js +48 -0
- package/build/main/lib/scanner/Dependency/parser.d.ts +7 -0
- package/build/main/lib/scanner/Dependency/parser.js +41 -0
- package/build/main/lib/scanner/Dependency/utils.d.ts +1 -0
- package/build/main/lib/scanner/Dependency/utils.js +16 -0
- package/build/main/lib/scanner/Dispatcher/DispatchableItem.js +1 -1
- package/build/main/lib/scanner/Dispatcher/Dispatcher.d.ts +3 -2
- package/build/main/lib/scanner/Dispatcher/Dispatcher.js +15 -13
- package/build/main/lib/scanner/Scannable/ScannableItem.d.ts +4 -3
- package/build/main/lib/scanner/Scannable/ScannableItem.js +6 -6
- package/build/main/lib/scanner/Scanner.d.ts +7 -6
- package/build/main/lib/scanner/Scanner.js +45 -42
- package/build/main/lib/scanner/ScannerTypes.d.ts +32 -0
- package/build/main/lib/scanner/ScannerTypes.js +35 -0
- package/build/main/lib/scanner/Winnower/Winnower.d.ts +5 -2
- package/build/main/lib/scanner/Winnower/Winnower.js +29 -24
- package/build/main/lib/scanner/Winnower/WinnowerResponse.d.ts +3 -0
- package/build/main/lib/scanner/Winnower/WinnowerResponse.js +7 -1
- package/build/main/lib/tree/Tree.js +4 -4
- package/build/module/bin/cli-bin.js +10 -3
- package/build/module/commands/dep.d.ts +1 -0
- package/build/module/commands/dep.js +19 -0
- package/build/module/commands/scan.js +16 -34
- package/build/module/index.d.ts +3 -1
- package/build/module/index.js +4 -2
- package/build/module/lib/dependencies/Dependency.d.ts +9 -0
- package/build/module/lib/dependencies/Dependency.js +45 -0
- package/build/module/lib/dependencies/DependencyTypes.d.ts +19 -0
- package/build/module/lib/dependencies/DependencyTypes.js +2 -0
- package/build/module/lib/dependencies/PurlGenerator.d.ts +2 -0
- package/build/module/lib/dependencies/PurlGenerator.js +32 -0
- package/build/module/lib/dependencies/parsers/golangParser.d.ts +0 -0
- package/build/module/lib/dependencies/parsers/golangParser.js +3 -0
- package/build/module/lib/dependencies/parsers/mavenParser.d.ts +2 -0
- package/build/module/lib/dependencies/parsers/mavenParser.js +37 -0
- package/build/module/lib/dependencies/parsers/npmParser.d.ts +3 -0
- package/build/module/lib/dependencies/parsers/npmParser.js +37 -0
- package/build/module/lib/dependencies/parsers/pyParser.d.ts +2 -0
- package/build/module/lib/dependencies/parsers/pyParser.js +44 -0
- package/build/module/lib/dependencies/parsers/rubyParser.d.ts +3 -0
- package/build/module/lib/dependencies/parsers/rubyParser.js +132 -0
- package/build/module/lib/dependencies/parsers/types.d.ts +15 -0
- package/build/module/lib/dependencies/parsers/types.js +32 -0
- package/build/module/lib/dependencies/parsers/utils.d.ts +2 -0
- package/build/module/lib/dependencies/parsers/utils.js +15 -0
- package/build/module/lib/dependencies/src/PurlGenerator.d.ts +2 -0
- package/build/module/lib/dependencies/src/PurlGenerator.js +55 -0
- package/build/module/lib/dependencies/src/parsers/golangParser.d.ts +0 -0
- package/build/module/lib/dependencies/src/parsers/golangParser.js +3 -0
- package/build/module/lib/dependencies/src/parsers/mavenParser.d.ts +2 -0
- package/build/module/lib/dependencies/src/parsers/mavenParser.js +37 -0
- package/build/module/lib/dependencies/src/parsers/npmParser.d.ts +3 -0
- package/build/module/lib/dependencies/src/parsers/npmParser.js +37 -0
- package/build/module/lib/dependencies/src/parsers/pyParser.d.ts +2 -0
- package/build/module/lib/dependencies/src/parsers/pyParser.js +44 -0
- package/build/module/lib/dependencies/src/parsers/rubyParser.d.ts +3 -0
- package/build/module/lib/dependencies/src/parsers/rubyParser.js +132 -0
- package/build/module/lib/dependencies/src/parsers/types.d.ts +15 -0
- package/build/module/lib/dependencies/src/parsers/types.js +32 -0
- package/build/module/lib/dependencies/src/parsers/utils.d.ts +2 -0
- package/build/module/lib/dependencies/src/parsers/utils.js +14 -0
- package/build/module/lib/dependencyScan/dependencyScan.d.ts +2 -0
- package/build/module/lib/dependencyScan/dependencyScan.js +29 -0
- package/build/module/lib/dependencyScan/parser.d.ts +7 -0
- package/build/module/lib/dependencyScan/parser.js +38 -0
- package/build/module/lib/dependencyScan/utils.d.ts +1 -0
- package/build/module/lib/dependencyScan/utils.js +12 -0
- package/build/module/lib/scanner/Dependency/dependency.d.ts +9 -0
- package/build/module/lib/scanner/Dependency/dependency.js +38 -0
- package/build/module/lib/scanner/Dependency/dependencyScan.d.ts +9 -0
- package/build/module/lib/scanner/Dependency/dependencyScan.js +40 -0
- package/build/module/lib/scanner/Dependency/parser.d.ts +7 -0
- package/build/module/lib/scanner/Dependency/parser.js +38 -0
- package/build/module/lib/scanner/Dependency/utils.d.ts +1 -0
- package/build/module/lib/scanner/Dependency/utils.js +12 -0
- package/build/module/lib/scanner/Dispatcher/DispatchableItem.js +1 -1
- package/build/module/lib/scanner/Dispatcher/Dispatcher.d.ts +3 -2
- package/build/module/lib/scanner/Dispatcher/Dispatcher.js +6 -4
- package/build/module/lib/scanner/Scannable/ScannableItem.d.ts +4 -3
- package/build/module/lib/scanner/Scannable/ScannableItem.js +7 -7
- package/build/module/lib/scanner/Scanner.d.ts +7 -6
- package/build/module/lib/scanner/Scanner.js +26 -22
- package/build/module/lib/scanner/ScannerTypes.d.ts +32 -0
- package/build/module/lib/scanner/ScannerTypes.js +32 -0
- package/build/module/lib/scanner/Winnower/Winnower.d.ts +5 -2
- package/build/module/lib/scanner/Winnower/Winnower.js +24 -18
- package/build/module/lib/scanner/Winnower/WinnowerResponse.d.ts +3 -0
- package/build/module/lib/scanner/Winnower/WinnowerResponse.js +8 -2
- package/build/module/lib/tree/Tree.js +4 -4
- package/package.json +2 -1
- package/.circleci/config.yml +0 -64
- package/.cspell.json +0 -34
- package/.editorconfig +0 -15
- package/.eslintrc.json +0 -37
- package/.gitignore +0 -11
- package/.prettierignore +0 -2
- package/.vscode/extensions.json +0 -8
- package/.vscode/launch.json +0 -29
- package/.vscode/settings.json +0 -7
- package/build/tsconfig.module.tsbuildinfo +0 -1
- package/build/tsconfig.tsbuildinfo +0 -1
- package/examples/defaultFilter.json +0 -203
- package/src/bin/cli-bin.ts +0 -49
- package/src/commands/scan.ts +0 -129
- package/src/index.ts +0 -4
- package/src/lib/filters/defaultFilter.ts +0 -207
- package/src/lib/filters/filtering.ts +0 -234
- package/src/lib/scanner/Dispatcher/DispatchableItem.ts +0 -29
- package/src/lib/scanner/Dispatcher/Dispatcher.ts +0 -147
- package/src/lib/scanner/Dispatcher/DispatcherResponse.ts +0 -40
- package/src/lib/scanner/Dispatcher/GlobalControllerAborter.ts +0 -33
- package/src/lib/scanner/Scannable/ScannableItem.ts +0 -40
- package/src/lib/scanner/Scanner.ts +0 -316
- package/src/lib/scanner/ScannerCfg.ts +0 -29
- package/src/lib/scanner/ScannerEvents.ts +0 -29
- package/src/lib/scanner/Winnower/Winnower.ts +0 -431
- package/src/lib/scanner/Winnower/WinnowerExtractor.ts +0 -38
- package/src/lib/scanner/Winnower/WinnowerResponse.ts +0 -30
- package/src/lib/tree/File.ts +0 -20
- package/src/lib/tree/Folder.ts +0 -50
- package/src/lib/tree/Node.ts +0 -34
- package/src/lib/tree/Tree.ts +0 -89
- package/tsconfig.json +0 -47
- package/tsconfig.module.json +0 -11
- package/yarn.lock +0 -5588
|
@@ -9,7 +9,7 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
9
9
|
const worker_threads_1 = require("worker_threads");
|
|
10
10
|
const ScannableItem_1 = require("../Scannable/ScannableItem");
|
|
11
11
|
const ScannerCfg_1 = require("../ScannerCfg");
|
|
12
|
-
const
|
|
12
|
+
const ScannerTypes_1 = require("../ScannerTypes");
|
|
13
13
|
const WinnowerExtractor_1 = require("./WinnowerExtractor");
|
|
14
14
|
const WinnowerResponse_1 = require("./WinnowerResponse");
|
|
15
15
|
const stringWorker = `
|
|
@@ -18,7 +18,7 @@ const { parentPort } = require('worker_threads');
|
|
|
18
18
|
parentPort.on('message', async (scannableItem) => {
|
|
19
19
|
|
|
20
20
|
let fingerprint;
|
|
21
|
-
if ( scannableItem.
|
|
21
|
+
if ( scannableItem.winnowingMode === "FULL_WINNOWING") {
|
|
22
22
|
fingerprint = wfp_for_content(
|
|
23
23
|
scannableItem.content,
|
|
24
24
|
scannableItem.contentSource,
|
|
@@ -237,17 +237,16 @@ class Winnower extends events_1.default {
|
|
|
237
237
|
constructor(scannerCfg = new ScannerCfg_1.ScannerCfg()) {
|
|
238
238
|
super();
|
|
239
239
|
this.scannerCfg = scannerCfg;
|
|
240
|
-
this.init();
|
|
241
|
-
this.prepareWorker();
|
|
242
240
|
}
|
|
243
241
|
init() {
|
|
244
242
|
this.wfp = '';
|
|
245
|
-
this.
|
|
243
|
+
this.folderRoot = '';
|
|
246
244
|
this.continue = true;
|
|
247
245
|
this.isRunning = false;
|
|
248
246
|
this.readingFromFile = false;
|
|
249
247
|
this.fileList = [];
|
|
250
248
|
this.fileListIndex = 0;
|
|
249
|
+
this.winnowingMode = ScannerTypes_1.WinnowingMode.FULL_WINNOWING;
|
|
251
250
|
}
|
|
252
251
|
prepareWorker() {
|
|
253
252
|
this.worker = new worker_threads_1.Worker(stringWorker, { eval: true });
|
|
@@ -258,20 +257,20 @@ class Winnower extends events_1.default {
|
|
|
258
257
|
}
|
|
259
258
|
recoveryIndex() {
|
|
260
259
|
// Files: contains all files winnowed but not packed yet
|
|
261
|
-
const files = new WinnowerResponse_1.WinnowerResponse(this.wfp, this.
|
|
260
|
+
const files = new WinnowerResponse_1.WinnowerResponse(this.wfp, this.folderRoot).getFilesWinnowed();
|
|
262
261
|
if (files.length) {
|
|
263
262
|
const lastFileWinnowed = files[files.length - 1];
|
|
264
263
|
let i = 0;
|
|
265
|
-
while (i <= files.length && lastFileWinnowed !== this.fileList[this.fileListIndex - i]
|
|
264
|
+
while (i <= files.length && lastFileWinnowed !== this.fileList[this.fileListIndex - i]) {
|
|
266
265
|
i += 1;
|
|
267
266
|
}
|
|
268
267
|
// If file already winnowed cannot be found in fileList emit an error.
|
|
269
268
|
if (i > files.length) {
|
|
270
|
-
this.emit(
|
|
269
|
+
this.emit(ScannerTypes_1.ScannerEvents.ERROR, new Error('Cannot recovery index on winnower'));
|
|
271
270
|
return -1;
|
|
272
271
|
}
|
|
273
272
|
this.fileListIndex -= i;
|
|
274
|
-
if (this.fileList[this.fileListIndex]
|
|
273
|
+
if (this.fileList[this.fileListIndex] === lastFileWinnowed)
|
|
275
274
|
this.fileListIndex += 1;
|
|
276
275
|
}
|
|
277
276
|
return 0;
|
|
@@ -307,18 +306,17 @@ class Winnower extends events_1.default {
|
|
|
307
306
|
return true;
|
|
308
307
|
}
|
|
309
308
|
processPackedWfp(content) {
|
|
310
|
-
const wnRsp = new WinnowerResponse_1.WinnowerResponse(content, this.
|
|
311
|
-
this.emit(
|
|
309
|
+
const wnRsp = new WinnowerResponse_1.WinnowerResponse(content, this.folderRoot);
|
|
310
|
+
this.emit(ScannerTypes_1.ScannerEvents.WINNOWING_NEW_CONTENT, wnRsp);
|
|
312
311
|
}
|
|
313
312
|
async getNextScannableItem() {
|
|
314
313
|
if (this.fileListIndex >= this.fileList.length)
|
|
315
314
|
return null;
|
|
316
|
-
const path = this.fileList[this.fileListIndex]
|
|
317
|
-
const
|
|
318
|
-
const contentSource = path.replace(`${this.scanRoot}`, '');
|
|
315
|
+
const path = this.fileList[this.fileListIndex];
|
|
316
|
+
const contentSource = path.replace(`${this.folderRoot}`, '');
|
|
319
317
|
const content = await fs_1.default.promises.readFile(path);
|
|
320
318
|
this.fileListIndex += 1;
|
|
321
|
-
const scannable = new ScannableItem_1.ScannableItem(content, contentSource,
|
|
319
|
+
const scannable = new ScannableItem_1.ScannableItem(content, contentSource, this.winnowingMode, this.scannerCfg.WFP_FILE_MAX_SIZE);
|
|
322
320
|
return scannable;
|
|
323
321
|
}
|
|
324
322
|
async nextStepMachine() {
|
|
@@ -331,7 +329,7 @@ class Winnower extends events_1.default {
|
|
|
331
329
|
this.finishWinnowing();
|
|
332
330
|
}
|
|
333
331
|
startWinnowingFromFile(filePath) {
|
|
334
|
-
this.emit(
|
|
332
|
+
this.emit(ScannerTypes_1.ScannerEvents.WINNOWER_LOG, '[ SCANNER ]: Starting Winnowing from file...');
|
|
335
333
|
this.readingFromFile = true;
|
|
336
334
|
this.isRunning = true;
|
|
337
335
|
this.winnowingExtractor = new WinnowerExtractor_1.WinnowerExtractor();
|
|
@@ -351,12 +349,16 @@ class Winnower extends events_1.default {
|
|
|
351
349
|
if (winBlock === '')
|
|
352
350
|
this.finishWinnowing();
|
|
353
351
|
}
|
|
354
|
-
async startWinnowing(
|
|
355
|
-
this.emit(
|
|
352
|
+
async startWinnowing(scanInput) {
|
|
353
|
+
this.emit(ScannerTypes_1.ScannerEvents.WINNOWER_LOG, '[ SCANNER ]: Starting Winnowing...');
|
|
354
|
+
this.init();
|
|
355
|
+
this.prepareWorker();
|
|
356
|
+
if (scanInput.winnowingMode)
|
|
357
|
+
this.setWinnowingMode(scanInput.winnowingMode);
|
|
356
358
|
this.readingFromFile = false;
|
|
357
|
-
this.scanRoot = scanRoot;
|
|
358
359
|
this.isRunning = true;
|
|
359
|
-
this.
|
|
360
|
+
this.folderRoot = scanInput.folderRoot;
|
|
361
|
+
this.fileList = scanInput.fileList;
|
|
360
362
|
this.nextStepMachine();
|
|
361
363
|
}
|
|
362
364
|
finishWinnowing() {
|
|
@@ -364,11 +366,11 @@ class Winnower extends events_1.default {
|
|
|
364
366
|
this.processPackedWfp(this.wfp);
|
|
365
367
|
}
|
|
366
368
|
this.isRunning = false;
|
|
367
|
-
this.emit(
|
|
369
|
+
this.emit(ScannerTypes_1.ScannerEvents.WINNOWER_LOG, '[ SCANNER ]: Winnowing Finished...');
|
|
368
370
|
this.forceStopWorker();
|
|
369
371
|
}
|
|
370
372
|
pause() {
|
|
371
|
-
this.emit(
|
|
373
|
+
this.emit(ScannerTypes_1.ScannerEvents.WINNOWER_LOG, '[ SCANNER ]: Winnowing paused...');
|
|
372
374
|
this.continue = false;
|
|
373
375
|
if (!this.readingFromFile) {
|
|
374
376
|
this.forceStopWorker();
|
|
@@ -376,7 +378,7 @@ class Winnower extends events_1.default {
|
|
|
376
378
|
}
|
|
377
379
|
}
|
|
378
380
|
resume() {
|
|
379
|
-
this.emit(
|
|
381
|
+
this.emit(ScannerTypes_1.ScannerEvents.WINNOWER_LOG, '[ SCANNER ]: Winnowing resumed...');
|
|
380
382
|
this.continue = true;
|
|
381
383
|
if (!this.readingFromFile) {
|
|
382
384
|
this.recoveryIndex();
|
|
@@ -397,6 +399,9 @@ class Winnower extends events_1.default {
|
|
|
397
399
|
hasPendingFiles() {
|
|
398
400
|
return this.isRunning;
|
|
399
401
|
}
|
|
402
|
+
setWinnowingMode(mode) {
|
|
403
|
+
this.winnowingMode = mode;
|
|
404
|
+
}
|
|
400
405
|
}
|
|
401
406
|
exports.Winnower = Winnower;
|
|
402
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
407
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2lubm93ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NjYW5uZXIvV2lubm93ZXIvV2lubm93ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQWtDO0FBQ2xDLDRDQUFvQjtBQUNwQixtREFBd0M7QUFFeEMsOERBQTJEO0FBQzNELDhDQUEyQztBQUMzQyxrREFBNkU7QUFDN0UsMkRBQXdEO0FBRXhELHlEQUFzRDtBQUl0RCxNQUFNLFlBQVksR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTROcEIsQ0FBQztBQUVGLE1BQWEsUUFBUyxTQUFRLGdCQUFZO0lBdUJ4QyxZQUFZLFVBQVUsR0FBRyxJQUFJLHVCQUFVLEVBQUU7UUFDdkMsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdkIsSUFB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
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
export declare class WinnowerResponse {
|
|
2
2
|
private wfpContent;
|
|
3
|
+
private engineFlags;
|
|
3
4
|
private scanRoot;
|
|
4
5
|
constructor(wfpContent: any, scanRoot?: string);
|
|
5
6
|
isEqual(winnowerResponse: any): boolean;
|
|
6
7
|
getContent(): string;
|
|
8
|
+
setEngineFlags(engineFlags: number): void;
|
|
9
|
+
getEngineFlags(): number;
|
|
7
10
|
getFilesWinnowed(): any[] | "";
|
|
8
11
|
}
|
|
@@ -12,6 +12,12 @@ class WinnowerResponse {
|
|
|
12
12
|
getContent() {
|
|
13
13
|
return this.wfpContent;
|
|
14
14
|
}
|
|
15
|
+
setEngineFlags(engineFlags) {
|
|
16
|
+
this.engineFlags = engineFlags;
|
|
17
|
+
}
|
|
18
|
+
getEngineFlags() {
|
|
19
|
+
return this.engineFlags;
|
|
20
|
+
}
|
|
15
21
|
getFilesWinnowed() {
|
|
16
22
|
const files = [];
|
|
17
23
|
const regExp = new RegExp(/,(\/.*)/g);
|
|
@@ -23,4 +29,4 @@ class WinnowerResponse {
|
|
|
23
29
|
}
|
|
24
30
|
}
|
|
25
31
|
exports.WinnowerResponse = WinnowerResponse;
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2lubm93ZXJSZXNwb25zZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2Nhbm5lci9XaW5ub3dlci9XaW5ub3dlclJlc3BvbnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLE1BQWEsZ0JBQWdCO0lBTzNCLFlBQVksVUFBVSxFQUFFLFFBQVEsR0FBRyxFQUFFO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFTSxPQUFPLENBQUMsZ0JBQWdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzdELENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxjQUFjLENBQUMsV0FBbUI7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksTUFBTSxDQUFDO1FBQ1gsMENBQTBDO1FBQzFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEYsT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQXBDRCw0Q0FvQ0MifQ==
|
|
@@ -12,7 +12,7 @@ const Folder_1 = __importDefault(require("./Folder"));
|
|
|
12
12
|
class Tree {
|
|
13
13
|
constructor(path) {
|
|
14
14
|
const pathParts = path.split(path_1.default.sep);
|
|
15
|
-
this.rootName =
|
|
15
|
+
this.rootName = path_1.default.basename(path);
|
|
16
16
|
this.rootPath = path;
|
|
17
17
|
this.rootFolder = new Folder_1.default('/', this.rootName);
|
|
18
18
|
}
|
|
@@ -31,7 +31,7 @@ class Tree {
|
|
|
31
31
|
for (const dirEntry of dirEntries) {
|
|
32
32
|
const fullPath = `${path}/${dirEntry.name}`;
|
|
33
33
|
const relativePath = `${path}/${dirEntry.name}`.replace(this.rootPath, '');
|
|
34
|
-
if (this.filter
|
|
34
|
+
if (!this.filter || this.filter.include(fullPath))
|
|
35
35
|
if (dirEntry.isDirectory()) {
|
|
36
36
|
const f = new Folder_1.default(relativePath, dirEntry.name);
|
|
37
37
|
const subTree = this.buildTreeRec(`${path}/${dirEntry.name}`, f);
|
|
@@ -67,10 +67,10 @@ class Tree {
|
|
|
67
67
|
return this.rootPath;
|
|
68
68
|
}
|
|
69
69
|
getFileList() {
|
|
70
|
-
const rootPath = this.rootPath.substring(0, this.rootPath.length
|
|
70
|
+
const rootPath = this.rootPath.substring(0, this.rootPath.length);
|
|
71
71
|
const fList = this.rootFolder.getFiles();
|
|
72
72
|
return fList.map((fileRelativePath) => { return (rootPath + fileRelativePath); });
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
exports.Tree = Tree;
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdHJlZS9UcmVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLDRDQUFvQjtBQUNwQixnREFBMkI7QUFHM0IsaUNBQWtDO0FBRWxDLGtEQUEwQjtBQUMxQixzREFBOEI7QUFJOUIsTUFBYSxJQUFJO0lBU2YsWUFBWSxJQUFZO1FBQ3RCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsY0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksZ0JBQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSxTQUFTO1FBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxDQUFhO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFTyxZQUFZLENBQUMsSUFBWSxFQUFFLElBQVk7UUFDN0MsTUFBTSxVQUFVLEdBQUcsWUFBRTthQUNsQixXQUFXLENBQUMsSUFBSSxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsc0NBQXNDO2FBQ2pGLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7YUFDNUIsTUFBTSxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBRXJE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
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { program } from 'commander';
|
|
3
|
+
import { depHandler } from '../commands/dep';
|
|
3
4
|
import { scanHandler } from '../commands/scan';
|
|
4
5
|
function CLIErrorHandler(e) {
|
|
5
6
|
console.error(' ');
|
|
@@ -8,15 +9,16 @@ function CLIErrorHandler(e) {
|
|
|
8
9
|
}
|
|
9
10
|
async function main() {
|
|
10
11
|
program
|
|
11
|
-
.version(
|
|
12
|
+
.version("0.2.9")
|
|
12
13
|
.description('The SCANOSS JS package provides a simple, easy to consume module for interacting with SCANOSS APIs/Engine.');
|
|
13
14
|
program
|
|
14
15
|
.command('scan <source>')
|
|
15
16
|
.description('Scan a folder/file')
|
|
16
17
|
//.option('-w, --wfp', 'Scan a .wfp file instead of a folder') // In progress
|
|
17
18
|
.option('-c, --concurrency <number>', 'Number of concurrent connections to use while scanning (optional -default 10)')
|
|
18
|
-
.option('
|
|
19
|
+
.option('--filter <path>', 'Loads an user defined filter (optional)')
|
|
19
20
|
.option('-o, --output <filename>', 'Output result file name (optional - default stdout)')
|
|
21
|
+
.option('-F, --flags <flags>', 'Scanning engine flags (1: disable snippet matching, 2 enable snippet ids, 4: disable dependencies, 8: disable licenses, 16: disable copyrights,32: disable vulnerabilities, 64: disable quality, 128: disable cryptography,256: disable best match, 512: Report identified files)')
|
|
20
22
|
.option('-P, --post-size <postsize>', 'Number of kilobytes to limit the post to while scanning (optional - default 64)')
|
|
21
23
|
.option('-R, --max-retry <retry>', 'Max number of retries for each POST (optional -default 5)')
|
|
22
24
|
.option('-M, --timeout <timeout>', 'Timeout (in seconds) for API communication (optional -default 120)')
|
|
@@ -27,6 +29,11 @@ async function main() {
|
|
|
27
29
|
.addHelpText('after', `
|
|
28
30
|
Examples:
|
|
29
31
|
$ scanoss-js scan -o scan-output.json <source-folder>`);
|
|
32
|
+
program
|
|
33
|
+
.command('dep <source>')
|
|
34
|
+
.description('Scan for dependencies [ BETA ]')
|
|
35
|
+
.option('-o, --output <filename>', 'Output result file name (optional - default stdout)')
|
|
36
|
+
.action((source, options) => { depHandler(source, options).catch((e) => { CLIErrorHandler(e); }); });
|
|
30
37
|
await program.parseAsync(process.argv);
|
|
31
38
|
}
|
|
32
39
|
try {
|
|
@@ -36,4 +43,4 @@ catch (e) {
|
|
|
36
43
|
console.error(e);
|
|
37
44
|
process.exit(1);
|
|
38
45
|
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWJpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaW4vY2xpLWJpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLFNBQVMsZUFBZSxDQUFDLENBQVE7SUFDL0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQztBQUtELEtBQUssVUFBVSxJQUFJO0lBQ2pCLE9BQU87U0FDSixPQUFPLENBQUMsT0FBTyxDQUFDO1NBQ2hCLFdBQVcsQ0FBQyw0R0FBNEcsQ0FBQyxDQUFBO0lBRTVILE9BQU87U0FDSixPQUFPLENBQUMsZUFBZSxDQUFDO1NBQ3hCLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQztRQUNsQyw2RUFBNkU7U0FDNUUsTUFBTSxDQUFDLDRCQUE0QixFQUFFLCtFQUErRSxDQUFDO1NBQ3JILE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSx5Q0FBeUMsQ0FBQztTQUNwRSxNQUFNLENBQUMseUJBQXlCLEVBQUUscURBQXFELENBQUM7U0FDeEYsTUFBTSxDQUFDLHFCQUFxQixFQUFFLG1SQUFtUixDQUFDO1NBQ2xULE1BQU0sQ0FBQyw0QkFBNEIsRUFBRSxpRkFBaUYsQ0FBQztTQUN2SCxNQUFNLENBQUMseUJBQXlCLEVBQUUsMkRBQTJELENBQUM7U0FDOUYsTUFBTSxDQUFDLHlCQUF5QixFQUFFLG9FQUFvRSxDQUFDO1NBQ3ZHLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSx5RUFBeUUsQ0FBQztTQUMxRyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsdUVBQXVFLENBQUM7U0FDbEcsTUFBTSxDQUFDLGVBQWUsRUFBRSw4QkFBOEIsQ0FBQztTQUN2RCxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRSxXQUFXLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUM7U0FDOUYsV0FBVyxDQUFDLE9BQU8sRUFBRTs7MERBRWdDLENBQ3JELENBQUM7SUFFRixPQUFPO1NBQ04sT0FBTyxDQUFDLGNBQWMsQ0FBQztTQUN2QixXQUFXLENBQUMsZ0NBQWdDLENBQUM7U0FDN0MsTUFBTSxDQUFDLHlCQUF5QixFQUFFLHFEQUFxRCxDQUFDO1NBQ3hGLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFFLFVBQVUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFBO0lBRTlGLE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUdELElBQUk7SUFDRixJQUFJLEVBQUUsQ0FBQztDQUNSO0FBQUMsT0FBTyxDQUFDLEVBQUU7SUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDakIifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function depHandler(rootPath: string, options: any): Promise<void>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import { Dependency } from "..";
|
|
3
|
+
import { Tree } from "../lib/tree/Tree";
|
|
4
|
+
export async function depHandler(rootPath, options) {
|
|
5
|
+
rootPath = rootPath.replace(/\/$/, ''); // Remove trailing slash if exists
|
|
6
|
+
rootPath = rootPath.replace(/^\./, process.env.PWD); // Convert relative path to absolute path.
|
|
7
|
+
const tree = new Tree(rootPath);
|
|
8
|
+
tree.buildTree();
|
|
9
|
+
const fileList = tree.getRootFolder().getFiles().map((path) => { return rootPath + path; });
|
|
10
|
+
const dependency = new Dependency();
|
|
11
|
+
const results = await dependency.scan(fileList);
|
|
12
|
+
if (options.output) {
|
|
13
|
+
fs.promises.writeFile(options.output, JSON.stringify(results, null, 2));
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
console.log(JSON.stringify(results, null, 2));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2RlcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLElBQUksQ0FBQztBQUNoQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJeEMsTUFBTSxDQUFDLEtBQUssVUFBVSxVQUFVLENBQUMsUUFBZ0IsRUFBRSxPQUFZO0lBQzdELFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFFLGtDQUFrQztJQUMzRSxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFFLDBDQUEwQztJQUVoRyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFFakIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUUsT0FBTyxRQUFRLEdBQUMsSUFBSSxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUM7SUFFdkYsTUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztJQUNwQyxNQUFNLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFaEQsSUFBRyxPQUFPLENBQUMsTUFBTSxFQUFFO1FBQ2pCLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDekU7U0FBTTtRQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDL0M7QUFFSCxDQUFDIn0=
|
|
@@ -1,19 +1,11 @@
|
|
|
1
1
|
import { Scanner } from '../lib/scanner/Scanner';
|
|
2
|
-
import { ScannerEvents } from '../lib/scanner/
|
|
2
|
+
import { ScannerEvents } from '../lib/scanner/ScannerTypes';
|
|
3
3
|
import { ScannerCfg } from '../lib/scanner/ScannerCfg';
|
|
4
4
|
import { Tree } from '../lib/tree/Tree';
|
|
5
5
|
import cliProgress from 'cli-progress';
|
|
6
6
|
import { defaultFilter } from '../lib/filters/defaultFilter';
|
|
7
7
|
import { FilterList } from '../lib/filters/filtering';
|
|
8
8
|
import fs from 'fs';
|
|
9
|
-
var FilterTypes;
|
|
10
|
-
(function (FilterTypes) {
|
|
11
|
-
FilterTypes["BANNED"] = "BANNED";
|
|
12
|
-
FilterTypes["WHITELIST"] = "WHITELIST";
|
|
13
|
-
FilterTypes["FULL_SCAN"] = "FULL_SCAN";
|
|
14
|
-
FilterTypes["QUICK_SCAN"] = "QUICK_SCAN";
|
|
15
|
-
})(FilterTypes || (FilterTypes = {}));
|
|
16
|
-
;
|
|
17
9
|
// Async function that verify if a path is a folder. If the path is not valid the promise will be rejected
|
|
18
10
|
const isFolder = (path) => {
|
|
19
11
|
return new Promise((resolve, reject) => {
|
|
@@ -27,14 +19,10 @@ const isFolder = (path) => {
|
|
|
27
19
|
});
|
|
28
20
|
});
|
|
29
21
|
};
|
|
30
|
-
async function printJSON(path) {
|
|
31
|
-
const jsonTxt = await fs.promises.readFile(path, 'utf8');
|
|
32
|
-
console.log(jsonTxt);
|
|
33
|
-
}
|
|
34
22
|
export async function scanHandler(rootPath, options) {
|
|
35
|
-
let
|
|
36
|
-
|
|
37
|
-
|
|
23
|
+
let scannerInput = { fileList: [] };
|
|
24
|
+
rootPath = rootPath.replace(/\/$/, ''); // Remove trailing slash if exists
|
|
25
|
+
rootPath = rootPath.replace(/^\./, process.env.PWD); // Convert relative path to absolute path.
|
|
38
26
|
const pathIsFolder = await isFolder(rootPath);
|
|
39
27
|
// Create scanner and set connections parameters
|
|
40
28
|
const scannerCfg = new ScannerCfg();
|
|
@@ -42,7 +30,7 @@ export async function scanHandler(rootPath, options) {
|
|
|
42
30
|
scannerCfg.CONCURRENCY_LIMIT = parseInt(options.concurrency);
|
|
43
31
|
if (options.postSize)
|
|
44
32
|
scannerCfg.WFP_FILE_MAX_SIZE = parseInt(options.postSize) * 1024;
|
|
45
|
-
if (options.
|
|
33
|
+
if (options.apiurl)
|
|
46
34
|
scannerCfg.API_URL = options.apiurl;
|
|
47
35
|
if (options.key)
|
|
48
36
|
scannerCfg.API_KEY = options.key;
|
|
@@ -51,10 +39,11 @@ export async function scanHandler(rootPath, options) {
|
|
|
51
39
|
if (options.maxRetry)
|
|
52
40
|
scannerCfg.MAX_RETRIES_FOR_RECOVERABLES_ERRORS = options.maxRetry;
|
|
53
41
|
const scanner = new Scanner(scannerCfg);
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
42
|
+
scannerInput.folderRoot = rootPath + '/'; // This will remove the project root path from the results.
|
|
43
|
+
if (options.flags)
|
|
44
|
+
scannerInput.engineFlags = options.flags;
|
|
45
|
+
if (!options.wfp) {
|
|
46
|
+
if (pathIsFolder) {
|
|
58
47
|
const tree = new Tree(rootPath);
|
|
59
48
|
const filter = new FilterList('');
|
|
60
49
|
if (options.filter) {
|
|
@@ -68,27 +57,20 @@ export async function scanHandler(rootPath, options) {
|
|
|
68
57
|
console.error('Reading directory... ');
|
|
69
58
|
tree.loadFilter(filter);
|
|
70
59
|
tree.buildTree();
|
|
71
|
-
fileList = tree.getFileList();
|
|
72
|
-
filesCounter = fileList.length;
|
|
73
|
-
// Converts to scanner input format
|
|
74
|
-
// This is temporary, until the scanner is ready to receive a ScannerInput object
|
|
75
|
-
for (let f of fileList)
|
|
76
|
-
scannerInput = Object.assign(scannerInput, { [f]: 'FULL_SCAN' });
|
|
60
|
+
scannerInput.fileList = tree.getFileList();
|
|
77
61
|
}
|
|
78
62
|
else {
|
|
79
|
-
scannerInput =
|
|
80
|
-
filesCounter = 1;
|
|
63
|
+
scannerInput.fileList = [rootPath];
|
|
81
64
|
}
|
|
82
65
|
}
|
|
83
66
|
else {
|
|
84
67
|
const winnowing = fs.readFileSync(rootPath, { encoding: 'utf-8' });
|
|
85
|
-
|
|
86
|
-
filesCounter = [...winnowing.matchAll(reg)].length;
|
|
68
|
+
//filesCounter = [...winnowing.matchAll(/file=/g)].length;
|
|
87
69
|
}
|
|
88
70
|
if (!options.verbose) {
|
|
89
71
|
const optBar1 = { format: 'Scan Progress: [{bar}] {percentage}% | Scanned {value} files of {total}' };
|
|
90
72
|
const bar1 = new cliProgress.SingleBar(optBar1, cliProgress.Presets.shades_classic);
|
|
91
|
-
bar1.start(
|
|
73
|
+
bar1.start(scannerInput.fileList.length, 0);
|
|
92
74
|
scanner.on(ScannerEvents.DISPATCHER_NEW_DATA, (dispResp) => {
|
|
93
75
|
bar1.increment(dispResp.getFilesScanned().length);
|
|
94
76
|
});
|
|
@@ -106,6 +88,6 @@ export async function scanHandler(rootPath, options) {
|
|
|
106
88
|
if (options.wfp)
|
|
107
89
|
await scanner.scanFromWinnowingFile(rootPath);
|
|
108
90
|
else
|
|
109
|
-
await scanner.
|
|
91
|
+
await scanner.scan([scannerInput]);
|
|
110
92
|
}
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9zY2FuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFnQixNQUFNLDZCQUE2QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFeEMsT0FBTyxXQUFXLE1BQU0sY0FBYyxDQUFDO0FBRXZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdEQsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBRXBCLDBHQUEwRztBQUMxRyxNQUFNLFFBQVEsR0FBRyxDQUFDLElBQVksRUFBb0IsRUFBRTtJQUNsRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3JDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzNCLElBQUksR0FBRyxFQUFFO2dCQUNQLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNiO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQzthQUM5QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVcsQ0FBQyxRQUFnQixFQUFFLE9BQVk7SUFFOUQsSUFBSSxZQUFZLEdBQWlCLEVBQUMsUUFBUSxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBRWhELFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFFLGtDQUFrQztJQUMzRSxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFFLDBDQUEwQztJQUNoRyxNQUFNLFlBQVksR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU5QyxnREFBZ0Q7SUFDaEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztJQUNwQyxJQUFHLE9BQU8sQ0FBQyxXQUFXO1FBQUUsVUFBVSxDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckYsSUFBRyxPQUFPLENBQUMsUUFBUTtRQUFFLFVBQVUsQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUN0RixJQUFHLE9BQU8sQ0FBQyxNQUFNO1FBQUUsVUFBVSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQ3ZELElBQUcsT0FBTyxDQUFDLEdBQUc7UUFBRSxVQUFVLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDakQsSUFBRyxPQUFPLENBQUMsT0FBTztRQUFFLFVBQVUsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDaEUsSUFBRyxPQUFPLENBQUMsUUFBUTtRQUFFLFVBQVUsQ0FBQyxtQ0FBbUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQ3ZGLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXhDLFlBQVksQ0FBQyxVQUFVLEdBQUcsUUFBUSxHQUFHLEdBQUcsQ0FBQyxDQUFDLDJEQUEyRDtJQUNyRyxJQUFHLE9BQU8sQ0FBQyxLQUFLO1FBQUUsWUFBWSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBRTNELElBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO1FBQ2YsSUFBRyxZQUFZLEVBQUU7WUFDZixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUVsQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7Z0JBQ2xCLE9BQU8sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM3RCxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNyQztpQkFBTTtnQkFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7Z0JBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBMkIsQ0FBQyxDQUFDO2FBQzFDO1lBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLFlBQVksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzVDO2FBQU07WUFDTCxZQUFZLENBQUMsUUFBUSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDcEM7S0FDRjtTQUFNO1FBQ0wsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBQyxRQUFRLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQztRQUNqRSwwREFBMEQ7S0FDM0Q7SUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtRQUNwQixNQUFNLE9BQU8sR0FBRyxFQUFFLE1BQU0sRUFBRSx5RUFBeUUsRUFBRSxDQUFDO1FBQ3RHLE1BQU0sSUFBSSxHQUFHLElBQUksV0FBVyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTVDLE9BQU8sQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBNEIsRUFBRSxFQUFFO1lBQzdFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRSxHQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO0tBQzNFO1NBQU07UUFDTCxPQUFPLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztLQUM1RTtJQUVELE9BQU8sQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUU7UUFDdkQsSUFBRyxPQUFPLENBQUMsTUFBTTtZQUNmLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQzs7WUFFdkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxPQUFPLENBQUMsR0FBRztRQUFFLE1BQU0sT0FBTyxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDOztRQUMxRCxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0FBRTFDLENBQUMifQ==
|
package/build/module/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
export * from './lib/scanner/
|
|
1
|
+
export * from './lib/scanner/ScannerTypes';
|
|
2
2
|
export * from './lib/scanner/ScannerCfg';
|
|
3
3
|
export * from './lib/scanner/Scanner';
|
|
4
|
+
export * from './lib/dependencies/DependencyTypes';
|
|
5
|
+
export * from './lib/dependencies/Dependency';
|
package/build/module/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
export * from './lib/scanner/
|
|
1
|
+
export * from './lib/scanner/ScannerTypes';
|
|
2
2
|
export * from './lib/scanner/ScannerCfg';
|
|
3
3
|
export * from './lib/scanner/Scanner';
|
|
4
|
-
|
|
4
|
+
export * from './lib/dependencies/DependencyTypes';
|
|
5
|
+
export * from './lib/dependencies/Dependency';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDBCQUEwQixDQUFBO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUE7QUFDckMsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLCtCQUErQixDQUFDIn0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IDependencyResponse } from "./DependencyTypes";
|
|
2
|
+
export declare class Dependency {
|
|
3
|
+
private workDirectory;
|
|
4
|
+
private resultFilePath;
|
|
5
|
+
constructor();
|
|
6
|
+
scan(fileList: Array<string>): Promise<IDependencyResponse>;
|
|
7
|
+
setWorkDirectory(workDirectory: string): void;
|
|
8
|
+
private adapterToDependencyResponse;
|
|
9
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import os from "os";
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
import { generateDependenciesPurls } from "./PurlGenerator";
|
|
4
|
+
export class Dependency {
|
|
5
|
+
workDirectory;
|
|
6
|
+
resultFilePath;
|
|
7
|
+
constructor() {
|
|
8
|
+
this.setWorkDirectory(`${os.tmpdir()}/depscanner-${new Date().getTime()}`);
|
|
9
|
+
}
|
|
10
|
+
async scan(fileList) {
|
|
11
|
+
const toGrpc = await generateDependenciesPurls(fileList);
|
|
12
|
+
// Here we should call to the grpc server
|
|
13
|
+
return this.adapterToDependencyResponse(toGrpc);
|
|
14
|
+
}
|
|
15
|
+
setWorkDirectory(workDirectory) {
|
|
16
|
+
this.workDirectory = workDirectory;
|
|
17
|
+
this.resultFilePath = `${this.workDirectory}/dependencies.json`;
|
|
18
|
+
if (!fs.existsSync(this.workDirectory))
|
|
19
|
+
fs.mkdirSync(this.workDirectory);
|
|
20
|
+
}
|
|
21
|
+
adapterToDependencyResponse(dependencies) {
|
|
22
|
+
const results = { files: [] };
|
|
23
|
+
const depArr = [];
|
|
24
|
+
let fileArr = {};
|
|
25
|
+
for (const dependency of dependencies.files) {
|
|
26
|
+
for (const purl of dependency.purls) {
|
|
27
|
+
depArr.push({
|
|
28
|
+
component: null,
|
|
29
|
+
purl: purl.purl,
|
|
30
|
+
version: null,
|
|
31
|
+
licenses: [{ name: null }]
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
fileArr = ({
|
|
35
|
+
file: dependency.file,
|
|
36
|
+
id: "dependency",
|
|
37
|
+
status: "pending",
|
|
38
|
+
dependencies: depArr
|
|
39
|
+
});
|
|
40
|
+
results.files.push(fileArr);
|
|
41
|
+
}
|
|
42
|
+
return results;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZGVwZW5kZW5jaWVzL0RlcGVuZGVuY3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUlwQixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU1RCxNQUFNLE9BQU8sVUFBVTtJQUViLGFBQWEsQ0FBUztJQUV0QixjQUFjLENBQVM7SUFFL0I7UUFDRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLGVBQWUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJLENBQUUsUUFBdUI7UUFDeEMsTUFBTSxNQUFNLEdBQUcsTUFBTSx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6RCx5Q0FBeUM7UUFDekMsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLGdCQUFnQixDQUFDLGFBQXFCO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxvQkFBb0IsQ0FBQztRQUVoRSxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVPLDJCQUEyQixDQUFFLFlBQWdDO1FBQ25FLE1BQU0sT0FBTyxHQUF3QixFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztRQUVqRCxNQUFNLE1BQU0sR0FBdUIsRUFBRSxDQUFDO1FBQ3RDLElBQUksT0FBTyxHQUFVLEVBQUUsQ0FBQztRQUV4QixLQUFLLE1BQU0sVUFBVSxJQUFJLFlBQVksQ0FBQyxLQUFLLEVBQUM7WUFDMUMsS0FBSyxNQUFNLElBQUksSUFBSSxVQUFVLENBQUMsS0FBSyxFQUFFO2dCQUNuQyxNQUFNLENBQUMsSUFBSSxDQUFDO29CQUNWLFNBQVMsRUFBRSxJQUFJO29CQUNmLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtvQkFDZixPQUFPLEVBQUUsSUFBSTtvQkFDYixRQUFRLEVBQUUsQ0FBQyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsQ0FBQztpQkFDekIsQ0FBQyxDQUFDO2FBQ0o7WUFFRCxPQUFPLEdBQUcsQ0FBQztnQkFDVCxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7Z0JBQ3JCLEVBQUUsRUFBRSxZQUFZO2dCQUNoQixNQUFNLEVBQUUsU0FBUztnQkFDakIsWUFBWSxFQUFFLE1BQU07YUFDckIsQ0FBQyxDQUFDO1lBRUgsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDN0I7UUFDRCxPQUFPLE9BQU8sQ0FBQTtJQUNoQixDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
interface ILicense {
|
|
2
|
+
name: string;
|
|
3
|
+
}
|
|
4
|
+
export interface IDependency {
|
|
5
|
+
component: string;
|
|
6
|
+
purl: string;
|
|
7
|
+
version: string;
|
|
8
|
+
licenses: Array<ILicense>;
|
|
9
|
+
}
|
|
10
|
+
export interface IFile {
|
|
11
|
+
file: string;
|
|
12
|
+
id: string;
|
|
13
|
+
status: string;
|
|
14
|
+
dependencies: Array<IDependency>;
|
|
15
|
+
}
|
|
16
|
+
export interface IDependencyResponse {
|
|
17
|
+
files: Array<IFile>;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { pomParser } from './parsers/mavenParser';
|
|
4
|
+
import { packagelockParser, packageParser } from './parsers/npmParser';
|
|
5
|
+
import { requirementsParser } from './parsers/pyParser';
|
|
6
|
+
import { gemfilelockParser, gemfileParser } from './parsers/rubyParser';
|
|
7
|
+
/*
|
|
8
|
+
This is a hash map that connect a filename with it's own parser function
|
|
9
|
+
Any parser function must return a FileDependency object (See type.ts file in src/parser
|
|
10
|
+
*/
|
|
11
|
+
const Parser = {
|
|
12
|
+
'requirements.txt': requirementsParser,
|
|
13
|
+
'pom.xml': pomParser,
|
|
14
|
+
'package.json': packageParser,
|
|
15
|
+
'package-lock.json': packagelockParser,
|
|
16
|
+
'Gemfile': gemfileParser,
|
|
17
|
+
'Gemfile.lock': gemfilelockParser
|
|
18
|
+
};
|
|
19
|
+
export async function generateDependenciesPurls(files) {
|
|
20
|
+
let results = { files: [] };
|
|
21
|
+
for (const filePath of files) {
|
|
22
|
+
const fileName = path.basename(filePath);
|
|
23
|
+
if (Parser[fileName] != null) {
|
|
24
|
+
const fileContent = await fs.promises.readFile(filePath, 'utf8');
|
|
25
|
+
const dependency = Parser[fileName](fileContent, filePath);
|
|
26
|
+
if (dependency.purls.length != 0)
|
|
27
|
+
results.files.push(dependency);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return results;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHVybEdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZGVwZW5kZW5jaWVzL1B1cmxHZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUl4QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUl4RTs7O0VBR0U7QUFDRixNQUFNLE1BQU0sR0FBc0I7SUFDOUIsa0JBQWtCLEVBQUUsa0JBQWtCO0lBQ3RDLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLGNBQWMsRUFBRSxhQUFhO0lBQzdCLG1CQUFtQixFQUFFLGlCQUFpQjtJQUN0QyxTQUFTLEVBQUUsYUFBYTtJQUN4QixjQUFjLEVBQUUsaUJBQWlCO0NBQ3BDLENBQUM7QUFHRixNQUFNLENBQUMsS0FBSyxVQUFVLHlCQUF5QixDQUFDLEtBQW9CO0lBQ2hFLElBQUksT0FBTyxHQUF1QixFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUU5QyxLQUFLLE1BQU0sUUFBUSxJQUFJLEtBQUssRUFBRTtRQUMxQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLElBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksRUFBRTtZQUN6QixNQUFNLFdBQVcsR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNqRSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzNELElBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztnQkFDM0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDdEM7S0FDSjtJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUMifQ==
|
|
File without changes
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
// Reference https://go.dev/ref/mod#go-mod-file
|
|
2
|
+
//
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29sYW5nUGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kZXBlbmRlbmNpZXMvcGFyc2Vycy9nb2xhbmdQYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsK0NBQStDO0FBQy9DLEdBQUcifQ==
|