scanoss 0.7.4 → 0.7.8

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 (281) hide show
  1. package/.idea/workspace.xml +22 -20
  2. package/build/main/cli/bin/cli-bin.d.ts +2 -1
  3. package/build/main/cli/bin/cli-bin.js +10 -2
  4. package/build/main/package.json +120 -0
  5. package/build/main/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +1 -1
  6. package/build/main/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +4 -4
  7. package/build/main/sdk/scanner/Dispatcher/Dispatcher.js +5 -2
  8. package/build/main/sdk/scanner/Fingerprint.d.ts +2 -2
  9. package/build/main/sdk/scanner/Fingerprint.js +26 -8
  10. package/build/main/sdk/scanner/Scanner.js +4 -1
  11. package/build/main/sdk/scanner/ScannerCfg.d.ts +1 -0
  12. package/build/main/sdk/scanner/ScannerCfg.js +6 -3
  13. package/build/main/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +6 -3
  14. package/build/main/src/cli/bin/cli-bin.d.ts +2 -0
  15. package/build/main/src/cli/bin/cli-bin.js +68 -0
  16. package/build/main/src/cli/commands/dep.d.ts +1 -0
  17. package/build/main/src/cli/commands/dep.js +38 -0
  18. package/build/main/src/cli/commands/helpers.d.ts +2 -0
  19. package/build/main/src/cli/commands/helpers.js +25 -0
  20. package/build/main/src/cli/commands/scan.d.ts +1 -0
  21. package/build/main/src/cli/commands/scan.js +138 -0
  22. package/build/main/src/cli/commands/wfp.d.ts +1 -0
  23. package/build/main/src/cli/commands/wfp.js +54 -0
  24. package/build/main/src/index.d.ts +14 -0
  25. package/build/main/src/index.js +30 -0
  26. package/build/main/src/sdk/DataLayer/DataLayerTypes.d.ts +108 -0
  27. package/build/main/src/sdk/DataLayer/DataLayerTypes.js +5 -0
  28. package/build/main/src/sdk/DataLayer/DataProviderManager.d.ts +7 -0
  29. package/build/main/src/sdk/DataLayer/DataProviderManager.js +24 -0
  30. package/build/main/src/sdk/DataLayer/DataProviders/ComponentDataProvider.d.ts +13 -0
  31. package/build/main/src/sdk/DataLayer/DataProviders/ComponentDataProvider.js +164 -0
  32. package/build/main/src/sdk/DataLayer/DataProviders/DependencyDataProvider.d.ts +9 -0
  33. package/build/main/src/sdk/DataLayer/DataProviders/DependencyDataProvider.js +37 -0
  34. package/build/main/src/sdk/DataLayer/DataProviders/LicenseDataProvider.d.ts +18 -0
  35. package/build/main/src/sdk/DataLayer/DataProviders/LicenseDataProvider.js +148 -0
  36. package/build/main/src/sdk/DataLayer/DataProviders/SummaryDataProvider.d.ts +11 -0
  37. package/build/main/src/sdk/DataLayer/DataProviders/SummaryDataProvider.js +33 -0
  38. package/build/main/src/sdk/Decompress/DecompressionManager.d.ts +12 -0
  39. package/build/main/src/sdk/Decompress/DecompressionManager.js +73 -0
  40. package/build/main/src/sdk/Decompress/Decompressor/DecompressTgz.d.ts +5 -0
  41. package/build/main/src/sdk/Decompress/Decompressor/DecompressTgz.js +22 -0
  42. package/build/main/src/sdk/Decompress/Decompressor/DecompressZips.d.ts +5 -0
  43. package/build/main/src/sdk/Decompress/Decompressor/DecompressZips.js +24 -0
  44. package/build/main/src/sdk/Decompress/Decompressor/Decompressor.d.ts +10 -0
  45. package/build/main/src/sdk/Decompress/Decompressor/Decompressor.js +18 -0
  46. package/build/main/src/sdk/Dependencies/DependencyScanner.d.ts +11 -0
  47. package/build/main/src/sdk/Dependencies/DependencyScanner.js +96 -0
  48. package/build/main/src/sdk/Dependencies/DependencyScannerCfg.d.ts +4 -0
  49. package/build/main/src/sdk/Dependencies/DependencyScannerCfg.js +10 -0
  50. package/build/main/src/sdk/Dependencies/DependencyTypes.d.ts +21 -0
  51. package/build/main/src/sdk/Dependencies/DependencyTypes.js +2 -0
  52. package/build/main/src/sdk/Dependencies/LocalDependency/DependencyTypes.d.ts +16 -0
  53. package/build/main/src/sdk/Dependencies/LocalDependency/DependencyTypes.js +2 -0
  54. package/build/main/src/sdk/Dependencies/LocalDependency/LocalDependency.d.ts +8 -0
  55. package/build/main/src/sdk/Dependencies/LocalDependency/LocalDependency.js +102 -0
  56. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.d.ts +2 -0
  57. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.js +95 -0
  58. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/golangParser.d.ts +3 -0
  59. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/golangParser.js +97 -0
  60. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.d.ts +2 -0
  61. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.js +183 -0
  62. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/npmParser.d.ts +13 -0
  63. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/npmParser.js +187 -0
  64. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.d.ts +3 -0
  65. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.js +58 -0
  66. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/pyParser.d.ts +2 -0
  67. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/pyParser.js +64 -0
  68. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +3 -0
  69. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +132 -0
  70. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/utils.d.ts +2 -0
  71. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/utils.js +19 -0
  72. package/build/main/src/sdk/Report/Report.d.ts +8 -0
  73. package/build/main/src/sdk/Report/Report.js +26 -0
  74. package/build/main/src/sdk/filters/DefaultFilterForDependencies.d.ts +16 -0
  75. package/build/main/src/sdk/filters/DefaultFilterForDependencies.js +145 -0
  76. package/build/main/src/sdk/filters/DefaultFilterForScanning.d.ts +16 -0
  77. package/build/main/src/sdk/filters/DefaultFilterForScanning.js +194 -0
  78. package/build/main/src/sdk/filters/filtering.d.ts +32 -0
  79. package/build/main/src/sdk/filters/filtering.js +228 -0
  80. package/build/main/src/sdk/grpc/GrpcDependencyService.d.ts +11 -0
  81. package/build/main/src/sdk/grpc/GrpcDependencyService.js +86 -0
  82. package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  83. package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +2 -0
  84. package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +1 -0
  85. package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.js +404 -0
  86. package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +39 -0
  87. package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +98 -0
  88. package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +1 -0
  89. package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1197 -0
  90. package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +19 -0
  91. package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +66 -0
  92. package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +1 -0
  93. package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +14 -0
  94. package/build/main/src/sdk/scanner/Dispatcher/DispatchableItem.d.ts +19 -0
  95. package/build/main/src/sdk/scanner/Dispatcher/DispatchableItem.js +43 -0
  96. package/build/main/src/sdk/scanner/Dispatcher/Dispatcher.d.ts +20 -0
  97. package/build/main/src/sdk/scanner/Dispatcher/Dispatcher.js +160 -0
  98. package/build/main/src/sdk/scanner/Dispatcher/DispatcherResponse.d.ts +12 -0
  99. package/build/main/src/sdk/scanner/Dispatcher/DispatcherResponse.js +33 -0
  100. package/build/main/src/sdk/scanner/Dispatcher/GlobalControllerAborter.d.ts +10 -0
  101. package/build/main/src/sdk/scanner/Dispatcher/GlobalControllerAborter.js +32 -0
  102. package/build/main/src/sdk/scanner/Fingerprint.d.ts +16 -0
  103. package/build/main/src/sdk/scanner/Fingerprint.js +78 -0
  104. package/build/main/src/sdk/scanner/Scannable/ScannableItem.d.ts +15 -0
  105. package/build/main/src/sdk/scanner/Scannable/ScannableItem.js +27 -0
  106. package/build/main/src/sdk/scanner/Scanner.d.ts +46 -0
  107. package/build/main/src/sdk/scanner/Scanner.js +283 -0
  108. package/build/main/src/sdk/scanner/ScannerCfg.d.ts +16 -0
  109. package/build/main/src/sdk/scanner/ScannerCfg.js +30 -0
  110. package/build/main/src/sdk/scanner/ScannerTypes.d.ts +121 -0
  111. package/build/main/src/sdk/scanner/ScannerTypes.js +48 -0
  112. package/build/main/src/sdk/scanner/WfpProvider/FingerprintPackage.d.ts +9 -0
  113. package/build/main/src/sdk/scanner/WfpProvider/FingerprintPackage.js +31 -0
  114. package/build/main/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +20 -0
  115. package/build/main/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +492 -0
  116. package/build/main/src/sdk/scanner/WfpProvider/WfpProvider.d.ts +35 -0
  117. package/build/main/src/sdk/scanner/WfpProvider/WfpProvider.js +68 -0
  118. package/build/main/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.d.ts +21 -0
  119. package/build/main/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.js +139 -0
  120. package/build/main/src/sdk/tree/File.d.ts +7 -0
  121. package/build/main/src/sdk/tree/File.js +24 -0
  122. package/build/main/src/sdk/tree/Filters/DecompressionFilter.d.ts +7 -0
  123. package/build/main/src/sdk/tree/Filters/DecompressionFilter.js +21 -0
  124. package/build/main/src/sdk/tree/Filters/DependencyFilter.d.ts +7 -0
  125. package/build/main/src/sdk/tree/Filters/DependencyFilter.js +17 -0
  126. package/build/main/src/sdk/tree/Filters/Filter.d.ts +4 -0
  127. package/build/main/src/sdk/tree/Filters/Filter.js +6 -0
  128. package/build/main/src/sdk/tree/Filters/ScanFilter.d.ts +7 -0
  129. package/build/main/src/sdk/tree/Filters/ScanFilter.js +17 -0
  130. package/build/main/src/sdk/tree/Folder.d.ts +12 -0
  131. package/build/main/src/sdk/tree/Folder.js +58 -0
  132. package/build/main/src/sdk/tree/Node.d.ts +17 -0
  133. package/build/main/src/sdk/tree/Node.js +25 -0
  134. package/build/main/src/sdk/tree/Tree.d.ts +18 -0
  135. package/build/main/src/sdk/tree/Tree.js +70 -0
  136. package/build/main/tsconfig.tsbuildinfo +126 -123
  137. package/build/module/cli/bin/cli-bin.d.ts +2 -1
  138. package/build/module/cli/bin/cli-bin.js +6 -2
  139. package/build/module/package.json +120 -0
  140. package/build/module/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +1 -1
  141. package/build/module/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +4 -4
  142. package/build/module/sdk/scanner/Dispatcher/Dispatcher.js +5 -2
  143. package/build/module/sdk/scanner/Fingerprint.d.ts +2 -2
  144. package/build/module/sdk/scanner/Fingerprint.js +6 -6
  145. package/build/module/sdk/scanner/Scanner.js +4 -1
  146. package/build/module/sdk/scanner/ScannerCfg.d.ts +1 -0
  147. package/build/module/sdk/scanner/ScannerCfg.js +6 -3
  148. package/build/module/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +6 -3
  149. package/build/module/src/cli/bin/cli-bin.d.ts +2 -0
  150. package/build/module/src/cli/bin/cli-bin.js +67 -0
  151. package/build/module/src/cli/commands/dep.d.ts +1 -0
  152. package/build/module/src/cli/commands/dep.js +32 -0
  153. package/build/module/src/cli/commands/helpers.d.ts +2 -0
  154. package/build/module/src/cli/commands/helpers.js +19 -0
  155. package/build/module/src/cli/commands/scan.d.ts +1 -0
  156. package/build/module/src/cli/commands/scan.js +135 -0
  157. package/build/module/src/cli/commands/wfp.d.ts +1 -0
  158. package/build/module/src/cli/commands/wfp.js +48 -0
  159. package/build/module/src/index.d.ts +14 -0
  160. package/build/module/src/index.js +19 -0
  161. package/build/module/src/sdk/DataLayer/DataLayerTypes.d.ts +108 -0
  162. package/build/module/src/sdk/DataLayer/DataLayerTypes.js +5 -0
  163. package/build/module/src/sdk/DataLayer/DataProviderManager.d.ts +7 -0
  164. package/build/module/src/sdk/DataLayer/DataProviderManager.js +21 -0
  165. package/build/module/src/sdk/DataLayer/DataProviders/ComponentDataProvider.d.ts +13 -0
  166. package/build/module/src/sdk/DataLayer/DataProviders/ComponentDataProvider.js +159 -0
  167. package/build/module/src/sdk/DataLayer/DataProviders/DependencyDataProvider.d.ts +9 -0
  168. package/build/module/src/sdk/DataLayer/DataProviders/DependencyDataProvider.js +34 -0
  169. package/build/module/src/sdk/DataLayer/DataProviders/LicenseDataProvider.d.ts +18 -0
  170. package/build/module/src/sdk/DataLayer/DataProviders/LicenseDataProvider.js +145 -0
  171. package/build/module/src/sdk/DataLayer/DataProviders/SummaryDataProvider.d.ts +11 -0
  172. package/build/module/src/sdk/DataLayer/DataProviders/SummaryDataProvider.js +30 -0
  173. package/build/module/src/sdk/Decompress/DecompressionManager.d.ts +12 -0
  174. package/build/module/src/sdk/Decompress/DecompressionManager.js +67 -0
  175. package/build/module/src/sdk/Decompress/Decompressor/DecompressTgz.d.ts +5 -0
  176. package/build/module/src/sdk/Decompress/Decompressor/DecompressTgz.js +16 -0
  177. package/build/module/src/sdk/Decompress/Decompressor/DecompressZips.d.ts +5 -0
  178. package/build/module/src/sdk/Decompress/Decompressor/DecompressZips.js +18 -0
  179. package/build/module/src/sdk/Decompress/Decompressor/Decompressor.d.ts +10 -0
  180. package/build/module/src/sdk/Decompress/Decompressor/Decompressor.js +15 -0
  181. package/build/module/src/sdk/Dependencies/DependencyScanner.d.ts +11 -0
  182. package/build/module/src/sdk/Dependencies/DependencyScanner.js +93 -0
  183. package/build/module/src/sdk/Dependencies/DependencyScannerCfg.d.ts +4 -0
  184. package/build/module/src/sdk/Dependencies/DependencyScannerCfg.js +7 -0
  185. package/build/module/src/sdk/Dependencies/DependencyTypes.d.ts +21 -0
  186. package/build/module/src/sdk/Dependencies/DependencyTypes.js +2 -0
  187. package/build/module/src/sdk/Dependencies/LocalDependency/DependencyTypes.d.ts +16 -0
  188. package/build/module/src/sdk/Dependencies/LocalDependency/DependencyTypes.js +2 -0
  189. package/build/module/src/sdk/Dependencies/LocalDependency/LocalDependency.d.ts +8 -0
  190. package/build/module/src/sdk/Dependencies/LocalDependency/LocalDependency.js +96 -0
  191. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.d.ts +2 -0
  192. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.js +87 -0
  193. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/golangParser.d.ts +3 -0
  194. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/golangParser.js +88 -0
  195. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.d.ts +2 -0
  196. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.js +180 -0
  197. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/npmParser.d.ts +13 -0
  198. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/npmParser.js +175 -0
  199. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.d.ts +3 -0
  200. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.js +49 -0
  201. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/pyParser.d.ts +2 -0
  202. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/pyParser.js +57 -0
  203. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +3 -0
  204. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +125 -0
  205. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/utils.d.ts +2 -0
  206. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/utils.js +15 -0
  207. package/build/module/src/sdk/Report/Report.d.ts +8 -0
  208. package/build/module/src/sdk/Report/Report.js +20 -0
  209. package/build/module/src/sdk/filters/DefaultFilterForDependencies.d.ts +16 -0
  210. package/build/module/src/sdk/filters/DefaultFilterForDependencies.js +143 -0
  211. package/build/module/src/sdk/filters/DefaultFilterForScanning.d.ts +16 -0
  212. package/build/module/src/sdk/filters/DefaultFilterForScanning.js +192 -0
  213. package/build/module/src/sdk/filters/filtering.d.ts +32 -0
  214. package/build/module/src/sdk/filters/filtering.js +203 -0
  215. package/build/module/src/sdk/grpc/GrpcDependencyService.d.ts +11 -0
  216. package/build/module/src/sdk/grpc/GrpcDependencyService.js +64 -0
  217. package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  218. package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +2 -0
  219. package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +1 -0
  220. package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.js +404 -0
  221. package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +39 -0
  222. package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +98 -0
  223. package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +1 -0
  224. package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1197 -0
  225. package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +19 -0
  226. package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +66 -0
  227. package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +1 -0
  228. package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +14 -0
  229. package/build/module/src/sdk/scanner/Dispatcher/DispatchableItem.d.ts +19 -0
  230. package/build/module/src/sdk/scanner/Dispatcher/DispatchableItem.js +37 -0
  231. package/build/module/src/sdk/scanner/Dispatcher/Dispatcher.d.ts +20 -0
  232. package/build/module/src/sdk/scanner/Dispatcher/Dispatcher.js +135 -0
  233. package/build/module/src/sdk/scanner/Dispatcher/DispatcherResponse.d.ts +12 -0
  234. package/build/module/src/sdk/scanner/Dispatcher/DispatcherResponse.js +30 -0
  235. package/build/module/src/sdk/scanner/Dispatcher/GlobalControllerAborter.d.ts +10 -0
  236. package/build/module/src/sdk/scanner/Dispatcher/GlobalControllerAborter.js +26 -0
  237. package/build/module/src/sdk/scanner/Fingerprint.d.ts +16 -0
  238. package/build/module/src/sdk/scanner/Fingerprint.js +54 -0
  239. package/build/module/src/sdk/scanner/Scannable/ScannableItem.d.ts +15 -0
  240. package/build/module/src/sdk/scanner/Scannable/ScannableItem.js +24 -0
  241. package/build/module/src/sdk/scanner/Scanner.d.ts +46 -0
  242. package/build/module/src/sdk/scanner/Scanner.js +275 -0
  243. package/build/module/src/sdk/scanner/ScannerCfg.d.ts +16 -0
  244. package/build/module/src/sdk/scanner/ScannerCfg.js +27 -0
  245. package/build/module/src/sdk/scanner/ScannerTypes.d.ts +121 -0
  246. package/build/module/src/sdk/scanner/ScannerTypes.js +46 -0
  247. package/build/module/src/sdk/scanner/WfpProvider/FingerprintPackage.d.ts +9 -0
  248. package/build/module/src/sdk/scanner/WfpProvider/FingerprintPackage.js +28 -0
  249. package/build/module/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +20 -0
  250. package/build/module/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +486 -0
  251. package/build/module/src/sdk/scanner/WfpProvider/WfpProvider.d.ts +35 -0
  252. package/build/module/src/sdk/scanner/WfpProvider/WfpProvider.js +65 -0
  253. package/build/module/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.d.ts +21 -0
  254. package/build/module/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.js +132 -0
  255. package/build/module/src/sdk/tree/File.d.ts +7 -0
  256. package/build/module/src/sdk/tree/File.js +19 -0
  257. package/build/module/src/sdk/tree/Filters/DecompressionFilter.d.ts +7 -0
  258. package/build/module/src/sdk/tree/Filters/DecompressionFilter.js +18 -0
  259. package/build/module/src/sdk/tree/Filters/DependencyFilter.d.ts +7 -0
  260. package/build/module/src/sdk/tree/Filters/DependencyFilter.js +14 -0
  261. package/build/module/src/sdk/tree/Filters/Filter.d.ts +4 -0
  262. package/build/module/src/sdk/tree/Filters/Filter.js +3 -0
  263. package/build/module/src/sdk/tree/Filters/ScanFilter.d.ts +7 -0
  264. package/build/module/src/sdk/tree/Filters/ScanFilter.js +14 -0
  265. package/build/module/src/sdk/tree/Folder.d.ts +12 -0
  266. package/build/module/src/sdk/tree/Folder.js +53 -0
  267. package/build/module/src/sdk/tree/Node.d.ts +17 -0
  268. package/build/module/src/sdk/tree/Node.js +22 -0
  269. package/build/module/src/sdk/tree/Tree.d.ts +18 -0
  270. package/build/module/src/sdk/tree/Tree.js +64 -0
  271. package/build/module/tsconfig.module.tsbuildinfo +126 -123
  272. package/package-lock.json +17117 -0
  273. package/package.json +1 -1
  274. package/src/cli/bin/cli-bin.ts +7 -4
  275. package/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.ts +10 -9
  276. package/src/sdk/scanner/Dispatcher/Dispatcher.ts +5 -2
  277. package/src/sdk/scanner/Fingerprint.ts +6 -8
  278. package/src/sdk/scanner/Scanner.ts +4 -0
  279. package/src/sdk/scanner/ScannerCfg.ts +8 -2
  280. package/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.ts +7 -2
  281. package/yarn.lock +4977 -4864
