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.
Files changed (179) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/LICENSE +20 -18
  3. package/README.md +6 -5
  4. package/build/main/bin/cli-bin.js +10 -3
  5. package/build/main/commands/dep.d.ts +1 -0
  6. package/build/main/commands/dep.js +26 -0
  7. package/build/main/commands/scan.js +20 -38
  8. package/build/main/index.d.ts +3 -1
  9. package/build/main/index.js +4 -2
  10. package/build/main/lib/dependencies/Dependency.d.ts +9 -0
  11. package/build/main/lib/dependencies/Dependency.js +50 -0
  12. package/build/main/lib/dependencies/DependencyTypes.d.ts +19 -0
  13. package/build/main/lib/dependencies/DependencyTypes.js +3 -0
  14. package/build/main/lib/dependencies/PurlGenerator.d.ts +2 -0
  15. package/build/main/lib/dependencies/PurlGenerator.js +39 -0
  16. package/build/main/lib/dependencies/parsers/golangParser.d.ts +0 -0
  17. package/build/main/lib/dependencies/parsers/golangParser.js +3 -0
  18. package/build/main/lib/dependencies/parsers/mavenParser.d.ts +2 -0
  19. package/build/main/lib/dependencies/parsers/mavenParser.js +44 -0
  20. package/build/main/lib/dependencies/parsers/npmParser.d.ts +3 -0
  21. package/build/main/lib/dependencies/parsers/npmParser.js +45 -0
  22. package/build/main/lib/dependencies/parsers/pyParser.d.ts +2 -0
  23. package/build/main/lib/dependencies/parsers/pyParser.js +51 -0
  24. package/build/main/lib/dependencies/parsers/rubyParser.d.ts +3 -0
  25. package/build/main/lib/dependencies/parsers/rubyParser.js +135 -0
  26. package/build/main/lib/dependencies/parsers/types.d.ts +15 -0
  27. package/build/main/lib/dependencies/parsers/types.js +33 -0
  28. package/build/main/lib/dependencies/parsers/utils.d.ts +2 -0
  29. package/build/main/lib/dependencies/parsers/utils.js +20 -0
  30. package/build/main/lib/dependencies/src/PurlGenerator.d.ts +2 -0
  31. package/build/main/lib/dependencies/src/PurlGenerator.js +62 -0
  32. package/build/main/lib/dependencies/src/parsers/golangParser.d.ts +0 -0
  33. package/build/main/lib/dependencies/src/parsers/golangParser.js +3 -0
  34. package/build/main/lib/dependencies/src/parsers/mavenParser.d.ts +2 -0
  35. package/build/main/lib/dependencies/src/parsers/mavenParser.js +44 -0
  36. package/build/main/lib/dependencies/src/parsers/npmParser.d.ts +3 -0
  37. package/build/main/lib/dependencies/src/parsers/npmParser.js +45 -0
  38. package/build/main/lib/dependencies/src/parsers/pyParser.d.ts +2 -0
  39. package/build/main/lib/dependencies/src/parsers/pyParser.js +51 -0
  40. package/build/main/lib/dependencies/src/parsers/rubyParser.d.ts +3 -0
  41. package/build/main/lib/dependencies/src/parsers/rubyParser.js +135 -0
  42. package/build/main/lib/dependencies/src/parsers/types.d.ts +15 -0
  43. package/build/main/lib/dependencies/src/parsers/types.js +33 -0
  44. package/build/main/lib/dependencies/src/parsers/utils.d.ts +2 -0
  45. package/build/main/lib/dependencies/src/parsers/utils.js +19 -0
  46. package/build/main/lib/dependencyScan/dependencyScan.d.ts +2 -0
  47. package/build/main/lib/dependencyScan/dependencyScan.js +37 -0
  48. package/build/main/lib/dependencyScan/parser.d.ts +7 -0
  49. package/build/main/lib/dependencyScan/parser.js +41 -0
  50. package/build/main/lib/dependencyScan/utils.d.ts +1 -0
  51. package/build/main/lib/dependencyScan/utils.js +16 -0
  52. package/build/main/lib/scanner/Dependency/dependency.d.ts +9 -0
  53. package/build/main/lib/scanner/Dependency/dependency.js +46 -0
  54. package/build/main/lib/scanner/Dependency/dependencyScan.d.ts +9 -0
  55. package/build/main/lib/scanner/Dependency/dependencyScan.js +48 -0
  56. package/build/main/lib/scanner/Dependency/parser.d.ts +7 -0
  57. package/build/main/lib/scanner/Dependency/parser.js +41 -0
  58. package/build/main/lib/scanner/Dependency/utils.d.ts +1 -0
  59. package/build/main/lib/scanner/Dependency/utils.js +16 -0
  60. package/build/main/lib/scanner/Dispatcher/DispatchableItem.js +1 -1
  61. package/build/main/lib/scanner/Dispatcher/Dispatcher.d.ts +3 -2
  62. package/build/main/lib/scanner/Dispatcher/Dispatcher.js +15 -13
  63. package/build/main/lib/scanner/Scannable/ScannableItem.d.ts +4 -3
  64. package/build/main/lib/scanner/Scannable/ScannableItem.js +6 -6
  65. package/build/main/lib/scanner/Scanner.d.ts +7 -6
  66. package/build/main/lib/scanner/Scanner.js +45 -42
  67. package/build/main/lib/scanner/ScannerTypes.d.ts +32 -0
  68. package/build/main/lib/scanner/ScannerTypes.js +35 -0
  69. package/build/main/lib/scanner/Winnower/Winnower.d.ts +5 -2
  70. package/build/main/lib/scanner/Winnower/Winnower.js +29 -24
  71. package/build/main/lib/scanner/Winnower/WinnowerResponse.d.ts +3 -0
  72. package/build/main/lib/scanner/Winnower/WinnowerResponse.js +7 -1
  73. package/build/main/lib/tree/Tree.js +4 -4
  74. package/build/module/bin/cli-bin.js +10 -3
  75. package/build/module/commands/dep.d.ts +1 -0
  76. package/build/module/commands/dep.js +19 -0
  77. package/build/module/commands/scan.js +16 -34
  78. package/build/module/index.d.ts +3 -1
  79. package/build/module/index.js +4 -2
  80. package/build/module/lib/dependencies/Dependency.d.ts +9 -0
  81. package/build/module/lib/dependencies/Dependency.js +45 -0
  82. package/build/module/lib/dependencies/DependencyTypes.d.ts +19 -0
  83. package/build/module/lib/dependencies/DependencyTypes.js +2 -0
  84. package/build/module/lib/dependencies/PurlGenerator.d.ts +2 -0
  85. package/build/module/lib/dependencies/PurlGenerator.js +32 -0
  86. package/build/module/lib/dependencies/parsers/golangParser.d.ts +0 -0
  87. package/build/module/lib/dependencies/parsers/golangParser.js +3 -0
  88. package/build/module/lib/dependencies/parsers/mavenParser.d.ts +2 -0
  89. package/build/module/lib/dependencies/parsers/mavenParser.js +37 -0
  90. package/build/module/lib/dependencies/parsers/npmParser.d.ts +3 -0
  91. package/build/module/lib/dependencies/parsers/npmParser.js +37 -0
  92. package/build/module/lib/dependencies/parsers/pyParser.d.ts +2 -0
  93. package/build/module/lib/dependencies/parsers/pyParser.js +44 -0
  94. package/build/module/lib/dependencies/parsers/rubyParser.d.ts +3 -0
  95. package/build/module/lib/dependencies/parsers/rubyParser.js +132 -0
  96. package/build/module/lib/dependencies/parsers/types.d.ts +15 -0
  97. package/build/module/lib/dependencies/parsers/types.js +32 -0
  98. package/build/module/lib/dependencies/parsers/utils.d.ts +2 -0
  99. package/build/module/lib/dependencies/parsers/utils.js +15 -0
  100. package/build/module/lib/dependencies/src/PurlGenerator.d.ts +2 -0
  101. package/build/module/lib/dependencies/src/PurlGenerator.js +55 -0
  102. package/build/module/lib/dependencies/src/parsers/golangParser.d.ts +0 -0
  103. package/build/module/lib/dependencies/src/parsers/golangParser.js +3 -0
  104. package/build/module/lib/dependencies/src/parsers/mavenParser.d.ts +2 -0
  105. package/build/module/lib/dependencies/src/parsers/mavenParser.js +37 -0
  106. package/build/module/lib/dependencies/src/parsers/npmParser.d.ts +3 -0
  107. package/build/module/lib/dependencies/src/parsers/npmParser.js +37 -0
  108. package/build/module/lib/dependencies/src/parsers/pyParser.d.ts +2 -0
  109. package/build/module/lib/dependencies/src/parsers/pyParser.js +44 -0
  110. package/build/module/lib/dependencies/src/parsers/rubyParser.d.ts +3 -0
  111. package/build/module/lib/dependencies/src/parsers/rubyParser.js +132 -0
  112. package/build/module/lib/dependencies/src/parsers/types.d.ts +15 -0
  113. package/build/module/lib/dependencies/src/parsers/types.js +32 -0
  114. package/build/module/lib/dependencies/src/parsers/utils.d.ts +2 -0
  115. package/build/module/lib/dependencies/src/parsers/utils.js +14 -0
  116. package/build/module/lib/dependencyScan/dependencyScan.d.ts +2 -0
  117. package/build/module/lib/dependencyScan/dependencyScan.js +29 -0
  118. package/build/module/lib/dependencyScan/parser.d.ts +7 -0
  119. package/build/module/lib/dependencyScan/parser.js +38 -0
  120. package/build/module/lib/dependencyScan/utils.d.ts +1 -0
  121. package/build/module/lib/dependencyScan/utils.js +12 -0
  122. package/build/module/lib/scanner/Dependency/dependency.d.ts +9 -0
  123. package/build/module/lib/scanner/Dependency/dependency.js +38 -0
  124. package/build/module/lib/scanner/Dependency/dependencyScan.d.ts +9 -0
  125. package/build/module/lib/scanner/Dependency/dependencyScan.js +40 -0
  126. package/build/module/lib/scanner/Dependency/parser.d.ts +7 -0
  127. package/build/module/lib/scanner/Dependency/parser.js +38 -0
  128. package/build/module/lib/scanner/Dependency/utils.d.ts +1 -0
  129. package/build/module/lib/scanner/Dependency/utils.js +12 -0
  130. package/build/module/lib/scanner/Dispatcher/DispatchableItem.js +1 -1
  131. package/build/module/lib/scanner/Dispatcher/Dispatcher.d.ts +3 -2
  132. package/build/module/lib/scanner/Dispatcher/Dispatcher.js +6 -4
  133. package/build/module/lib/scanner/Scannable/ScannableItem.d.ts +4 -3
  134. package/build/module/lib/scanner/Scannable/ScannableItem.js +7 -7
  135. package/build/module/lib/scanner/Scanner.d.ts +7 -6
  136. package/build/module/lib/scanner/Scanner.js +26 -22
  137. package/build/module/lib/scanner/ScannerTypes.d.ts +32 -0
  138. package/build/module/lib/scanner/ScannerTypes.js +32 -0
  139. package/build/module/lib/scanner/Winnower/Winnower.d.ts +5 -2
  140. package/build/module/lib/scanner/Winnower/Winnower.js +24 -18
  141. package/build/module/lib/scanner/Winnower/WinnowerResponse.d.ts +3 -0
  142. package/build/module/lib/scanner/Winnower/WinnowerResponse.js +8 -2
  143. package/build/module/lib/tree/Tree.js +4 -4
  144. package/package.json +2 -1
  145. package/.circleci/config.yml +0 -64
  146. package/.cspell.json +0 -34
  147. package/.editorconfig +0 -15
  148. package/.eslintrc.json +0 -37
  149. package/.gitignore +0 -11
  150. package/.prettierignore +0 -2
  151. package/.vscode/extensions.json +0 -8
  152. package/.vscode/launch.json +0 -29
  153. package/.vscode/settings.json +0 -7
  154. package/build/tsconfig.module.tsbuildinfo +0 -1
  155. package/build/tsconfig.tsbuildinfo +0 -1
  156. package/examples/defaultFilter.json +0 -203
  157. package/src/bin/cli-bin.ts +0 -49
  158. package/src/commands/scan.ts +0 -129
  159. package/src/index.ts +0 -4
  160. package/src/lib/filters/defaultFilter.ts +0 -207
  161. package/src/lib/filters/filtering.ts +0 -234
  162. package/src/lib/scanner/Dispatcher/DispatchableItem.ts +0 -29
  163. package/src/lib/scanner/Dispatcher/Dispatcher.ts +0 -147
  164. package/src/lib/scanner/Dispatcher/DispatcherResponse.ts +0 -40
  165. package/src/lib/scanner/Dispatcher/GlobalControllerAborter.ts +0 -33
  166. package/src/lib/scanner/Scannable/ScannableItem.ts +0 -40
  167. package/src/lib/scanner/Scanner.ts +0 -316
  168. package/src/lib/scanner/ScannerCfg.ts +0 -29
  169. package/src/lib/scanner/ScannerEvents.ts +0 -29
  170. package/src/lib/scanner/Winnower/Winnower.ts +0 -431
  171. package/src/lib/scanner/Winnower/WinnowerExtractor.ts +0 -38
  172. package/src/lib/scanner/Winnower/WinnowerResponse.ts +0 -30
  173. package/src/lib/tree/File.ts +0 -20
  174. package/src/lib/tree/Folder.ts +0 -50
  175. package/src/lib/tree/Node.ts +0 -34
  176. package/src/lib/tree/Tree.ts +0 -89
  177. package/tsconfig.json +0 -47
  178. package/tsconfig.module.json +0 -11
  179. 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 ScannerEvents_1 = require("../ScannerEvents");
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.scanMode === "FULL_SCAN") {
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.scanRoot = '';
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.scanRoot).getFilesWinnowed();
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][0]) {
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(ScannerEvents_1.ScannerEvents.ERROR, new Error('Cannot recovery index on winnower'));
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][0] === lastFileWinnowed)
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.scanRoot);
311
- this.emit(ScannerEvents_1.ScannerEvents.WINNOWING_NEW_CONTENT, wnRsp);
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][0];
317
- const scanMode = this.fileList[this.fileListIndex][1];
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, scanMode, this.scannerCfg.WFP_FILE_MAX_SIZE);
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(ScannerEvents_1.ScannerEvents.WINNOWER_LOG, '[ SCANNER ]: Starting Winnowing from file...');
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(files, scanRoot) {
355
- this.emit(ScannerEvents_1.ScannerEvents.WINNOWER_LOG, '[ SCANNER ]: Starting Winnowing...');
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.fileList = Object.entries(files);
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(ScannerEvents_1.ScannerEvents.WINNOWER_LOG, '[ SCANNER ]: Winnowing Finished...');
369
+ this.emit(ScannerTypes_1.ScannerEvents.WINNOWER_LOG, '[ SCANNER ]: Winnowing Finished...');
368
370
  this.forceStopWorker();
369
371
  }
