scanoss 0.7.5 → 0.7.9

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 (329) hide show
  1. package/.idea/workspace.xml +64 -47
  2. package/.nyc_output/3da9f448-90e4-4399-887b-e4fd1b8d7052.json +1 -0
  3. package/.nyc_output/processinfo/3da9f448-90e4-4399-887b-e4fd1b8d7052.json +1 -0
  4. package/.nyc_output/processinfo/index.json +1 -0
  5. package/build/main/cli/bin/cli-bin.d.ts +2 -1
  6. package/build/main/cli/bin/cli-bin.js +10 -2
  7. package/build/main/index.d.ts +2 -0
  8. package/build/main/index.js +3 -1
  9. package/build/main/package.json +120 -0
  10. package/build/main/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +1 -1
  11. package/build/main/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +4 -4
  12. package/build/main/sdk/FileCount/FileCount.d.ts +6 -0
  13. package/build/main/sdk/FileCount/FileCount.js +88 -0
  14. package/build/main/sdk/FileCount/FileCountFilter.d.ts +2 -0
  15. package/build/main/sdk/FileCount/FileCountFilter.js +10 -0
  16. package/build/main/sdk/FileCount/Interfaces.d.ts +19 -0
  17. package/build/main/sdk/FileCount/Interfaces.js +8 -0
  18. package/build/main/sdk/Filtering/DefaultFilterForDependencies.d.ts +2 -0
  19. package/build/main/sdk/Filtering/DefaultFilterForDependencies.js +144 -0
  20. package/build/main/sdk/Filtering/DefaultFilterForScanning.d.ts +2 -0
  21. package/build/main/sdk/Filtering/DefaultFilterForScanning.js +193 -0
  22. package/build/main/sdk/Filtering/Filtering.d.ts +80 -0
  23. package/build/main/sdk/Filtering/Filtering.js +259 -0
  24. package/build/main/sdk/scanner/Dispatcher/Dispatcher.js +5 -2
  25. package/build/main/sdk/scanner/ScannerCfg.js +3 -3
  26. package/build/main/sdk/tree/Filters/DependencyFilter.js +4 -4
  27. package/build/main/sdk/tree/Filters/ScanFilter.js +4 -4
  28. package/build/main/src/cli/bin/cli-bin.d.ts +2 -0
  29. package/build/main/src/cli/bin/cli-bin.js +68 -0
  30. package/build/main/src/cli/commands/dep.d.ts +1 -0
  31. package/build/main/src/cli/commands/dep.js +38 -0
  32. package/build/main/src/cli/commands/helpers.d.ts +2 -0
  33. package/build/main/src/cli/commands/helpers.js +25 -0
  34. package/build/main/src/cli/commands/scan.d.ts +1 -0
  35. package/build/main/src/cli/commands/scan.js +138 -0
  36. package/build/main/src/cli/commands/wfp.d.ts +1 -0
  37. package/build/main/src/cli/commands/wfp.js +54 -0
  38. package/build/main/src/index.d.ts +14 -0
  39. package/build/main/src/index.js +30 -0
  40. package/build/main/src/sdk/DataLayer/DataLayerTypes.d.ts +108 -0
  41. package/build/main/src/sdk/DataLayer/DataLayerTypes.js +5 -0
  42. package/build/main/src/sdk/DataLayer/DataProviderManager.d.ts +7 -0
  43. package/build/main/src/sdk/DataLayer/DataProviderManager.js +24 -0
  44. package/build/main/src/sdk/DataLayer/DataProviders/ComponentDataProvider.d.ts +13 -0
  45. package/build/main/src/sdk/DataLayer/DataProviders/ComponentDataProvider.js +164 -0
  46. package/build/main/src/sdk/DataLayer/DataProviders/DependencyDataProvider.d.ts +9 -0
  47. package/build/main/src/sdk/DataLayer/DataProviders/DependencyDataProvider.js +37 -0
  48. package/build/main/src/sdk/DataLayer/DataProviders/LicenseDataProvider.d.ts +18 -0
  49. package/build/main/src/sdk/DataLayer/DataProviders/LicenseDataProvider.js +148 -0
  50. package/build/main/src/sdk/DataLayer/DataProviders/SummaryDataProvider.d.ts +11 -0
  51. package/build/main/src/sdk/DataLayer/DataProviders/SummaryDataProvider.js +33 -0
  52. package/build/main/src/sdk/Decompress/DecompressionManager.d.ts +12 -0
  53. package/build/main/src/sdk/Decompress/DecompressionManager.js +73 -0
  54. package/build/main/src/sdk/Decompress/Decompressor/DecompressTgz.d.ts +5 -0
  55. package/build/main/src/sdk/Decompress/Decompressor/DecompressTgz.js +22 -0
  56. package/build/main/src/sdk/Decompress/Decompressor/DecompressZips.d.ts +5 -0
  57. package/build/main/src/sdk/Decompress/Decompressor/DecompressZips.js +24 -0
  58. package/build/main/src/sdk/Decompress/Decompressor/Decompressor.d.ts +10 -0
  59. package/build/main/src/sdk/Decompress/Decompressor/Decompressor.js +18 -0
  60. package/build/main/src/sdk/Dependencies/DependencyScanner.d.ts +11 -0
  61. package/build/main/src/sdk/Dependencies/DependencyScanner.js +96 -0
  62. package/build/main/src/sdk/Dependencies/DependencyScannerCfg.d.ts +4 -0
  63. package/build/main/src/sdk/Dependencies/DependencyScannerCfg.js +10 -0
  64. package/build/main/src/sdk/Dependencies/DependencyTypes.d.ts +21 -0
  65. package/build/main/src/sdk/Dependencies/DependencyTypes.js +2 -0
  66. package/build/main/src/sdk/Dependencies/LocalDependency/DependencyTypes.d.ts +16 -0
  67. package/build/main/src/sdk/Dependencies/LocalDependency/DependencyTypes.js +2 -0
  68. package/build/main/src/sdk/Dependencies/LocalDependency/LocalDependency.d.ts +8 -0
  69. package/build/main/src/sdk/Dependencies/LocalDependency/LocalDependency.js +102 -0
  70. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.d.ts +2 -0
  71. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.js +95 -0
  72. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/golangParser.d.ts +3 -0
  73. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/golangParser.js +97 -0
  74. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.d.ts +2 -0
  75. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.js +183 -0
  76. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/npmParser.d.ts +13 -0
  77. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/npmParser.js +187 -0
  78. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.d.ts +3 -0
  79. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.js +58 -0
  80. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/pyParser.d.ts +2 -0
  81. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/pyParser.js +64 -0
  82. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +3 -0
  83. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +132 -0
  84. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/utils.d.ts +2 -0
  85. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/utils.js +19 -0
  86. package/build/main/src/sdk/Report/Report.d.ts +8 -0
  87. package/build/main/src/sdk/Report/Report.js +26 -0
  88. package/build/main/src/sdk/filters/DefaultFilterForDependencies.d.ts +16 -0
  89. package/build/main/src/sdk/filters/DefaultFilterForDependencies.js +145 -0
  90. package/build/main/src/sdk/filters/DefaultFilterForScanning.d.ts +16 -0
  91. package/build/main/src/sdk/filters/DefaultFilterForScanning.js +194 -0
  92. package/build/main/src/sdk/filters/filtering.d.ts +32 -0
  93. package/build/main/src/sdk/filters/filtering.js +228 -0
  94. package/build/main/src/sdk/grpc/GrpcDependencyService.d.ts +11 -0
  95. package/build/main/src/sdk/grpc/GrpcDependencyService.js +86 -0
  96. package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  97. package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +2 -0
  98. package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +1 -0
  99. package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.js +404 -0
  100. package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +39 -0
  101. package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +98 -0
  102. package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +1 -0
  103. package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1197 -0
  104. package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +19 -0
  105. package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +66 -0
  106. package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +1 -0
  107. package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +14 -0
  108. package/build/main/src/sdk/scanner/Dispatcher/DispatchableItem.d.ts +19 -0
  109. package/build/main/src/sdk/scanner/Dispatcher/DispatchableItem.js +43 -0
  110. package/build/main/src/sdk/scanner/Dispatcher/Dispatcher.d.ts +20 -0
  111. package/build/main/src/sdk/scanner/Dispatcher/Dispatcher.js +160 -0
  112. package/build/main/src/sdk/scanner/Dispatcher/DispatcherResponse.d.ts +12 -0
  113. package/build/main/src/sdk/scanner/Dispatcher/DispatcherResponse.js +33 -0
  114. package/build/main/src/sdk/scanner/Dispatcher/GlobalControllerAborter.d.ts +10 -0
  115. package/build/main/src/sdk/scanner/Dispatcher/GlobalControllerAborter.js +32 -0
  116. package/build/main/src/sdk/scanner/Fingerprint.d.ts +16 -0
  117. package/build/main/src/sdk/scanner/Fingerprint.js +78 -0
  118. package/build/main/src/sdk/scanner/Scannable/ScannableItem.d.ts +15 -0
  119. package/build/main/src/sdk/scanner/Scannable/ScannableItem.js +27 -0
  120. package/build/main/src/sdk/scanner/Scanner.d.ts +46 -0
  121. package/build/main/src/sdk/scanner/Scanner.js +283 -0
  122. package/build/main/src/sdk/scanner/ScannerCfg.d.ts +16 -0
  123. package/build/main/src/sdk/scanner/ScannerCfg.js +30 -0
  124. package/build/main/src/sdk/scanner/ScannerTypes.d.ts +121 -0
  125. package/build/main/src/sdk/scanner/ScannerTypes.js +48 -0
  126. package/build/main/src/sdk/scanner/WfpProvider/FingerprintPackage.d.ts +9 -0
  127. package/build/main/src/sdk/scanner/WfpProvider/FingerprintPackage.js +31 -0
  128. package/build/main/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +20 -0
  129. package/build/main/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +492 -0
  130. package/build/main/src/sdk/scanner/WfpProvider/WfpProvider.d.ts +35 -0
  131. package/build/main/src/sdk/scanner/WfpProvider/WfpProvider.js +68 -0
  132. package/build/main/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.d.ts +21 -0
  133. package/build/main/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.js +139 -0
  134. package/build/main/src/sdk/tree/File.d.ts +7 -0
  135. package/build/main/src/sdk/tree/File.js +24 -0
  136. package/build/main/src/sdk/tree/Filters/DecompressionFilter.d.ts +7 -0
  137. package/build/main/src/sdk/tree/Filters/DecompressionFilter.js +21 -0
  138. package/build/main/src/sdk/tree/Filters/DependencyFilter.d.ts +7 -0
  139. package/build/main/src/sdk/tree/Filters/DependencyFilter.js +17 -0
  140. package/build/main/src/sdk/tree/Filters/Filter.d.ts +4 -0
  141. package/build/main/src/sdk/tree/Filters/Filter.js +6 -0
  142. package/build/main/src/sdk/tree/Filters/ScanFilter.d.ts +7 -0
  143. package/build/main/src/sdk/tree/Filters/ScanFilter.js +17 -0
  144. package/build/main/src/sdk/tree/Folder.d.ts +12 -0
  145. package/build/main/src/sdk/tree/Folder.js +58 -0
  146. package/build/main/src/sdk/tree/Node.d.ts +17 -0
  147. package/build/main/src/sdk/tree/Node.js +25 -0
  148. package/build/main/src/sdk/tree/Tree.d.ts +18 -0
  149. package/build/main/src/sdk/tree/Tree.js +70 -0
  150. package/build/main/tsconfig.tsbuildinfo +190 -144
  151. package/build/module/cli/bin/cli-bin.d.ts +2 -1
  152. package/build/module/cli/bin/cli-bin.js +6 -2
  153. package/build/module/index.d.ts +2 -0
  154. package/build/module/index.js +3 -1
  155. package/build/module/package.json +120 -0
  156. package/build/module/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +1 -1
  157. package/build/module/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +4 -4
  158. package/build/module/sdk/FileCount/FileCount.d.ts +6 -0
  159. package/build/module/sdk/FileCount/FileCount.js +63 -0
  160. package/build/module/sdk/FileCount/FileCountFilter.d.ts +2 -0
  161. package/build/module/sdk/FileCount/FileCountFilter.js +8 -0
  162. package/build/module/sdk/FileCount/Interfaces.d.ts +19 -0
  163. package/build/module/sdk/FileCount/Interfaces.js +6 -0
  164. package/build/module/sdk/Filtering/DefaultFilterForDependencies.d.ts +2 -0
  165. package/build/module/sdk/Filtering/DefaultFilterForDependencies.js +142 -0
  166. package/build/module/sdk/Filtering/DefaultFilterForScanning.d.ts +2 -0
  167. package/build/module/sdk/Filtering/DefaultFilterForScanning.js +191 -0
  168. package/build/module/sdk/Filtering/Filtering.d.ts +80 -0
  169. package/build/module/sdk/Filtering/Filtering.js +229 -0
  170. package/build/module/sdk/scanner/Dispatcher/Dispatcher.js +5 -2
  171. package/build/module/sdk/scanner/ScannerCfg.js +3 -3
  172. package/build/module/sdk/tree/Filters/DependencyFilter.js +4 -4
  173. package/build/module/sdk/tree/Filters/ScanFilter.js +4 -4
  174. package/build/module/src/cli/bin/cli-bin.d.ts +2 -0
  175. package/build/module/src/cli/bin/cli-bin.js +67 -0
  176. package/build/module/src/cli/commands/dep.d.ts +1 -0
  177. package/build/module/src/cli/commands/dep.js +32 -0
  178. package/build/module/src/cli/commands/helpers.d.ts +2 -0
  179. package/build/module/src/cli/commands/helpers.js +19 -0
  180. package/build/module/src/cli/commands/scan.d.ts +1 -0
  181. package/build/module/src/cli/commands/scan.js +135 -0
  182. package/build/module/src/cli/commands/wfp.d.ts +1 -0
  183. package/build/module/src/cli/commands/wfp.js +48 -0
  184. package/build/module/src/index.d.ts +14 -0
  185. package/build/module/src/index.js +19 -0
  186. package/build/module/src/sdk/DataLayer/DataLayerTypes.d.ts +108 -0
  187. package/build/module/src/sdk/DataLayer/DataLayerTypes.js +5 -0
  188. package/build/module/src/sdk/DataLayer/DataProviderManager.d.ts +7 -0
  189. package/build/module/src/sdk/DataLayer/DataProviderManager.js +21 -0
  190. package/build/module/src/sdk/DataLayer/DataProviders/ComponentDataProvider.d.ts +13 -0
  191. package/build/module/src/sdk/DataLayer/DataProviders/ComponentDataProvider.js +159 -0
  192. package/build/module/src/sdk/DataLayer/DataProviders/DependencyDataProvider.d.ts +9 -0
  193. package/build/module/src/sdk/DataLayer/DataProviders/DependencyDataProvider.js +34 -0
  194. package/build/module/src/sdk/DataLayer/DataProviders/LicenseDataProvider.d.ts +18 -0
  195. package/build/module/src/sdk/DataLayer/DataProviders/LicenseDataProvider.js +145 -0
  196. package/build/module/src/sdk/DataLayer/DataProviders/SummaryDataProvider.d.ts +11 -0
  197. package/build/module/src/sdk/DataLayer/DataProviders/SummaryDataProvider.js +30 -0
  198. package/build/module/src/sdk/Decompress/DecompressionManager.d.ts +12 -0
  199. package/build/module/src/sdk/Decompress/DecompressionManager.js +67 -0
  200. package/build/module/src/sdk/Decompress/Decompressor/DecompressTgz.d.ts +5 -0
  201. package/build/module/src/sdk/Decompress/Decompressor/DecompressTgz.js +16 -0
  202. package/build/module/src/sdk/Decompress/Decompressor/DecompressZips.d.ts +5 -0
  203. package/build/module/src/sdk/Decompress/Decompressor/DecompressZips.js +18 -0
  204. package/build/module/src/sdk/Decompress/Decompressor/Decompressor.d.ts +10 -0
  205. package/build/module/src/sdk/Decompress/Decompressor/Decompressor.js +15 -0
  206. package/build/module/src/sdk/Dependencies/DependencyScanner.d.ts +11 -0
  207. package/build/module/src/sdk/Dependencies/DependencyScanner.js +93 -0
  208. package/build/module/src/sdk/Dependencies/DependencyScannerCfg.d.ts +4 -0
  209. package/build/module/src/sdk/Dependencies/DependencyScannerCfg.js +7 -0
  210. package/build/module/src/sdk/Dependencies/DependencyTypes.d.ts +21 -0
  211. package/build/module/src/sdk/Dependencies/DependencyTypes.js +2 -0
  212. package/build/module/src/sdk/Dependencies/LocalDependency/DependencyTypes.d.ts +16 -0
  213. package/build/module/src/sdk/Dependencies/LocalDependency/DependencyTypes.js +2 -0
  214. package/build/module/src/sdk/Dependencies/LocalDependency/LocalDependency.d.ts +8 -0
  215. package/build/module/src/sdk/Dependencies/LocalDependency/LocalDependency.js +96 -0
  216. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.d.ts +2 -0
  217. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.js +87 -0
  218. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/golangParser.d.ts +3 -0
  219. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/golangParser.js +88 -0
  220. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.d.ts +2 -0
  221. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.js +180 -0
  222. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/npmParser.d.ts +13 -0
  223. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/npmParser.js +175 -0
  224. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.d.ts +3 -0
  225. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.js +49 -0
  226. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/pyParser.d.ts +2 -0
  227. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/pyParser.js +57 -0
  228. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +3 -0
  229. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +125 -0
  230. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/utils.d.ts +2 -0
  231. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/utils.js +15 -0
  232. package/build/module/src/sdk/Report/Report.d.ts +8 -0
  233. package/build/module/src/sdk/Report/Report.js +20 -0
  234. package/build/module/src/sdk/filters/DefaultFilterForDependencies.d.ts +16 -0
  235. package/build/module/src/sdk/filters/DefaultFilterForDependencies.js +143 -0
  236. package/build/module/src/sdk/filters/DefaultFilterForScanning.d.ts +16 -0
  237. package/build/module/src/sdk/filters/DefaultFilterForScanning.js +192 -0
  238. package/build/module/src/sdk/filters/filtering.d.ts +32 -0
  239. package/build/module/src/sdk/filters/filtering.js +203 -0
  240. package/build/module/src/sdk/grpc/GrpcDependencyService.d.ts +11 -0
  241. package/build/module/src/sdk/grpc/GrpcDependencyService.js +64 -0
  242. package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  243. package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +2 -0
  244. package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +1 -0
  245. package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.js +404 -0
  246. package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +39 -0
  247. package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +98 -0
  248. package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +1 -0
  249. package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1197 -0
  250. package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +19 -0
  251. package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +66 -0
  252. package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +1 -0
  253. package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +14 -0
  254. package/build/module/src/sdk/scanner/Dispatcher/DispatchableItem.d.ts +19 -0
  255. package/build/module/src/sdk/scanner/Dispatcher/DispatchableItem.js +37 -0
  256. package/build/module/src/sdk/scanner/Dispatcher/Dispatcher.d.ts +20 -0
  257. package/build/module/src/sdk/scanner/Dispatcher/Dispatcher.js +135 -0
  258. package/build/module/src/sdk/scanner/Dispatcher/DispatcherResponse.d.ts +12 -0
  259. package/build/module/src/sdk/scanner/Dispatcher/DispatcherResponse.js +30 -0
  260. package/build/module/src/sdk/scanner/Dispatcher/GlobalControllerAborter.d.ts +10 -0
  261. package/build/module/src/sdk/scanner/Dispatcher/GlobalControllerAborter.js +26 -0
  262. package/build/module/src/sdk/scanner/Fingerprint.d.ts +16 -0
  263. package/build/module/src/sdk/scanner/Fingerprint.js +54 -0
  264. package/build/module/src/sdk/scanner/Scannable/ScannableItem.d.ts +15 -0
  265. package/build/module/src/sdk/scanner/Scannable/ScannableItem.js +24 -0
  266. package/build/module/src/sdk/scanner/Scanner.d.ts +46 -0
  267. package/build/module/src/sdk/scanner/Scanner.js +275 -0
  268. package/build/module/src/sdk/scanner/ScannerCfg.d.ts +16 -0
  269. package/build/module/src/sdk/scanner/ScannerCfg.js +27 -0
  270. package/build/module/src/sdk/scanner/ScannerTypes.d.ts +121 -0
  271. package/build/module/src/sdk/scanner/ScannerTypes.js +46 -0
  272. package/build/module/src/sdk/scanner/WfpProvider/FingerprintPackage.d.ts +9 -0
  273. package/build/module/src/sdk/scanner/WfpProvider/FingerprintPackage.js +28 -0
  274. package/build/module/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +20 -0
  275. package/build/module/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +486 -0
  276. package/build/module/src/sdk/scanner/WfpProvider/WfpProvider.d.ts +35 -0
  277. package/build/module/src/sdk/scanner/WfpProvider/WfpProvider.js +65 -0
  278. package/build/module/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.d.ts +21 -0
  279. package/build/module/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.js +132 -0
  280. package/build/module/src/sdk/tree/File.d.ts +7 -0
  281. package/build/module/src/sdk/tree/File.js +19 -0
  282. package/build/module/src/sdk/tree/Filters/DecompressionFilter.d.ts +7 -0
  283. package/build/module/src/sdk/tree/Filters/DecompressionFilter.js +18 -0
  284. package/build/module/src/sdk/tree/Filters/DependencyFilter.d.ts +7 -0
  285. package/build/module/src/sdk/tree/Filters/DependencyFilter.js +14 -0
  286. package/build/module/src/sdk/tree/Filters/Filter.d.ts +4 -0
  287. package/build/module/src/sdk/tree/Filters/Filter.js +3 -0
  288. package/build/module/src/sdk/tree/Filters/ScanFilter.d.ts +7 -0
  289. package/build/module/src/sdk/tree/Filters/ScanFilter.js +14 -0
  290. package/build/module/src/sdk/tree/Folder.d.ts +12 -0
  291. package/build/module/src/sdk/tree/Folder.js +53 -0
  292. package/build/module/src/sdk/tree/Node.d.ts +17 -0
  293. package/build/module/src/sdk/tree/Node.js +22 -0
  294. package/build/module/src/sdk/tree/Tree.d.ts +18 -0
  295. package/build/module/src/sdk/tree/Tree.js +64 -0
  296. package/build/module/tsconfig.module.tsbuildinfo +190 -144
  297. package/package-lock.json +17116 -0
  298. package/package.json +3 -3
  299. package/src/cli/bin/cli-bin.ts +7 -4
  300. package/src/index.ts +5 -0
  301. package/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.ts +10 -9
  302. package/src/sdk/FileCount/FileCount.ts +81 -0
  303. package/src/sdk/FileCount/FileCountFilter.ts +14 -0
  304. package/src/sdk/FileCount/Interfaces.ts +23 -0
  305. package/src/sdk/Filtering/DefaultFilterForDependencies.ts +148 -0
  306. package/src/sdk/Filtering/DefaultFilterForScanning.ts +206 -0
  307. package/src/sdk/Filtering/Filtering.ts +273 -0
  308. package/src/sdk/scanner/Dispatcher/Dispatcher.ts +5 -2
  309. package/src/sdk/scanner/ScannerCfg.ts +2 -2
  310. package/src/sdk/tree/Filters/DependencyFilter.ts +4 -4
  311. package/src/sdk/tree/Filters/ScanFilter.ts +4 -4
  312. package/src/sdk/tree/Node.ts +1 -1
  313. package/src/sdk/tree/Tree.ts +1 -1
  314. package/tests/sdk/FileCount/FileCount.spec.ts +35 -0
  315. package/tests/sdk/FileCount/samples/16557/.y.ts +27 -0
  316. package/tests/sdk/FileCount/samples/16557/.z.ts +129 -0
  317. package/tests/sdk/FileCount/samples/16557/files/a.ts +195 -0
  318. package/tests/sdk/FileCount/samples/16557/files/b.ts +184 -0
  319. package/tests/sdk/FileCount/samples/16557/files/c.ts +47 -0
  320. package/tests/sdk/FileCount/samples/22036/files/a.ts +195 -0
  321. package/tests/sdk/FileCount/samples/22036/files/b.ts +184 -0
  322. package/tests/sdk/FileCount/samples/22036/files/c.ts +47 -0
  323. package/tests/sdk/FileCount/samples/22036/files/d.ts +48 -0
  324. package/tests/sdk/FileCount/samples/22036/y.ts +27 -0
  325. package/tests/sdk/FileCount/samples/22036/z.ts +129 -0
  326. package/yarn.lock +316 -203
  327. package/src/sdk/filters/DefaultFilterForDependencies.ts +0 -149
  328. package/src/sdk/filters/DefaultFilterForScanning.ts +0 -207
  329. package/src/sdk/filters/filtering.ts +0 -235
