scanoss 0.7.8 → 0.7.10

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 (438) hide show
  1. package/build/main/index.d.ts +2 -0
  2. package/build/main/index.js +3 -1
  3. package/build/main/sdk/FileCount/FileCount.d.ts +6 -0
  4. package/build/main/sdk/FileCount/FileCount.js +88 -0
  5. package/build/main/sdk/FileCount/FileCountFilter.d.ts +2 -0
  6. package/build/main/sdk/FileCount/FileCountFilter.js +10 -0
  7. package/build/main/sdk/FileCount/Interfaces.d.ts +19 -0
  8. package/build/main/sdk/FileCount/Interfaces.js +8 -0
  9. package/build/main/sdk/Filtering/DefaultFilterForDependencies.d.ts +2 -0
  10. package/build/main/sdk/Filtering/DefaultFilterForDependencies.js +144 -0
  11. package/build/main/sdk/Filtering/DefaultFilterForScanning.d.ts +2 -0
  12. package/build/main/sdk/Filtering/DefaultFilterForScanning.js +193 -0
  13. package/build/main/sdk/Filtering/Filtering.d.ts +80 -0
  14. package/build/main/sdk/Filtering/Filtering.js +259 -0
  15. package/build/main/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +1 -1
  16. package/build/main/sdk/tree/Filters/DependencyFilter.js +4 -4
  17. package/build/main/sdk/tree/Filters/ScanFilter.js +4 -4
  18. package/build/main/tsconfig.tsbuildinfo +82 -39
  19. package/build/module/index.d.ts +2 -0
  20. package/build/module/index.js +3 -1
  21. package/build/module/sdk/FileCount/FileCount.d.ts +6 -0
  22. package/build/module/sdk/FileCount/FileCount.js +63 -0
  23. package/build/module/sdk/FileCount/FileCountFilter.d.ts +2 -0
  24. package/build/module/sdk/FileCount/FileCountFilter.js +8 -0
  25. package/build/module/sdk/FileCount/Interfaces.d.ts +19 -0
  26. package/build/module/sdk/FileCount/Interfaces.js +6 -0
  27. package/build/module/sdk/Filtering/DefaultFilterForDependencies.d.ts +2 -0
  28. package/build/module/sdk/Filtering/DefaultFilterForDependencies.js +142 -0
  29. package/build/module/sdk/Filtering/DefaultFilterForScanning.d.ts +2 -0
  30. package/build/module/sdk/Filtering/DefaultFilterForScanning.js +191 -0
  31. package/build/module/sdk/Filtering/Filtering.d.ts +80 -0
  32. package/build/module/sdk/Filtering/Filtering.js +229 -0
  33. package/build/module/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +1 -1
  34. package/build/module/sdk/tree/Filters/DependencyFilter.js +4 -4
  35. package/build/module/sdk/tree/Filters/ScanFilter.js +4 -4
  36. package/build/module/tsconfig.module.tsbuildinfo +82 -39
  37. package/package.json +3 -3
  38. package/.circleci/config.yml +0 -64
  39. package/.cspell.json +0 -36
  40. package/.editorconfig +0 -15
  41. package/.eslintrc.json +0 -37
  42. package/.github/workflows/reuse.yml +0 -15
  43. package/.github/workflows/scanoss.yml +0 -24
  44. package/.gitignore +0 -10
  45. package/.idea/.gitignore +0 -5
  46. package/.idea/codeStyles/Project.xml +0 -61
  47. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  48. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  49. package/.idea/modules.xml +0 -8
  50. package/.idea/scanoss.js.iml +0 -12
  51. package/.idea/vcs.xml +0 -6
  52. package/.idea/workspace.xml +0 -297
  53. package/.prettierignore +0 -2
  54. package/.reuse/dep5 +0 -16
  55. package/.vscode/extensions.json +0 -8
  56. package/.vscode/launch.json +0 -29
  57. package/.vscode/settings.json +0 -7
  58. package/LICENSES/CC0-1.0.txt +0 -121
  59. package/LICENSES/MIT.txt +0 -9
  60. package/assets/ReportHTMLTemplate/index.html +0 -1181
  61. package/build/main/package.json +0 -120
  62. package/build/main/sdk/filters/DefaultFilterForDependencies.d.ts +0 -16
  63. package/build/main/sdk/filters/DefaultFilterForDependencies.js +0 -145
  64. package/build/main/sdk/filters/DefaultFilterForScanning.d.ts +0 -16
  65. package/build/main/sdk/filters/DefaultFilterForScanning.js +0 -194
  66. package/build/main/sdk/filters/filtering.d.ts +0 -32
  67. package/build/main/sdk/filters/filtering.js +0 -228
  68. package/build/main/src/cli/bin/cli-bin.d.ts +0 -2
  69. package/build/main/src/cli/bin/cli-bin.js +0 -68
  70. package/build/main/src/cli/commands/dep.d.ts +0 -1
  71. package/build/main/src/cli/commands/dep.js +0 -38
  72. package/build/main/src/cli/commands/helpers.d.ts +0 -2
  73. package/build/main/src/cli/commands/helpers.js +0 -25
  74. package/build/main/src/cli/commands/scan.d.ts +0 -1
  75. package/build/main/src/cli/commands/scan.js +0 -138
  76. package/build/main/src/cli/commands/wfp.d.ts +0 -1
  77. package/build/main/src/cli/commands/wfp.js +0 -54
  78. package/build/main/src/index.d.ts +0 -14
  79. package/build/main/src/index.js +0 -30
  80. package/build/main/src/sdk/DataLayer/DataLayerTypes.d.ts +0 -108
  81. package/build/main/src/sdk/DataLayer/DataLayerTypes.js +0 -5
  82. package/build/main/src/sdk/DataLayer/DataProviderManager.d.ts +0 -7
  83. package/build/main/src/sdk/DataLayer/DataProviderManager.js +0 -24
  84. package/build/main/src/sdk/DataLayer/DataProviders/ComponentDataProvider.d.ts +0 -13
  85. package/build/main/src/sdk/DataLayer/DataProviders/ComponentDataProvider.js +0 -164
  86. package/build/main/src/sdk/DataLayer/DataProviders/DependencyDataProvider.d.ts +0 -9
  87. package/build/main/src/sdk/DataLayer/DataProviders/DependencyDataProvider.js +0 -37
  88. package/build/main/src/sdk/DataLayer/DataProviders/LicenseDataProvider.d.ts +0 -18
  89. package/build/main/src/sdk/DataLayer/DataProviders/LicenseDataProvider.js +0 -148
  90. package/build/main/src/sdk/DataLayer/DataProviders/SummaryDataProvider.d.ts +0 -11
  91. package/build/main/src/sdk/DataLayer/DataProviders/SummaryDataProvider.js +0 -33
  92. package/build/main/src/sdk/Decompress/DecompressionManager.d.ts +0 -12
  93. package/build/main/src/sdk/Decompress/DecompressionManager.js +0 -73
  94. package/build/main/src/sdk/Decompress/Decompressor/DecompressTgz.d.ts +0 -5
  95. package/build/main/src/sdk/Decompress/Decompressor/DecompressTgz.js +0 -22
  96. package/build/main/src/sdk/Decompress/Decompressor/DecompressZips.d.ts +0 -5
  97. package/build/main/src/sdk/Decompress/Decompressor/DecompressZips.js +0 -24
  98. package/build/main/src/sdk/Decompress/Decompressor/Decompressor.d.ts +0 -10
  99. package/build/main/src/sdk/Decompress/Decompressor/Decompressor.js +0 -18
  100. package/build/main/src/sdk/Dependencies/DependencyScanner.d.ts +0 -11
  101. package/build/main/src/sdk/Dependencies/DependencyScanner.js +0 -96
  102. package/build/main/src/sdk/Dependencies/DependencyScannerCfg.d.ts +0 -4
  103. package/build/main/src/sdk/Dependencies/DependencyScannerCfg.js +0 -10
  104. package/build/main/src/sdk/Dependencies/DependencyTypes.d.ts +0 -21
  105. package/build/main/src/sdk/Dependencies/DependencyTypes.js +0 -2
  106. package/build/main/src/sdk/Dependencies/LocalDependency/DependencyTypes.d.ts +0 -16
  107. package/build/main/src/sdk/Dependencies/LocalDependency/DependencyTypes.js +0 -2
  108. package/build/main/src/sdk/Dependencies/LocalDependency/LocalDependency.d.ts +0 -8
  109. package/build/main/src/sdk/Dependencies/LocalDependency/LocalDependency.js +0 -102
  110. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.d.ts +0 -2
  111. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.js +0 -95
  112. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/golangParser.d.ts +0 -3
  113. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/golangParser.js +0 -97
  114. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.d.ts +0 -2
  115. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.js +0 -183
  116. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/npmParser.d.ts +0 -13
  117. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/npmParser.js +0 -187
  118. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.d.ts +0 -3
  119. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.js +0 -58
  120. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/pyParser.d.ts +0 -2
  121. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/pyParser.js +0 -64
  122. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +0 -3
  123. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +0 -132
  124. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/utils.d.ts +0 -2
  125. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/utils.js +0 -19
  126. package/build/main/src/sdk/Report/Report.d.ts +0 -8
  127. package/build/main/src/sdk/Report/Report.js +0 -26
  128. package/build/main/src/sdk/filters/DefaultFilterForDependencies.d.ts +0 -16
  129. package/build/main/src/sdk/filters/DefaultFilterForDependencies.js +0 -145
  130. package/build/main/src/sdk/filters/DefaultFilterForScanning.d.ts +0 -16
  131. package/build/main/src/sdk/filters/DefaultFilterForScanning.js +0 -194
  132. package/build/main/src/sdk/filters/filtering.d.ts +0 -32
  133. package/build/main/src/sdk/filters/filtering.js +0 -228
  134. package/build/main/src/sdk/grpc/GrpcDependencyService.d.ts +0 -11
  135. package/build/main/src/sdk/grpc/GrpcDependencyService.js +0 -86
  136. package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  137. package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +0 -2
  138. package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +0 -1
  139. package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.js +0 -404
  140. package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +0 -39
  141. package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +0 -98
  142. package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +0 -1
  143. package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +0 -1197
  144. package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +0 -19
  145. package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +0 -66
  146. package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +0 -1
  147. package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +0 -14
  148. package/build/main/src/sdk/scanner/Dispatcher/DispatchableItem.d.ts +0 -19
  149. package/build/main/src/sdk/scanner/Dispatcher/DispatchableItem.js +0 -43
  150. package/build/main/src/sdk/scanner/Dispatcher/Dispatcher.d.ts +0 -20
  151. package/build/main/src/sdk/scanner/Dispatcher/Dispatcher.js +0 -160
  152. package/build/main/src/sdk/scanner/Dispatcher/DispatcherResponse.d.ts +0 -12
  153. package/build/main/src/sdk/scanner/Dispatcher/DispatcherResponse.js +0 -33
  154. package/build/main/src/sdk/scanner/Dispatcher/GlobalControllerAborter.d.ts +0 -10
  155. package/build/main/src/sdk/scanner/Dispatcher/GlobalControllerAborter.js +0 -32
  156. package/build/main/src/sdk/scanner/Fingerprint.d.ts +0 -16
  157. package/build/main/src/sdk/scanner/Fingerprint.js +0 -78
  158. package/build/main/src/sdk/scanner/Scannable/ScannableItem.d.ts +0 -15
  159. package/build/main/src/sdk/scanner/Scannable/ScannableItem.js +0 -27
  160. package/build/main/src/sdk/scanner/Scanner.d.ts +0 -46
  161. package/build/main/src/sdk/scanner/Scanner.js +0 -283
  162. package/build/main/src/sdk/scanner/ScannerCfg.d.ts +0 -16
  163. package/build/main/src/sdk/scanner/ScannerCfg.js +0 -30
  164. package/build/main/src/sdk/scanner/ScannerTypes.d.ts +0 -121
  165. package/build/main/src/sdk/scanner/ScannerTypes.js +0 -48
  166. package/build/main/src/sdk/scanner/WfpProvider/FingerprintPackage.d.ts +0 -9
  167. package/build/main/src/sdk/scanner/WfpProvider/FingerprintPackage.js +0 -31
  168. package/build/main/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +0 -20
  169. package/build/main/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +0 -492
  170. package/build/main/src/sdk/scanner/WfpProvider/WfpProvider.d.ts +0 -35
  171. package/build/main/src/sdk/scanner/WfpProvider/WfpProvider.js +0 -68
  172. package/build/main/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.d.ts +0 -21
  173. package/build/main/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.js +0 -139
  174. package/build/main/src/sdk/tree/File.d.ts +0 -7
  175. package/build/main/src/sdk/tree/File.js +0 -24
  176. package/build/main/src/sdk/tree/Filters/DecompressionFilter.d.ts +0 -7
  177. package/build/main/src/sdk/tree/Filters/DecompressionFilter.js +0 -21
  178. package/build/main/src/sdk/tree/Filters/DependencyFilter.d.ts +0 -7
  179. package/build/main/src/sdk/tree/Filters/DependencyFilter.js +0 -17
  180. package/build/main/src/sdk/tree/Filters/Filter.d.ts +0 -4
  181. package/build/main/src/sdk/tree/Filters/Filter.js +0 -6
  182. package/build/main/src/sdk/tree/Filters/ScanFilter.d.ts +0 -7
  183. package/build/main/src/sdk/tree/Filters/ScanFilter.js +0 -17
  184. package/build/main/src/sdk/tree/Folder.d.ts +0 -12
  185. package/build/main/src/sdk/tree/Folder.js +0 -58
  186. package/build/main/src/sdk/tree/Node.d.ts +0 -17
  187. package/build/main/src/sdk/tree/Node.js +0 -25
  188. package/build/main/src/sdk/tree/Tree.d.ts +0 -18
  189. package/build/main/src/sdk/tree/Tree.js +0 -70
  190. package/build/module/package.json +0 -120
  191. package/build/module/sdk/filters/DefaultFilterForDependencies.d.ts +0 -16
  192. package/build/module/sdk/filters/DefaultFilterForDependencies.js +0 -143
  193. package/build/module/sdk/filters/DefaultFilterForScanning.d.ts +0 -16
  194. package/build/module/sdk/filters/DefaultFilterForScanning.js +0 -192
  195. package/build/module/sdk/filters/filtering.d.ts +0 -32
  196. package/build/module/sdk/filters/filtering.js +0 -203
  197. package/build/module/src/cli/bin/cli-bin.d.ts +0 -2
  198. package/build/module/src/cli/bin/cli-bin.js +0 -67
  199. package/build/module/src/cli/commands/dep.d.ts +0 -1
  200. package/build/module/src/cli/commands/dep.js +0 -32
  201. package/build/module/src/cli/commands/helpers.d.ts +0 -2
  202. package/build/module/src/cli/commands/helpers.js +0 -19
  203. package/build/module/src/cli/commands/scan.d.ts +0 -1
  204. package/build/module/src/cli/commands/scan.js +0 -135
  205. package/build/module/src/cli/commands/wfp.d.ts +0 -1
  206. package/build/module/src/cli/commands/wfp.js +0 -48
  207. package/build/module/src/index.d.ts +0 -14
  208. package/build/module/src/index.js +0 -19
  209. package/build/module/src/sdk/DataLayer/DataLayerTypes.d.ts +0 -108
  210. package/build/module/src/sdk/DataLayer/DataLayerTypes.js +0 -5
  211. package/build/module/src/sdk/DataLayer/DataProviderManager.d.ts +0 -7
  212. package/build/module/src/sdk/DataLayer/DataProviderManager.js +0 -21
  213. package/build/module/src/sdk/DataLayer/DataProviders/ComponentDataProvider.d.ts +0 -13
  214. package/build/module/src/sdk/DataLayer/DataProviders/ComponentDataProvider.js +0 -159
  215. package/build/module/src/sdk/DataLayer/DataProviders/DependencyDataProvider.d.ts +0 -9
  216. package/build/module/src/sdk/DataLayer/DataProviders/DependencyDataProvider.js +0 -34
  217. package/build/module/src/sdk/DataLayer/DataProviders/LicenseDataProvider.d.ts +0 -18
  218. package/build/module/src/sdk/DataLayer/DataProviders/LicenseDataProvider.js +0 -145
  219. package/build/module/src/sdk/DataLayer/DataProviders/SummaryDataProvider.d.ts +0 -11
  220. package/build/module/src/sdk/DataLayer/DataProviders/SummaryDataProvider.js +0 -30
  221. package/build/module/src/sdk/Decompress/DecompressionManager.d.ts +0 -12
  222. package/build/module/src/sdk/Decompress/DecompressionManager.js +0 -67
  223. package/build/module/src/sdk/Decompress/Decompressor/DecompressTgz.d.ts +0 -5
  224. package/build/module/src/sdk/Decompress/Decompressor/DecompressTgz.js +0 -16
  225. package/build/module/src/sdk/Decompress/Decompressor/DecompressZips.d.ts +0 -5
  226. package/build/module/src/sdk/Decompress/Decompressor/DecompressZips.js +0 -18
  227. package/build/module/src/sdk/Decompress/Decompressor/Decompressor.d.ts +0 -10
  228. package/build/module/src/sdk/Decompress/Decompressor/Decompressor.js +0 -15
  229. package/build/module/src/sdk/Dependencies/DependencyScanner.d.ts +0 -11
  230. package/build/module/src/sdk/Dependencies/DependencyScanner.js +0 -93
  231. package/build/module/src/sdk/Dependencies/DependencyScannerCfg.d.ts +0 -4
  232. package/build/module/src/sdk/Dependencies/DependencyScannerCfg.js +0 -7
  233. package/build/module/src/sdk/Dependencies/DependencyTypes.d.ts +0 -21
  234. package/build/module/src/sdk/Dependencies/DependencyTypes.js +0 -2
  235. package/build/module/src/sdk/Dependencies/LocalDependency/DependencyTypes.d.ts +0 -16
  236. package/build/module/src/sdk/Dependencies/LocalDependency/DependencyTypes.js +0 -2
  237. package/build/module/src/sdk/Dependencies/LocalDependency/LocalDependency.d.ts +0 -8
  238. package/build/module/src/sdk/Dependencies/LocalDependency/LocalDependency.js +0 -96
  239. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.d.ts +0 -2
  240. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.js +0 -87
  241. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/golangParser.d.ts +0 -3
  242. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/golangParser.js +0 -88
  243. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.d.ts +0 -2
  244. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.js +0 -180
  245. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/npmParser.d.ts +0 -13
  246. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/npmParser.js +0 -175
  247. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.d.ts +0 -3
  248. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.js +0 -49
  249. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/pyParser.d.ts +0 -2
  250. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/pyParser.js +0 -57
  251. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +0 -3
  252. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +0 -125
  253. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/utils.d.ts +0 -2
  254. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/utils.js +0 -15
  255. package/build/module/src/sdk/Report/Report.d.ts +0 -8
  256. package/build/module/src/sdk/Report/Report.js +0 -20
  257. package/build/module/src/sdk/filters/DefaultFilterForDependencies.d.ts +0 -16
  258. package/build/module/src/sdk/filters/DefaultFilterForDependencies.js +0 -143
  259. package/build/module/src/sdk/filters/DefaultFilterForScanning.d.ts +0 -16
  260. package/build/module/src/sdk/filters/DefaultFilterForScanning.js +0 -192
  261. package/build/module/src/sdk/filters/filtering.d.ts +0 -32
  262. package/build/module/src/sdk/filters/filtering.js +0 -203
  263. package/build/module/src/sdk/grpc/GrpcDependencyService.d.ts +0 -11
  264. package/build/module/src/sdk/grpc/GrpcDependencyService.js +0 -64
  265. package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  266. package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +0 -2
  267. package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +0 -1
  268. package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.js +0 -404
  269. package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +0 -39
  270. package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +0 -98
  271. package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +0 -1
  272. package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +0 -1197
  273. package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +0 -19
  274. package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +0 -66
  275. package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +0 -1
  276. package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +0 -14
  277. package/build/module/src/sdk/scanner/Dispatcher/DispatchableItem.d.ts +0 -19
  278. package/build/module/src/sdk/scanner/Dispatcher/DispatchableItem.js +0 -37
  279. package/build/module/src/sdk/scanner/Dispatcher/Dispatcher.d.ts +0 -20
  280. package/build/module/src/sdk/scanner/Dispatcher/Dispatcher.js +0 -135
  281. package/build/module/src/sdk/scanner/Dispatcher/DispatcherResponse.d.ts +0 -12
  282. package/build/module/src/sdk/scanner/Dispatcher/DispatcherResponse.js +0 -30
  283. package/build/module/src/sdk/scanner/Dispatcher/GlobalControllerAborter.d.ts +0 -10
  284. package/build/module/src/sdk/scanner/Dispatcher/GlobalControllerAborter.js +0 -26
  285. package/build/module/src/sdk/scanner/Fingerprint.d.ts +0 -16
  286. package/build/module/src/sdk/scanner/Fingerprint.js +0 -54
  287. package/build/module/src/sdk/scanner/Scannable/ScannableItem.d.ts +0 -15
  288. package/build/module/src/sdk/scanner/Scannable/ScannableItem.js +0 -24
  289. package/build/module/src/sdk/scanner/Scanner.d.ts +0 -46
  290. package/build/module/src/sdk/scanner/Scanner.js +0 -275
  291. package/build/module/src/sdk/scanner/ScannerCfg.d.ts +0 -16
  292. package/build/module/src/sdk/scanner/ScannerCfg.js +0 -27
  293. package/build/module/src/sdk/scanner/ScannerTypes.d.ts +0 -121
  294. package/build/module/src/sdk/scanner/ScannerTypes.js +0 -46
  295. package/build/module/src/sdk/scanner/WfpProvider/FingerprintPackage.d.ts +0 -9
  296. package/build/module/src/sdk/scanner/WfpProvider/FingerprintPackage.js +0 -28
  297. package/build/module/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +0 -20
  298. package/build/module/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +0 -486
  299. package/build/module/src/sdk/scanner/WfpProvider/WfpProvider.d.ts +0 -35
  300. package/build/module/src/sdk/scanner/WfpProvider/WfpProvider.js +0 -65
  301. package/build/module/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.d.ts +0 -21
  302. package/build/module/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.js +0 -132
  303. package/build/module/src/sdk/tree/File.d.ts +0 -7
  304. package/build/module/src/sdk/tree/File.js +0 -19
  305. package/build/module/src/sdk/tree/Filters/DecompressionFilter.d.ts +0 -7
  306. package/build/module/src/sdk/tree/Filters/DecompressionFilter.js +0 -18
  307. package/build/module/src/sdk/tree/Filters/DependencyFilter.d.ts +0 -7
  308. package/build/module/src/sdk/tree/Filters/DependencyFilter.js +0 -14
  309. package/build/module/src/sdk/tree/Filters/Filter.d.ts +0 -4
  310. package/build/module/src/sdk/tree/Filters/Filter.js +0 -3
  311. package/build/module/src/sdk/tree/Filters/ScanFilter.d.ts +0 -7
  312. package/build/module/src/sdk/tree/Filters/ScanFilter.js +0 -14
  313. package/build/module/src/sdk/tree/Folder.d.ts +0 -12
  314. package/build/module/src/sdk/tree/Folder.js +0 -53
  315. package/build/module/src/sdk/tree/Node.d.ts +0 -17
  316. package/build/module/src/sdk/tree/Node.js +0 -22
  317. package/build/module/src/sdk/tree/Tree.d.ts +0 -18
  318. package/build/module/src/sdk/tree/Tree.js +0 -64
  319. package/package-lock.json +0 -17117
  320. package/src/cli/bin/cli-bin.ts +0 -81
  321. package/src/cli/commands/dep.ts +0 -37
  322. package/src/cli/commands/helpers.ts +0 -19
  323. package/src/cli/commands/scan.ts +0 -173
  324. package/src/cli/commands/wfp.ts +0 -60
  325. package/src/index.ts +0 -26
  326. package/src/sdk/DataLayer/DataLayerTypes.ts +0 -129
  327. package/src/sdk/DataLayer/DataProviderManager.ts +0 -27
  328. package/src/sdk/DataLayer/DataProviders/ComponentDataProvider.ts +0 -195
  329. package/src/sdk/DataLayer/DataProviders/DependencyDataProvider.ts +0 -48
  330. package/src/sdk/DataLayer/DataProviders/LicenseDataProvider.ts +0 -184
  331. package/src/sdk/DataLayer/DataProviders/SummaryDataProvider.ts +0 -47
  332. package/src/sdk/Decompress/DecompressionManager.ts +0 -91
  333. package/src/sdk/Decompress/Decompressor/DecompressTgz.ts +0 -20
  334. package/src/sdk/Decompress/Decompressor/DecompressZips.ts +0 -21
  335. package/src/sdk/Decompress/Decompressor/Decompressor.ts +0 -20
  336. package/src/sdk/Dependencies/DependencyScanner.ts +0 -108
  337. package/src/sdk/Dependencies/DependencyScannerCfg.ts +0 -7
  338. package/src/sdk/Dependencies/DependencyTypes.ts +0 -24
  339. package/src/sdk/Dependencies/LocalDependency/DependencyTypes.ts +0 -21
  340. package/src/sdk/Dependencies/LocalDependency/LocalDependency.ts +0 -111
  341. package/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.ts +0 -115
  342. package/src/sdk/Dependencies/LocalDependency/parsers/golangParser.ts +0 -130
  343. package/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.ts +0 -209
  344. package/src/sdk/Dependencies/LocalDependency/parsers/npmParser.ts +0 -227
  345. package/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.ts +0 -64
  346. package/src/sdk/Dependencies/LocalDependency/parsers/pyParser.ts +0 -58
  347. package/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.ts +0 -174
  348. package/src/sdk/Dependencies/LocalDependency/parsers/utils.ts +0 -15
  349. package/src/sdk/Report/Report.ts +0 -30
  350. package/src/sdk/filters/DefaultFilterForDependencies.ts +0 -149
  351. package/src/sdk/filters/DefaultFilterForScanning.ts +0 -207
  352. package/src/sdk/filters/filtering.ts +0 -235
  353. package/src/sdk/grpc/GrpcDependencyService.ts +0 -72
  354. package/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -1
  355. package/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +0 -1
  356. package/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +0 -79
  357. package/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.js +0 -482
  358. package/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +0 -30
  359. package/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +0 -109
  360. package/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +0 -206
  361. package/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +0 -1489
  362. package/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +0 -25
  363. package/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +0 -73
  364. package/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +0 -6
  365. package/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +0 -15
  366. package/src/sdk/scanner/Dispatcher/DispatchableItem.ts +0 -62
  367. package/src/sdk/scanner/Dispatcher/Dispatcher.ts +0 -173
  368. package/src/sdk/scanner/Dispatcher/DispatcherResponse.ts +0 -40
  369. package/src/sdk/scanner/Dispatcher/GlobalControllerAborter.ts +0 -33
  370. package/src/sdk/scanner/Fingerprint.ts +0 -82
  371. package/src/sdk/scanner/Scannable/ScannableItem.ts +0 -43
  372. package/src/sdk/scanner/Scanner.ts +0 -360
  373. package/src/sdk/scanner/ScannerCfg.ts +0 -43
  374. package/src/sdk/scanner/ScannerTypes.ts +0 -127
  375. package/src/sdk/scanner/WfpProvider/FingerprintPackage.ts +0 -34
  376. package/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.ts +0 -516
  377. package/src/sdk/scanner/WfpProvider/WfpProvider.ts +0 -105
  378. package/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.ts +0 -184
  379. package/src/sdk/tree/File.ts +0 -22
  380. package/src/sdk/tree/Filters/DecompressionFilter.ts +0 -22
  381. package/src/sdk/tree/Filters/DependencyFilter.ts +0 -22
  382. package/src/sdk/tree/Filters/Filter.ts +0 -5
  383. package/src/sdk/tree/Filters/ScanFilter.ts +0 -22
  384. package/src/sdk/tree/Folder.ts +0 -57
  385. package/src/sdk/tree/Node.ts +0 -39
  386. package/src/sdk/tree/Tree.ts +0 -82
  387. package/tests/scanoss.sh +0 -56
  388. package/tests/sdk/DataLayer/DataProviders/ComponentDataProvider.spec.ts +0 -176
  389. package/tests/sdk/DataLayer/DataProviders/DependencyDataProvider.spec.ts +0 -51
  390. package/tests/sdk/DataLayer/DataProviders/SummaryDataProvider.spec.ts +0 -35
  391. package/tests/sdk/DataLayer/DataProviders/samples/results-with-dep.json +0 -665
  392. package/tests/sdk/DataLayer/DataProviders/samples/results.json +0 -556
  393. package/tests/sdk/DataLayer/samples/simple/results-with-dep.json +0 -665
  394. package/tests/sdk/DataLayer/samples/simple-1/output1.json +0 -1196
  395. package/tests/sdk/Dependencies/LocalDependency/LocalDependency.spec.ts +0 -24
  396. package/tests/sdk/Dependencies/LocalDependency/Parsers/buildGradle.spec.ts +0 -48
  397. package/tests/sdk/Dependencies/LocalDependency/Parsers/golangParser.spec.ts +0 -146
  398. package/tests/sdk/Dependencies/LocalDependency/Parsers/npmParser.spec.ts +0 -135
  399. package/tests/sdk/Dependencies/LocalDependency/Parsers/nugetParser.spec.ts +0 -73
  400. package/tests/sdk/Dependencies/LocalDependency/Parsers/pomParser.spec.ts +0 -45
  401. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/1/Gemfile +0 -6
  402. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/1/Gemfile~ +0 -0
  403. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/2/Gemfile +0 -3
  404. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/2/Gemfile~ +0 -6
  405. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/3/Gemfile +0 -7
  406. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/3/Gemfile~ +0 -6
  407. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/4/Gemfile +0 -31
  408. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/4/Gemfile~ +0 -7
  409. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile.lock/1/Gemfile.lock +0 -180
  410. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile.lock/2/Gemfile.lock +0 -60
  411. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile.lock/2/Gemfile.lock~ +0 -0
  412. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/go.sum/1/go.sum +0 -119
  413. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/go.sum/depJSON.sh +0 -23
  414. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/gradle/1/build.gradle +0 -26
  415. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/gradle/2/build.gradle +0 -16
  416. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/nuget/NoDependencies.csproj +0 -115
  417. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/nuget/netcore-2.csproj +0 -18
  418. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/nuget/netcore.csproj +0 -14
  419. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/nuget/packageConfig-1/packages.config +0 -5
  420. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/pom.xml/1/pom.xml +0 -670
  421. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/pom.xml/2/pom.xml +0 -780
  422. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/generate_expected_output.sh +0 -4
  423. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/v1/yarn.lock +0 -50
  424. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/v1/yarn.lock-expected +0 -13
  425. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/v1-complex/yarn.lock +0 -27
  426. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/v1-complex/yarn.lock-expected +0 -8
  427. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/v1_2/scancode-out.json +0 -149662
  428. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/v1_2/yarn.lock +0 -8409
  429. package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/v1_2/yarn.lock-expected +0 -1153
  430. package/tests/sdk/Scanner/WfpProvider/WfpCalculator/WfpCalculator.spec.ts +0 -102
  431. package/tests/sdk/Scanner/WfpProvider/WfpCalculator/samples/file1.c +0 -41
  432. package/tests/sdk/Scanner/WfpProvider/WfpCalculator/samples/file2.go +0 -87
  433. package/tests/sdk/Scanner/WfpProvider/WfpSplitter/WfpSplitter.spec.ts +0 -35
  434. package/tests/sdk/Scanner/WfpProvider/WfpSplitter/samples/wfp.wfp +0 -68
  435. package/tests/sdk/Scanner/WfpProvider/WfpSplitter/samples/wfp.wfp~ +0 -68
  436. package/tsconfig.json +0 -31
  437. package/tsconfig.module.json +0 -11
  438. package/yarn.lock +0 -5481