370
372
  pause() {
371
- this.emit(ScannerEvents_1.ScannerEvents.WINNOWER_LOG, '[ SCANNER ]: Winnowing paused...');
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(ScannerEvents_1.ScannerEvents.WINNOWER_LOG, '[ SCANNER ]: Winnowing resumed...');
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2lubm93ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NjYW5uZXIvV2lubm93ZXIvV2lubm93ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQWtDO0FBQ2xDLDRDQUFvQjtBQUNwQixtREFBd0M7QUFFeEMsOERBQTJEO0FBQzNELDhDQUEyQztBQUMzQyxvREFBaUQ7QUFDakQsMkRBQXdEO0FBRXhELHlEQUFzRDtBQUl0RCxNQUFNLFlBQVksR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTROcEIsQ0FBQztBQUVGLE1BQWEsUUFBUyxTQUFRLGdCQUFZO0lBcUJ4QyxZQUFZLFVBQVUsR0FBRyxJQUFJLHVCQUFVLEVBQUU7UUFDdkMsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFR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
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2lubm93ZXJSZXNwb25zZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2Nhbm5lci9XaW5ub3dlci9XaW5ub3dlclJlc3BvbnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLE1BQWEsZ0JBQWdCO0lBTzNCLFlBQVksVUFBVSxFQUFFLFFBQVEsR0FBRyxFQUFFO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFTSxPQUFPLENBQUMsZ0JBQWdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzdELENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksTUFBTSxDQUFDO1FBQ1gsMENBQTBDO1FBQzFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEYsT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQTVCRCw0Q0E0QkMifQ==
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 = pathParts[pathParts.length - 1];
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 && this.filter.include(fullPath))
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 - 1);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdHJlZS9UcmVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLDRDQUFvQjtBQUNwQixnREFBMkI7QUFHM0IsaUNBQWtDO0FBRWxDLGtEQUEwQjtBQUMxQixzREFBOEI7QUFJOUIsTUFBYSxJQUFJO0lBU2YsWUFBWSxJQUFZO1FBQ3RCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGdCQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxVQUFVLENBQUMsQ0FBYTtRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRU8sWUFBWSxDQUFDLElBQVksRUFBRSxJQUFZO1FBQzdDLE1BQU0sVUFBVSxHQUFHLFlBQUU7YUFDbEIsV0FBVyxDQUFDLElBQUksRUFBRSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLHNDQUFzQzthQUNqRixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO2FBQzVCLE1BQU0sQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUMs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
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('0.2.0')
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('-f, --filter <path>', 'Loads an user defined filter (optional)')
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWJpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaW4vY2xpLWJpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHL0MsU0FBUyxlQUFlLENBQUMsQ0FBUTtJQUMvQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDO0FBRUQsS0FBSyxVQUFVLElBQUk7SUFDakIsT0FBTztTQUNKLE9BQU8sQ0FBQyxPQUFPLENBQUM7U0FDaEIsV0FBVyxDQUFDLDRHQUE0RyxDQUFDLENBQUE7SUFFNUgsT0FBTztTQUNKLE9BQU8sQ0FBQyxlQUFlLENBQUM7U0FDeEIsV0FBVyxDQUFDLG9CQUFvQixDQUFDO1FBQ2xDLDZFQUE2RTtTQUM1RSxNQUFNLENBQUMsNEJBQTRCLEVBQUUsK0VBQStFLENBQUM7U0FDckgsTUFBTSxDQUFDLHFCQUFxQixFQUFFLHlDQUF5QyxDQUFDO1NBQ3hFLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxxREFBcUQsQ0FBQztTQUN4RixNQUFNLENBQUMsNEJBQTRCLEVBQUUsaUZBQWlGLENBQUM7U0FDdkgsTUFBTSxDQUFDLHlCQUF5QixFQUFFLDJEQUEyRCxDQUFDO1NBQzlGLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxvRUFBb0UsQ0FBQztTQUN2RyxNQUFNLENBQUMsdUJBQXVCLEVBQUUseUVBQXlFLENBQUM7U0FDMUcsTUFBTSxDQUFDLGlCQUFpQixFQUFFLHVFQUF1RSxDQUFDO1NBQ2xHLE1BQU0sQ0FBQyxlQUFlLEVBQUUsOEJBQThCLENBQUM7U0FDdkQsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFLEdBQUUsV0FBVyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDO1NBQzlGLFdBQVcsQ0FBQyxPQUFPLEVBQUU7OzBEQUVnQyxDQUNyRCxDQUFDO0lBR0YsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUczQyxDQUFDO0FBR0QsSUFBSTtJQUNGLElBQUksRUFBRSxDQUFDO0NBQ1I7QUFBQyxPQUFPLENBQUMsRUFBRTtJQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUNqQiJ9
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/ScannerEvents';
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 fileList = [];
36
- let scannerInput = {};
37
- let filesCounter = 0; // Used by the progress bar
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.apiUrl)
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
- if (!options.wfp) { // --wfp change the behaviour of the scanner. Scan a WFP File instead of a folder
55
- if (pathIsFolder) { // If a folder is specified, we scan the folder and all its subfolders
56
- if (rootPath.charAt(rootPath.length - 1) !== '/')
57
- rootPath += '/';
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 = { [rootPath]: 'FULL_SCAN' };
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
- const reg = /file=/g;
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(filesCounter, 0);
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.scanList(scannerInput);
91
+ await scanner.scan([scannerInput]);
110
92
  }
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9zY2FuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUd4QyxPQUFPLFdBQVcsTUFBTSxjQUFjLENBQUM7QUFHdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFFcEIsSUFBSyxXQUtKO0FBTEQsV0FBSyxXQUFXO0lBQ2QsZ0NBQWlCLENBQUE7SUFDakIsc0NBQXVCLENBQUE7SUFDdkIsc0NBQXVCLENBQUE7SUFDdkIsd0NBQXlCLENBQUE7QUFDM0IsQ0FBQyxFQUxJLFdBQVcsS0FBWCxXQUFXLFFBS2Y7QUFRQSxDQUFDO0FBRUYsMEdBQTBHO0FBQzFHLE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBWSxFQUFvQixFQUFFO0lBQ2xELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDckMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDM0IsSUFBSSxHQUFHLEVBQUU7Z0JBQ1AsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2I7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO2FBQzlCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFD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
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9zY2FuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFnQixNQUFNLDZCQUE2QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFeEMsT0FBTyxXQUFXLE1BQU0sY0FBYyxDQUFDO0FBRXZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdEQsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBRXBCLDBHQUEwRztBQUMxRyxNQUFNLFFBQVEsR0FBRyxDQUFDLElBQVksRUFBb0IsRUFBRTtJQUNsRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3JDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzNCLElBQUksR0FBRyxFQUFFO2dCQUNQLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNiO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQzthQUM5QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVcsQ0FBQyxRQUFnQixFQUFFLE9BQVk7SUFFOUQsSUFBSSxZQUFZLEdBQWlCLEVBQUMsUUFBUSxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBRWhELFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFFLGtDQUFrQztJQUMzRSxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFFLDBDQUEwQztJQUNoRyxNQUFNLFlBQVksR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU5QyxnREFBZ0Q7SUFDaEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztJQUNwQyxJQUFHLE9BQU8sQ0FBQyxXQUFXO1FBQUUsVUFBVSxDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckYsSUFBRyxPQUFPLENBQUMsUUFBUTtRQUFFLFVBQVUsQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUN0RixJQUFHLE9BQU8sQ0FBQyxNQUFNO1FBQUUsVUFBVSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQ3ZELElBQUcsT0FBTyxDQUFDLEdBQUc7UUFBRSxVQUFVLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDakQsSUFBRyxPQUFPLENBQUMsT0FBTztRQUFFLFVBQVUsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDaEUsSUFBRyxPQUFPLENBQUMsUUFBUTtRQUFFLFVBQVUsQ0FBQyxtQ0FBbUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQ3ZGLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXhDLFlBQVksQ0FBQyxVQUFVLEdBQUcsUUFBUSxHQUFHLEdBQUcsQ0FBQyxDQUFDLDJEQUEyRDtJQUNyRyxJQUFHLE9BQU8sQ0FBQyxLQUFLO1FBQUUsWUFBWSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBRTNELElBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO1FBQ2YsSUFBRyxZQUFZLEVBQUU7WUFDZixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUVsQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7Z0JBQ2xCLE9BQU8sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM3RCxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNyQztpQkFBTTtnQkFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7Z0JBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBMkIsQ0FBQyxDQUFDO2FBQzFDO1lBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLFlBQVksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzVDO2FBQU07WUFDTCxZQUFZLENBQUMsUUFBUSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDcEM7S0FDRjtTQUFNO1FBQ0wsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBQyxRQUFRLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQztRQUNqRSwwREFBMEQ7S0FDM0Q7SUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtRQUNwQixNQUFNLE9BQU8sR0FBRyxFQUFFLE1BQU0sRUFBRSx5RUFBeUUsRUFBRSxDQUFDO1FBQ3RHLE1BQU0sSUFBSSxHQUFHLElBQUksV0FBVyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTVDLE9BQU8sQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBNEIsRUFBRSxFQUFFO1lBQzdFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRSxHQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO0tBQzNFO1NBQU07UUFDTCxPQUFPLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztLQUM1RTtJQUVELE9BQU8sQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUU7UUFDdkQsSUFBRyxPQUFPLENBQUMsTUFBTTtZQUNmLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQzs7WUFFdkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxPQUFPLENBQUMsR0FBRztRQUFFLE1BQU0sT0FBTyxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDOztRQUMxRCxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0FBRTFDLENBQUMifQ==
@@ -1,3 +1,5 @@
1
- export * from './lib/scanner/ScannerEvents';
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';
@@ -1,4 +1,6 @@
1
- export * from './lib/scanner/ScannerEvents';
1
+ export * from './lib/scanner/ScannerTypes';
2
2
  export * from './lib/scanner/ScannerCfg';
3
3
  export * from './lib/scanner/Scanner';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDBCQUEwQixDQUFBO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUEifQ==
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9kZXBlbmRlbmNpZXMvRGVwZW5kZW5jeVR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -0,0 +1,2 @@
1
+ import { FileListDependency } from './parsers/types';
2
+ export declare function generateDependenciesPurls(files: Array<string>): Promise<FileListDependency>;
@@ -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==
@@ -0,0 +1,3 @@
1
+ // Reference https://go.dev/ref/mod#go-mod-file
2
+ //
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29sYW5nUGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kZXBlbmRlbmNpZXMvcGFyc2Vycy9nb2xhbmdQYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsK0NBQStDO0FBQy9DLEdBQUcifQ==
@@ -0,0 +1,2 @@
1
+ import { FileDependency } from "./types";
2
+ export declare function pomParser(fileContent: string, filePath: string): FileDependency;