@@ -0,0 +1,19 @@
1
+ export namespace ScanningService {
2
+ namespace echo {
3
+ export const path: string;
4
+ export const requestStream: boolean;
5
+ export const responseStream: boolean;
6
+ export const requestType: typeof import("../../common/v2/scanoss-common_pb.js").EchoRequest;
7
+ export const responseType: typeof import("../../common/v2/scanoss-common_pb.js").EchoResponse;
8
+ export { serialize_scanoss_api_common_v2_EchoRequest as requestSerialize };
9
+ export { deserialize_scanoss_api_common_v2_EchoRequest as requestDeserialize };
10
+ export { serialize_scanoss_api_common_v2_EchoResponse as responseSerialize };
11
+ export { deserialize_scanoss_api_common_v2_EchoResponse as responseDeserialize };
12
+ }
13
+ }
14
+ export var ScanningClient: import("@grpc/grpc-js").ServiceClientConstructor;
15
+ declare function serialize_scanoss_api_common_v2_EchoRequest(arg: any): Buffer;
16
+ declare function deserialize_scanoss_api_common_v2_EchoRequest(buffer_arg: any): import("../../common/v2/scanoss-common_pb.js").EchoRequest;
17
+ declare function serialize_scanoss_api_common_v2_EchoResponse(arg: any): Buffer;
18
+ declare function deserialize_scanoss_api_common_v2_EchoResponse(buffer_arg: any): import("../../common/v2/scanoss-common_pb.js").EchoResponse;
19
+ export {};
@@ -0,0 +1,66 @@
1
+ // GENERATED CODE -- DO NOT EDIT!
2
+ // Original file comments:
3
+ //
4
+ // SPDX-License-Identifier: MIT
5
+ //
6
+ // Copyright (c) 2021, SCANOSS
7
+ //
8
+ // Permission is hereby granted, free of charge, to any person obtaining a copy
9
+ // of this software and associated documentation files (the "Software"), to deal
10
+ // in the Software without restriction, including without limitation the rights
11
+ // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
+ // copies of the Software, and to permit persons to whom the Software is
13
+ // furnished to do so, subject to the following conditions:
14
+ //
15
+ // The above copyright notice and this permission notice shall be included in
16
+ // all copies or substantial portions of the Software.
17
+ //
18
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
+ // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
+ // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
+ // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
+ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
+ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
+ // THE SOFTWARE.
25
+ //
26
+ // **
27
+ // Scanning definition details
28
+ // *
29
+ 'use strict';
30
+ var grpc = require('@grpc/grpc-js');
31
+ var scanoss_api_common_v2_scanoss$common_pb = require('../../../../scanoss/api/common/v2/scanoss-common_pb.js');
32
+ function serialize_scanoss_api_common_v2_EchoRequest(arg) {
33
+ if (!(arg instanceof scanoss_api_common_v2_scanoss$common_pb.EchoRequest)) {
34
+ throw new Error('Expected argument of type scanoss.api.common.v2.EchoRequest');
35
+ }
36
+ return Buffer.from(arg.serializeBinary());
37
+ }
38
+ function deserialize_scanoss_api_common_v2_EchoRequest(buffer_arg) {
39
+ return scanoss_api_common_v2_scanoss$common_pb.EchoRequest.deserializeBinary(new Uint8Array(buffer_arg));
40
+ }
41
+ function serialize_scanoss_api_common_v2_EchoResponse(arg) {
42
+ if (!(arg instanceof scanoss_api_common_v2_scanoss$common_pb.EchoResponse)) {
43
+ throw new Error('Expected argument of type scanoss.api.common.v2.EchoResponse');
44
+ }
45
+ return Buffer.from(arg.serializeBinary());
46
+ }
47
+ function deserialize_scanoss_api_common_v2_EchoResponse(buffer_arg) {
48
+ return scanoss_api_common_v2_scanoss$common_pb.EchoResponse.deserializeBinary(new Uint8Array(buffer_arg));
49
+ }
50
+ // Expose all of the SCANOSS Scanning RPCs here
51
+ var ScanningService = exports.ScanningService = {
52
+ // Standard echo
53
+ echo: {
54
+ path: '/scanoss.api.scanning.v2.Scanning/Echo',
55
+ requestStream: false,
56
+ responseStream: false,
57
+ requestType: scanoss_api_common_v2_scanoss$common_pb.EchoRequest,
58
+ responseType: scanoss_api_common_v2_scanoss$common_pb.EchoResponse,
59
+ requestSerialize: serialize_scanoss_api_common_v2_EchoRequest,
60
+ requestDeserialize: deserialize_scanoss_api_common_v2_EchoRequest,
61
+ responseSerialize: serialize_scanoss_api_common_v2_EchoResponse,
62
+ responseDeserialize: deserialize_scanoss_api_common_v2_EchoResponse,
63
+ },
64
+ };
65
+ exports.ScanningClient = grpc.makeGenericClientConstructor(ScanningService);
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbm9zcy1zY2FubmluZ19ncnBjX3BiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9ncnBjL3NjYW5vc3MvYXBpL3NjYW5uaW5nL3YyL3NjYW5vc3Mtc2Nhbm5pbmdfZ3JwY19wYi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUM7QUFFakMsMEJBQTBCO0FBQzFCLEVBQUU7QUFDRiwrQkFBK0I7QUFDL0IsRUFBRTtBQUNGLDhCQUE4QjtBQUM5QixFQUFFO0FBQ0YsK0VBQStFO0FBQy9FLGdGQUFnRjtBQUNoRiwrRUFBK0U7QUFDL0UsNEVBQTRFO0FBQzVFLHdFQUF3RTtBQUN4RSwyREFBMkQ7QUFDM0QsRUFBRTtBQUNGLDZFQUE2RTtBQUM3RSxzREFBc0Q7QUFDdEQsRUFBRTtBQUNGLDZFQUE2RTtBQUM3RSwyRUFBMkU7QUFDM0UsOEVBQThFO0FBQzlFLHlFQUF5RTtBQUN6RSxnRkFBZ0Y7QUFDaEYsNEVBQTRFO0FBQzVFLGdCQUFnQjtBQUNoQixFQUFFO0FBQ0YsS0FBSztBQUNMLDhCQUE4QjtBQUM5QixJQUFJO0FBQ0osWUFBWSxDQUFDO0FBQ2IsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQ3BDLElBQUksdUNBQXVDLEdBQUcsT0FBTyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7QUFFaEgsU0FBUywyQ0FBMkMsQ0FBQyxHQUFHO0lBQ3RELElBQUksQ0FBQyxDQUFDLEdBQUcsWUFBWSx1Q0FBdUMsQ0FBQyxXQUFXLENBQUMsRUFBRTtRQUN6RSxNQUFNLElBQUksS0FBSyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7S0FDaEY7SUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUVELFNBQVMsNkNBQTZDLENBQUMsVUFBVTtJQUMvRCxPQUFPLHVDQUF1QyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQzNHLENBQUM7QUFFRCxTQUFTLDRDQUE0QyxDQUFDLEdBQUc7SUFDdkQsSUFBSSxDQUFDLENBQUMsR0FBRyxZQUFZLHVDQUF1QyxDQUFDLFlBQVksQ0FBQyxFQUFFO1FBQzFFLE1BQU0sSUFBSSxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQztLQUNqRjtJQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRUQsU0FBUyw4Q0FBOEMsQ0FBQyxVQUFVO0lBQ2hFLE9BQU8sdUNBQXVDLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDNUcsQ0FBQztBQUdELCtDQUErQztBQUMvQyxJQUFJLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxHQUFHO0lBQzlDLGdCQUFnQjtJQUNsQixJQUFJLEVBQUU7UUFDRixJQUFJLEVBQUUsd0NBQXdDO1FBQzlDLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGNBQWMsRUFBRSxLQUFLO1FBQ3JCLFdBQVcsRUFBRSx1Q0FBdUMsQ0FBQyxXQUFXO1FBQ2hFLFlBQVksRUFBRSx1Q0FBdUMsQ0FBQyxZQUFZO1FBQ2xFLGdCQUFnQixFQUFFLDJDQUEyQztRQUM3RCxrQkFBa0IsRUFBRSw2Q0FBNkM7UUFDakUsaUJBQWlCLEVBQUUsNENBQTRDO1FBQy9ELG1CQUFtQixFQUFFLDhDQUE4QztLQUNwRTtDQUNGLENBQUM7QUFFRixPQUFPLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxlQUFlLENBQUMsQ0FBQyJ9
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @fileoverview
3
+ * @enhanceable
4
+ * @suppress {messageConventions} JS Compiler reports an error if a variable or
5
+ * field starts with 'MSG_' and isn't a translatable message.
6
+ * @public
7
+ */
8
+ // GENERATED CODE -- DO NOT EDIT!
9
+ var jspb = require('google-protobuf');
10
+ var goog = jspb;
11
+ var global = Function('return this')();
12
+ var scanoss_api_common_v2_scanoss$common_pb = require('../../../../scanoss/api/common/v2/scanoss-common_pb.js');
13
+ goog.object.extend(exports, proto.scanoss.api.scanning.v2);
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbm9zcy1zY2FubmluZ19wYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvZ3JwYy9zY2Fub3NzL2FwaS9zY2FubmluZy92Mi9zY2Fub3NzLXNjYW5uaW5nX3BiLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILGlDQUFpQztBQUVqQyxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUN0QyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7QUFDaEIsSUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7QUFFdkMsSUFBSSx1Q0FBdUMsR0FBRyxPQUFPLENBQUMsd0RBQXdELENBQUMsQ0FBQztBQUNoSCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,19 @@
1
+ import { FingerprintPackage } from '../WfpProvider/FingerprintPackage';
2
+ import FormData from 'form-data';
3
+ import { SbomMode } from '../ScannerTypes';
4
+ export declare class DispatchableItem {
5
+ private readonly form;
6
+ private errorCounter;
7
+ private fingerprintPackage;
8
+ private engineFlags;
9
+ private sbom;
10
+ private sbomMode;
11
+ constructor();
12
+ getForm(): FormData;
13
+ increaseErrorCounter(): void;
14
+ getErrorCounter(): number;
15
+ setFingerprintPackage(fingerprintPackage: FingerprintPackage): void;
16
+ getFingerprintPackage(): FingerprintPackage;
17
+ setEngineFlags(engineFlags: number): void;
18
+ setSbom(sbom: string, sbomMode: SbomMode): void;
19
+ }
@@ -0,0 +1,43 @@
1
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2
+ return (mod && mod.__esModule) ? mod : { "default": mod };
3
+ };
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.DispatchableItem = void 0;
6
+ const form_data_1 = __importDefault(require("form-data"));
7
+ class DispatchableItem {
8
+ constructor() {
9
+ this.errorCounter = 0;
10
+ this.form = new form_data_1.default();
11
+ }
12
+ getForm() {
13
+ this.form.append('file', Buffer.from(this.fingerprintPackage.getContent()), 'data.wfp');
14
+ if (this.engineFlags)
15
+ this.form.append('flags', this.engineFlags);
16
+ if (this.sbomMode && this.sbom) {
17
+ this.form.append('assets', this.sbom);
18
+ this.form.append('type', this.sbomMode);
19
+ }
20
+ return this.form;
21
+ }
22
+ increaseErrorCounter() {
23
+ this.errorCounter += 1;
24
+ }
25
+ getErrorCounter() {
26
+ return this.errorCounter;
27
+ }
28
+ setFingerprintPackage(fingerprintPackage) {
29
+ this.fingerprintPackage = fingerprintPackage;
30
+ }
31
+ getFingerprintPackage() {
32
+ return this.fingerprintPackage;
33
+ }
34
+ setEngineFlags(engineFlags) {
35
+ this.engineFlags = engineFlags;
36
+ }
37
+ setSbom(sbom, sbomMode) {
38
+ this.sbom = sbom;
39
+ this.sbomMode = sbomMode;
40
+ }
41
+ }
42
+ exports.DispatchableItem = DispatchableItem;
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzcGF0Y2hhYmxlSXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvc2Nhbm5lci9EaXNwYXRjaGVyL0Rpc3BhdGNoYWJsZUl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSwwREFBaUM7QUFHakMsTUFBYSxnQkFBZ0I7SUFhM0I7UUFDRSxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksbUJBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDeEYsSUFBRyxJQUFJLENBQUMsV0FBVztZQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFakUsSUFBRyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFTSxvQkFBb0I7UUFDekIsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVNLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxrQkFBc0M7UUFDakUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO0lBQy9DLENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQUVNLGNBQWMsQ0FBQyxXQUFtQjtRQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0lBRU0sT0FBTyxDQUFDLElBQVksRUFBRSxRQUFrQjtRQUM3QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0NBSUY7QUF6REQsNENBeURDIn0=
@@ -0,0 +1,20 @@
1
+ import EventEmitter from 'eventemitter3';
2
+ import { ScannerCfg } from "../ScannerCfg";
3
+ import { DispatchableItem } from './DispatchableItem';
4
+ export declare class Dispatcher extends EventEmitter {
5
+ private scannerCfg;
6
+ private pQueue;
7
+ private globalAbortController;
8
+ private queueMaxLimitReached;
9
+ private queueMinLimitReached;
10
+ private recoverableErrors;
11
+ private proxy;
12
+ constructor(scannerCfg?: ScannerCfg);
13
+ init(): void;
14
+ stop(): void;
15
+ dispatchItem(item: DispatchableItem): void;
16
+ handleUnrecoverableError(error: any, disptItem: any): void;
17
+ emitNoDispatchedItem(disptItem: any): void;
18
+ errorHandler(error: any, disptItem: any): void;
19
+ dispatch(item: DispatchableItem): Promise<void>;
20
+ }
@@ -0,0 +1,160 @@
1
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2
+ if (k2 === undefined) k2 = k;
3
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ }) : (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ o[k2] = m[k];
7
+ }));
8
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
9
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
10
+ }) : function(o, v) {
11
+ o["default"] = v;
12
+ });
13
+ var __importStar = (this && this.__importStar) || function (mod) {
14
+ if (mod && mod.__esModule) return mod;
15
+ var result = {};
16
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
17
+ __setModuleDefault(result, mod);
18
+ return result;
19
+ };
20
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21
+ return (mod && mod.__esModule) ? mod : { "default": mod };
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.Dispatcher = void 0;
25
+ /* eslint-disable guard-for-in */
26
+ /* eslint-disable no-restricted-syntax */
27
+ const eventemitter3_1 = __importDefault(require("eventemitter3"));
28
+ const node_fetch_1 = __importDefault(require("node-fetch"));
29
+ const p_queue_1 = __importDefault(require("p-queue"));
30
+ const package_json_1 = __importDefault(require("../../../../package.json"));
31
+ const ScannerTypes_1 = require("../ScannerTypes");
32
+ const DispatcherResponse_1 = require("./DispatcherResponse");
33
+ const ScannerCfg_1 = require("../ScannerCfg");
34
+ const GlobalControllerAborter_1 = require("./GlobalControllerAborter");
35
+ const https_proxy_agent_1 = require("https-proxy-agent");
36
+ const syswideCa = __importStar(require("syswide-cas"));
37
+ const MAX_CONCURRENT_REQUEST = 30;
38
+ class Dispatcher extends eventemitter3_1.default {
39
+ constructor(scannerCfg = new ScannerCfg_1.ScannerCfg()) {
40
+ super();
41
+ this.scannerCfg = scannerCfg;
42
+ if (this.scannerCfg.CONCURRENCY_LIMIT > MAX_CONCURRENT_REQUEST)
43
+ this.scannerCfg.CONCURRENCY_LIMIT = MAX_CONCURRENT_REQUEST;
44
+ this.init();
45
+ }
46
+ init() {
47
+ //Loads proxy from SDK config, if not from env variables, if not leave empty
48
+ this.proxy = null;
49
+ const proxy = this.scannerCfg.PROXY || process.env.https_proxy || process.env.HTTPS_PROXY || process.env.http_proxy || process.env.HTTP_PROXY || '';
50
+ if (proxy)
51
+ this.proxy = new https_proxy_agent_1.HttpsProxyAgent(proxy);
52
+ //Loads certs stuff from SDK config
53
+ const ca_cert = this.scannerCfg.CA_CERT || process.env.NODE_EXTRA_CA_CERTS;
54
+ if (ca_cert) {
55
+ syswideCa.addCAs(ca_cert);
56
+ }
57
+ else {
58
+ if (this.scannerCfg.IGNORE_CERT_ERRORS || proxy)
59
+ process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
60
+ }
61
+ this.pQueue = new p_queue_1.default({
62
+ concurrency: this.scannerCfg.CONCURRENCY_LIMIT,
63
+ });
64
+ this.pQueue.clear();
65
+ this.pQueue.on('idle', () => {
66
+ this.emit(ScannerTypes_1.ScannerEvents.DISPATCHER_FINISHED);
67
+ });
68
+ this.pQueue.on('next', () => {
69
+ if ((this.pQueue.size + this.pQueue.pending) < this.scannerCfg.DISPATCHER_QUEUE_SIZE_MIN_LIMIT && !this.queueMinLimitReached) {
70
+ this.emit(ScannerTypes_1.ScannerEvents.DISPATCHER_QUEUE_SIZE_MIN_LIMIT);
71
+ this.queueMinLimitReached = true;
72
+ this.queueMaxLimitReached = false;
73
+ }
74
+ });
75
+ this.queueMaxLimitReached = false;
76
+ this.queueMinLimitReached = true;
77
+ this.globalAbortController = new GlobalControllerAborter_1.GlobalControllerAborter();
78
+ this.recoverableErrors = new Set();
79
+ this.recoverableErrors.add('ECONNRESET');
80
+ this.recoverableErrors.add('TIMEOUT');
81
+ }
82
+ stop() {
83
+ this.pQueue.clear();
84
+ this.pQueue.pause();
85
+ this.globalAbortController.abortAll();
86
+ }
87
+ dispatchItem(item) {
88
+ this.pQueue.add(() => this.dispatch(item));
89
+ if (this.pQueue.size + this.pQueue.pending >= this.scannerCfg.DISPATCHER_QUEUE_SIZE_MAX_LIMIT &&
90
+ !this.queueMaxLimitReached) {
91
+ this.emit(ScannerTypes_1.ScannerEvents.DISPATCHER_QUEUE_SIZE_MAX_LIMIT);
92
+ this.queueMaxLimitReached = true;
93
+ this.queueMinLimitReached = false;
94
+ }
95
+ }
96
+ handleUnrecoverableError(error, disptItem) {
97
+ this.emit('error', error, disptItem);
98
+ }
99
+ emitNoDispatchedItem(disptItem) {
100
+ this.emit(ScannerTypes_1.ScannerEvents.DISPATCHER_LOG, `[ SCANNER ]: WFP content sended to many times. Some files won't be scanned`);
101
+ this.emit(ScannerTypes_1.ScannerEvents.DISPATCHER_ITEM_NO_DISPATCHED, disptItem);
102
+ }
103
+ errorHandler(error, disptItem) {
104
+ if (!this.globalAbortController.isAborting()) {
105
+ if (error.name === 'AbortError')
106
+ error.name = 'TIMEOUT';
107
+ if (this.recoverableErrors.has(error.code) || this.recoverableErrors.has(error.name)) {
108
+ disptItem.increaseErrorCounter();
109
+ if (disptItem.getErrorCounter() >= this.scannerCfg.MAX_RETRIES_FOR_RECOVERABLES_ERRORS) {
110
+ this.emitNoDispatchedItem(disptItem);
111
+ if (this.scannerCfg.ABORT_ON_MAX_RETRIES)
112
+ this.handleUnrecoverableError(error, disptItem);
113
+ return;
114
+ }
115
+ this.emit(ScannerTypes_1.ScannerEvents.DISPATCHER_LOG, `[ SCANNER ]: Recoverable error happened sending WFP content to server. Reason: ${error.code || error.name}`);
116
+ this.dispatchItem(disptItem);
117
+ return;
118
+ }
119
+ this.handleUnrecoverableError(error, disptItem);
120
+ }
121
+ }
122
+ async dispatch(item) {
123
+ const timeoutController = this.globalAbortController.getAbortController();
124
+ const timeoutId = setTimeout(() => timeoutController.abort(), this.scannerCfg.TIMEOUT);
125
+ try {
126
+ this.emit(ScannerTypes_1.ScannerEvents.DISPATCHER_WFP_SENDED);
127
+ const response = await node_fetch_1.default(this.scannerCfg.API_URL, {
128
+ agent: this.proxy,
129
+ method: 'post',
130
+ body: item.getForm(),
131
+ headers: { 'User-Agent': this.scannerCfg.CLIENT_TIMESTAMP ? this.scannerCfg.CLIENT_TIMESTAMP : `scanoss-js/${package_json_1.default.version}`,
132
+ 'X-Session': this.scannerCfg.API_KEY,
133
+ },
134
+ signal: timeoutController.signal,
135
+ });
136
+ clearTimeout(timeoutId);
137
+ this.globalAbortController.removeAbortController(timeoutController);
138
+ if (!response.ok) {
139
+ const msg = await response.text();
140
+ const err = new Error(msg);
141
+ err["code"] = response.status;
142
+ err.name = ScannerTypes_1.ScannerEvents.ERROR_SERVER_SIDE;
143
+ throw err;
144
+ }
145
+ const dataAsText = await response.text();
146
+ const dataAsObj = JSON.parse(dataAsText);
147
+ const dispatcherResponse = new DispatcherResponse_1.DispatcherResponse(dataAsObj, item.getFingerprintPackage().getContent());
148
+ this.emit(ScannerTypes_1.ScannerEvents.DISPATCHER_NEW_DATA, dispatcherResponse);
149
+ return Promise.resolve();
150
+ }
151
+ catch (e) {
152
+ clearTimeout(timeoutId);
153
+ this.globalAbortController.removeAbortController(timeoutController);
154
+ this.errorHandler(e, item);
155
+ return Promise.resolve();
156
+ }
157
+ }
158
+ }
159
+ exports.Dispatcher = Dispatcher;
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvc2Nhbm5lci9EaXNwYXRjaGVyL0Rpc3BhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUNBQWlDO0FBQ2pDLHlDQUF5QztBQUN6QyxrRUFBeUM7QUFDekMsNERBQStCO0FBQy9CLHNEQUE2QjtBQUM3Qiw0RUFBbUQ7QUFFbkQsa0RBQWdEO0FBQ2hELDZEQUEwRDtBQUMxRCw4Q0FBMkM7QUFDM0MsdUVBQW9FO0FBRXBFLHlEQUFvRDtBQUNwRCx1REFBeUM7QUFFekMsTUFBTSxzQkFBc0IsR0FBRyxFQUFFLENBQUM7QUFFbEMsTUFBYSxVQUFXLFNBQVEsdUJBQVk7SUFlMUMsWUFBWSxVQUFVLEdBQUcsSUFBSSx1QkFBVSxFQUFFO1FBQ3ZDLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixHQUFHLHNCQUFzQjtZQUMzRCxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDO1FBRTdELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJO1FBRUYsNEVBQTRFO1FBQzVFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztRQUNySixJQUFJLEtBQUs7WUFBRSxJQUFJLENBQUMsS0FBSyxHQUFH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
@@ -0,0 +1,12 @@
1
+ export declare class DispatcherResponse {
2
+ serverResponse: any;
3
+ wfpContent: string;
4
+ filesScanned: Array<string>;
5
+ constructor(serverResponse: any, wfpContent: any);
6
+ getServerResponse(): any;
7
+ getWfpContent(): string;
8
+ matchRegex(str: any, re?: RegExp): any;
9
+ verifyResponse(): void;
10
+ getFilesScanned(): string[];
11
+ getNumberOfFilesScanned(): number;
12
+ }
@@ -0,0 +1,33 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.DispatcherResponse = void 0;
3
+ class DispatcherResponse {
4
+ constructor(serverResponse, wfpContent) {
5
+ this.serverResponse = serverResponse;
6
+ this.wfpContent = wfpContent;
7
+ this.filesScanned = Object.keys(this.serverResponse);
8
+ // this.verifyResponse();
9
+ }
10
+ getServerResponse() {
11
+ return this.serverResponse;
12
+ }
13
+ getWfpContent() {
14
+ return this.wfpContent;
15
+ }
16
+ matchRegex(str, re = /file=/g) {
17
+ return ((str || '').match(re) || []).length;
18
+ }
19
+ verifyResponse() {
20
+ const wfpNumFiles = this.matchRegex(this.wfpContent, /file=/g);
21
+ const serverResponseNumFiles = Object.keys(this.serverResponse).length;
22
+ if (wfpNumFiles !== serverResponseNumFiles)
23
+ throw new Error(`The numbers of files in the wfp sended does not match with the server response`);
24
+ }
25
+ getFilesScanned() {
26
+ return this.filesScanned;
27
+ }
28
+ getNumberOfFilesScanned() {
29
+ return this.filesScanned.length;
30
+ }
31
+ }
32
+ exports.DispatcherResponse = DispatcherResponse;
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzcGF0Y2hlclJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9zY2FubmVyL0Rpc3BhdGNoZXIvRGlzcGF0Y2hlclJlc3BvbnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBYSxrQkFBa0I7SUFPN0IsWUFBWSxjQUFjLEVBQUUsVUFBVTtRQUNwQyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3JELHlCQUF5QjtJQUMzQixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxRQUFRO1FBQzNCLE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzlDLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3ZFLElBQUksV0FBVyxLQUFLLHNCQUFzQjtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0ZBQWdGLENBQUMsQ0FBQztJQUNoSixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsdUJBQXVCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDbEMsQ0FBQztDQUNGO0FBdkNELGdEQXVDQyJ9
@@ -0,0 +1,10 @@
1
+ import AbortController from 'abort-controller';
2
+ export declare class GlobalControllerAborter {
3
+ private abortControllerList;
4
+ private abortFlag;
5
+ constructor();
6
+ abortAll(): void;
7
+ isAborting(): Boolean;
8
+ getAbortController(): AbortController;
9
+ removeAbortController(c: any): void;
10
+ }
@@ -0,0 +1,32 @@
1
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2
+ return (mod && mod.__esModule) ? mod : { "default": mod };
3
+ };
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.GlobalControllerAborter = void 0;
6
+ const abort_controller_1 = __importDefault(require("abort-controller"));
7
+ class GlobalControllerAborter {
8
+ constructor() {
9
+ this.abortControllerList = [];
10
+ this.abortFlag = false;
11
+ }
12
+ abortAll() {
13
+ this.abortFlag = true;
14
+ for (const c of this.abortControllerList)
15
+ c.abort();
16
+ }
17
+ isAborting() {
18
+ return this.abortFlag;
19
+ }
20
+ getAbortController() {
21
+ const c = new abort_controller_1.default();
22
+ this.abortControllerList.push(c);
23
+ return c;
24
+ }
25
+ removeAbortController(c) {
26
+ const index = this.abortControllerList.findIndex((controller) => controller === c);
27
+ if (index > -1)
28
+ this.abortControllerList.splice(index, 1);
29
+ }
30
+ }
31
+ exports.GlobalControllerAborter = GlobalControllerAborter;
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2xvYmFsQ29udHJvbGxlckFib3J0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL3NjYW5uZXIvRGlzcGF0Y2hlci9HbG9iYWxDb250cm9sbGVyQWJvcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLHdFQUErQztBQUUvQyxNQUFhLHVCQUF1QjtJQUtsQztRQUNFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxtQkFBbUI7WUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixNQUFNLENBQUMsR0FBRyxJQUFJLDBCQUFlLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELHFCQUFxQixDQUFDLENBQUM7UUFDckIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ25GLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztZQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDRjtBQTdCRCwwREE2QkMifQ==
@@ -0,0 +1,16 @@
1
+ import EventEmitter from 'eventemitter3';
2
+ import { IWfpProviderInput } from './WfpProvider/WfpProvider';
3
+ export declare class Fingerprint extends EventEmitter {
4
+ private wfpCalculator;
5
+ private fingerprintPath;
6
+ private finishPromise;
7
+ private finishPromiseResolve;
8
+ private finishPromiseReject;
9
+ private reportStatusAfter;
10
+ private queue;
11
+ constructor(reportStatusAfter?: number);
12
+ private configureWfpCalculator;
13
+ start(jobs: Array<IWfpProviderInput>): Promise<void>;
14
+ abort(): void;
15
+ setFingerprintPath(fingerprintsFilePath: string): void;
16
+ }
@@ -0,0 +1,78 @@
1
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
2
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
3
+ var m = o[Symbol.asyncIterator], i;
4
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
5
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
6
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Fingerprint = void 0;
13
+ const eventemitter3_1 = __importDefault(require("eventemitter3"));
14
+ const os_1 = __importDefault(require("os"));
15
+ const fs_1 = __importDefault(require("fs"));
16
+ const WfpCalculator_1 = require("./WfpProvider/WfpCalculator/WfpCalculator");
17
+ const path_1 = __importDefault(require("path"));
18
+ const ScannerTypes_1 = require("./ScannerTypes");
19
+ const ScannerCfg_1 = require("./ScannerCfg");
20
+ class Fingerprint extends eventemitter3_1.default {
21
+ constructor(reportStatusAfter = 10) {
22
+ super();
23
+ this.reportStatusAfter = reportStatusAfter;
24
+ this.finishPromise = new Promise((resolve, reject) => {
25
+ this.finishPromiseResolve = resolve;
26
+ this.finishPromiseReject = reject;
27
+ });
28
+ this.configureWfpCalculator();
29
+ }
30
+ configureWfpCalculator() {
31
+ // TODO: Maybe the fingerprints shouldn't be truncated. Determine this optimal value.
32
+ const cfg = new ScannerCfg_1.ScannerCfg();
33
+ cfg.WFP_FILE_MAX_SIZE = 10 * 1024 * 1024;
34
+ cfg.WINNOWING_REPORT_STATUS_AFTER_X = this.reportStatusAfter;
35
+ this.wfpCalculator = new WfpCalculator_1.WfpCalculator(cfg);
36
+ this.wfpCalculator.on(ScannerTypes_1.ScannerEvents.WINNOWING_NEW_CONTENT, (fingerprintPackage) => {
37
+ fs_1.default.appendFileSync(this.fingerprintPath, fingerprintPackage.getContent());
38
+ });
39
+ this.wfpCalculator.on(ScannerTypes_1.ScannerEvents.WINNOWING_STATUS, (filesProcessed) => {
40
+ this.emit(ScannerTypes_1.ScannerEvents.WINNOWING_STATUS, filesProcessed);
41
+ });
42
+ }
43
+ async start(jobs) {
44
+ var e_1, _a;
45
+ //If winnowing.wfp path is not set, set to a tmp folder
46
+ if (!this.fingerprintPath)
47
+ this.fingerprintPath = path_1.default.join(os_1.default.tmpdir(), "fingerprint-" + new Date().getTime().toString(), 'winnowing.wfp');
48
+ //If folder does not exist, create
49
+ const pathFolder = path_1.default.dirname(this.fingerprintPath);
50
+ if (!fs_1.default.existsSync(pathFolder))
51
+ fs_1.default.mkdirSync(pathFolder, { recursive: true });
52
+ this.queue = jobs;
53
+ try {
54
+ for (var _b = __asyncValues(this.queue), _c; _c = await _b.next(), !_c.done;) {
55
+ const job = _c.value;
56
+ this.configureWfpCalculator();
57
+ await this.wfpCalculator.start(job);
58
+ }
59
+ }
60
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
61
+ finally {
62
+ try {
63
+ if (_c && !_c.done && (_a = _b.return)) await _a.call(_b);
64
+ }
65
+ finally { if (e_1) throw e_1.error; }
66
+ }
67
+ this.emit(ScannerTypes_1.ScannerEvents.WINNOWING_FINISHED);
68
+ }
69
+ abort() {
70
+ this.wfpCalculator.stop();
71
+ this.wfpCalculator = null;
72
+ }
73
+ setFingerprintPath(fingerprintsFilePath) {
74
+ this.fingerprintPath = fingerprintsFilePath;
75
+ }
76
+ }
77
+ exports.Fingerprint = Fingerprint;
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmluZ2VycHJpbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2RrL3NjYW5uZXIvRmluZ2VycHJpbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsa0VBQXlDO0FBQ3pDLDRDQUFvQjtBQUNwQiw0Q0FBb0I7QUFFcEIsNkVBQTBFO0FBQzFFLGdEQUF3QjtBQUN4QixpREFBK0M7QUFFL0MsNkNBQTBDO0FBRTFDLE1BQWEsV0FBWSxTQUFRLHVCQUFZO0lBUTNDLFlBQVksaUJBQWlCLEdBQUcsRUFBRTtRQUNoQyxLQUFLLEVBQUUsQ0FBQztRQUVSLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ25ELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxPQUFPLENBQUM7WUFDcEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFJTyxzQkFBc0I7UUFFNUIscUZBQXFGO1FBQ3JGLE1BQU0sR0FBRyxHQUFHLElBQUksdUJBQVUsRUFBRSxDQUFDO1FBQzdCLEdBQUcsQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFFLElBQUksQ0FBQztRQUN4QyxHQUFHLENBQUMsK0JBQStCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQzdELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSw2QkFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRzVDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLDRCQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxrQkFBc0MsRUFBRSxFQUFFO1lBQ3BHLFlBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsNEJBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLGNBQXNCLEVBQUUsRUFBRTtZQUMvRSxJQUFJLENBQUMsSUFBSSxDQUFDLDRCQUFhLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDNUQsQ0FBQyxDQUFDLENBQUM7SUFHTCxDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUE4Qjs7UUFDL0MsdURBQXVEO1FBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZTtZQUFFLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBSSxDQUFDLElBQUksQ0FBQyxZQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsY0FBYyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFFNUksa0NBQWtDO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLGNBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3RELElBQUcsQ0FBQyxZQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztZQUFFLFlBQUUsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFN0UsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7O1lBRWxCLEtBQXdCLElBQUEsS0FBQSxjQUFBLElBQUksQ0FBQyxLQUFLLENBQUEsSUFBQTtnQkFBdkIsTUFBTSxHQUFHLFdBQUEsQ0FBQTtnQkFDbEIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7Z0JBQzlCLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDckM7Ozs7Ozs7OztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsNEJBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxHQUFDLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRU0sa0JBQWtCLENBQUMsb0JBQTRCO1FBQ3BELElBQUksQ0FBQyxlQUFlLEdBQUMsb0JBQW9CLENBQUM7SUFDNUMsQ0FBQztDQUlGO0FBdkVELGtDQXVFQyJ9
@@ -0,0 +1,15 @@
1
+ /// <reference types="node" />
2
+ import { WinnowingMode } from "../ScannerTypes";
3
+ export declare class ScannableItem {
4
+ private contentSource;
5
+ private content;
6
+ private winnowingMode;
7
+ private fingerprint;
8
+ private maxSizeWfp;
9
+ constructor(content: Buffer, contentSource: string, winnowingMode: any, maxSizeWfp: number);
10
+ getContent(): Buffer;
11
+ getContentSource(): string;
12
+ getFingerprint(): any;
13
+ getWinnowingMode(): WinnowingMode;
14
+ getMaxSizeWfp(): any;
15
+ }
@@ -0,0 +1,27 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.ScannableItem = void 0;
3
+ class ScannableItem {
4
+ constructor(content, contentSource, winnowingMode, maxSizeWfp) {
5
+ this.contentSource = contentSource;
6
+ this.content = content;
7
+ this.winnowingMode = winnowingMode;
8
+ this.maxSizeWfp = maxSizeWfp;
9
+ }
10
+ getContent() {
11
+ return this.content;
12
+ }
13
+ getContentSource() {
14
+ return this.contentSource;
15
+ }
16
+ getFingerprint() {
17
+ return this.fingerprint;
18
+ }
19
+ getWinnowingMode() {
20
+ return this.winnowingMode;
21
+ }
22
+ getMaxSizeWfp() {
23
+ return this.maxSizeWfp;
24
+ }
25
+ }
26
+ exports.ScannableItem = ScannableItem;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Nhbm5hYmxlSXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvc2Nhbm5lci9TY2FubmFibGUvU2Nhbm5hYmxlSXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLE1BQWEsYUFBYTtJQVd4QixZQUFZLE9BQWUsRUFBRSxhQUFxQixFQUFFLGFBQWtCLEVBQUUsVUFBa0I7UUFDeEYsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFTSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0NBR0Y7QUF2Q0Qsc0NBdUNDIn0=