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,37 @@
1
+ import FormData from 'form-data';
2
+ export class DispatchableItem {
3
+ constructor() {
4
+ this.errorCounter = 0;
5
+ this.form = new FormData();
6
+ }
7
+ getForm() {
8
+ this.form.append('file', Buffer.from(this.fingerprintPackage.getContent()), 'data.wfp');
9
+ if (this.engineFlags)
10
+ this.form.append('flags', this.engineFlags);
11
+ if (this.sbomMode && this.sbom) {
12
+ this.form.append('assets', this.sbom);
13
+ this.form.append('type', this.sbomMode);
14
+ }
15
+ return this.form;
16
+ }
17
+ increaseErrorCounter() {
18
+ this.errorCounter += 1;
19
+ }
20
+ getErrorCounter() {
21
+ return this.errorCounter;
22
+ }
23
+ setFingerprintPackage(fingerprintPackage) {
24
+ this.fingerprintPackage = fingerprintPackage;
25
+ }
26
+ getFingerprintPackage() {
27
+ return this.fingerprintPackage;
28
+ }
29
+ setEngineFlags(engineFlags) {
30
+ this.engineFlags = engineFlags;
31
+ }
32
+ setSbom(sbom, sbomMode) {
33
+ this.sbom = sbom;
34
+ this.sbomMode = sbomMode;
35
+ }
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzcGF0Y2hhYmxlSXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvc2Nhbm5lci9EaXNwYXRjaGVyL0Rpc3BhdGNoYWJsZUl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBR2pDLE1BQU0sT0FBTyxnQkFBZ0I7SUFhM0I7UUFDRSxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN4RixJQUFHLElBQUksQ0FBQyxXQUFXO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVqRSxJQUFHLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDekM7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVNLG9CQUFvQjtRQUN6QixJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRU0sZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVNLHFCQUFxQixDQUFDLGtCQUFzQztRQUNqRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7SUFDL0MsQ0FBQztJQUVNLHFCQUFxQjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRU0sY0FBYyxDQUFDLFdBQW1CO1FBQ3ZDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxPQUFPLENBQUMsSUFBWSxFQUFFLFFBQWtCO1FBQzdDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7Q0FJRiJ9
@@ -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,135 @@
1
+ /* eslint-disable guard-for-in */
2
+ /* eslint-disable no-restricted-syntax */
3
+ import EventEmitter from 'eventemitter3';
4
+ import fetch from 'node-fetch';
5
+ import PQueue from "p-queue";
6
+ import PackageJson from '../../../../package.json';
7
+ import { ScannerEvents } from "../ScannerTypes";
8
+ import { DispatcherResponse } from "./DispatcherResponse";
9
+ import { ScannerCfg } from "../ScannerCfg";
10
+ import { GlobalControllerAborter } from "./GlobalControllerAborter";
11
+ import { HttpsProxyAgent } from 'https-proxy-agent';
12
+ import * as syswideCa from "syswide-cas";
13
+ const MAX_CONCURRENT_REQUEST = 30;
14
+ export class Dispatcher extends EventEmitter {
15
+ constructor(scannerCfg = new ScannerCfg()) {
16
+ super();
17
+ this.scannerCfg = scannerCfg;
18
+ if (this.scannerCfg.CONCURRENCY_LIMIT > MAX_CONCURRENT_REQUEST)
19
+ this.scannerCfg.CONCURRENCY_LIMIT = MAX_CONCURRENT_REQUEST;
20
+ this.init();
21
+ }
22
+ init() {
23
+ //Loads proxy from SDK config, if not from env variables, if not leave empty
24
+ this.proxy = null;
25
+ const proxy = this.scannerCfg.PROXY || process.env.https_proxy || process.env.HTTPS_PROXY || process.env.http_proxy || process.env.HTTP_PROXY || '';
26
+ if (proxy)
27
+ this.proxy = new HttpsProxyAgent(proxy);
28
+ //Loads certs stuff from SDK config
29
+ const ca_cert = this.scannerCfg.CA_CERT || process.env.NODE_EXTRA_CA_CERTS;
30
+ if (ca_cert) {
31
+ syswideCa.addCAs(ca_cert);
32
+ }
33
+ else {
34
+ if (this.scannerCfg.IGNORE_CERT_ERRORS || proxy)
35
+ process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
36
+ }
37
+ this.pQueue = new PQueue({
38
+ concurrency: this.scannerCfg.CONCURRENCY_LIMIT,
39
+ });
40
+ this.pQueue.clear();
41
+ this.pQueue.on('idle', () => {
42
+ this.emit(ScannerEvents.DISPATCHER_FINISHED);
43
+ });
44
+ this.pQueue.on('next', () => {
45
+ if ((this.pQueue.size + this.pQueue.pending) < this.scannerCfg.DISPATCHER_QUEUE_SIZE_MIN_LIMIT && !this.queueMinLimitReached) {
46
+ this.emit(ScannerEvents.DISPATCHER_QUEUE_SIZE_MIN_LIMIT);
47
+ this.queueMinLimitReached = true;
48
+ this.queueMaxLimitReached = false;
49
+ }
50
+ });
51
+ this.queueMaxLimitReached = false;
52
+ this.queueMinLimitReached = true;
53
+ this.globalAbortController = new GlobalControllerAborter();
54
+ this.recoverableErrors = new Set();
55
+ this.recoverableErrors.add('ECONNRESET');
56
+ this.recoverableErrors.add('TIMEOUT');
57
+ }
58
+ stop() {
59
+ this.pQueue.clear();
60
+ this.pQueue.pause();
61
+ this.globalAbortController.abortAll();
62
+ }
63
+ dispatchItem(item) {
64
+ this.pQueue.add(() => this.dispatch(item));
65
+ if (this.pQueue.size + this.pQueue.pending >= this.scannerCfg.DISPATCHER_QUEUE_SIZE_MAX_LIMIT &&
66
+ !this.queueMaxLimitReached) {
67
+ this.emit(ScannerEvents.DISPATCHER_QUEUE_SIZE_MAX_LIMIT);
68
+ this.queueMaxLimitReached = true;
69
+ this.queueMinLimitReached = false;
70
+ }
71
+ }
72
+ handleUnrecoverableError(error, disptItem) {
73
+ this.emit('error', error, disptItem);
74
+ }
75
+ emitNoDispatchedItem(disptItem) {
76
+ this.emit(ScannerEvents.DISPATCHER_LOG, `[ SCANNER ]: WFP content sended to many times. Some files won't be scanned`);
77
+ this.emit(ScannerEvents.DISPATCHER_ITEM_NO_DISPATCHED, disptItem);
78
+ }
79
+ errorHandler(error, disptItem) {
80
+ if (!this.globalAbortController.isAborting()) {
81
+ if (error.name === 'AbortError')
82
+ error.name = 'TIMEOUT';
83
+ if (this.recoverableErrors.has(error.code) || this.recoverableErrors.has(error.name)) {
84
+ disptItem.increaseErrorCounter();
85
+ if (disptItem.getErrorCounter() >= this.scannerCfg.MAX_RETRIES_FOR_RECOVERABLES_ERRORS) {
86
+ this.emitNoDispatchedItem(disptItem);
87
+ if (this.scannerCfg.ABORT_ON_MAX_RETRIES)
88
+ this.handleUnrecoverableError(error, disptItem);
89
+ return;
90
+ }
91
+ this.emit(ScannerEvents.DISPATCHER_LOG, `[ SCANNER ]: Recoverable error happened sending WFP content to server. Reason: ${error.code || error.name}`);
92
+ this.dispatchItem(disptItem);
93
+ return;
94
+ }
95
+ this.handleUnrecoverableError(error, disptItem);
96
+ }
97
+ }
98
+ async dispatch(item) {
99
+ const timeoutController = this.globalAbortController.getAbortController();
100
+ const timeoutId = setTimeout(() => timeoutController.abort(), this.scannerCfg.TIMEOUT);
101
+ try {
102
+ this.emit(ScannerEvents.DISPATCHER_WFP_SENDED);
103
+ const response = await fetch(this.scannerCfg.API_URL, {
104
+ agent: this.proxy,
105
+ method: 'post',
106
+ body: item.getForm(),
107
+ headers: { 'User-Agent': this.scannerCfg.CLIENT_TIMESTAMP ? this.scannerCfg.CLIENT_TIMESTAMP : `scanoss-js/${PackageJson.version}`,
108
+ 'X-Session': this.scannerCfg.API_KEY,
109
+ },
110
+ signal: timeoutController.signal,
111
+ });
112
+ clearTimeout(timeoutId);
113
+ this.globalAbortController.removeAbortController(timeoutController);
114
+ if (!response.ok) {
115
+ const msg = await response.text();
116
+ const err = new Error(msg);
117
+ err["code"] = response.status;
118
+ err.name = ScannerEvents.ERROR_SERVER_SIDE;
119
+ throw err;
120
+ }
121
+ const dataAsText = await response.text();
122
+ const dataAsObj = JSON.parse(dataAsText);
123
+ const dispatcherResponse = new DispatcherResponse(dataAsObj, item.getFingerprintPackage().getContent());
124
+ this.emit(ScannerEvents.DISPATCHER_NEW_DATA, dispatcherResponse);
125
+ return Promise.resolve();
126
+ }
127
+ catch (e) {
128
+ clearTimeout(timeoutId);
129
+ this.globalAbortController.removeAbortController(timeoutController);
130
+ this.errorHandler(e, item);
131
+ return Promise.resolve();
132
+ }
133
+ }
134
+ }
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvc2Nhbm5lci9EaXNwYXRjaGVyL0Rpc3BhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDO0FBQ2pDLHlDQUF5QztBQUN6QyxPQUFPLFlBQVksTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQy9CLE9BQU8sTUFBTSxNQUFNLFNBQVMsQ0FBQztBQUM3QixPQUFPLFdBQVcsTUFBTSwwQkFBMEIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxLQUFLLFNBQVMsTUFBTSxhQUFhLENBQUM7QUFFekMsTUFBTSxzQkFBc0IsR0FBRyxFQUFFLENBQUM7QUFFbEMsTUFBTSxPQUFPLFVBQVcsU0FBUSxZQUFZO0lBZTFDLFlBQVksVUFBVSxHQUFHLElBQUksVUFBVSxFQUFFO1FBQ3ZDLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixHQUFHLHNCQUFzQjtZQUMzRCxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDO1FBRTdELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJO1FBRUYsNEVBQTRFO1FBQzVFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFB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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,30 @@
1
+ export class DispatcherResponse {
2
+ constructor(serverResponse, wfpContent) {
3
+ this.serverResponse = serverResponse;
4
+ this.wfpContent = wfpContent;
5
+ this.filesScanned = Object.keys(this.serverResponse);
6
+ // this.verifyResponse();
7
+ }
8
+ getServerResponse() {
9
+ return this.serverResponse;
10
+ }
11
+ getWfpContent() {
12
+ return this.wfpContent;
13
+ }
14
+ matchRegex(str, re = /file=/g) {
15
+ return ((str || '').match(re) || []).length;
16
+ }
17
+ verifyResponse() {
18
+ const wfpNumFiles = this.matchRegex(this.wfpContent, /file=/g);
19
+ const serverResponseNumFiles = Object.keys(this.serverResponse).length;
20
+ if (wfpNumFiles !== serverResponseNumFiles)
21
+ throw new Error(`The numbers of files in the wfp sended does not match with the server response`);
22
+ }
23
+ getFilesScanned() {
24
+ return this.filesScanned;
25
+ }
26
+ getNumberOfFilesScanned() {
27
+ return this.filesScanned.length;
28
+ }
29
+ }
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzcGF0Y2hlclJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9zY2FubmVyL0Rpc3BhdGNoZXIvRGlzcGF0Y2hlclJlc3BvbnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxrQkFBa0I7SUFPN0IsWUFBWSxjQUFjLEVBQUUsVUFBVTtRQUNwQyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3JELHlCQUF5QjtJQUMzQixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxRQUFRO1FBQzNCLE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzlDLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3ZFLElBQUksV0FBVyxLQUFLLHNCQUFzQjtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0ZBQWdGLENBQUMsQ0FBQztJQUNoSixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsdUJBQXVCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDbEMsQ0FBQztDQUNGIn0=
@@ -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,26 @@
1
+ import AbortController from 'abort-controller';
2
+ export class GlobalControllerAborter {
3
+ constructor() {
4
+ this.abortControllerList = [];
5
+ this.abortFlag = false;
6
+ }
7
+ abortAll() {
8
+ this.abortFlag = true;
9
+ for (const c of this.abortControllerList)
10
+ c.abort();
11
+ }
12
+ isAborting() {
13
+ return this.abortFlag;
14
+ }
15
+ getAbortController() {
16
+ const c = new AbortController();
17
+ this.abortControllerList.push(c);
18
+ return c;
19
+ }
20
+ removeAbortController(c) {
21
+ const index = this.abortControllerList.findIndex((controller) => controller === c);
22
+ if (index > -1)
23
+ this.abortControllerList.splice(index, 1);
24
+ }
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2xvYmFsQ29udHJvbGxlckFib3J0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL3NjYW5uZXIvRGlzcGF0Y2hlci9HbG9iYWxDb250cm9sbGVyQWJvcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLGVBQWUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxNQUFNLE9BQU8sdUJBQXVCO0lBS2xDO1FBQ0UsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLG1CQUFtQjtZQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN0RCxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sQ0FBQyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQyxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3JCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNuRixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7WUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0NBQ0YifQ==
@@ -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,54 @@
1
+ import EventEmitter from 'eventemitter3';
2
+ import os from 'os';
3
+ import fs from 'fs';
4
+ import { WfpCalculator } from './WfpProvider/WfpCalculator/WfpCalculator';
5
+ import path from 'path';
6
+ import { ScannerEvents } from './ScannerTypes';
7
+ import { ScannerCfg } from './ScannerCfg';
8
+ export class Fingerprint extends EventEmitter {
9
+ constructor(reportStatusAfter = 10) {
10
+ super();
11
+ this.reportStatusAfter = reportStatusAfter;
12
+ this.finishPromise = new Promise((resolve, reject) => {
13
+ this.finishPromiseResolve = resolve;
14
+ this.finishPromiseReject = reject;
15
+ });
16
+ this.configureWfpCalculator();
17
+ }
18
+ configureWfpCalculator() {
19
+ // TODO: Maybe the fingerprints shouldn't be truncated. Determine this optimal value.
20
+ const cfg = new ScannerCfg();
21
+ cfg.WFP_FILE_MAX_SIZE = 10 * 1024 * 1024;
22
+ cfg.WINNOWING_REPORT_STATUS_AFTER_X = this.reportStatusAfter;
23
+ this.wfpCalculator = new WfpCalculator(cfg);
24
+ this.wfpCalculator.on(ScannerEvents.WINNOWING_NEW_CONTENT, (fingerprintPackage) => {
25
+ fs.appendFileSync(this.fingerprintPath, fingerprintPackage.getContent());
26
+ });
27
+ this.wfpCalculator.on(ScannerEvents.WINNOWING_STATUS, (filesProcessed) => {
28
+ this.emit(ScannerEvents.WINNOWING_STATUS, filesProcessed);
29
+ });
30
+ }
31
+ async start(jobs) {
32
+ //If winnowing.wfp path is not set, set to a tmp folder
33
+ if (!this.fingerprintPath)
34
+ this.fingerprintPath = path.join(os.tmpdir(), "fingerprint-" + new Date().getTime().toString(), 'winnowing.wfp');
35
+ //If folder does not exist, create
36
+ const pathFolder = path.dirname(this.fingerprintPath);
37
+ if (!fs.existsSync(pathFolder))
38
+ fs.mkdirSync(pathFolder, { recursive: true });
39
+ this.queue = jobs;
40
+ for await (const job of this.queue) {
41
+ this.configureWfpCalculator();
42
+ await this.wfpCalculator.start(job);
43
+ }
44
+ this.emit(ScannerEvents.WINNOWING_FINISHED);
45
+ }
46
+ abort() {
47
+ this.wfpCalculator.stop();
48
+ this.wfpCalculator = null;
49
+ }
50
+ setFingerprintPath(fingerprintsFilePath) {
51
+ this.fingerprintPath = fingerprintsFilePath;
52
+ }
53
+ }
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmluZ2VycHJpbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2RrL3NjYW5uZXIvRmluZ2VycHJpbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxZQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFFcEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUxQyxNQUFNLE9BQU8sV0FBWSxTQUFRLFlBQVk7SUFRM0MsWUFBWSxpQkFBaUIsR0FBRyxFQUFFO1FBQ2hDLEtBQUssRUFBRSxDQUFDO1FBRVIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDbkQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE9BQU8sQ0FBQztZQUNwQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUlPLHNCQUFzQjtRQUU1QixxRkFBcUY7UUFDckYsTUFBTSxHQUFHLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUM3QixHQUFHLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRSxJQUFJLENBQUM7UUFDeEMsR0FBRyxDQUFDLCtCQUErQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUM3RCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRzVDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLGtCQUFzQyxFQUFFLEVBQUU7WUFDcEcsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDM0UsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxjQUFzQixFQUFFLEVBQUU7WUFDL0UsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDNUQsQ0FBQyxDQUFDLENBQUM7SUFHTCxDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUE4QjtRQUMvQyx1REFBdUQ7UUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlO1lBQUUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxjQUFjLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUU1SSxrQ0FBa0M7UUFDbEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdEQsSUFBRyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1lBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU3RSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUVsQixJQUFJLEtBQUssRUFBRSxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDckM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxHQUFDLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRU0sa0JBQWtCLENBQUMsb0JBQTRCO1FBQ3BELElBQUksQ0FBQyxlQUFlLEdBQUMsb0JBQW9CLENBQUM7SUFDNUMsQ0FBQztDQUlGIn0=
@@ -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,24 @@
1
+ export class ScannableItem {
2
+ constructor(content, contentSource, winnowingMode, maxSizeWfp) {
3
+ this.contentSource = contentSource;
4
+ this.content = content;
5
+ this.winnowingMode = winnowingMode;
6
+ this.maxSizeWfp = maxSizeWfp;
7
+ }
8
+ getContent() {
9
+ return this.content;
10
+ }
11
+ getContentSource() {
12
+ return this.contentSource;
13
+ }
14
+ getFingerprint() {
15
+ return this.fingerprint;
16
+ }
17
+ getWinnowingMode() {
18
+ return this.winnowingMode;
19
+ }
20
+ getMaxSizeWfp() {
21
+ return this.maxSizeWfp;
22
+ }
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Nhbm5hYmxlSXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvc2Nhbm5lci9TY2FubmFibGUvU2Nhbm5hYmxlSXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sYUFBYTtJQVd4QixZQUFZLE9BQWUsRUFBRSxhQUFxQixFQUFFLGFBQWtCLEVBQUUsVUFBa0I7UUFDeEYsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFTSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0NBR0YifQ==
@@ -0,0 +1,46 @@
1
+ import EventEmitter from 'eventemitter3';
2
+ import { ScannerCfg } from './ScannerCfg';
3
+ import { ScannerInput } from './ScannerTypes';
4
+ export declare class Scanner extends EventEmitter {
5
+ private scannerCfg;
6
+ private workDirectory;
7
+ private resultFilePath;
8
+ private wfpFilePath;
9
+ private scanRoot;
10
+ private scannerId;
11
+ private wfpProvider;
12
+ private dispatcher;
13
+ private finishPromise;
14
+ private scannerInput;
15
+ private scanFinished;
16
+ private processingNewData;
17
+ private processedFiles;
18
+ private running;
19
+ private filesToScan;
20
+ private responseBuffer;
21
+ private filesNotScanned;
22
+ constructor(scannerCfg?: ScannerCfg);
23
+ init(): void;
24
+ private setWinnowerListeners;
25
+ private setDispatcherListeners;
26
+ private appendFilesToNotScanned;
27
+ private insertIntoBuffer;
28
+ private isBufferEmpty;
29
+ private bufferReachedLimit;
30
+ private bufferToFiles;
31
+ setWorkDirectory(workDirectory: string): void;
32
+ getWorkDirectory(): string;
33
+ cleanWorkDirectory(): void;
34
+ private finishJob;
35
+ private finishScan;
36
+ private reportLog;
37
+ private errorHandler;
38
+ private createOutputFiles;
39
+ private appendOutputFiles;
40
+ scan(scannerInput: Array<ScannerInput>): Promise<string>;
41
+ private isValidInput;
42
+ getScannerId(): string;
43
+ private abort;
44
+ stop(): void;
45
+ isRunning(): boolean;
46
+ }