@@ -1,516 +0,0 @@
1
- import fs from 'fs';
2
- import { Worker } from 'worker_threads';
3
-
4
- import { ScannableItem } from '../../Scannable/ScannableItem';
5
- import { ScannerCfg } from '../../ScannerCfg';
6
- import { ScannerEvents, ScannerInput, WinnowingMode } from '../../ScannerTypes';
7
-
8
- import { FingerprintPackage } from '../FingerprintPackage';
9
- import { IWfpProviderInput, WfpProvider } from '../WfpProvider';
10
-
11
- const stringWorker = `
12
- const { parentPort } = require('worker_threads');
13
-
14
- parentPort.on('message', async (scannableItem) => {
15
-
16
- let fingerprint;
17
- if ( scannableItem.winnowingMode === "FULL_WINNOWING") {
18
- fingerprint = wfp_for_content(
19
- scannableItem.content,
20
- scannableItem.contentSource,
21
- scannableItem.maxSizeWfp
22
- );
23
- } else if (scannableItem.winnowingMode === "FULL_WINNOWING_HPSM") {
24
- fingerprint = wfp_hpsm_for_content(
25
- scannableItem.content,
26
- scannableItem.contentSource,
27
- scannableItem.maxSizeWfp
28
- );
29
- } else if (scannableItem.winnowingMode === "WINNOWING_ONLY_MD5") {
30
- fingerprint = wfp_only_md5(
31
- scannableItem.content,
32
- scannableItem.contentSource
33
- );
34
- }
35
-
36
- scannableItem.fingerprint = fingerprint;
37
- parentPort.postMessage(scannableItem);
38
-
39
- });
40
-
41
- /**
42
- * Winnowing and HPSM algorithm begins
43
- */
44
-
45
- const crypto = require('crypto');
46
- const isWin = process.platform === 'win32';
47
- const pathSeparator = isWin ? String.fromCharCode(92) : '/';
48
-
49
- // Winnowing configuration. DO NOT CHANGE.
50
- const GRAM = 30;
51
- const WINDOW = 64;
52
-
53
- // ASCII characters
54
- const ASCII_0 = 48;
55
- const ASCII_9 = 57;
56
- const ASCII_A = 65;
57
- const ASCII_Z = 90;
58
- const ASCII_a = 97;
59
- const ASCII_z = 122;
60
- const ASCII_LF = 10;
61
-
62
- function normalize(byte) {
63
- if (byte < ASCII_0 || byte > ASCII_z) {
64
- return 0;
65
- }
66
- if (byte <= ASCII_9 || byte >= ASCII_a) {
67
- return byte;
68
- }
69
- if (byte >= ASCII_A && byte <= ASCII_Z) {
70
- return byte + 32;
71
- }
72
- return 0;
73
- }
74
-
75
- function min_hex_array(array) {
76
- let min = 'ffffffff';
77
- for (let i = 0; i < array.length; i++) {
78
- if (array[i] < min) {
79
- min = array[i];
80
- }
81
- }
82
- return min;
83
- }
84
-
85
- function calc_wfp(contents, maxSize) {
86
- let gram = '';
87
- const window = [];
88
- let normalized = 0;
89
- let line = 1;
90
- let min_hash = 'ffffffff';
91
- let last_hash = 'ffffffff';
92
- let last_line = 0;
93
- let output = '';
94
- let gram_crc32 = 0;
95
- let wfp = '';
96
-
97
- for (let i = 0; i < contents.length; i++) {
98
- if(wfp.length > maxSize)
99
- return wfp;
100
-
101
- const byte = contents[i];
102
- if (byte == ASCII_LF) {
103
- line += 1;
104
- normalized = 0;
105
- } else {
106
- normalized = normalize(byte);
107
- }
108
- // Is this an useful byte?
109
- if (normalized) {
110
- gram += String.fromCharCode(normalized);
111
-
112
- if (gram.length >= GRAM) {
113
- gram_crc32 = crc32c_hex(gram);
114
- window.push(gram_crc32);
115
-
116
- if (window.length >= WINDOW) {
117
- min_hash = min_hex_array(window);
118
- if (min_hash !== last_hash) {
119
- // Hashing the hash will result in a better balanced output data set
120
- // as it will counter the winnowing effect which selects the "minimum"
121
- // hash in each window
122
- const min_hash_bytes_le = parseHexString(
123
- toLittleEndianCRCHex(min_hash)
124
- );
125
- const crc_hex = crc32c_for_bytes_hex(min_hash_bytes_le);
126
-
127
- if (last_line != line) {
128
- if (output.length > 0) {
129
- wfp += String(output) + String.fromCharCode(10);
130
- }
131
- output = String(line) + '=' + String(crc_hex);
132
- } else {
133
- output += ',' + String(crc_hex);
134
- }
135
- last_line = line;
136
- last_hash = min_hash;
137
- }
138
- window.shift();
139
- }
140
- gram = gram.slice(1);
141
- }
142
- }
143
- }
144
- if (output.length > 0) {
145
- wfp += String(output) + String.fromCharCode(10);
146
- }
147
-
148
- return wfp;
149
- }
150
-
151
- function parseHexString(str) {
152
- const result = [];
153
- while (str.length >= 2) {
154
- result.push(parseInt(str.substring(0, 2), 16));
155
- str = str.substring(2, str.length);
156
- }
157
-
158
- return result;
159
- }
160
-
161
- /**
162
- *
163
- * @param {string} hex
164
- */
165
- function toLittleEndianCRCHex(hex) {
166
- return (
167
- hex.charAt(6) +
168
- hex.charAt(7) +
169
- hex.charAt(4) +
170
- hex.charAt(5) +
171
- hex.charAt(2) +
172
- hex.charAt(3) +
173
- hex.charAt(0) +
174
- hex.charAt(1)
175
- );
176
- }
177
-
178
- let CRC_TABLE = [];
179
-
180
- function makeCRCTable() {
181
- let c;
182
- const crcTable = [];
183
- for (let n = 0; n < 256; n++) {
184
- c = n;
185
- for (let k = 0; k < 8; k++) {
186
- c = c & 1 ? 0x82f63b78 ^ (c >>> 1) : c >>> 1;
187
- }
188
- crcTable[n] = c;
189
- }
190
- return crcTable;
191
- }
192
-
193
- function crc32c(str) {
194
- if (CRC_TABLE.length == 0) {
195
- CRC_TABLE = makeCRCTable();
196
- }
197
- let crc = 0 ^ -1;
198
-
199
- for (let i = 0; i < str.length; i++) {
200
- crc = (crc >>> 8) ^ CRC_TABLE[(crc ^ str.charCodeAt(i)) & 0xff];
201
- }
202
-
203
- return (crc ^ -1) >>> 0;
204
- }
205
-
206
- function crc32c_for_bytes(bytes) {
207
- if (CRC_TABLE.length == 0) {
208
- CRC_TABLE = makeCRCTable();
209
- }
210
- let crc = 0 ^ -1;
211
-
212
- for (let i = 0; i < bytes.length; i++) {
213
- crc = (crc >>> 8) ^ CRC_TABLE[(crc ^ bytes[i]) & 0xff];
214
- }
215
-
216
- return (crc ^ -1) >>> 0;
217
- }
218
-
219
- function crc32c_for_bytes_hex(bytes) {
220
- return crc32c_for_bytes(bytes).toString(16).padStart(8, '0');
221
- }
222
-
223
- function crc32c_hex(str) {
224
- return crc32c(str).toString(16).padStart(8, '0');
225
- }
226
-
227
- function truncate_string(input, maxSize){
228
- return input.slice(0, maxSize)
229
- }
230
-
231
- function toHexString(byteArray) {
232
- return Array.from(byteArray, function(byte) {
233
- return ('0' + (byte & 0xFF).toString(16)).slice(-2);
234
- }).join('')
235
- }
236
-
237
- function calc_hpsm(content) {
238
- let list_normalized = []; //Array of numbers
239
- let crc_lines = []; //Array of numbers that represent the crc8_maxim for each line of the file
240
-
241
- let last_line = 0;
242
- crc8_MAXIM_DOW_GenerateTable();
243
-
244
- for(let i = 0; i<content.length; i++) {
245
- const c = content[i];
246
- if (c == ASCII_LF) { //When there is a new line
247
- if (list_normalized.length) {
248
- crc_lines.push(crc8_MAXIM_DOW_Buffer(list_normalized))
249
- list_normalized=[];
250
- } else if(last_line+1 == i) {
251
- crc_lines.push(0xFF);
252
- } else if (i-last_line > 1) {
253
- crc_lines.push(0x00)
254
- }
255
- last_line = i;
256
- } else {
257
- const c_normalized = normalize(c);
258
- if (c_normalized != 0) list_normalized.push(c_normalized)
259
- }
260
- }
261
- return "hpsm=" + toHexString(crc_lines)
262
- }
263
-
264
-
265
- /**
266
- * Create a wfp_hpsm package joining wfp (with md5 line) and a hpsm.
267
- *
268
- * Example:
269
- * wfp = file=508cb9dfbe1c7dca5ed24f124473f33d,300,asd.c
270
- * 11=b19bdbfa
271
- *
272
- * hpsm = hpsm=1909ff06ff688630ff45a92b52f47eff3500ffff
273
- *
274
- * wfp_hpsm = file=508cb9dfbe1c7dca5ed24f124473f33d,300,asd.c
275
- * hpsm=1909ff06ff688630ff45a92b52f47eff3500ffff
276
- * 11=b19bdbfa
277
- *
278
- * @param {string} wfp Complete wfp string (with md5 line)
279
- * @param {string} hpsm
280
- * @returns {string}
281
- */
282
- function join_wfp_hpsm(wfp, hpsm) {
283
- let header = wfp.match(/file=.*/);
284
- header += String.fromCharCode(10);
285
- header += hpsm;
286
- wfp = wfp.replace(/file=.*/, "")
287
- return header + wfp;
288
- }
289
-
290
- /**
291
- *
292
- * @param {Buffer} content
293
- * @param {string} contentSource
294
- * @param {number} maxSize
295
- * @returns {string}
296
- */
297
- function wfp_hpsm_for_content(content, contentSource, maxSize) {
298
- let wfp = wfp_for_content(content, contentSource, maxSize)
299
- let hpsm = calc_hpsm(content) //Returns a string
300
- let wfp_hpsm_joined = join_wfp_hpsm(wfp, hpsm)
301
- return truncate_string(wfp_hpsm_joined, maxSize)
302
- }
303
-
304
- function wfp_for_content(content, contentSource, maxSize) {
305
- let wfp = wfp_only_md5(content, contentSource);
306
- wfp += calc_wfp(content, maxSize);
307
- return wfp;
308
- }
309
-
310
- function wfp_only_md5(contents, contentSource) {
311
- const file_md5 = crypto.createHash('md5').update(contents).digest('hex');
312
- let wfp = 'file=' + String(file_md5) + ',' + String(contents.length) + ',' + String(contentSource)+ String.fromCharCode(10);
313
- return wfp;
314
- }
315
-
316
- /**
317
- * CRC8_MAXIM algorithm begins
318
- */
319
-
320
-
321
- //=============================================================================
322
- // Implementation of CRC-8/MAXIM-DOW,CRC-8/MAXIM,DOW-CRC.
323
- // Notes: Code ported from C Auto-generated by http://crc.drque.net/
324
- //=============================================================================
325
-
326
- //Table size
327
- const CRC8_MAXIM_DOW_TABLE_SIZE = 0x100
328
- const CRC8_MAXIM_DOW_POLYNOMIAL = 0x8C // 0x31 reflected
329
- const CRC8_MAXIM_DOW_INITIAL = 0x00 // 0x00 reflected
330
- const CRC8_MAXIM_DOW_FINAL = 0x00 // 0x00 reflected
331
-
332
- let crc8_MAXIM_DOW_Table = []
333
-
334
- /**
335
- * Compute CRC of byte without lookup tables.
336
- *
337
- * @param {number} crc Current CRC or initial value
338
- * @param {number} byte New byte to accumulate.
339
- * @returns {number} Updated CRC.
340
- */
341
- function crc8_MAXIM_DOW_ByteNoTable(crc, byte) {
342
- crc ^= byte;
343
- for (let count = 0; count<8; count++) {
344
- const isSet = (crc & 0x01)
345
- crc >>= 1;
346
- if (isSet) crc ^= CRC8_MAXIM_DOW_POLYNOMIAL
347
- }
348
- return crc
349
- }
350
-
351
- /**
352
- * Create the lookup table.
353
- * Note: Must be called before any table based CRC calculations can be done.
354
- */
355
- function crc8_MAXIM_DOW_GenerateTable() {
356
- for(let i = 0; i<CRC8_MAXIM_DOW_TABLE_SIZE; i++) {
357
- crc8_MAXIM_DOW_Table.push(crc8_MAXIM_DOW_ByteNoTable(0, i))
358
- }
359
- }
360
-
361
- /**
362
- * Update CRC by byte.
363
- *
364
- * @param {number} crc Initial CRC.
365
- * @param {number} byte New byte to accumulate.
366
- * @returns {number} Updated CRC.
367
- */
368
- function crc8_MAXIM_DOW_Byte( crc, byte )
369
- {
370
- const index = byte ^ crc;
371
- return crc8_MAXIM_DOW_Table[ index ] ^ ( crc >> 8 );
372
- }
373
-
374
- /**
375
- * Compute CRC of buffer.
376
- * Note: crc8_MAXIM_DOW_GenerateTable() must be called before use this function
377
- *
378
- * @param {Buffer} buffer Buffer with bytes to calculate CRC.
379
- * @returns {number} CRC
380
- */
381
- function crc8_MAXIM_DOW_Buffer(buffer) {
382
- let crc = CRC8_MAXIM_DOW_INITIAL;
383
- for (let index = 0; index < buffer.length ; index ++) {
384
- crc = crc8_MAXIM_DOW_Byte(crc, buffer[index])
385
- }
386
- crc ^= CRC8_MAXIM_DOW_FINAL;
387
- return crc;
388
- }
389
- `;
390
-
391
- export class WfpCalculator extends WfpProvider {
392
- private fileList: any;
393
-
394
- private fileListIndex: number;
395
-
396
- private continue: boolean;
397
-
398
- constructor(scannerCfg = new ScannerCfg()) {
399
- super();
400
- this.scannerCfg = scannerCfg;
401
- }
402
-
403
- init() {
404
- super.init();
405
- this.continue = true;
406
- this.fileList = [];
407
- this.fileListIndex = 0;
408
- }
409
-
410
- prepareWorker() {
411
- this.worker = new Worker(stringWorker, { eval: true });
412
- this.worker.on('message', async (scannableItem) => {
413
- this.fingerprintPacker(scannableItem.fingerprint);
414
- await this.nextStepMachine();
415
- });
416
- }
417
-
418
- recoveryIndex() {
419
- // Files: contains all files winnowed but not packed yet
420
- const files = new FingerprintPackage(this.wfp, this.folderRoot).getFilesFingerprinted();
421
- if (files.length) {
422
- const lastFileWinnowed = files[files.length - 1];
423
- let i = 0;
424
- while (i <= files.length && lastFileWinnowed !== this.fileList[this.fileListIndex - i]) {
425
- i += 1;
426
- }
427
- // If file already winnowed cannot be found in fileList emit an error.
428
- if (i > files.length) {
429
- this.sendError('Cannot recovery index on winnower');
430
- return -1;
431
- }
432
- this.fileListIndex -= i;
433
- if (this.fileList[this.fileListIndex] === lastFileWinnowed) this.fileListIndex += 1;
434
- }
435
- return 0;
436
- }
437
-
438
- forceStopWorker() {
439
- this.worker.removeAllListeners();
440
- this.worker.terminate();
441
- }
442
-
443
- protected processPackedWfp(content) {
444
- const fingerprint = new FingerprintPackage(content, this.folderRoot);
445
- this.sendFingerprint(fingerprint);
446
- }
447
-
448
- async getNextScannableItem() {
449
- if (this.fileListIndex >= this.fileList.length) {
450
- this.emit(ScannerEvents.WINNOWING_STATUS, (this.fileListIndex) % this.scannerCfg.WINNOWING_REPORT_STATUS_AFTER_X)
451
- return null;
452
- }
453
- const path = this.fileList[this.fileListIndex];
454
- const contentSource = path.replace(`${this.folderRoot}`, '');
455
- const content = await fs.promises.readFile(path);
456
- this.fileListIndex += 1;
457
- if (!(this.fileListIndex % this.scannerCfg.WINNOWING_REPORT_STATUS_AFTER_X))
458
- this.emit(ScannerEvents.WINNOWING_STATUS, this.scannerCfg.WINNOWING_REPORT_STATUS_AFTER_X);
459
-
460
- const scannable = new ScannableItem(content, contentSource, this.winnowingMode, this.scannerCfg.WFP_FILE_MAX_SIZE);
461
- return scannable;
462
- }
463
-
464
- async nextStepMachine() {
465
- if (!this.continue) return;
466
- const scannableItem = await this.getNextScannableItem();
467
- if (scannableItem) this.worker.postMessage(scannableItem);
468
- else {
469
- this.finishWinnowing();
470
- this.forceStopWorker();
471
- this.sendLog('[ SCANNER ]: WFP Calculator finished...');
472
- }
473
- }
474
-
475
-
476
- public start(params: IWfpProviderInput): Promise<void> {
477
-
478
- if(!params.fileList) this.sendError('File list is required');
479
- this.sendLog('[ SCANNER ]: WFP Calculator starting...');
480
-
481
- this.init();
482
- this.prepareWorker();
483
-
484
- if(params.winnowingMode) this.setWinnowingMode(params.winnowingMode);
485
- this.pendingFiles = true;
486
- this.folderRoot = params.folderRoot;
487
- this.fileList = params.fileList;
488
- this.nextStepMachine();
489
-
490
- return this.finishPromise;
491
- }
492
-
493
-
494
-
495
-
496
- public pause(): void {
497
- this.sendLog('[ SCANNER ]: WFP Calculator paused...')
498
- this.continue = false;
499
- }
500
-
501
- public resume(): void {
502
- this.sendLog('[ SCANNER ]: WFP Calculator resumed...')
503
- this.continue = true;
504
- this.recoveryIndex();
505
- this.nextStepMachine();
506
- }
507
-
508
- public stop(): void {
509
- this.continue = false;
510
- this.pendingFiles = false;
511
- this.forceStopWorker();
512
- this.prepareWorker();
513
- this.init();
514
- }
515
-
516
- }
@@ -1,105 +0,0 @@
1
- import { Worker } from 'worker_threads';
2
- import { EventEmitter } from "stream";
3
- import { ScannerCfg } from "../ScannerCfg";
4
- import { ScannerEvents, WinnowingMode } from "../ScannerTypes";
5
- import { FingerprintPackage } from "./FingerprintPackage";
6
-
7
-
8
- export interface IWfpProviderInput {
9
- wfpPath?: string;
10
- folderRoot?: string; //This string is being removed from the fingerprint results paths
11
- fileList?: Array<string>;
12
- winnowingMode?: WinnowingMode; // Enable winnowing algorithm, otherwise is scanned only MD5
13
- }
14
-
15
- export abstract class WfpProvider extends EventEmitter {
16
-
17
- protected wfp: string;
18
- protected scannerCfg: ScannerCfg;
19
- protected folderRoot: string;
20
- protected worker: Worker;
21
- protected pendingFiles: boolean;
22
- protected winnowingMode: WinnowingMode;
23
- protected finishPromise: Promise<void>;
24
-
25
- //Allow resolve or reject the promise returned in start call
26
- protected finishPromiseResolve: (value?: void | PromiseLike<void>) => void;
27
- protected finishPromiseReject: (value?: void | PromiseLike<void>) => void;
28
-
29
- protected init(): void {
30
- this.wfp = '';
31
- this.folderRoot = '';
32
- this.pendingFiles = false;
33
- this.winnowingMode = WinnowingMode.FULL_WINNOWING;
34
-
35
- this.finishPromise = new Promise((resolve, reject) =>{
36
- this.finishPromiseResolve = resolve;
37
- this.finishPromiseReject = reject;
38
- });
39
-
40
- }
41
-
42
- // returns true if the function emitted a new fingerprint packet
43
- protected fingerprintPacker(fingerprint: string): boolean {
44
- // When the fingerprint of one file is bigger than 64Kb, truncate to the last 64Kb line.
45
- if (fingerprint.length > this.scannerCfg.WFP_FILE_MAX_SIZE) {
46
- let truncateStringOnIndex = this.scannerCfg.WFP_FILE_MAX_SIZE;
47
- let keepRemovingCharacters = true;
48
- while (keepRemovingCharacters) {
49
- if (fingerprint[truncateStringOnIndex] === '\n') keepRemovingCharacters = false;
50
- truncateStringOnIndex -= 1;
51
- }
52
- truncateStringOnIndex += 1;
53
- // eslint-disable-next-line no-param-reassign
54
- fingerprint = fingerprint.substring(0, truncateStringOnIndex);
55
- // eslint-disable-next-line no-param-reassign
56
- fingerprint += '\n';
57
- }
58
-
59
- if (this.wfp.length + fingerprint.length >= this.scannerCfg.WFP_FILE_MAX_SIZE && this.wfp.length > 0) {
60
- this.sendFingerprint(new FingerprintPackage(this.wfp, this.folderRoot));
61
- this.wfp = '';
62
- }
63
- this.wfp += fingerprint;
64
-
65
- if(this.wfp !== fingerprint) return false;
66
- return true;
67
- }
68
-
69
- protected finishWinnowing() {
70
- if (this.wfp.length !== 0) this.sendFingerprint(new FingerprintPackage(this.wfp, this.folderRoot));
71
- this.pendingFiles = false;
72
- this.emit(ScannerEvents.WINNOWING_FINISHED);
73
- this.finishPromiseResolve();
74
- }
75
-
76
-
77
- protected sendFingerprint(fingerprintPackage: FingerprintPackage) {
78
- this.emit(ScannerEvents.WINNOWING_NEW_CONTENT, fingerprintPackage);
79
- }
80
-
81
- protected sendLog(logMsg: string): void {
82
- this.emit(ScannerEvents.WINNOWER_LOG, logMsg);
83
- }
84
-
85
- protected sendError(errorMsg: string): void {
86
- this.emit(ScannerEvents.ERROR, new Error(errorMsg));
87
- this.finishPromiseReject();
88
- }
89
-
90
- protected setWinnowingMode(mode: WinnowingMode): void {
91
- this.winnowingMode = mode;
92
- }
93
-
94
- public abstract start(params: IWfpProviderInput): Promise<void>;
95
-
96
- public abstract stop(): void;
97
- public abstract pause(): void;
98
- public abstract resume(): void;
99
-
100
-
101
- public hasPendingFiles(): boolean {
102
- return this.pendingFiles;
103
- }
104
-
105
- }