@@ -0,0 +1,139 @@
1
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2
+ return (mod && mod.__esModule) ? mod : { "default": mod };
3
+ };
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.WfpSplitter = void 0;
6
+ const WfpProvider_1 = require("../WfpProvider");
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const ScannerCfg_1 = require("../../ScannerCfg");
9
+ //Regex find paths from wfp string
10
+ class WfpSplitter extends WfpProvider_1.WfpProvider {
11
+ constructor(scannerCfg = new ScannerCfg_1.ScannerCfg()) {
12
+ super();
13
+ this.scannerCfg = scannerCfg;
14
+ }
15
+ start(params) {
16
+ this.sendLog('[ SCANNER ]: WFP Splitter starting...');
17
+ this.init();
18
+ this.pendingFiles = true;
19
+ this.chunkDataRead = '';
20
+ this.fingerprints = [];
21
+ this.continue = true;
22
+ this.fingerprintIndex = 0;
23
+ this.ignoreFiles = new Set(params === null || params === void 0 ? void 0 : params.fileList);
24
+ const wfpPath = params.wfpPath;
25
+ if (!wfpPath)
26
+ this.sendError('WFP path is not defined');
27
+ this.wfpStream = fs_1.default.createReadStream(wfpPath, { encoding: 'utf8' });
28
+ this.setStreamListeners();
29
+ return this.finishPromise;
30
+ }
31
+ stop() {
32
+ this.continue = false;
33
+ }
34
+ pause() {
35
+ this.sendLog('[ SCANNER ]: WFP Splitter paused...');
36
+ this.continue = false;
37
+ }
38
+ resume() {
39
+ this.sendLog('[ SCANNER ]: WFP Splitter resumed...');
40
+ this.continue = true;
41
+ this.sendFingerprints();
42
+ this.streamBufferFlush();
43
+ }
44
+ sendFingerprints() {
45
+ //The timer allows the main thread not to be blocked while sending wfps
46
+ if (this.timer === undefined) {
47
+ this.timer = setInterval(() => {
48
+ if (this.fingerprintIndex < this.fingerprints.length && this.continue) {
49
+ this.fingerprintPacker(this.fingerprints[this.fingerprintIndex]);
50
+ this.fingerprintIndex++;
51
+ }
52
+ else {
53
+ this.stopSendFingerprints();
54
+ }
55
+ });
56
+ }
57
+ }
58
+ stopSendFingerprints() {
59
+ clearInterval(this.timer);
60
+ this.timer = undefined;
61
+ if (this.fingerprintIndex === this.fingerprints.length) {
62
+ this.finishWinnowing();
63
+ this.sendLog('[ SCANNER ]: WFP Splitter finished...');
64
+ }
65
+ }
66
+ streamBufferFlush() {
67
+ var _a;
68
+ let ignoreFirstChunkOfFingerprint = false;
69
+ //Use a loop to make sure we read all currently available data
70
+ while (this.continue && null !== (this.chunkDataRead = this.wfpStream.read(1 * 1024 * 1024))) { // Read chunks of 1MB 1*1024*1024
71
+ /**** This part removes all the wfp that includes the paths inside this.ignoreFiles ****/
72
+ if (this.ignoreFiles.size > 0) {
73
+ // Removes fingerprints that are loose because the file=...... was removed in previous iteration
74
+ if (ignoreFirstChunkOfFingerprint) { //TODO: Test this scenario
75
+ //If there is no file= delete everything then
76
+ if (this.chunkDataRead.indexOf("file=") >= 0) {
77
+ this.chunkDataRead = this.chunkDataRead.substring(this.chunkDataRead.indexOf('file='));
78
+ ignoreFirstChunkOfFingerprint = false;
79
+ }
80
+ else
81
+ this.chunkDataRead = "";
82
+ }
83
+ const rWfpPath = new RegExp(/^file=\w+,\d+,(?<path>.+)$/gm);
84
+ //Search for paths in the wfp and compares with the ignorefiles set
85
+ //When there is a match the matched fingerprint is deleted on the fly
86
+ let result;
87
+ while ((result = rWfpPath.exec(this.chunkDataRead)) !== null) {
88
+ if (this.ignoreFiles.has((_a = result === null || result === void 0 ? void 0 : result.groups) === null || _a === void 0 ? void 0 : _a.path)) {
89
+ const indexDeleteFrom = result.index;
90
+ //TODO: Verify this condition
91
+ //If there is no next file= in the string, remove until end.
92
+ let indexDeleteTo = this.chunkDataRead.indexOf('file=', indexDeleteFrom + 1);
93
+ if (indexDeleteTo < 0) {
94
+ indexDeleteTo = this.chunkDataRead.length;
95
+ //After the deletion of a wfp there are no other file=, so then set ignoreFirstChunkOfFingerprint to true.
96
+ //In the next iteration, the next chunk of data will be fingerprints without a file=. So, this first part will be discarded.
97
+ ignoreFirstChunkOfFingerprint = true;
98
+ }
99
+ const first = this.chunkDataRead.substring(0, indexDeleteFrom);
100
+ const second = this.chunkDataRead.substring(indexDeleteTo, this.chunkDataRead.length);
101
+ this.chunkDataRead = first + second;
102
+ rWfpPath.lastIndex = 0; //Make sure we reset the state of the regex.
103
+ }
104
+ }
105
+ }
106
+ /**** This part removes all the wfp that includes the paths inside this.ignoreFiles ****/
107
+ /**** This part process a chunk of wfp and send the packages to the subscriber ****/
108
+ if (this.chunkDataRead.length) {
109
+ // Extract the first portion of the chunk until the first file=
110
+ // Then append the chunk to the last fingerprint.
111
+ if (!this.chunkDataRead.startsWith('file=')) {
112
+ const chunkOfData = this.chunkDataRead.substring(0, this.chunkDataRead.indexOf('file='));
113
+ this.fingerprints[this.fingerprints.length - 1] += chunkOfData;
114
+ }
115
+ this.fingerprints = [...this.fingerprints, ...this.splitFingerprints(this.chunkDataRead)];
116
+ this.sendFingerprints();
117
+ }
118
+ /**** This part process a chunk of wfp and send the packages to the subscriber ****/
119
+ }
120
+ }
121
+ setStreamListeners() {
122
+ this.wfpStream.on('readable', () => {
123
+ this.streamBufferFlush();
124
+ });
125
+ this.wfpStream.on('end', () => { });
126
+ }
127
+ splitFingerprints(chunkOfData) {
128
+ const reg = /file=/g;
129
+ const blocksIndex = [...((chunkOfData).matchAll(reg))].map(x => x.index);
130
+ const fingerprints = [];
131
+ for (let i = 0; i < blocksIndex.length; i++) {
132
+ const fingerprint = chunkOfData.substring(blocksIndex[i], blocksIndex[i + 1]);
133
+ fingerprints.push(fingerprint);
134
+ }
135
+ return fingerprints;
136
+ }
137
+ }
138
+ exports.WfpSplitter = WfpSplitter;
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ZwU3BsaXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL3NjYW5uZXIvV2ZwUHJvdmlkZXIvV2ZwU3BsaXR0ZXIvV2ZwU3BsaXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnREFBZ0U7QUFDaEUsNENBQW9CO0FBQ3BCLGlEQUE4QztBQUc5QyxrQ0FBa0M7QUFFbEMsTUFBYSxXQUFZLFNBQVEseUJBQVc7SUFnQjFDLFlBQVksVUFBVSxHQUFHLElBQUksdUJBQVUsRUFBRTtRQUN2QyxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFTSxLQUFLLENBQUMsTUFBeUI7UUFFcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1FBRXRELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsUUFBUSxDQUFDLENBQUM7UUFFN0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUUvQixJQUFJLENBQUMsT0FBTztZQUFFLElBQUksQ0FBQyxTQUFTLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUV4RCxJQUFJLENBQUMsU0FBUyxHQUFHLFlBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUUxQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVNLElBQUk7UUFDVCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxPQUFPLENBQUMscUNBQXFDLENBQUMsQ0FBQTtRQUNuRCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxPQUFPLENBQUMsc0NBQXNDLENBQUMsQ0FBQTtRQUNwRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBR08sZ0JBQWdCO1FBQ3RCLHVFQUF1RTtRQUN2RSxJQUFHLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtnQkFDNUIsSUFBRyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtvQkFDcEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztvQkFDakUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7aUJBQ3pCO3FCQUFNO29CQUNMLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2lCQUM3QjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFHSCxDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7UUFDdkIsSUFBRyxJQUFJLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUM7WUFDcEQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsdUNBQXVDLENBQUMsQ0FBQztTQUN2RDtJQUNILENBQUM7SUFFTyxpQkFBaUI7O1FBRXZCLElBQUksNkJBQTZCLEdBQUcsS0FBSyxDQUFDO1FBRzFDLDhEQUE4RDtRQUM5RCxPQUFPLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRyxpQ0FBaUM7WUFFaEkseUZBQXlGO1lBQ3pGLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFO2dCQUU3QixnR0FBZ0c7Z0JBQ2hHLElBQUksNkJBQTZCLEVBQUUsRUFBRSwwQkFBMEI7b0JBQzdELDZDQUE2QztvQkFDN0MsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7d0JBQzVDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQzt3QkFDdkYsNkJBQTZCLEdBQUcsS0FBSyxDQUFDO3FCQUN2Qzs7d0JBQU0sSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7aUJBQ2hDO2dCQUdELE1BQU0sUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUE7Z0JBQzNELG1FQUFtRTtnQkFDbkUscUVBQXFFO2dCQUNyRSxJQUFJLE1BQU0sQ0FBQztnQkFDWCxPQUFPLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFO29CQUM1RCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxPQUFDLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxNQUFNLDBDQUFFLElBQUksQ0FBQyxFQUFFO3dCQUM5QyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFBO3dCQUVwQyw2QkFBNkI7d0JBQzdCLDREQUE0RDt3QkFDNUQsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQTt3QkFDNUUsSUFBSSxhQUFhLEdBQUcsQ0FBQyxFQUFFOzRCQUNyQixhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7NEJBRTFDLDBHQUEwRzs0QkFDMUcsNEhBQTRIOzRCQUM1SCw2QkFBNkIsR0FBRyxJQUFJLENBQUM7eUJBQ3RDO3dCQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsQ0FBQzt3QkFDL0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQ3RGLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxHQUFHLE1BQU0sQ0FBQzt3QkFDcEMsUUFBUSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyw0Q0FBNEM7cUJBQ3JFO2lCQUNGO2FBQ0Y7WUFDRCx5RkFBeUY7WUFJekYsb0ZBQW9GO1lBQ3BGLElBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUM7Z0JBRTNCLCtEQUErRDtnQkFDL0QsaURBQWlEO2dCQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUc7b0JBQzVDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO29CQUN6RixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQztpQkFDOUQ7Z0JBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztnQkFDMUYsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7YUFDekI7WUFDRCxvRkFBb0Y7U0FFckY7SUFDSCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFdBQWtCO1FBQzFDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQztRQUNyQixNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN4QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRyxDQUFDLEVBQUUsRUFBRTtZQUM1QyxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUUsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNoQztRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7Q0FHRjtBQTlLRCxrQ0E4S0MifQ==
@@ -0,0 +1,7 @@
1
+ import Node from './Node';
2
+ import { Filter } from './Filters/Filter';
3
+ export default class File extends Node {
4
+ constructor(name: string, path: string);
5
+ getNode(path: string): Node;
6
+ getFiles(f: Filter): Array<string>;
7
+ }
@@ -0,0 +1,24 @@
1
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2
+ return (mod && mod.__esModule) ? mod : { "default": mod };
3
+ };
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ const Node_1 = require("./Node");
6
+ const Node_2 = __importDefault(require("./Node"));
7
+ class File extends Node_2.default {
8
+ constructor(name, path) {
9
+ super(name, path);
10
+ this.type = Node_1.NodeType.FILE;
11
+ }
12
+ getNode(path) {
13
+ if (path === this.getPath())
14
+ return this;
15
+ return null;
16
+ }
17
+ getFiles(f) {
18
+ if (!f || !f.evaluate(this))
19
+ return [];
20
+ return [this.getPath()];
21
+ }
22
+ }
23
+ exports.default = File;
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvdHJlZS9GaWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpQ0FBa0M7QUFDbEMsa0RBQTBCO0FBSTFCLE1BQXFCLElBQUssU0FBUSxjQUFJO0lBQ3BDLFlBQVksSUFBWSxFQUFFLElBQVk7UUFDcEMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLGVBQVEsQ0FBQyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVNLE9BQU8sQ0FBQyxJQUFZO1FBQ3pCLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN6QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxRQUFRLENBQUMsQ0FBUztRQUN2QixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN2QyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQztDQUVGO0FBaEJELHVCQWdCQyJ9
@@ -0,0 +1,7 @@
1
+ import { Filter } from './Filter';
2
+ import Node from '../Node';
3
+ export declare class DecompressionFilter extends Filter {
4
+ private supportedFileExtension;
5
+ constructor(filterName: string);
6
+ evaluate(node: Node): boolean;
7
+ }
@@ -0,0 +1,21 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.DecompressionFilter = void 0;
3
+ const Filter_1 = require("./Filter");
4
+ const Node_1 = require("../Node");
5
+ const DecompressionManager_1 = require("../../Decompress/DecompressionManager");
6
+ class DecompressionFilter extends Filter_1.Filter {
7
+ constructor(filterName) {
8
+ super();
9
+ this.supportedFileExtension = new DecompressionManager_1.DecompressionManager().getSupportedFormats();
10
+ }
11
+ //Returns true if you want the file
12
+ evaluate(node) {
13
+ if (node.getType() == Node_1.NodeType.FOLDER)
14
+ return true;
15
+ if (this.supportedFileExtension.some(supportedFormat => node.getName().endsWith(supportedFormat)))
16
+ return true;
17
+ return false;
18
+ }
19
+ }
20
+ exports.DecompressionFilter = DecompressionFilter;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjb21wcmVzc2lvbkZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvdHJlZS9GaWx0ZXJzL0RlY29tcHJlc3Npb25GaWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxQ0FBa0M7QUFDbEMsa0NBQXlDO0FBQ3pDLGdGQUE2RTtBQUc3RSxNQUFhLG1CQUFvQixTQUFRLGVBQU07SUFJN0MsWUFBbUIsVUFBa0I7UUFDbkMsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSwyQ0FBb0IsRUFBRSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDakYsQ0FBQztJQUVELG1DQUFtQztJQUM1QixRQUFRLENBQUMsSUFBVTtRQUN4QixJQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxlQUFRLENBQUMsTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ2xELElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUMvRyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FFRjtBQWhCRCxrREFnQkMifQ==
@@ -0,0 +1,7 @@
1
+ import { Filter } from './Filter';
2
+ import Node from '../Node';
3
+ export declare class DependencyFilter extends Filter {
4
+ private filter;
5
+ constructor(filterName: string);
6
+ evaluate(node: Node): boolean;
7
+ }
@@ -0,0 +1,17 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.DependencyFilter = void 0;
3
+ const Filter_1 = require("./Filter");
4
+ const filtering_1 = require("../../filters/filtering");
5
+ const DefaultFilterForDependencies_1 = require("../../filters/DefaultFilterForDependencies");
6
+ class DependencyFilter extends Filter_1.Filter {
7
+ constructor(filterName) {
8
+ super();
9
+ this.filter = new filtering_1.FilterList(filterName);
10
+ this.filter.load(DefaultFilterForDependencies_1.defaultFilterForDependencies);
11
+ }
12
+ evaluate(node) {
13
+ return this.filter.include(node.getPath());
14
+ }
15
+ }
16
+ exports.DependencyFilter = DependencyFilter;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeUZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvdHJlZS9GaWx0ZXJzL0RlcGVuZGVuY3lGaWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxQ0FBa0M7QUFFbEMsdURBQXFEO0FBQ3JELDZGQUVvRDtBQUVwRCxNQUFhLGdCQUFpQixTQUFRLGVBQU07SUFJMUMsWUFBbUIsVUFBa0I7UUFDbkMsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksc0JBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywyREFBMEMsQ0FBQyxDQUFBO0lBQzlELENBQUM7SUFFTSxRQUFRLENBQUMsSUFBVTtRQUN4QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FFRjtBQWRELDRDQWNDIn0=
@@ -0,0 +1,4 @@
1
+ import Node from '../Node';
2
+ export declare abstract class Filter {
3
+ abstract evaluate(node: Node): boolean;
4
+ }
@@ -0,0 +1,6 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.Filter = void 0;
3
+ class Filter {
4
+ }
5
+ exports.Filter = Filter;
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay90cmVlL0ZpbHRlcnMvRmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsTUFBc0IsTUFBTTtDQUUzQjtBQUZELHdCQUVDIn0=
@@ -0,0 +1,7 @@
1
+ import { Filter } from './Filter';
2
+ import Node from '../Node';
3
+ export declare class ScanFilter extends Filter {
4
+ private filter;
5
+ constructor(filterName: string);
6
+ evaluate(node: Node): boolean;
7
+ }
@@ -0,0 +1,17 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.ScanFilter = void 0;
3
+ const Filter_1 = require("./Filter");
4
+ const filtering_1 = require("../../filters/filtering");
5
+ const DefaultFilterForScanning_1 = require("../../filters/DefaultFilterForScanning");
6
+ class ScanFilter extends Filter_1.Filter {
7
+ constructor(filterName) {
8
+ super();
9
+ this.filter = new filtering_1.FilterList(filterName);
10
+ this.filter.load(DefaultFilterForScanning_1.defaultFilterForScanning);
11
+ }
12
+ evaluate(node) {
13
+ return this.filter.include(node.getPath());
14
+ }
15
+ }
16
+ exports.ScanFilter = ScanFilter;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NhbkZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvdHJlZS9GaWx0ZXJzL1NjYW5GaWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxQ0FBa0M7QUFFbEMsdURBQXFEO0FBQ3JELHFGQUVnRDtBQUVoRCxNQUFhLFVBQVcsU0FBUSxlQUFNO0lBSXBDLFlBQW1CLFVBQWtCO1FBQ25DLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLHNCQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbURBQXNDLENBQUMsQ0FBQTtJQUMxRCxDQUFDO0lBRU0sUUFBUSxDQUFDLElBQVU7UUFDeEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBRUY7QUFkRCxnQ0FjQyJ9
@@ -0,0 +1,12 @@
1
+ import Node from './Node';
2
+ import { Filter } from './Filters/Filter';
3
+ export default class Folder extends Node {
4
+ private children;
5
+ constructor(path: string, label: string);
6
+ addChild(node: Node): void;
7
+ getChildren(): Node[];
8
+ getNode(path: string): Node;
9
+ private checkMyPath;
10
+ getFiles(f?: Filter): Array<string>;
11
+ removeChildren(): void;
12
+ }
@@ -0,0 +1,58 @@
1
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2
+ return (mod && mod.__esModule) ? mod : { "default": mod };
3
+ };
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ const Node_1 = require("./Node");
6
+ const Node_2 = __importDefault(require("./Node"));
7
+ class Folder extends Node_2.default {
8
+ constructor(path, label) {
9
+ super(path, label);
10
+ this.type = Node_1.NodeType.FOLDER;
11
+ this.children = [];
12
+ }
13
+ addChild(node) {
14
+ this.children.push(node);
15
+ }
16
+ getChildren() {
17
+ return this.children;
18
+ }
19
+ getNode(path) {
20
+ if (!this.checkMyPath(path))
21
+ return null;
22
+ if (path === this.getPath())
23
+ return this;
24
+ for (const child of this.children) {
25
+ const node = child.getNode(path);
26
+ if (node !== null)
27
+ return node;
28
+ }
29
+ return null;
30
+ }
31
+ // Returns true only if my path is contained in the path (parameter)
32
+ checkMyPath(path) {
33
+ if (!path.includes(this.getPath()))
34
+ return false;
35
+ // Only if first filter is passed.
36
+ const myPathExploded = this.getPath().split('/');
37
+ const pathExploded = path.split('/');
38
+ for (let i = 0; i < myPathExploded.length; i += 1) {
39
+ if (myPathExploded[i] !== pathExploded[i])
40
+ return false;
41
+ }
42
+ return true;
43
+ }
44
+ getFiles(f) {
45
+ if (!f || !f.evaluate(this))
46
+ return [];
47
+ const files = [];
48
+ this.children.forEach((child) => {
49
+ files.push(...child.getFiles(f));
50
+ });
51
+ return files;
52
+ }
53
+ removeChildren() {
54
+ this.children = [];
55
+ }
56
+ }
57
+ exports.default = Folder;
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9sZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay90cmVlL0ZvbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsaUNBQWtDO0FBQ2xDLGtEQUEwQjtBQUcxQixNQUFxQixNQUFPLFNBQVEsY0FBSTtJQUd0QyxZQUFZLElBQVksRUFBRSxLQUFhO1FBQ3JDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxlQUFRLENBQUMsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxRQUFRLENBQUMsSUFBVTtRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU0sV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVNLE9BQU8sQ0FBQyxJQUFZO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3pDLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN6QyxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQyxJQUFJLElBQUksS0FBSyxJQUFJO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1NBQ2hDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsb0VBQW9FO0lBQzVELFdBQVcsQ0FBQyxJQUFZO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2pELGtDQUFrQztRQUNsQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNqRCxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1NBQ3pEO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sUUFBUSxDQUFDLENBQVU7UUFDeEIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFdkMsTUFBTSxLQUFLLEdBQWtCLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzlCLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQXBERCx5QkFvREMifQ==
@@ -0,0 +1,17 @@
1
+ import { Filter } from './Filters/Filter';
2
+ export default abstract class Node {
3
+ protected type: NodeType;
4
+ protected path: string;
5
+ protected label: string;
6
+ protected action: string;
7
+ constructor(path: string, label: string);
8
+ abstract getNode(path: string): Node;
9
+ abstract getFiles(f: Filter): Array<string>;
10
+ getName(): string;
11
+ getPath(): string;
12
+ getType(): NodeType;
13
+ }
14
+ export declare enum NodeType {
15
+ FOLDER = "FOLDER",
16
+ FILE = "FILE"
17
+ }
@@ -0,0 +1,25 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.NodeType = void 0;
3
+ class Node {
4
+ constructor(path, label) {
5
+ this.path = path;
6
+ this.label = label;
7
+ }
8
+ getName() {
9
+ return this.label;
10
+ }
11
+ getPath() {
12
+ return this.path;
13
+ }
14
+ getType() {
15
+ return this.type;
16
+ }
17
+ }
18
+ exports.default = Node;
19
+ var NodeType;
20
+ (function (NodeType) {
21
+ NodeType["FOLDER"] = "FOLDER";
22
+ NodeType["FILE"] = "FILE";
23
+ })(NodeType = exports.NodeType || (exports.NodeType = {}));
24
+ ;
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvdHJlZS9Ob2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EsTUFBOEIsSUFBSTtJQVNoQyxZQUFZLElBQVksRUFBRSxLQUFhO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFNTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7Q0FFRjtBQTlCRCx1QkE4QkM7QUFFRCxJQUFZLFFBR1g7QUFIRCxXQUFZLFFBQVE7SUFDbEIsNkJBQWlCLENBQUE7SUFDakIseUJBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxRQUFRLEdBQVIsZ0JBQVEsS0FBUixnQkFBUSxRQUduQjtBQUFBLENBQUMifQ==
@@ -0,0 +1,18 @@
1
+ import Node from './Node';
2
+ import Folder from './Folder';
3
+ import { Filter } from './Filters/Filter';
4
+ export declare class Tree {
5
+ private rootFolder;
6
+ private rootName;
7
+ private rootPath;
8
+ private filter;
9
+ constructor(path: string);
10
+ build(): Node;
11
+ private buildRec;
12
+ private dirFirstFileAfter;
13
+ loadTree(data: any): void;
14
+ private deserialize;
15
+ getRootFolder(): Folder;
16
+ getRootPath(): string;
17
+ getFileList(f?: Filter): Array<string>;
18
+ }
@@ -0,0 +1,70 @@
1
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2
+ return (mod && mod.__esModule) ? mod : { "default": mod };
3
+ };
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.Tree = void 0;
6
+ const fs_1 = __importDefault(require("fs"));
7
+ const path_1 = __importDefault(require("path"));
8
+ const Node_1 = require("./Node");
9
+ const File_1 = __importDefault(require("./File"));
10
+ const Folder_1 = __importDefault(require("./Folder"));
11
+ class Tree {
12
+ constructor(path) {
13
+ const pathParts = path.split(path_1.default.sep);
14
+ this.rootName = path_1.default.basename(path);
15
+ this.rootPath = path;
16
+ this.rootFolder = new Folder_1.default('/', this.rootName);
17
+ }
18
+ build() {
19
+ this.rootFolder.removeChildren();
20
+ this.buildRec(this.rootPath, this.rootFolder);
21
+ return this.rootFolder;
22
+ }
23
+ buildRec(path, root) {
24
+ const dirEntries = fs_1.default
25
+ .readdirSync(path, { withFileTypes: true }) // Returns a list of files and folders
26
+ .sort(this.dirFirstFileAfter)
27
+ .filter((dirent) => !dirent.isSymbolicLink());
28
+ for (const dirEntry of dirEntries) {
29
+ const fullPath = `${path}/${dirEntry.name}`;
30
+ const relativePath = fullPath.replace(this.rootPath, '');
31
+ if (dirEntry.isDirectory()) {
32
+ const f = new Folder_1.default(fullPath, dirEntry.name);
33
+ const subTree = this.buildRec(`${path}/${dirEntry.name}`, f);
34
+ root.addChild(subTree);
35
+ }
36
+ else
37
+ root.addChild(new File_1.default(fullPath, dirEntry.name));
38
+ }
39
+ return root;
40
+ }
41
+ // This is a sorter that will sort folders before files in alphabetical order.
42
+ dirFirstFileAfter(a, b) {
43
+ if (!a.isDirectory() && b.isDirectory())
44
+ return 1;
45
+ if (a.isDirectory() && !b.isDirectory())
46
+ return -1;
47
+ return 0;
48
+ }
49
+ loadTree(data) {
50
+ this.rootFolder = this.deserialize(data);
51
+ }
52
+ deserialize(data) {
53
+ if (data.type === Node_1.NodeType.FILE) {
54
+ return Object.assign(Object.create(File_1.default.prototype), data);
55
+ }
56
+ const children = data.children.map((child) => this.deserialize(child));
57
+ return Object.assign(Object.create(Folder_1.default.prototype), Object.assign(Object.assign({}, data), { children }));
58
+ }
59
+ getRootFolder() {
60
+ return this.rootFolder;
61
+ }
62
+ getRootPath() {
63
+ return this.rootPath;
64
+ }
65
+ getFileList(f) {
66
+ return this.rootFolder.getFiles(f);
67
+ }
68
+ }
69
+ exports.Tree = Tree;
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvdHJlZS9UcmVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNENBQW9CO0FBQ3BCLGdEQUEyQjtBQUczQixpQ0FBa0M7QUFFbEMsa0RBQTBCO0FBQzFCLHNEQUE4QjtBQUk5QixNQUFhLElBQUk7SUFTZixZQUFZLElBQVk7UUFDdEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxjQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxnQkFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxRQUFRLENBQUMsSUFBWSxFQUFFLElBQVk7UUFDekMsTUFBTSxVQUFVLEdBQUcsWUFBRTthQUNsQixXQUFXLENBQUMsSUFBSSxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsc0NBQXNDO2FBQ2pGLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7YUFDNUIsTUFBTSxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBRXJELEtBQUssTUFBTSxRQUFRLElBQUksVUFBVSxFQUFFO1lBQ2pDLE1BQU0sUUFBUSxHQUFHLEdBQUcsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1QyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDekQsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFLEVBQUU7Z0JBQzFCLE1BQU0sQ0FBQyxHQUFXLElBQUksZ0JBQU0sQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN0RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN4Qjs7Z0JBQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGNBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDekQ7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCw4RUFBOEU7SUFDdEUsaUJBQWlCLENBQUMsQ0FBTSxFQUFFLENBQU07UUFDdEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFO1lBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNuRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTSxRQUFRLENBQUMsSUFBUztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFXLENBQUM7SUFDckQsQ0FBQztJQUVPLFdBQVcsQ0FBQyxJQUFTO1FBQzNCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxlQUFRLENBQUMsSUFBSSxFQUFFO1lBQy9CLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUMzRDtRQUNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDNUUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsa0NBQU8sSUFBSSxLQUFFLFFBQVEsSUFBRyxDQUFDO0lBQy9FLENBQUM7SUFFTSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRU0sV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxDQUFVO1FBQzNCLE9BQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNGO0FBdEVELG9CQXNFQyJ9