scanoss 0.7.5 → 0.7.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. package/.idea/workspace.xml +64 -47
  2. package/.nyc_output/3da9f448-90e4-4399-887b-e4fd1b8d7052.json +1 -0
  3. package/.nyc_output/processinfo/3da9f448-90e4-4399-887b-e4fd1b8d7052.json +1 -0
  4. package/.nyc_output/processinfo/index.json +1 -0
  5. package/build/main/cli/bin/cli-bin.d.ts +2 -1
  6. package/build/main/cli/bin/cli-bin.js +10 -2
  7. package/build/main/index.d.ts +2 -0
  8. package/build/main/index.js +3 -1
  9. package/build/main/package.json +120 -0
  10. package/build/main/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +1 -1
  11. package/build/main/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +4 -4
  12. package/build/main/sdk/FileCount/FileCount.d.ts +6 -0
  13. package/build/main/sdk/FileCount/FileCount.js +88 -0
  14. package/build/main/sdk/FileCount/FileCountFilter.d.ts +2 -0
  15. package/build/main/sdk/FileCount/FileCountFilter.js +10 -0
  16. package/build/main/sdk/FileCount/Interfaces.d.ts +19 -0
  17. package/build/main/sdk/FileCount/Interfaces.js +8 -0
  18. package/build/main/sdk/Filtering/DefaultFilterForDependencies.d.ts +2 -0
  19. package/build/main/sdk/Filtering/DefaultFilterForDependencies.js +144 -0
  20. package/build/main/sdk/Filtering/DefaultFilterForScanning.d.ts +2 -0
  21. package/build/main/sdk/Filtering/DefaultFilterForScanning.js +193 -0
  22. package/build/main/sdk/Filtering/Filtering.d.ts +80 -0
  23. package/build/main/sdk/Filtering/Filtering.js +259 -0
  24. package/build/main/sdk/scanner/Dispatcher/Dispatcher.js +5 -2
  25. package/build/main/sdk/scanner/ScannerCfg.js +3 -3
  26. package/build/main/sdk/tree/Filters/DependencyFilter.js +4 -4
  27. package/build/main/sdk/tree/Filters/ScanFilter.js +4 -4
  28. package/build/main/src/cli/bin/cli-bin.d.ts +2 -0
  29. package/build/main/src/cli/bin/cli-bin.js +68 -0
  30. package/build/main/src/cli/commands/dep.d.ts +1 -0
  31. package/build/main/src/cli/commands/dep.js +38 -0
  32. package/build/main/src/cli/commands/helpers.d.ts +2 -0
  33. package/build/main/src/cli/commands/helpers.js +25 -0
  34. package/build/main/src/cli/commands/scan.d.ts +1 -0
  35. package/build/main/src/cli/commands/scan.js +138 -0
  36. package/build/main/src/cli/commands/wfp.d.ts +1 -0
  37. package/build/main/src/cli/commands/wfp.js +54 -0
  38. package/build/main/src/index.d.ts +14 -0
  39. package/build/main/src/index.js +30 -0
  40. package/build/main/src/sdk/DataLayer/DataLayerTypes.d.ts +108 -0
  41. package/build/main/src/sdk/DataLayer/DataLayerTypes.js +5 -0
  42. package/build/main/src/sdk/DataLayer/DataProviderManager.d.ts +7 -0
  43. package/build/main/src/sdk/DataLayer/DataProviderManager.js +24 -0
  44. package/build/main/src/sdk/DataLayer/DataProviders/ComponentDataProvider.d.ts +13 -0
  45. package/build/main/src/sdk/DataLayer/DataProviders/ComponentDataProvider.js +164 -0
  46. package/build/main/src/sdk/DataLayer/DataProviders/DependencyDataProvider.d.ts +9 -0
  47. package/build/main/src/sdk/DataLayer/DataProviders/DependencyDataProvider.js +37 -0
  48. package/build/main/src/sdk/DataLayer/DataProviders/LicenseDataProvider.d.ts +18 -0
  49. package/build/main/src/sdk/DataLayer/DataProviders/LicenseDataProvider.js +148 -0
  50. package/build/main/src/sdk/DataLayer/DataProviders/SummaryDataProvider.d.ts +11 -0
  51. package/build/main/src/sdk/DataLayer/DataProviders/SummaryDataProvider.js +33 -0
  52. package/build/main/src/sdk/Decompress/DecompressionManager.d.ts +12 -0
  53. package/build/main/src/sdk/Decompress/DecompressionManager.js +73 -0
  54. package/build/main/src/sdk/Decompress/Decompressor/DecompressTgz.d.ts +5 -0
  55. package/build/main/src/sdk/Decompress/Decompressor/DecompressTgz.js +22 -0
  56. package/build/main/src/sdk/Decompress/Decompressor/DecompressZips.d.ts +5 -0
  57. package/build/main/src/sdk/Decompress/Decompressor/DecompressZips.js +24 -0
  58. package/build/main/src/sdk/Decompress/Decompressor/Decompressor.d.ts +10 -0
  59. package/build/main/src/sdk/Decompress/Decompressor/Decompressor.js +18 -0
  60. package/build/main/src/sdk/Dependencies/DependencyScanner.d.ts +11 -0
  61. package/build/main/src/sdk/Dependencies/DependencyScanner.js +96 -0
  62. package/build/main/src/sdk/Dependencies/DependencyScannerCfg.d.ts +4 -0
  63. package/build/main/src/sdk/Dependencies/DependencyScannerCfg.js +10 -0
  64. package/build/main/src/sdk/Dependencies/DependencyTypes.d.ts +21 -0
  65. package/build/main/src/sdk/Dependencies/DependencyTypes.js +2 -0
  66. package/build/main/src/sdk/Dependencies/LocalDependency/DependencyTypes.d.ts +16 -0
  67. package/build/main/src/sdk/Dependencies/LocalDependency/DependencyTypes.js +2 -0
  68. package/build/main/src/sdk/Dependencies/LocalDependency/LocalDependency.d.ts +8 -0
  69. package/build/main/src/sdk/Dependencies/LocalDependency/LocalDependency.js +102 -0
  70. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.d.ts +2 -0
  71. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.js +95 -0
  72. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/golangParser.d.ts +3 -0
  73. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/golangParser.js +97 -0
  74. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.d.ts +2 -0
  75. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.js +183 -0
  76. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/npmParser.d.ts +13 -0
  77. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/npmParser.js +187 -0
  78. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.d.ts +3 -0
  79. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.js +58 -0
  80. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/pyParser.d.ts +2 -0
  81. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/pyParser.js +64 -0
  82. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +3 -0
  83. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +132 -0
  84. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/utils.d.ts +2 -0
  85. package/build/main/src/sdk/Dependencies/LocalDependency/parsers/utils.js +19 -0
  86. package/build/main/src/sdk/Report/Report.d.ts +8 -0
  87. package/build/main/src/sdk/Report/Report.js +26 -0
  88. package/build/main/src/sdk/filters/DefaultFilterForDependencies.d.ts +16 -0
  89. package/build/main/src/sdk/filters/DefaultFilterForDependencies.js +145 -0
  90. package/build/main/src/sdk/filters/DefaultFilterForScanning.d.ts +16 -0
  91. package/build/main/src/sdk/filters/DefaultFilterForScanning.js +194 -0
  92. package/build/main/src/sdk/filters/filtering.d.ts +32 -0
  93. package/build/main/src/sdk/filters/filtering.js +228 -0
  94. package/build/main/src/sdk/grpc/GrpcDependencyService.d.ts +11 -0
  95. package/build/main/src/sdk/grpc/GrpcDependencyService.js +86 -0
  96. package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  97. package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +2 -0
  98. package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +1 -0
  99. package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.js +404 -0
  100. package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +39 -0
  101. package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +98 -0
  102. package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +1 -0
  103. package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1197 -0
  104. package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +19 -0
  105. package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +66 -0
  106. package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +1 -0
  107. package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +14 -0
  108. package/build/main/src/sdk/scanner/Dispatcher/DispatchableItem.d.ts +19 -0
  109. package/build/main/src/sdk/scanner/Dispatcher/DispatchableItem.js +43 -0
  110. package/build/main/src/sdk/scanner/Dispatcher/Dispatcher.d.ts +20 -0
  111. package/build/main/src/sdk/scanner/Dispatcher/Dispatcher.js +160 -0
  112. package/build/main/src/sdk/scanner/Dispatcher/DispatcherResponse.d.ts +12 -0
  113. package/build/main/src/sdk/scanner/Dispatcher/DispatcherResponse.js +33 -0
  114. package/build/main/src/sdk/scanner/Dispatcher/GlobalControllerAborter.d.ts +10 -0
  115. package/build/main/src/sdk/scanner/Dispatcher/GlobalControllerAborter.js +32 -0
  116. package/build/main/src/sdk/scanner/Fingerprint.d.ts +16 -0
  117. package/build/main/src/sdk/scanner/Fingerprint.js +78 -0
  118. package/build/main/src/sdk/scanner/Scannable/ScannableItem.d.ts +15 -0
  119. package/build/main/src/sdk/scanner/Scannable/ScannableItem.js +27 -0
  120. package/build/main/src/sdk/scanner/Scanner.d.ts +46 -0
  121. package/build/main/src/sdk/scanner/Scanner.js +283 -0
  122. package/build/main/src/sdk/scanner/ScannerCfg.d.ts +16 -0
  123. package/build/main/src/sdk/scanner/ScannerCfg.js +30 -0
  124. package/build/main/src/sdk/scanner/ScannerTypes.d.ts +121 -0
  125. package/build/main/src/sdk/scanner/ScannerTypes.js +48 -0
  126. package/build/main/src/sdk/scanner/WfpProvider/FingerprintPackage.d.ts +9 -0
  127. package/build/main/src/sdk/scanner/WfpProvider/FingerprintPackage.js +31 -0
  128. package/build/main/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +20 -0
  129. package/build/main/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +492 -0
  130. package/build/main/src/sdk/scanner/WfpProvider/WfpProvider.d.ts +35 -0
  131. package/build/main/src/sdk/scanner/WfpProvider/WfpProvider.js +68 -0
  132. package/build/main/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.d.ts +21 -0
  133. package/build/main/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.js +139 -0
  134. package/build/main/src/sdk/tree/File.d.ts +7 -0
  135. package/build/main/src/sdk/tree/File.js +24 -0
  136. package/build/main/src/sdk/tree/Filters/DecompressionFilter.d.ts +7 -0
  137. package/build/main/src/sdk/tree/Filters/DecompressionFilter.js +21 -0
  138. package/build/main/src/sdk/tree/Filters/DependencyFilter.d.ts +7 -0
  139. package/build/main/src/sdk/tree/Filters/DependencyFilter.js +17 -0
  140. package/build/main/src/sdk/tree/Filters/Filter.d.ts +4 -0
  141. package/build/main/src/sdk/tree/Filters/Filter.js +6 -0
  142. package/build/main/src/sdk/tree/Filters/ScanFilter.d.ts +7 -0
  143. package/build/main/src/sdk/tree/Filters/ScanFilter.js +17 -0
  144. package/build/main/src/sdk/tree/Folder.d.ts +12 -0
  145. package/build/main/src/sdk/tree/Folder.js +58 -0
  146. package/build/main/src/sdk/tree/Node.d.ts +17 -0
  147. package/build/main/src/sdk/tree/Node.js +25 -0
  148. package/build/main/src/sdk/tree/Tree.d.ts +18 -0
  149. package/build/main/src/sdk/tree/Tree.js +70 -0
  150. package/build/main/tsconfig.tsbuildinfo +190 -144
  151. package/build/module/cli/bin/cli-bin.d.ts +2 -1
  152. package/build/module/cli/bin/cli-bin.js +6 -2
  153. package/build/module/index.d.ts +2 -0
  154. package/build/module/index.js +3 -1
  155. package/build/module/package.json +120 -0
  156. package/build/module/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +1 -1
  157. package/build/module/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +4 -4
  158. package/build/module/sdk/FileCount/FileCount.d.ts +6 -0
  159. package/build/module/sdk/FileCount/FileCount.js +63 -0
  160. package/build/module/sdk/FileCount/FileCountFilter.d.ts +2 -0
  161. package/build/module/sdk/FileCount/FileCountFilter.js +8 -0
  162. package/build/module/sdk/FileCount/Interfaces.d.ts +19 -0
  163. package/build/module/sdk/FileCount/Interfaces.js +6 -0
  164. package/build/module/sdk/Filtering/DefaultFilterForDependencies.d.ts +2 -0
  165. package/build/module/sdk/Filtering/DefaultFilterForDependencies.js +142 -0
  166. package/build/module/sdk/Filtering/DefaultFilterForScanning.d.ts +2 -0
  167. package/build/module/sdk/Filtering/DefaultFilterForScanning.js +191 -0
  168. package/build/module/sdk/Filtering/Filtering.d.ts +80 -0
  169. package/build/module/sdk/Filtering/Filtering.js +229 -0
  170. package/build/module/sdk/scanner/Dispatcher/Dispatcher.js +5 -2
  171. package/build/module/sdk/scanner/ScannerCfg.js +3 -3
  172. package/build/module/sdk/tree/Filters/DependencyFilter.js +4 -4
  173. package/build/module/sdk/tree/Filters/ScanFilter.js +4 -4
  174. package/build/module/src/cli/bin/cli-bin.d.ts +2 -0
  175. package/build/module/src/cli/bin/cli-bin.js +67 -0
  176. package/build/module/src/cli/commands/dep.d.ts +1 -0
  177. package/build/module/src/cli/commands/dep.js +32 -0
  178. package/build/module/src/cli/commands/helpers.d.ts +2 -0
  179. package/build/module/src/cli/commands/helpers.js +19 -0
  180. package/build/module/src/cli/commands/scan.d.ts +1 -0
  181. package/build/module/src/cli/commands/scan.js +135 -0
  182. package/build/module/src/cli/commands/wfp.d.ts +1 -0
  183. package/build/module/src/cli/commands/wfp.js +48 -0
  184. package/build/module/src/index.d.ts +14 -0
  185. package/build/module/src/index.js +19 -0
  186. package/build/module/src/sdk/DataLayer/DataLayerTypes.d.ts +108 -0
  187. package/build/module/src/sdk/DataLayer/DataLayerTypes.js +5 -0
  188. package/build/module/src/sdk/DataLayer/DataProviderManager.d.ts +7 -0
  189. package/build/module/src/sdk/DataLayer/DataProviderManager.js +21 -0
  190. package/build/module/src/sdk/DataLayer/DataProviders/ComponentDataProvider.d.ts +13 -0
  191. package/build/module/src/sdk/DataLayer/DataProviders/ComponentDataProvider.js +159 -0
  192. package/build/module/src/sdk/DataLayer/DataProviders/DependencyDataProvider.d.ts +9 -0
  193. package/build/module/src/sdk/DataLayer/DataProviders/DependencyDataProvider.js +34 -0
  194. package/build/module/src/sdk/DataLayer/DataProviders/LicenseDataProvider.d.ts +18 -0
  195. package/build/module/src/sdk/DataLayer/DataProviders/LicenseDataProvider.js +145 -0
  196. package/build/module/src/sdk/DataLayer/DataProviders/SummaryDataProvider.d.ts +11 -0
  197. package/build/module/src/sdk/DataLayer/DataProviders/SummaryDataProvider.js +30 -0
  198. package/build/module/src/sdk/Decompress/DecompressionManager.d.ts +12 -0
  199. package/build/module/src/sdk/Decompress/DecompressionManager.js +67 -0
  200. package/build/module/src/sdk/Decompress/Decompressor/DecompressTgz.d.ts +5 -0
  201. package/build/module/src/sdk/Decompress/Decompressor/DecompressTgz.js +16 -0
  202. package/build/module/src/sdk/Decompress/Decompressor/DecompressZips.d.ts +5 -0
  203. package/build/module/src/sdk/Decompress/Decompressor/DecompressZips.js +18 -0
  204. package/build/module/src/sdk/Decompress/Decompressor/Decompressor.d.ts +10 -0
  205. package/build/module/src/sdk/Decompress/Decompressor/Decompressor.js +15 -0
  206. package/build/module/src/sdk/Dependencies/DependencyScanner.d.ts +11 -0
  207. package/build/module/src/sdk/Dependencies/DependencyScanner.js +93 -0
  208. package/build/module/src/sdk/Dependencies/DependencyScannerCfg.d.ts +4 -0
  209. package/build/module/src/sdk/Dependencies/DependencyScannerCfg.js +7 -0
  210. package/build/module/src/sdk/Dependencies/DependencyTypes.d.ts +21 -0
  211. package/build/module/src/sdk/Dependencies/DependencyTypes.js +2 -0
  212. package/build/module/src/sdk/Dependencies/LocalDependency/DependencyTypes.d.ts +16 -0
  213. package/build/module/src/sdk/Dependencies/LocalDependency/DependencyTypes.js +2 -0
  214. package/build/module/src/sdk/Dependencies/LocalDependency/LocalDependency.d.ts +8 -0
  215. package/build/module/src/sdk/Dependencies/LocalDependency/LocalDependency.js +96 -0
  216. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.d.ts +2 -0
  217. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.js +87 -0
  218. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/golangParser.d.ts +3 -0
  219. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/golangParser.js +88 -0
  220. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.d.ts +2 -0
  221. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.js +180 -0
  222. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/npmParser.d.ts +13 -0
  223. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/npmParser.js +175 -0
  224. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.d.ts +3 -0
  225. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.js +49 -0
  226. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/pyParser.d.ts +2 -0
  227. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/pyParser.js +57 -0
  228. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +3 -0
  229. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +125 -0
  230. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/utils.d.ts +2 -0
  231. package/build/module/src/sdk/Dependencies/LocalDependency/parsers/utils.js +15 -0
  232. package/build/module/src/sdk/Report/Report.d.ts +8 -0
  233. package/build/module/src/sdk/Report/Report.js +20 -0
  234. package/build/module/src/sdk/filters/DefaultFilterForDependencies.d.ts +16 -0
  235. package/build/module/src/sdk/filters/DefaultFilterForDependencies.js +143 -0
  236. package/build/module/src/sdk/filters/DefaultFilterForScanning.d.ts +16 -0
  237. package/build/module/src/sdk/filters/DefaultFilterForScanning.js +192 -0
  238. package/build/module/src/sdk/filters/filtering.d.ts +32 -0
  239. package/build/module/src/sdk/filters/filtering.js +203 -0
  240. package/build/module/src/sdk/grpc/GrpcDependencyService.d.ts +11 -0
  241. package/build/module/src/sdk/grpc/GrpcDependencyService.js +64 -0
  242. package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  243. package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +2 -0
  244. package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +1 -0
  245. package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.js +404 -0
  246. package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +39 -0
  247. package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +98 -0
  248. package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +1 -0
  249. package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1197 -0
  250. package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +19 -0
  251. package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +66 -0
  252. package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +1 -0
  253. package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +14 -0
  254. package/build/module/src/sdk/scanner/Dispatcher/DispatchableItem.d.ts +19 -0
  255. package/build/module/src/sdk/scanner/Dispatcher/DispatchableItem.js +37 -0
  256. package/build/module/src/sdk/scanner/Dispatcher/Dispatcher.d.ts +20 -0
  257. package/build/module/src/sdk/scanner/Dispatcher/Dispatcher.js +135 -0
  258. package/build/module/src/sdk/scanner/Dispatcher/DispatcherResponse.d.ts +12 -0
  259. package/build/module/src/sdk/scanner/Dispatcher/DispatcherResponse.js +30 -0
  260. package/build/module/src/sdk/scanner/Dispatcher/GlobalControllerAborter.d.ts +10 -0
  261. package/build/module/src/sdk/scanner/Dispatcher/GlobalControllerAborter.js +26 -0
  262. package/build/module/src/sdk/scanner/Fingerprint.d.ts +16 -0
  263. package/build/module/src/sdk/scanner/Fingerprint.js +54 -0
  264. package/build/module/src/sdk/scanner/Scannable/ScannableItem.d.ts +15 -0
  265. package/build/module/src/sdk/scanner/Scannable/ScannableItem.js +24 -0
  266. package/build/module/src/sdk/scanner/Scanner.d.ts +46 -0
  267. package/build/module/src/sdk/scanner/Scanner.js +275 -0
  268. package/build/module/src/sdk/scanner/ScannerCfg.d.ts +16 -0
  269. package/build/module/src/sdk/scanner/ScannerCfg.js +27 -0
  270. package/build/module/src/sdk/scanner/ScannerTypes.d.ts +121 -0
  271. package/build/module/src/sdk/scanner/ScannerTypes.js +46 -0
  272. package/build/module/src/sdk/scanner/WfpProvider/FingerprintPackage.d.ts +9 -0
  273. package/build/module/src/sdk/scanner/WfpProvider/FingerprintPackage.js +28 -0
  274. package/build/module/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +20 -0
  275. package/build/module/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +486 -0
  276. package/build/module/src/sdk/scanner/WfpProvider/WfpProvider.d.ts +35 -0
  277. package/build/module/src/sdk/scanner/WfpProvider/WfpProvider.js +65 -0
  278. package/build/module/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.d.ts +21 -0
  279. package/build/module/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.js +132 -0
  280. package/build/module/src/sdk/tree/File.d.ts +7 -0
  281. package/build/module/src/sdk/tree/File.js +19 -0
  282. package/build/module/src/sdk/tree/Filters/DecompressionFilter.d.ts +7 -0
  283. package/build/module/src/sdk/tree/Filters/DecompressionFilter.js +18 -0
  284. package/build/module/src/sdk/tree/Filters/DependencyFilter.d.ts +7 -0
  285. package/build/module/src/sdk/tree/Filters/DependencyFilter.js +14 -0
  286. package/build/module/src/sdk/tree/Filters/Filter.d.ts +4 -0
  287. package/build/module/src/sdk/tree/Filters/Filter.js +3 -0
  288. package/build/module/src/sdk/tree/Filters/ScanFilter.d.ts +7 -0
  289. package/build/module/src/sdk/tree/Filters/ScanFilter.js +14 -0
  290. package/build/module/src/sdk/tree/Folder.d.ts +12 -0
  291. package/build/module/src/sdk/tree/Folder.js +53 -0
  292. package/build/module/src/sdk/tree/Node.d.ts +17 -0
  293. package/build/module/src/sdk/tree/Node.js +22 -0
  294. package/build/module/src/sdk/tree/Tree.d.ts +18 -0
  295. package/build/module/src/sdk/tree/Tree.js +64 -0
  296. package/build/module/tsconfig.module.tsbuildinfo +190 -144
  297. package/package-lock.json +17116 -0
  298. package/package.json +3 -3
  299. package/src/cli/bin/cli-bin.ts +7 -4
  300. package/src/index.ts +5 -0
  301. package/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.ts +10 -9
  302. package/src/sdk/FileCount/FileCount.ts +81 -0
  303. package/src/sdk/FileCount/FileCountFilter.ts +14 -0
  304. package/src/sdk/FileCount/Interfaces.ts +23 -0
  305. package/src/sdk/Filtering/DefaultFilterForDependencies.ts +148 -0
  306. package/src/sdk/Filtering/DefaultFilterForScanning.ts +206 -0
  307. package/src/sdk/Filtering/Filtering.ts +273 -0
  308. package/src/sdk/scanner/Dispatcher/Dispatcher.ts +5 -2
  309. package/src/sdk/scanner/ScannerCfg.ts +2 -2
  310. package/src/sdk/tree/Filters/DependencyFilter.ts +4 -4
  311. package/src/sdk/tree/Filters/ScanFilter.ts +4 -4
  312. package/src/sdk/tree/Node.ts +1 -1
  313. package/src/sdk/tree/Tree.ts +1 -1
  314. package/tests/sdk/FileCount/FileCount.spec.ts +35 -0
  315. package/tests/sdk/FileCount/samples/16557/.y.ts +27 -0
  316. package/tests/sdk/FileCount/samples/16557/.z.ts +129 -0
  317. package/tests/sdk/FileCount/samples/16557/files/a.ts +195 -0
  318. package/tests/sdk/FileCount/samples/16557/files/b.ts +184 -0
  319. package/tests/sdk/FileCount/samples/16557/files/c.ts +47 -0
  320. package/tests/sdk/FileCount/samples/22036/files/a.ts +195 -0
  321. package/tests/sdk/FileCount/samples/22036/files/b.ts +184 -0
  322. package/tests/sdk/FileCount/samples/22036/files/c.ts +47 -0
  323. package/tests/sdk/FileCount/samples/22036/files/d.ts +48 -0
  324. package/tests/sdk/FileCount/samples/22036/y.ts +27 -0
  325. package/tests/sdk/FileCount/samples/22036/z.ts +129 -0
  326. package/yarn.lock +316 -203
  327. package/src/sdk/filters/DefaultFilterForDependencies.ts +0 -149
  328. package/src/sdk/filters/DefaultFilterForScanning.ts +0 -207
  329. package/src/sdk/filters/filtering.ts +0 -235
@@ -0,0 +1 @@
1
+ {"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/DataLayer/DataProviders/ComponentDataProvider.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/DataLayer/DataProviders/ComponentDataProvider.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":62}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":39}},"2":{"start":{"line":5,"column":8},"end":{"line":5,"column":45}},"3":{"start":{"line":6,"column":8},"end":{"line":6,"column":41}},"4":{"start":{"line":9,"column":8},"end":{"line":9,"column":37}},"5":{"start":{"line":12,"column":31},"end":{"line":12,"column":50}},"6":{"start":{"line":13,"column":8},"end":{"line":14,"column":34}},"7":{"start":{"line":14,"column":12},"end":{"line":14,"column":34}},"8":{"start":{"line":17,"column":8},"end":{"line":17,"column":71}},"9":{"start":{"line":18,"column":8},"end":{"line":18,"column":93}},"10":{"start":{"line":18,"column":68},"end":{"line":18,"column":91}},"11":{"start":{"line":19,"column":38},"end":{"line":19,"column":89}},"12":{"start":{"line":20,"column":43},"end":{"line":20,"column":98}},"13":{"start":{"line":21,"column":8},"end":{"line":27,"column":11}},"14":{"start":{"line":22,"column":12},"end":{"line":25,"column":25}},"15":{"start":{"line":23,"column":16},"end":{"line":23,"column":26}},"16":{"start":{"line":24,"column":17},"end":{"line":25,"column":25}},"17":{"start":{"line":25,"column":16},"end":{"line":25,"column":25}},"18":{"start":{"line":26,"column":12},"end":{"line":26,"column":21}},"19":{"start":{"line":28,"column":8},"end":{"line":29,"column":44}},"20":{"start":{"line":29,"column":12},"end":{"line":29,"column":44}},"21":{"start":{"line":30,"column":8},"end":{"line":30,"column":30}},"22":{"start":{"line":33,"column":31},"end":{"line":33,"column":33}},"23":{"start":{"line":34,"column":8},"end":{"line":35,"column":34}},"24":{"start":{"line":35,"column":12},"end":{"line":35,"column":34}},"25":{"start":{"line":36,"column":8},"end":{"line":68,"column":11}},"26":{"start":{"line":37,"column":12},"end":{"line":67,"column":15}},"27":{"start":{"line":38,"column":37},"end":{"line":38,"column":39}},"28":{"start":{"line":39,"column":16},"end":{"line":39,"column":51}},"29":{"start":{"line":40,"column":16},"end":{"line":40,"column":55}},"30":{"start":{"line":41,"column":16},"end":{"line":41,"column":57}},"31":{"start":{"line":42,"column":16},"end":{"line":42,"column":40}},"32":{"start":{"line":43,"column":16},"end":{"line":43,"column":43}},"33":{"start":{"line":44,"column":16},"end":{"line":44,"column":43}},"34":{"start":{"line":45,"column":16},"end":{"line":51,"column":23}},"35":{"start":{"line":47,"column":73},"end":{"line":47,"column":87}},"36":{"start":{"line":52,"column":42},"end":{"line":52,"column":110}},"37":{"start":{"line":52,"column":75},"end":{"line":52,"column":109}},"38":{"start":{"line":53,"column":16},"end":{"line":66,"column":17}},"39":{"start":{"line":54,"column":44},"end":{"line":54,"column":140}},"40":{"start":{"line":54,"column":87},"end":{"line":54,"column":139}},"41":{"start":{"line":55,"column":20},"end":{"line":62,"column":27}},"42":{"start":{"line":56,"column":24},"end":{"line":62,"column":27}},"43":{"start":{"line":65,"column":20},"end":{"line":65,"column":54}},"44":{"start":{"line":69,"column":8},"end":{"line":69,"column":30}},"45":{"start":{"line":73,"column":31},"end":{"line":73,"column":33}},"46":{"start":{"line":74,"column":8},"end":{"line":75,"column":34}},"47":{"start":{"line":75,"column":12},"end":{"line":75,"column":34}},"48":{"start":{"line":76,"column":8},"end":{"line":143,"column":9}},"49":{"start":{"line":76,"column":21},"end":{"line":76,"column":22}},"50":{"start":{"line":77,"column":12},"end":{"line":142,"column":13}},"51":{"start":{"line":79,"column":37},"end":{"line":79,"column":291}},"52":{"start":{"line":81,"column":37},"end":{"line":95,"column":17}},"53":{"start":{"line":90,"column":80},"end":{"line":90,"column":92}},"54":{"start":{"line":97,"column":16},"end":{"line":97,"column":100}},"55":{"start":{"line":98,"column":16},"end":{"line":102,"column":17}},"56":{"start":{"line":99,"column":20},"end":{"line":99,"column":63}},"57":{"start":{"line":100,"column":20},"end":{"line":100,"column":72}},"58":{"start":{"line":101,"column":20},"end":{"line":101,"column":77}},"59":{"start":{"line":104,"column":40},"end":{"line":104,"column":108}},"60":{"start":{"line":104,"column":73},"end":{"line":104,"column":107}},"61":{"start":{"line":105,"column":16},"end":{"line":138,"column":54}},"62":{"start":{"line":106,"column":42},"end":{"line":106,"column":130}},"63":{"start":{"line":106,"column":80},"end":{"line":106,"column":129}},"64":{"start":{"line":107,"column":20},"end":{"line":135,"column":21}},"65":{"start":{"line":109,"column":24},"end":{"line":112,"column":27}},"66":{"start":{"line":110,"column":28},"end":{"line":111,"column":69}},"67":{"start":{"line":111,"column":32},"end":{"line":111,"column":69}},"68":{"start":{"line":114,"column":24},"end":{"line":118,"column":27}},"69":{"start":{"line":115,"column":28},"end":{"line":117,"column":29}},"70":{"start":{"line":115,"column":76},"end":{"line":115,"column":111}},"71":{"start":{"line":116,"column":32},"end":{"line":116,"column":76}},"72":{"start":{"line":120,"column":24},"end":{"line":124,"column":27}},"73":{"start":{"line":121,"column":28},"end":{"line":123,"column":29}},"74":{"start":{"line":121,"column":84},"end":{"line":121,"column":136}},"75":{"start":{"line":122,"column":32},"end":{"line":122,"column":79}},"76":{"start":{"line":126,"column":24},"end":{"line":130,"column":25}},"77":{"start":{"line":127,"column":28},"end":{"line":127,"column":58}},"78":{"start":{"line":128,"column":28},"end":{"line":128,"column":78}},"79":{"start":{"line":129,"column":28},"end":{"line":129,"column":117}},"80":{"start":{"line":134,"column":24},"end":{"line":134,"column":106}},"81":{"start":{"line":138,"column":20},"end":{"line":138,"column":54}},"82":{"start":{"line":141,"column":16},"end":{"line":141,"column":101}},"83":{"start":{"line":145,"column":8},"end":{"line":159,"column":9}},"84":{"start":{"line":145,"column":21},"end":{"line":145,"column":22}},"85":{"start":{"line":146,"column":12},"end":{"line":147,"column":48}},"86":{"start":{"line":147,"column":16},"end":{"line":147,"column":48}},"87":{"start":{"line":148,"column":12},"end":{"line":158,"column":15}},"88":{"start":{"line":150,"column":16},"end":{"line":151,"column":46}},"89":{"start":{"line":151,"column":20},"end":{"line":151,"column":46}},"90":{"start":{"line":152,"column":16},"end":{"line":153,"column":44}},"91":{"start":{"line":153,"column":20},"end":{"line":153,"column":44}},"92":{"start":{"line":154,"column":16},"end":{"line":155,"column":48}},"93":{"start":{"line":155,"column":20},"end":{"line":155,"column":48}},"94":{"start":{"line":156,"column":16},"end":{"line":157,"column":43}},"95":{"start":{"line":157,"column":20},"end":{"line":157,"column":43}},"96":{"start":{"line":160,"column":8},"end":{"line":160,"column":30}},"97":{"start":{"line":163,"column":0},"end":{"line":163,"column":54}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":4},"end":{"line":4,"column":5}},"loc":{"start":{"line":4,"column":46},"end":{"line":7,"column":5}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":19},"end":{"line":10,"column":5}},"line":8},"2":{"name":"(anonymous_2)","decl":{"start":{"line":11,"column":4},"end":{"line":11,"column":5}},"loc":{"start":{"line":11,"column":14},"end":{"line":31,"column":5}},"line":11},"3":{"name":"(anonymous_3)","decl":{"start":{"line":18,"column":55},"end":{"line":18,"column":56}},"loc":{"start":{"line":18,"column":68},"end":{"line":18,"column":91}},"line":18},"4":{"name":"(anonymous_4)","decl":{"start":{"line":21,"column":98},"end":{"line":21,"column":99}},"loc":{"start":{"line":21,"column":116},"end":{"line":27,"column":9}},"line":21},"5":{"name":"(anonymous_5)","decl":{"start":{"line":32,"column":4},"end":{"line":32,"column":5}},"loc":{"start":{"line":32,"column":50},"end":{"line":70,"column":5}},"line":32},"6":{"name":"(anonymous_6)","decl":{"start":{"line":36,"column":39},"end":{"line":36,"column":40}},"loc":{"start":{"line":36,"column":47},"end":{"line":68,"column":9}},"line":36},"7":{"name":"(anonymous_7)","decl":{"start":{"line":37,"column":42},"end":{"line":37,"column":43}},"loc":{"start":{"line":37,"column":56},"end":{"line":67,"column":13}},"line":37},"8":{"name":"(anonymous_8)","decl":{"start":{"line":47,"column":62},"end":{"line":47,"column":63}},"loc":{"start":{"line":47,"column":73},"end":{"line":47,"column":87}},"line":47},"9":{"name":"(anonymous_9)","decl":{"start":{"line":52,"column":62},"end":{"line":52,"column":63}},"loc":{"start":{"line":52,"column":75},"end":{"line":52,"column":109}},"line":52},"10":{"name":"(anonymous_10)","decl":{"start":{"line":54,"column":76},"end":{"line":54,"column":77}},"loc":{"start":{"line":54,"column":87},"end":{"line":54,"column":139}},"line":54},"11":{"name":"(anonymous_11)","decl":{"start":{"line":71,"column":4},"end":{"line":71,"column":5}},"loc":{"start":{"line":71,"column":47},"end":{"line":161,"column":5}},"line":71},"12":{"name":"(anonymous_12)","decl":{"start":{"line":90,"column":69},"end":{"line":90,"column":70}},"loc":{"start":{"line":90,"column":80},"end":{"line":90,"column":92}},"line":90},"13":{"name":"(anonymous_13)","decl":{"start":{"line":104,"column":60},"end":{"line":104,"column":61}},"loc":{"start":{"line":104,"column":73},"end":{"line":104,"column":107}},"line":104},"14":{"name":"(anonymous_14)","decl":{"start":{"line":106,"column":72},"end":{"line":106,"column":73}},"loc":{"start":{"line":106,"column":80},"end":{"line":106,"column":129}},"line":106},"15":{"name":"(anonymous_15)","decl":{"start":{"line":109,"column":66},"end":{"line":109,"column":67}},"loc":{"start":{"line":109,"column":77},"end":{"line":112,"column":25}},"line":109},"16":{"name":"(anonymous_16)","decl":{"start":{"line":114,"column":162},"end":{"line":114,"column":163}},"loc":{"start":{"line":114,"column":178},"end":{"line":118,"column":25}},"line":114},"17":{"name":"(anonymous_17)","decl":{"start":{"line":115,"column":63},"end":{"line":115,"column":64}},"loc":{"start":{"line":115,"column":76},"end":{"line":115,"column":111}},"line":115},"18":{"name":"(anonymous_18)","decl":{"start":{"line":120,"column":164},"end":{"line":120,"column":165}},"loc":{"start":{"line":120,"column":181},"end":{"line":124,"column":25}},"line":120},"19":{"name":"(anonymous_19)","decl":{"start":{"line":121,"column":65},"end":{"line":121,"column":66}},"loc":{"start":{"line":121,"column":84},"end":{"line":121,"column":136}},"line":121},"20":{"name":"(anonymous_20)","decl":{"start":{"line":148,"column":47},"end":{"line":148,"column":48}},"loc":{"start":{"line":148,"column":58},"end":{"line":158,"column":13}},"line":148}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":8},"end":{"line":14,"column":34}},"type":"if","locations":[{"start":{"line":13,"column":8},"end":{"line":14,"column":34}},{"start":{"line":13,"column":8},"end":{"line":14,"column":34}}],"line":13},"1":{"loc":{"start":{"line":13,"column":12},"end":{"line":13,"column":54}},"type":"binary-expr","locations":[{"start":{"line":13,"column":12},"end":{"line":13,"column":32}},{"start":{"line":13,"column":36},"end":{"line":13,"column":54}}],"line":13},"2":{"loc":{"start":{"line":22,"column":12},"end":{"line":25,"column":25}},"type":"if","locations":[{"start":{"line":22,"column":12},"end":{"line":25,"column":25}},{"start":{"line":22,"column":12},"end":{"line":25,"column":25}}],"line":22},"3":{"loc":{"start":{"line":24,"column":17},"end":{"line":25,"column":25}},"type":"if","locations":[{"start":{"line":24,"column":17},"end":{"line":25,"column":25}},{"start":{"line":24,"column":17},"end":{"line":25,"column":25}}],"line":24},"4":{"loc":{"start":{"line":28,"column":8},"end":{"line":29,"column":44}},"type":"if","locations":[{"start":{"line":28,"column":8},"end":{"line":29,"column":44}},{"start":{"line":28,"column":8},"end":{"line":29,"column":44}}],"line":28},"5":{"loc":{"start":{"line":34,"column":8},"end":{"line":35,"column":34}},"type":"if","locations":[{"start":{"line":34,"column":8},"end":{"line":35,"column":34}},{"start":{"line":34,"column":8},"end":{"line":35,"column":34}}],"line":34},"6":{"loc":{"start":{"line":53,"column":16},"end":{"line":66,"column":17}},"type":"if","locations":[{"start":{"line":53,"column":16},"end":{"line":66,"column":17}},{"start":{"line":53,"column":16},"end":{"line":66,"column":17}}],"line":53},"7":{"loc":{"start":{"line":55,"column":20},"end":{"line":62,"column":27}},"type":"if","locations":[{"start":{"line":55,"column":20},"end":{"line":62,"column":27}},{"start":{"line":55,"column":20},"end":{"line":62,"column":27}}],"line":55},"8":{"loc":{"start":{"line":74,"column":8},"end":{"line":75,"column":34}},"type":"if","locations":[{"start":{"line":74,"column":8},"end":{"line":75,"column":34}},{"start":{"line":74,"column":8},"end":{"line":75,"column":34}}],"line":74},"9":{"loc":{"start":{"line":79,"column":44},"end":{"line":79,"column":290}},"type":"cond-expr","locations":[{"start":{"line":79,"column":260},"end":{"line":79,"column":266}},{"start":{"line":79,"column":269},"end":{"line":79,"column":290}}],"line":79},"10":{"loc":{"start":{"line":79,"column":44},"end":{"line":79,"column":257}},"type":"binary-expr","locations":[{"start":{"line":79,"column":44},"end":{"line":79,"column":240}},{"start":{"line":79,"column":244},"end":{"line":79,"column":257}}],"line":79},"11":{"loc":{"start":{"line":79,"column":50},"end":{"line":79,"column":230}},"type":"cond-expr","locations":[{"start":{"line":79,"column":213},"end":{"line":79,"column":219}},{"start":{"line":79,"column":222},"end":{"line":79,"column":230}}],"line":79},"12":{"loc":{"start":{"line":79,"column":50},"end":{"line":79,"column":210}},"type":"binary-expr","locations":[{"start":{"line":79,"column":50},"end":{"line":79,"column":193}},{"start":{"line":79,"column":197},"end":{"line":79,"column":210}}],"line":79},"13":{"loc":{"start":{"line":79,"column":56},"end":{"line":79,"column":183}},"type":"cond-expr","locations":[{"start":{"line":79,"column":164},"end":{"line":79,"column":170}},{"start":{"line":79,"column":173},"end":{"line":79,"column":183}}],"line":79},"14":{"loc":{"start":{"line":79,"column":56},"end":{"line":79,"column":161}},"type":"binary-expr","locations":[{"start":{"line":79,"column":56},"end":{"line":79,"column":144}},{"start":{"line":79,"column":148},"end":{"line":79,"column":161}}],"line":79},"15":{"loc":{"start":{"line":79,"column":62},"end":{"line":79,"column":134}},"type":"cond-expr","locations":[{"start":{"line":79,"column":115},"end":{"line":79,"column":121}},{"start":{"line":79,"column":124},"end":{"line":79,"column":134}}],"line":79},"16":{"loc":{"start":{"line":79,"column":62},"end":{"line":79,"column":112}},"type":"binary-expr","locations":[{"start":{"line":79,"column":62},"end":{"line":79,"column":95}},{"start":{"line":79,"column":99},"end":{"line":79,"column":112}}],"line":79},"17":{"loc":{"start":{"line":93,"column":42},"end":{"line":93,"column":119}},"type":"cond-expr","locations":[{"start":{"line":93,"column":95},"end":{"line":93,"column":101}},{"start":{"line":93,"column":104},"end":{"line":93,"column":119}}],"line":93},"18":{"loc":{"start":{"line":93,"column":42},"end":{"line":93,"column":92}},"type":"binary-expr","locations":[{"start":{"line":93,"column":42},"end":{"line":93,"column":75}},{"start":{"line":93,"column":79},"end":{"line":93,"column":92}}],"line":93},"19":{"loc":{"start":{"line":98,"column":16},"end":{"line":102,"column":17}},"type":"if","locations":[{"start":{"line":98,"column":16},"end":{"line":102,"column":17}},{"start":{"line":98,"column":16},"end":{"line":102,"column":17}}],"line":98},"20":{"loc":{"start":{"line":105,"column":16},"end":{"line":138,"column":54}},"type":"if","locations":[{"start":{"line":105,"column":16},"end":{"line":138,"column":54}},{"start":{"line":105,"column":16},"end":{"line":138,"column":54}}],"line":105},"21":{"loc":{"start":{"line":107,"column":20},"end":{"line":135,"column":21}},"type":"if","locations":[{"start":{"line":107,"column":20},"end":{"line":135,"column":21}},{"start":{"line":107,"column":20},"end":{"line":135,"column":21}}],"line":107},"22":{"loc":{"start":{"line":110,"column":28},"end":{"line":111,"column":69}},"type":"if","locations":[{"start":{"line":110,"column":28},"end":{"line":111,"column":69}},{"start":{"line":110,"column":28},"end":{"line":111,"column":69}}],"line":110},"23":{"loc":{"start":{"line":114,"column":24},"end":{"line":118,"column":26}},"type":"cond-expr","locations":[{"start":{"line":114,"column":142},"end":{"line":114,"column":148}},{"start":{"line":114,"column":151},"end":{"line":118,"column":26}}],"line":114},"24":{"loc":{"start":{"line":114,"column":24},"end":{"line":114,"column":139}},"type":"binary-expr","locations":[{"start":{"line":114,"column":24},"end":{"line":114,"column":122}},{"start":{"line":114,"column":126},"end":{"line":114,"column":139}}],"line":114},"25":{"loc":{"start":{"line":114,"column":30},"end":{"line":114,"column":112}},"type":"cond-expr","locations":[{"start":{"line":114,"column":90},"end":{"line":114,"column":96}},{"start":{"line":114,"column":99},"end":{"line":114,"column":112}}],"line":114},"26":{"loc":{"start":{"line":114,"column":30},"end":{"line":114,"column":87}},"type":"binary-expr","locations":[{"start":{"line":114,"column":30},"end":{"line":114,"column":70}},{"start":{"line":114,"column":74},"end":{"line":114,"column":87}}],"line":114},"27":{"loc":{"start":{"line":115,"column":28},"end":{"line":117,"column":29}},"type":"if","locations":[{"start":{"line":115,"column":28},"end":{"line":117,"column":29}},{"start":{"line":115,"column":28},"end":{"line":117,"column":29}}],"line":115},"28":{"loc":{"start":{"line":120,"column":24},"end":{"line":124,"column":26}},"type":"cond-expr","locations":[{"start":{"line":120,"column":144},"end":{"line":120,"column":150}},{"start":{"line":120,"column":153},"end":{"line":124,"column":26}}],"line":120},"29":{"loc":{"start":{"line":120,"column":24},"end":{"line":120,"column":141}},"type":"binary-expr","locations":[{"start":{"line":120,"column":24},"end":{"line":120,"column":124}},{"start":{"line":120,"column":128},"end":{"line":120,"column":141}}],"line":120},"30":{"loc":{"start":{"line":120,"column":30},"end":{"line":120,"column":114}},"type":"cond-expr","locations":[{"start":{"line":120,"column":90},"end":{"line":120,"column":96}},{"start":{"line":120,"column":99},"end":{"line":120,"column":114}}],"line":120},"31":{"loc":{"start":{"line":120,"column":30},"end":{"line":120,"column":87}},"type":"binary-expr","locations":[{"start":{"line":120,"column":30},"end":{"line":120,"column":70}},{"start":{"line":120,"column":74},"end":{"line":120,"column":87}}],"line":120},"32":{"loc":{"start":{"line":121,"column":28},"end":{"line":123,"column":29}},"type":"if","locations":[{"start":{"line":121,"column":28},"end":{"line":123,"column":29}},{"start":{"line":121,"column":28},"end":{"line":123,"column":29}}],"line":121},"33":{"loc":{"start":{"line":126,"column":24},"end":{"line":130,"column":25}},"type":"if","locations":[{"start":{"line":126,"column":24},"end":{"line":130,"column":25}},{"start":{"line":126,"column":24},"end":{"line":130,"column":25}}],"line":126},"34":{"loc":{"start":{"line":146,"column":12},"end":{"line":147,"column":48}},"type":"if","locations":[{"start":{"line":146,"column":12},"end":{"line":147,"column":48}},{"start":{"line":146,"column":12},"end":{"line":147,"column":48}}],"line":146},"35":{"loc":{"start":{"line":150,"column":16},"end":{"line":151,"column":46}},"type":"if","locations":[{"start":{"line":150,"column":16},"end":{"line":151,"column":46}},{"start":{"line":150,"column":16},"end":{"line":151,"column":46}}],"line":150},"36":{"loc":{"start":{"line":150,"column":21},"end":{"line":150,"column":93}},"type":"cond-expr","locations":[{"start":{"line":150,"column":75},"end":{"line":150,"column":81}},{"start":{"line":150,"column":84},"end":{"line":150,"column":93}}],"line":150},"37":{"loc":{"start":{"line":150,"column":21},"end":{"line":150,"column":72}},"type":"binary-expr","locations":[{"start":{"line":150,"column":21},"end":{"line":150,"column":55}},{"start":{"line":150,"column":59},"end":{"line":150,"column":72}}],"line":150},"38":{"loc":{"start":{"line":152,"column":16},"end":{"line":153,"column":44}},"type":"if","locations":[{"start":{"line":152,"column":16},"end":{"line":153,"column":44}},{"start":{"line":152,"column":16},"end":{"line":153,"column":44}}],"line":152},"39":{"loc":{"start":{"line":152,"column":21},"end":{"line":152,"column":91}},"type":"cond-expr","locations":[{"start":{"line":152,"column":73},"end":{"line":152,"column":79}},{"start":{"line":152,"column":82},"end":{"line":152,"column":91}}],"line":152},"40":{"loc":{"start":{"line":152,"column":21},"end":{"line":152,"column":70}},"type":"binary-expr","locations":[{"start":{"line":152,"column":21},"end":{"line":152,"column":53}},{"start":{"line":152,"column":57},"end":{"line":152,"column":70}}],"line":152},"41":{"loc":{"start":{"line":154,"column":16},"end":{"line":155,"column":48}},"type":"if","locations":[{"start":{"line":154,"column":16},"end":{"line":155,"column":48}},{"start":{"line":154,"column":16},"end":{"line":155,"column":48}}],"line":154},"42":{"loc":{"start":{"line":154,"column":21},"end":{"line":154,"column":95}},"type":"cond-expr","locations":[{"start":{"line":154,"column":77},"end":{"line":154,"column":83}},{"start":{"line":154,"column":86},"end":{"line":154,"column":95}}],"line":154},"43":{"loc":{"start":{"line":154,"column":21},"end":{"line":154,"column":74}},"type":"binary-expr","locations":[{"start":{"line":154,"column":21},"end":{"line":154,"column":57}},{"start":{"line":154,"column":61},"end":{"line":154,"column":74}}],"line":154},"44":{"loc":{"start":{"line":156,"column":16},"end":{"line":157,"column":43}},"type":"if","locations":[{"start":{"line":156,"column":16},"end":{"line":157,"column":43}},{"start":{"line":156,"column":16},"end":{"line":157,"column":43}}],"line":156}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":1,"6":1,"7":0,"8":1,"9":1,"10":4,"11":1,"12":1,"13":1,"14":12,"15":9,"16":3,"17":2,"18":1,"19":1,"20":0,"21":1,"22":1,"23":1,"24":0,"25":1,"26":1,"27":4,"28":4,"29":4,"30":4,"31":4,"32":4,"33":4,"34":4,"35":4,"36":4,"37":6,"38":4,"39":0,"40":0,"41":0,"42":0,"43":4,"44":1,"45":1,"46":1,"47":0,"48":1,"49":1,"50":4,"51":4,"52":4,"53":6,"54":4,"55":4,"56":2,"57":2,"58":2,"59":4,"60":5,"61":4,"62":2,"63":3,"64":2,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":2,"81":2,"82":0,"83":1,"84":1,"85":2,"86":2,"87":2,"88":4,"89":0,"90":4,"91":0,"92":4,"93":4,"94":4,"95":2,"96":1,"97":1},"f":{"0":1,"1":0,"2":1,"3":4,"4":12,"5":1,"6":1,"7":4,"8":4,"9":6,"10":0,"11":1,"12":6,"13":5,"14":3,"15":0,"16":0,"17":0,"18":0,"19":0,"20":4},"b":{"0":[0,1],"1":[1,0],"2":[9,3],"3":[2,1],"4":[0,1],"5":[0,1],"6":[0,4],"7":[0,0],"8":[0,1],"9":[2,2],"10":[4,4],"11":[2,2],"12":[4,4],"13":[0,4],"14":[4,4],"15":[0,4],"16":[4,4],"17":[0,4],"18":[4,4],"19":[2,2],"20":[2,2],"21":[0,2],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0],"26":[0,0],"27":[0,0],"28":[0,0],"29":[0,0],"30":[0,0],"31":[0,0],"32":[0,0],"33":[0,0],"34":[2,0],"35":[0,4],"36":[0,4],"37":[4,4],"38":[0,4],"39":[0,4],"40":[4,4],"41":[4,0],"42":[0,4],"43":[4,4],"44":[2,2]},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/DataLayer/DataProviders/ComponentDataProvider.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/DataLayer/DataProviders/ComponentDataProvider.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ComponentDataLayer,\n DataProvider,\n Health,\n IDataLayers\n} from '../DataLayerTypes';\nimport {\n ScannerComponent,\n ScannerResults\n} from '../../scanner/ScannerTypes';\nimport { IDependencyResponse } from '../../Dependencies/DependencyTypes';\n\nexport class ComponentDataProvider implements DataProvider {\n\n private scanRawResults: ScannerResults\n\n private componentList: Array<ScannerComponent>;\n\n private dependencies: IDependencyResponse;\n\n constructor(scanRawResults: ScannerResults, dependencies?: IDependencyResponse) {\n this.scanRawResults=scanRawResults;\n this.dependencies = dependencies;\n }\n\n public getLayerName(): string {\n return this.constructor.name;\n }\n\n public getData(): IDataLayers {\n const componentLayer = <IDataLayers>{component: null};\n\n if (!this.scanRawResults && !this.dependencies) return componentLayer;\n\n\n //Extract all components from scanRawResults, does not matter if there are duplicated\n //And removes all no match results.\n this.componentList = Object.values(this.scanRawResults).flat();\n this.componentList = this.componentList.filter(component => component.id!=='none')\n const scannerComponentLayer = this.parseComponentsFromScanner(this.componentList);\n const dependenciesComponentLayer = this.parseComponentsFromDependencies(this.dependencies);\n\n componentLayer.component = [...scannerComponentLayer, ...dependenciesComponentLayer].sort(\n (itemA, itemB) => {\n if ( itemA.name < itemB.name) return -1;\n else if( itemA.name > itemB.name) return 1;\n return 0;\n });\n\n if(!componentLayer.component.length) componentLayer.component=null;\n\n return componentLayer\n\n }\n\n private parseComponentsFromDependencies(dependencies: IDependencyResponse): Array<ComponentDataLayer> {\n const componentLayer: Array<ComponentDataLayer> = [];\n if (!dependencies) return componentLayer;\n\n dependencies.filesList.forEach(file => {\n file.dependenciesList.forEach(dependency => {\n const newComponent: ComponentDataLayer = <ComponentDataLayer>{};\n newComponent.key = dependency.purl;\n newComponent.purls = [dependency.purl];\n newComponent.name = dependency.component;\n newComponent.url = null;\n newComponent.vendor = null;\n newComponent.health = null;\n newComponent.versions = [{\n version: dependency.version,\n licenses: dependency.licensesList.map(license => license.spdxId),\n copyrights: null,\n cryptography: null,\n quality: null,\n }];\n\n const existingComponent = componentLayer.find(component => component.key === newComponent.key);\n if (existingComponent) {\n const existingVersion = existingComponent.versions.find(version => version.version === newComponent.versions[0].version);\n if(!existingVersion) existingComponent.versions.push({\n version : newComponent.versions[0].version,\n licenses: newComponent.versions[0].licenses,\n copyrights: newComponent.versions[0].copyrights,\n quality: null,\n cryptography: null,\n });\n } else { //Component does not exist, insert as it is.\n componentLayer.push(newComponent);\n }\n\n });\n });\n return componentLayer;\n }\n\n private parseComponentsFromScanner(scanComponents: Array<ScannerComponent>): Array<ComponentDataLayer> {\n const componentLayer: Array<ComponentDataLayer> = [];\n if (!scanComponents) return componentLayer\n\n for (let i=0 ; i<scanComponents.length ; i++) {\n\n try {\n\n // qualityValue would have a number from 0 to 5 or undefined.\n const qualityValue = Number(scanComponents[i]?.quality?.shift()?.score?.split(\"/\").shift());\n\n\n //Generates a new component\n const newComponent: ComponentDataLayer = {\n key: scanComponents[i].purl[0],\n purls: scanComponents[i].purl,\n name: scanComponents[i].component,\n url: scanComponents[i].url,\n vendor: scanComponents[i].vendor,\n health: scanComponents[i].health,\n versions: [{\n version: scanComponents[i].version,\n licenses: scanComponents[i].licenses.map(license => license.name),\n copyrights: scanComponents[i].copyrights,\n quality: { sum: 0, scoreAvg: 0, count: 0 },\n cryptography: scanComponents[i]?.cryptography,\n }]\n };\n\n //Removes duplicated licenses\n newComponent.versions[0].licenses = [...new Set(newComponent.versions[0].licenses)]\n\n if(qualityValue) {\n newComponent.versions[0].quality.count = 1;\n newComponent.versions[0].quality.sum = qualityValue;\n newComponent.versions[0].quality.scoreAvg = qualityValue;\n }\n\n //Merge new component in componentList\n const componentTarget = componentLayer.find(component => component.key === newComponent.key);\n if (componentTarget) {\n const versionTarget = componentTarget.versions.find(item => item.version === newComponent.versions[0].version);\n if (versionTarget) {\n\n //Insert licenses\n newComponent.versions[0].licenses.forEach(licence => {\n if (!versionTarget.licenses.includes(licence)) versionTarget.licenses.push(licence);\n });\n\n //Insert copyright\n newComponent.versions[0]?.copyrights?.forEach(newCopyright => {\n if (versionTarget.copyrights.every(copyright => newCopyright.name != copyright.name)) {\n versionTarget.copyrights.push(newCopyright);\n }\n });\n\n //Insert cryptography\n newComponent.versions[0]?.cryptography?.forEach(newCryptoAlgo => {\n if (versionTarget.cryptography.every(cryptoAlgorithm => cryptoAlgorithm.algorithm != newCryptoAlgo.algorithm)) {\n versionTarget.cryptography.push(newCryptoAlgo);\n }\n });\n\n //recalculate quality average in case we have a quality value\n if (qualityValue) {\n versionTarget.quality.count++;\n versionTarget.quality.sum += Number(qualityValue);\n versionTarget.quality.scoreAvg = versionTarget.quality.sum / versionTarget.quality.count\n }\n\n\n\n } else {\n //newComponent version is not included in the component with same purl key\n componentTarget.versions = componentTarget.versions.concat(newComponent.versions);\n }\n } else componentLayer.push(newComponent);\n\n } catch (e) {\n console.error(`Problem inserting new component building Component Data Layer - `, e);\n }\n }\n\n //Replace [] for null in versions\n for (let i=0 ; i<componentLayer.length ; i++) {\n if(!componentLayer[i].health) componentLayer[i].health = null;\n componentLayer[i].versions.forEach(version => {\n if(version.copyrights?.length == 0) version.copyrights = null;\n if(version.licenses?.length == 0) version.licenses = null;\n if(version.cryptography?.length === 0) version.cryptography = null;\n if(version.quality.count === 0 ) version.quality = null;\n })\n }\n\n return componentLayer;\n\n }\n\n}\n\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"90c9670904975a9235adaacc6ea2e283bdc28f9f"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/DataLayer/DataProviders/DependencyDataProvider.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/DataLayer/DataProviders/DependencyDataProvider.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":62}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":40}},"2":{"start":{"line":5,"column":8},"end":{"line":5,"column":41}},"3":{"start":{"line":8,"column":8},"end":{"line":8,"column":37}},"4":{"start":{"line":11,"column":32},"end":{"line":11,"column":54}},"5":{"start":{"line":12,"column":8},"end":{"line":13,"column":35}},"6":{"start":{"line":13,"column":12},"end":{"line":13,"column":35}},"7":{"start":{"line":14,"column":31},"end":{"line":14,"column":74}},"8":{"start":{"line":15,"column":8},"end":{"line":15,"column":54}},"9":{"start":{"line":16,"column":8},"end":{"line":17,"column":48}},"10":{"start":{"line":17,"column":12},"end":{"line":17,"column":48}},"11":{"start":{"line":18,"column":8},"end":{"line":18,"column":31}},"12":{"start":{"line":21,"column":32},"end":{"line":21,"column":34}},"13":{"start":{"line":22,"column":8},"end":{"line":32,"column":11}},"14":{"start":{"line":23,"column":36},"end":{"line":23,"column":38}},"15":{"start":{"line":24,"column":12},"end":{"line":30,"column":15}},"16":{"start":{"line":25,"column":36},"end":{"line":25,"column":38}},"17":{"start":{"line":26,"column":16},"end":{"line":28,"column":19}},"18":{"start":{"line":27,"column":20},"end":{"line":27,"column":85}},"19":{"start":{"line":29,"column":16},"end":{"line":29,"column":149}},"20":{"start":{"line":31,"column":12},"end":{"line":31,"column":85}},"21":{"start":{"line":33,"column":8},"end":{"line":33,"column":31}},"22":{"start":{"line":36,"column":0},"end":{"line":36,"column":56}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":4},"end":{"line":4,"column":5}},"loc":{"start":{"line":4,"column":30},"end":{"line":6,"column":5}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":19},"end":{"line":9,"column":5}},"line":7},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":14},"end":{"line":19,"column":5}},"line":10},"3":{"name":"(anonymous_3)","decl":{"start":{"line":20,"column":4},"end":{"line":20,"column":5}},"loc":{"start":{"line":20,"column":38},"end":{"line":34,"column":5}},"line":20},"4":{"name":"(anonymous_4)","decl":{"start":{"line":22,"column":39},"end":{"line":22,"column":40}},"loc":{"start":{"line":22,"column":47},"end":{"line":32,"column":9}},"line":22},"5":{"name":"(anonymous_5)","decl":{"start":{"line":24,"column":42},"end":{"line":24,"column":43}},"loc":{"start":{"line":24,"column":56},"end":{"line":30,"column":13}},"line":24},"6":{"name":"(anonymous_6)","decl":{"start":{"line":26,"column":48},"end":{"line":26,"column":49}},"loc":{"start":{"line":26,"column":61},"end":{"line":28,"column":17}},"line":26}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":8},"end":{"line":13,"column":35}},"type":"if","locations":[{"start":{"line":12,"column":8},"end":{"line":13,"column":35}},{"start":{"line":12,"column":8},"end":{"line":13,"column":35}}],"line":12},"1":{"loc":{"start":{"line":16,"column":8},"end":{"line":17,"column":48}},"type":"if","locations":[{"start":{"line":16,"column":8},"end":{"line":17,"column":48}},{"start":{"line":16,"column":8},"end":{"line":17,"column":48}}],"line":16}},"s":{"0":1,"1":1,"2":1,"3":0,"4":1,"5":1,"6":0,"7":1,"8":1,"9":1,"10":0,"11":1,"12":1,"13":1,"14":1,"15":1,"16":4,"17":4,"18":4,"19":4,"20":1,"21":1,"22":1},"f":{"0":1,"1":0,"2":1,"3":1,"4":1,"5":4,"6":4},"b":{"0":[0,1],"1":[0,1]},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/DataLayer/DataProviders/DependencyDataProvider.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/DataLayer/DataProviders/DependencyDataProvider.ts"],"names":[],"mappings":";;AAQA,MAAa,sBAAsB;IAIjC,YAAY,YAAiC;QAC3C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;IAEM,OAAO;QACZ,MAAM,eAAe,GAAgB,EAAC,YAAY,EAAE,IAAI,EAAC,CAAC;QAC1D,IAAG,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,eAAe,CAAC;QAC9C,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnE,eAAe,CAAC,YAAY,GAAG,cAAc,CAAC;QAC9C,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM;YAAE,eAAe,CAAC,YAAY,GAAC,IAAI,CAAC;QAE5E,OAAO,eAAe,CAAC;IACzB,CAAC;IAEM,mBAAmB,CAAC,YAAiC;QAC1D,MAAM,eAAe,GAA+B,EAAE,CAAC;QAEvD,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACpC,MAAM,eAAe,GAAsB,EAAE,CAAC;YAC9C,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBACzC,MAAM,WAAW,GAAmB,EAAE,CAAC;gBACvC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC1C,WAAW,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAC,CAAC,CAAC;gBACjE,CAAC,CAAC,CAAC;gBACH,eAAe,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAC,CAAC,CAAC;YACrI,CAAC,CAAC,CAAC;YACH,eAAe,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,eAAe,EAAC,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QAEH,OAAO,eAAe,CAAC;IACzB,CAAC;CACF;AAvCD,wDAuCC","sourcesContent":["import {\n DataProvider,\n IDataLayers,\n DependencyDataLayer,\n License, Dependency\n} from '../DataLayerTypes';\nimport { IDependencyResponse } from '../../Dependencies/DependencyTypes';\n\nexport class DependencyDataProvider implements DataProvider {\n\n private dependencies: IDependencyResponse;\n\n constructor(dependencies: IDependencyResponse) {\n this.dependencies = dependencies;\n }\n\n public getLayerName(): string {\n return this.constructor.name;\n }\n\n public getData(): IDataLayers {\n const dependencyLayer = <IDataLayers>{dependencies: null};\n if(!this.dependencies) return dependencyLayer;\n const parsedDepLayer = this.parseDependencyData(this.dependencies);\n dependencyLayer.dependencies = parsedDepLayer;\n if (!dependencyLayer.dependencies.length) dependencyLayer.dependencies=null;\n\n return dependencyLayer;\n }\n\n public parseDependencyData(dependencies: IDependencyResponse): DependencyDataLayer[]{\n const dependencyLayer: Array<DependencyDataLayer> = [];\n\n dependencies.filesList.forEach(file => {\n const newDependencies: Array<Dependency> = [];\n file.dependenciesList.forEach(dependency => {\n const newLicenses: Array<License> = [];\n dependency.licensesList.forEach((license) => {\n newLicenses.push({name: license.name, spdxid: license.spdxId});\n });\n newDependencies.push({purl: dependency.purl, licenses: newLicenses, version: dependency.version, component: dependency.component});\n });\n dependencyLayer.push({file: file.file, dependencies: newDependencies});\n });\n\n return dependencyLayer;\n }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"65c0de4e68e5ce9aacd09f930d212f4604e7c04c"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/DataLayer/DataProviders/SummaryDataProvider.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/DataLayer/DataProviders/SummaryDataProvider.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":62}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":37}},"2":{"start":{"line":3,"column":23},"end":{"line":3,"column":60}},"3":{"start":{"line":6,"column":8},"end":{"line":6,"column":45}},"4":{"start":{"line":7,"column":8},"end":{"line":7,"column":39}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":48}},"6":{"start":{"line":9,"column":8},"end":{"line":9,"column":26}},"7":{"start":{"line":12,"column":8},"end":{"line":12,"column":37}},"8":{"start":{"line":15,"column":8},"end":{"line":15,"column":52}},"9":{"start":{"line":16,"column":8},"end":{"line":16,"column":54}},"10":{"start":{"line":17,"column":8},"end":{"line":17,"column":36}},"11":{"start":{"line":18,"column":8},"end":{"line":18,"column":38}},"12":{"start":{"line":19,"column":8},"end":{"line":19,"column":38}},"13":{"start":{"line":20,"column":8},"end":{"line":28,"column":9}},"14":{"start":{"line":21,"column":12},"end":{"line":27,"column":15}},"15":{"start":{"line":22,"column":16},"end":{"line":25,"column":48}},"16":{"start":{"line":23,"column":20},"end":{"line":23,"column":48}},"17":{"start":{"line":25,"column":20},"end":{"line":25,"column":48}},"18":{"start":{"line":26,"column":16},"end":{"line":26,"column":42}},"19":{"start":{"line":29,"column":8},"end":{"line":29,"column":41}},"20":{"start":{"line":32,"column":0},"end":{"line":32,"column":50}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":4},"end":{"line":5,"column":5}},"loc":{"start":{"line":5,"column":63},"end":{"line":10,"column":5}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":4},"end":{"line":11,"column":5}},"loc":{"start":{"line":11,"column":19},"end":{"line":13,"column":5}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":4},"end":{"line":14,"column":5}},"loc":{"start":{"line":14,"column":14},"end":{"line":30,"column":5}},"line":14},"3":{"name":"(anonymous_3)","decl":{"start":{"line":21,"column":31},"end":{"line":21,"column":32}},"loc":{"start":{"line":21,"column":44},"end":{"line":27,"column":13}},"line":21}},"branchMap":{"0":{"loc":{"start":{"line":22,"column":16},"end":{"line":25,"column":48}},"type":"if","locations":[{"start":{"line":22,"column":16},"end":{"line":25,"column":48}},{"start":{"line":22,"column":16},"end":{"line":25,"column":48}}],"line":22}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":0,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":4,"15":4,"16":0,"17":4,"18":4,"19":1,"20":1},"f":{"0":1,"1":0,"2":1,"3":4},"b":{"0":[0,4]},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/DataLayer/DataProviders/SummaryDataProvider.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/DataLayer/DataProviders/SummaryDataProvider.ts"],"names":[],"mappings":";;AACA,6DAIoC;AAEpC,MAAa,mBAAmB;IAU9B,YAAY,WAAmB,EAAE,gBAAsB,EAAE,cAA8B;QACrF,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,gBAAgB,CAAA;QACvC,IAAI,CAAC,OAAO,GAAqB,EAAE,CAAC;IACtC,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC5C,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC;QAE9B,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;YACpE,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC7B,IAAI,SAAS,CAAC,EAAE,IAAE,iCAAkB,CAAC,IAAI;oBAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;;oBAClE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBACjC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;SACJ;QAED,OAAoB,EAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,CAAC;IAC9C,CAAC;CAEF;AAvCD,kDAuCC","sourcesContent":["import { DataProvider, IDataLayers, SummaryDataLayer } from '../DataLayerTypes';\nimport {\n ScannerComponent,\n ScannerComponentId,\n ScannerResults\n} from '../../scanner/ScannerTypes';\n\nexport class SummaryDataProvider implements DataProvider {\n\n private scannerResults: ScannerResults;\n\n private summary: SummaryDataLayer;\n\n private projectName: string;\n\n private projectCreateAt: Date;\n\n constructor(projectName: string, projectCreatedAt: Date, scannerResults: ScannerResults) {\n this.scannerResults = scannerResults;\n this.projectName = projectName;\n this.projectCreateAt = projectCreatedAt\n this.summary = <SummaryDataLayer>{};\n }\n\n public getLayerName(): string {\n return this.constructor.name;\n }\n\n public getData(): IDataLayers {\n this.summary.projectName = this.projectName;\n this.summary.timestamp = this.projectCreateAt;\n this.summary.totalFiles = 0;\n this.summary.noMatchFiles = 0;\n this.summary.matchedFiles = 0;\n\n for (const [file, components] of Object.entries(this.scannerResults)) {\n components.forEach(component => {\n if (component.id==ScannerComponentId.NONE) this.summary.noMatchFiles++;\n else this.summary.matchedFiles++;\n this.summary.totalFiles++;\n });\n }\n\n return <IDataLayers>{summary: this.summary};\n }\n\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8156a2b4db6e8b9003730b2386bf8e872c9670e2"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/ScannerTypes.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/ScannerTypes.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":62}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":103}},"2":{"start":{"line":4,"column":0},"end":{"line":26,"column":74}},"3":{"start":{"line":5,"column":4},"end":{"line":5,"column":63}},"4":{"start":{"line":6,"column":4},"end":{"line":6,"column":69}},"5":{"start":{"line":7,"column":4},"end":{"line":7,"column":59}},"6":{"start":{"line":8,"column":4},"end":{"line":8,"column":63}},"7":{"start":{"line":9,"column":4},"end":{"line":9,"column":51}},"8":{"start":{"line":10,"column":4},"end":{"line":10,"column":69}},"9":{"start":{"line":11,"column":4},"end":{"line":11,"column":65}},"10":{"start":{"line":12,"column":4},"end":{"line":12,"column":65}},"11":{"start":{"line":13,"column":4},"end":{"line":13,"column":85}},"12":{"start":{"line":14,"column":4},"end":{"line":14,"column":79}},"13":{"start":{"line":15,"column":4},"end":{"line":15,"column":89}},"14":{"start":{"line":16,"column":4},"end":{"line":16,"column":55}},"15":{"start":{"line":17,"column":4},"end":{"line":17,"column":69}},"16":{"start":{"line":18,"column":4},"end":{"line":18,"column":61}},"17":{"start":{"line":19,"column":4},"end":{"line":19,"column":61}},"18":{"start":{"line":20,"column":4},"end":{"line":20,"column":61}},"19":{"start":{"line":21,"column":4},"end":{"line":21,"column":57}},"20":{"start":{"line":22,"column":4},"end":{"line":22,"column":45}},"21":{"start":{"line":23,"column":4},"end":{"line":23,"column":59}},"22":{"start":{"line":24,"column":4},"end":{"line":24,"column":49}},"23":{"start":{"line":25,"column":4},"end":{"line":25,"column":37}},"24":{"start":{"line":29,"column":0},"end":{"line":33,"column":74}},"25":{"start":{"line":30,"column":4},"end":{"line":30,"column":55}},"26":{"start":{"line":31,"column":4},"end":{"line":31,"column":65}},"27":{"start":{"line":32,"column":4},"end":{"line":32,"column":63}},"28":{"start":{"line":36,"column":0},"end":{"line":39,"column":59}},"29":{"start":{"line":37,"column":4},"end":{"line":37,"column":42}},"30":{"start":{"line":38,"column":4},"end":{"line":38,"column":43}},"31":{"start":{"line":42,"column":0},"end":{"line":46,"column":89}},"32":{"start":{"line":43,"column":4},"end":{"line":43,"column":40}},"33":{"start":{"line":44,"column":4},"end":{"line":44,"column":40}},"34":{"start":{"line":45,"column":4},"end":{"line":45,"column":46}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":1},"end":{"line":4,"column":2}},"loc":{"start":{"line":4,"column":26},"end":{"line":26,"column":1}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":29,"column":1},"end":{"line":29,"column":2}},"loc":{"start":{"line":29,"column":26},"end":{"line":33,"column":1}},"line":29},"2":{"name":"(anonymous_2)","decl":{"start":{"line":36,"column":1},"end":{"line":36,"column":2}},"loc":{"start":{"line":36,"column":21},"end":{"line":39,"column":1}},"line":36},"3":{"name":"(anonymous_3)","decl":{"start":{"line":42,"column":1},"end":{"line":42,"column":2}},"loc":{"start":{"line":42,"column":31},"end":{"line":46,"column":1}},"line":42}},"branchMap":{"0":{"loc":{"start":{"line":26,"column":19},"end":{"line":26,"column":72}},"type":"binary-expr","locations":[{"start":{"line":26,"column":19},"end":{"line":26,"column":40}},{"start":{"line":26,"column":45},"end":{"line":26,"column":71}}],"line":26},"1":{"loc":{"start":{"line":33,"column":19},"end":{"line":33,"column":72}},"type":"binary-expr","locations":[{"start":{"line":33,"column":19},"end":{"line":33,"column":40}},{"start":{"line":33,"column":45},"end":{"line":33,"column":71}}],"line":33},"2":{"loc":{"start":{"line":39,"column":14},"end":{"line":39,"column":57}},"type":"binary-expr","locations":[{"start":{"line":39,"column":14},"end":{"line":39,"column":30}},{"start":{"line":39,"column":35},"end":{"line":39,"column":56}}],"line":39},"3":{"loc":{"start":{"line":46,"column":24},"end":{"line":46,"column":87}},"type":"binary-expr","locations":[{"start":{"line":46,"column":24},"end":{"line":46,"column":50}},{"start":{"line":46,"column":55},"end":{"line":46,"column":86}}],"line":46}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1},"f":{"0":1,"1":1,"2":1,"3":1},"b":{"0":[1,1],"1":[1,1],"2":[1,1],"3":[1,1]},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/ScannerTypes.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/ScannerTypes.ts"],"names":[],"mappings":";;AAEA,IAAY,aA6BX;AA7BD,WAAY,aAAa;IACvB,0DAAyC,CAAA;IACzC,gEAA+C,CAAA;IAC/C,sDAAqC,CAAA;IACrC,0DAAyC,CAAA;IACzC,8CAA6B,CAAA;IAE7B,gEAA+C,CAAA;IAC/C,4DAA2C,CAAA;IAC3C,4DAA2C,CAAA;IAC3C,gFAA+D,CAAA;IAC/D,0EAAyD,CAAA;IACzD,oFAAmE,CAAA;IACnE,kDAAiC,CAAA;IAEjC,gEAA+C,CAAA;IAE/C,wDAAuC,CAAA;IACvC,wDAAuC,CAAA;IAEvC,wDAAuC,CAAA;IACvC,oDAAmC,CAAA;IAEnC,wCAAuB,CAAA;IACvB,sDAAqC,CAAA;IAErC,4CAA2B,CAAA;IAE3B,gCAAe,CAAA;AACjB,CAAC,EA7BW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QA6BxB;AAAA,CAAC;AAEF,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,kDAAiC,CAAA;IACjC,4DAA2C,CAAA;IAC3C,0DAAyC,CAAA;AAC3C,CAAC,EAJW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAIxB;AAAA,CAAC;AAEF,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,qCAAyB,CAAA;IACzB,sCAA0B,CAAA;AAC5B,CAAC,EAHW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAGnB;AAUA,CAAC;AAMF,IAAY,kBAAuE;AAAnF,WAAY,kBAAkB;IAAE,mCAAa,CAAA;IAAE,mCAAa,CAAA;IAAG,yCAAmB,CAAA;AAAA,CAAC,EAAvE,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAAqD;AAAA,CAAC;AAoEpF,qEAAqE","sourcesContent":["import path from 'path';\n\nexport enum ScannerEvents {\n WINNOWING_STARTING = 'WINNOWING_STARTING',\n WINNOWING_NEW_CONTENT = 'WINNOWING_NEW_CONTENT',\n WINNOWING_STATUS = 'WINNOWING_STATUS',\n WINNOWING_FINISHED = 'WINNOWING_FINISHED',\n WINNOWER_LOG = 'WINNOWER_LOG',\n\n DISPATCHER_WFP_SENDED = 'DISPATCHER_WFP_SENDED',\n DISPATCHER_NEW_DATA = 'DISPATCHER_NEW_DATA',\n DISPATCHER_FINISHED = 'DISPATCHER_FINISHED',\n DISPATCHER_ITEM_NO_DISPATCHED = 'DISPATCHER_ITEM_NO_DISPATCHED',\n DISPATCHER_QUEUE_SIZE_MAX_LIMIT = 'DISPATCHER_QUEUE_FULL',\n DISPATCHER_QUEUE_SIZE_MIN_LIMIT = 'DISPATCHER_QUEUE_SIZE_MIN_LIMIT',\n DISPATCHER_LOG = 'DISPATCHER_LOG',\n\n ERROR_SCANNER_ABORTED = 'ERROR_SCANNER_ABORTED',\n\n ERROR_SERVER_SIDE = 'ERROR_SERVER_SIDE',\n ERROR_CLIENT_SIDE = 'ERROR_CLIENT_SIDE',\n\n MODULE_DISPATCHER = 'MODULE_DISPATCHER',\n MODULE_WINNOWER = 'MODULE_WINNOWER',\n\n SCAN_DONE = 'SCAN_DONE',\n RESULTS_APPENDED = 'RESULTS_APPENDED',\n\n SCANNER_LOG = 'SCANNER_LOG',\n\n ERROR = 'error',\n};\n\nexport enum WinnowingMode {\n FULL_WINNOWING = 'FULL_WINNOWING',\n FULL_WINNOWING_HPSM = 'FULL_WINNOWING_HPSM',\n WINNOWING_ONLY_MD5 = 'WINNOWING_ONLY_MD5',\n};\n\nexport enum SbomMode {\n SBOM_IGNORE = 'blacklist',\n SBOM_IDENTIFY = 'identify'\n}\n\nexport interface ScannerInput {\n fileList: Array<string>;\n folderRoot?: string;\n engineFlags?: number;\n winnowingMode?: WinnowingMode; // Enable winnowing algorithm, otherwise is scanned only MD5\n wfpPath?: string;\n sbom?: string;\n sbomMode?: SbomMode;\n};\n\n/********************** Scanner results types **********************/\n\nexport type ScannerResults = Record<string , ScannerComponent[]>;\n\nexport enum ScannerComponentId {NONE = 'none', FILE = 'file' , SNIPPET = 'snippet'};\n\nexport interface ScannerComponent {\n id: ScannerComponentId;\n status: string;\n lines: string;\n oss_lines: string;\n matched: string;\n purl: string[];\n vendor: string\n component: string;\n version: string;\n latest: string;\n url: string;\n release_date: string;\n file: string;\n url_hash: string;\n file_hash: string;\n source_hash: string;\n file_url: string;\n licenses: {\n name: string;\n patent_hints: string;\n copyleft: string;\n checklist_url: string;\n osadl_updated: string;\n source: string;\n incompatible_with?: string;\n }[];\n dependencies: {\n vendor: string;\n component: string;\n version: string;\n source: string; }[];\n copyrights: {\n name: string;\n source: string; }[];\n vulnerabilities: {\n ID: string;\n CVE: string;\n severity: string;\n reported: string;\n introduced: string;\n patched: string;\n summary: string;\n source: string; }[];\n quality: {\n score: string;\n source: string; }[];\n cryptography: any[];\n health: {\n creation_date: string;\n issues: number;\n last_push: string;\n last_update: string;\n watchers: number;\n country: string;\n stars: number;\n forks: number;\n };\n server: {\n version: string;\n kb_version: { monthly: string; daily: string; }\n hostname: string;\n flags: string;\n elapsed: string;\n };\n}\n/********************** Scanner results types **********************/\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"aa59640ce2f20325eb654270c1f565cfa33ec98f"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/LocalDependency.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/LocalDependency.ts","statementMap":{"0":{"start":{"line":1,"column":22},"end":{"line":3,"column":1}},"1":{"start":{"line":2,"column":4},"end":{"line":2,"column":62}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":62}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":35}},"4":{"start":{"line":6,"column":15},"end":{"line":6,"column":47}},"5":{"start":{"line":7,"column":13},"end":{"line":7,"column":43}},"6":{"start":{"line":8,"column":19},"end":{"line":8,"column":48}},"7":{"start":{"line":9,"column":22},"end":{"line":9,"column":54}},"8":{"start":{"line":10,"column":20},"end":{"line":10,"column":50}},"9":{"start":{"line":11,"column":21},"end":{"line":11,"column":52}},"10":{"start":{"line":12,"column":23},"end":{"line":12,"column":56}},"11":{"start":{"line":13,"column":22},"end":{"line":13,"column":54}},"12":{"start":{"line":14,"column":28},"end":{"line":14,"column":66}},"13":{"start":{"line":21,"column":8},"end":{"line":34,"column":10}},"14":{"start":{"line":37,"column":22},"end":{"line":37,"column":35}},"15":{"start":{"line":38,"column":8},"end":{"line":53,"column":9}},"16":{"start":{"line":39,"column":29},"end":{"line":39,"column":62}},"17":{"start":{"line":40,"column":27},"end":{"line":40,"column":55}},"18":{"start":{"line":41,"column":12},"end":{"line":52,"column":13}},"19":{"start":{"line":42,"column":16},"end":{"line":51,"column":17}},"20":{"start":{"line":43,"column":40},"end":{"line":43,"column":94}},"21":{"start":{"line":44,"column":39},"end":{"line":44,"column":74}},"22":{"start":{"line":45,"column":20},"end":{"line":46,"column":55}},"23":{"start":{"line":46,"column":24},"end":{"line":46,"column":55}},"24":{"start":{"line":49,"column":20},"end":{"line":49,"column":37}},"25":{"start":{"line":50,"column":20},"end":{"line":50,"column":29}},"26":{"start":{"line":54,"column":8},"end":{"line":54,"column":23}},"27":{"start":{"line":58,"column":21},"end":{"line":58,"column":45}},"28":{"start":{"line":59,"column":8},"end":{"line":60,"column":24}},"29":{"start":{"line":60,"column":12},"end":{"line":60,"column":24}},"30":{"start":{"line":62,"column":30},"end":{"line":62,"column":94}},"31":{"start":{"line":62,"column":75},"end":{"line":62,"column":93}},"32":{"start":{"line":63,"column":8},"end":{"line":66,"column":9}},"33":{"start":{"line":64,"column":12},"end":{"line":65,"column":47}},"34":{"start":{"line":65,"column":16},"end":{"line":65,"column":47}},"35":{"start":{"line":67,"column":8},"end":{"line":67,"column":20}},"36":{"start":{"line":72,"column":20},"end":{"line":72,"column":21}},"37":{"start":{"line":73,"column":23},"end":{"line":73,"column":24}},"38":{"start":{"line":74,"column":26},"end":{"line":74,"column":30}},"39":{"start":{"line":75,"column":29},"end":{"line":75,"column":33}},"40":{"start":{"line":76,"column":8},"end":{"line":93,"column":9}},"41":{"start":{"line":77,"column":12},"end":{"line":92,"column":13}},"42":{"start":{"line":79,"column":16},"end":{"line":79,"column":36}},"43":{"start":{"line":80,"column":16},"end":{"line":80,"column":44}},"44":{"start":{"line":82,"column":17},"end":{"line":92,"column":13}},"45":{"start":{"line":83,"column":16},"end":{"line":83,"column":24}},"46":{"start":{"line":84,"column":16},"end":{"line":84,"column":27}},"47":{"start":{"line":88,"column":16},"end":{"line":89,"column":33}},"48":{"start":{"line":89,"column":20},"end":{"line":89,"column":33}},"49":{"start":{"line":90,"column":16},"end":{"line":90,"column":38}},"50":{"start":{"line":91,"column":16},"end":{"line":91,"column":42}},"51":{"start":{"line":95,"column":8},"end":{"line":96,"column":29}},"52":{"start":{"line":96,"column":12},"end":{"line":96,"column":29}},"53":{"start":{"line":98,"column":8},"end":{"line":98,"column":57}},"54":{"start":{"line":101,"column":0},"end":{"line":101,"column":46}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":56},"end":{"line":1,"column":57}},"loc":{"start":{"line":1,"column":71},"end":{"line":3,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":16,"column":4},"end":{"line":16,"column":5}},"loc":{"start":{"line":16,"column":18},"end":{"line":35,"column":5}},"line":16},"2":{"name":"(anonymous_2)","decl":{"start":{"line":36,"column":4},"end":{"line":36,"column":5}},"loc":{"start":{"line":36,"column":24},"end":{"line":55,"column":5}},"line":36},"3":{"name":"(anonymous_3)","decl":{"start":{"line":56,"column":4},"end":{"line":56,"column":5}},"loc":{"start":{"line":56,"column":28},"end":{"line":68,"column":5}},"line":56},"4":{"name":"(anonymous_4)","decl":{"start":{"line":62,"column":65},"end":{"line":62,"column":66}},"loc":{"start":{"line":62,"column":75},"end":{"line":62,"column":93}},"line":62},"5":{"name":"(anonymous_5)","decl":{"start":{"line":71,"column":4},"end":{"line":71,"column":5}},"loc":{"start":{"line":71,"column":43},"end":{"line":99,"column":5}},"line":71}},"branchMap":{"0":{"loc":{"start":{"line":1,"column":22},"end":{"line":3,"column":1}},"type":"binary-expr","locations":[{"start":{"line":1,"column":23},"end":{"line":1,"column":27}},{"start":{"line":1,"column":31},"end":{"line":1,"column":51}},{"start":{"line":1,"column":56},"end":{"line":3,"column":1}}],"line":1},"1":{"loc":{"start":{"line":2,"column":11},"end":{"line":2,"column":61}},"type":"cond-expr","locations":[{"start":{"line":2,"column":37},"end":{"line":2,"column":40}},{"start":{"line":2,"column":43},"end":{"line":2,"column":61}}],"line":2},"2":{"loc":{"start":{"line":2,"column":12},"end":{"line":2,"column":33}},"type":"binary-expr","locations":[{"start":{"line":2,"column":12},"end":{"line":2,"column":15}},{"start":{"line":2,"column":19},"end":{"line":2,"column":33}}],"line":2},"3":{"loc":{"start":{"line":41,"column":12},"end":{"line":52,"column":13}},"type":"if","locations":[{"start":{"line":41,"column":12},"end":{"line":52,"column":13}},{"start":{"line":41,"column":12},"end":{"line":52,"column":13}}],"line":41},"4":{"loc":{"start":{"line":45,"column":20},"end":{"line":46,"column":55}},"type":"if","locations":[{"start":{"line":45,"column":20},"end":{"line":46,"column":55}},{"start":{"line":45,"column":20},"end":{"line":46,"column":55}}],"line":45},"5":{"loc":{"start":{"line":59,"column":8},"end":{"line":60,"column":24}},"type":"if","locations":[{"start":{"line":59,"column":8},"end":{"line":60,"column":24}},{"start":{"line":59,"column":8},"end":{"line":60,"column":24}}],"line":59},"6":{"loc":{"start":{"line":64,"column":12},"end":{"line":65,"column":47}},"type":"if","locations":[{"start":{"line":64,"column":12},"end":{"line":65,"column":47}},{"start":{"line":64,"column":12},"end":{"line":65,"column":47}}],"line":64},"7":{"loc":{"start":{"line":77,"column":12},"end":{"line":92,"column":13}},"type":"if","locations":[{"start":{"line":77,"column":12},"end":{"line":92,"column":13}},{"start":{"line":77,"column":12},"end":{"line":92,"column":13}}],"line":77},"8":{"loc":{"start":{"line":82,"column":17},"end":{"line":92,"column":13}},"type":"if","locations":[{"start":{"line":82,"column":17},"end":{"line":92,"column":13}},{"start":{"line":82,"column":17},"end":{"line":92,"column":13}}],"line":82},"9":{"loc":{"start":{"line":88,"column":16},"end":{"line":89,"column":33}},"type":"if","locations":[{"start":{"line":88,"column":16},"end":{"line":89,"column":33}},{"start":{"line":88,"column":16},"end":{"line":89,"column":33}}],"line":88},"10":{"loc":{"start":{"line":98,"column":15},"end":{"line":98,"column":56}},"type":"cond-expr","locations":[{"start":{"line":98,"column":44},"end":{"line":98,"column":48}},{"start":{"line":98,"column":51},"end":{"line":98,"column":56}}],"line":98}},"s":{"0":1,"1":2,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":7,"37":7,"38":7,"39":7,"40":7,"41":167,"42":9,"43":9,"44":158,"45":24,"46":24,"47":134,"48":0,"49":134,"50":134,"51":7,"52":0,"53":7,"54":1},"f":{"0":2,"1":1,"2":0,"3":0,"4":0,"5":7},"b":{"0":[1,1,1],"1":[0,2],"2":[2,2],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[9,158],"8":[24,134],"9":[0,134],"10":[5,2]},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/LocalDependency.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/LocalDependency.ts"],"names":[],"mappings":"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","sourcesContent":["import path from 'path';\nimport fs from 'fs';\nimport { ParserFuncType, ILocalDependencies } from \"./DependencyTypes\";\nimport { requirementsParser } from \"./parsers/pyParser\";\nimport { pomParser } from \"./parsers/mavenParser\";\nimport {\n packagelockParser,\n packageParser,\n yarnLockParser\n} from './parsers/npmParser';\nimport { gemfilelockParser, gemfileParser } from \"./parsers/rubyParser\";\nimport { goModParser, goSumParser } from './parsers/golangParser';\nimport { csprojParser, packagesConfigParser } from './parsers/nugetParser';\nimport { buildGradleParser } from './parsers/buildGradleParser';\n\nexport class LocalDependencies {\n\n private parserMap: Record<string, ParserFuncType>;\n constructor() {\n /*\n This is a hash map that connect a filename with it's own parser function\n Any parser function must return a ILocalDependencies object (See DependencyTypes.ts)\n */\n this.parserMap = {\n 'requirements.txt': requirementsParser,\n 'pom.xml': pomParser,\n 'package.json': packageParser,\n 'package-lock.json': packagelockParser,\n 'Gemfile': gemfileParser,\n 'Gemfile.lock': gemfilelockParser,\n 'go.mod': goModParser,\n 'go.sum': goSumParser,\n 'yarn.lock': yarnLockParser,\n '*.csproj': csprojParser,\n 'packages.config': packagesConfigParser,\n 'build.gradle': buildGradleParser,\n };\n }\n\n public async search(files: Array<string>): Promise<ILocalDependencies> {\n let results: ILocalDependencies = {files: []};\n for (const filePath of files) {\n const fileName = path.basename(filePath);\n const parser: ParserFuncType = this.getParserFunc(fileName);\n if(parser != null) {\n try {\n const fileContent = await fs.promises.readFile(filePath, 'utf8');\n const dependency = await parser(fileContent, filePath);\n if(dependency.purls.length != 0)\n results.files.push(dependency);\n } catch(e) {\n console.error(e);\n continue;\n }\n }\n }\n return results;\n }\n\n private getParserFunc(filename: string): ParserFuncType {\n\n //Check for an exact match\n const func = this.parserMap[filename];\n if(func) return func\n\n\n //Check for a wildcard string match\n const filesPatterns = Object.keys(this.parserMap).filter((item) => item.includes(\"*\"));\n for (const pattern of filesPatterns) {\n\n if (this.stringMatchWithWildcard(filename, pattern)) return this.parserMap[pattern];\n }\n\n return null;\n }\n\n\n // The logic for the string wildcard match algorithm was an imitation from here:\n // https://www.codeproject.com/Articles/5163931/Fast-String-Matching-with-Wildcards-Globs-and-Giti\n public stringMatchWithWildcard(text: string, pattern: string): boolean {\n\n let iText = 0;\n let iPattern = 0;\n\n let iTextBackup = null;\n let iPatternBackup = null;\n\n while (text[iText]) {\n if (pattern[iPattern] == '*') {\n // new star-loop: backup positions in pattern and text\n iTextBackup = iText;\n iPatternBackup = ++iPattern;\n } else if (text[iText] == pattern[iPattern]) {\n iText++;\n iPattern++;\n } else {\n //If there are no star, we fail to match\n if (iPatternBackup == null) return false;\n iText = ++iTextBackup;\n iPattern = iPatternBackup;\n }\n }\n\n //Ignore trailling stars\n while (pattern[iPattern] == '*') iPatternBackup++\n\n //There is a match when the pattern was walked all the way throught\n return iPattern >= pattern.length ? true : false\n }\n\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"39cf23ddbaa3477a8c2a0008ecefe1d0cd62aafc"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/pyParser.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/pyParser.ts","statementMap":{"0":{"start":{"line":1,"column":22},"end":{"line":3,"column":1}},"1":{"start":{"line":2,"column":4},"end":{"line":2,"column":62}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":62}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":36}},"4":{"start":{"line":6,"column":15},"end":{"line":6,"column":47}},"5":{"start":{"line":7,"column":24},"end":{"line":7,"column":48}},"6":{"start":{"line":8,"column":16},"end":{"line":8,"column":34}},"7":{"start":{"line":11,"column":16},"end":{"line":11,"column":84}},"8":{"start":{"line":12,"column":4},"end":{"line":16,"column":6}},"9":{"start":{"line":18,"column":18},"end":{"line":18,"column":24}},"10":{"start":{"line":21,"column":22},"end":{"line":21,"column":40}},"11":{"start":{"line":24,"column":20},"end":{"line":24,"column":49}},"12":{"start":{"line":25,"column":4},"end":{"line":26,"column":40}},"13":{"start":{"line":26,"column":8},"end":{"line":26,"column":40}},"14":{"start":{"line":27,"column":18},"end":{"line":27,"column":41}},"15":{"start":{"line":28,"column":4},"end":{"line":60,"column":5}},"16":{"start":{"line":29,"column":8},"end":{"line":29,"column":27}},"17":{"start":{"line":30,"column":8},"end":{"line":31,"column":21}},"18":{"start":{"line":31,"column":12},"end":{"line":31,"column":21}},"19":{"start":{"line":32,"column":8},"end":{"line":59,"column":9}},"20":{"start":{"line":33,"column":12},"end":{"line":58,"column":13}},"21":{"start":{"line":35,"column":28},"end":{"line":35,"column":103}},"22":{"start":{"line":36,"column":16},"end":{"line":36,"column":25}},"23":{"start":{"line":38,"column":17},"end":{"line":58,"column":13}},"24":{"start":{"line":39,"column":16},"end":{"line":39,"column":25}},"25":{"start":{"line":41,"column":17},"end":{"line":58,"column":13}},"26":{"start":{"line":42,"column":16},"end":{"line":42,"column":25}},"27":{"start":{"line":45,"column":28},"end":{"line":45,"column":42}},"28":{"start":{"line":46,"column":16},"end":{"line":57,"column":17}},"29":{"start":{"line":47,"column":39},"end":{"line":47,"column":145}},"30":{"start":{"line":48,"column":20},"end":{"line":48,"column":61}},"31":{"start":{"line":50,"column":21},"end":{"line":57,"column":17}},"32":{"start":{"line":51,"column":39},"end":{"line":51,"column":147}},"33":{"start":{"line":52,"column":20},"end":{"line":52,"column":61}},"34":{"start":{"line":55,"column":39},"end":{"line":55,"column":145}},"35":{"start":{"line":56,"column":20},"end":{"line":56,"column":97}},"36":{"start":{"line":61,"column":4},"end":{"line":61,"column":36}},"37":{"start":{"line":63,"column":0},"end":{"line":63,"column":48}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":56},"end":{"line":1,"column":57}},"loc":{"start":{"line":1,"column":71},"end":{"line":3,"column":1}},"line":1},"1":{"name":"parseDep","decl":{"start":{"line":9,"column":9},"end":{"line":9,"column":17}},"loc":{"start":{"line":9,"column":23},"end":{"line":17,"column":1}},"line":9},"2":{"name":"requirementsParser","decl":{"start":{"line":22,"column":9},"end":{"line":22,"column":27}},"loc":{"start":{"line":22,"column":51},"end":{"line":62,"column":1}},"line":22}},"branchMap":{"0":{"loc":{"start":{"line":1,"column":22},"end":{"line":3,"column":1}},"type":"binary-expr","locations":[{"start":{"line":1,"column":23},"end":{"line":1,"column":27}},{"start":{"line":1,"column":31},"end":{"line":1,"column":51}},{"start":{"line":1,"column":56},"end":{"line":3,"column":1}}],"line":1},"1":{"loc":{"start":{"line":2,"column":11},"end":{"line":2,"column":61}},"type":"cond-expr","locations":[{"start":{"line":2,"column":37},"end":{"line":2,"column":40}},{"start":{"line":2,"column":43},"end":{"line":2,"column":61}}],"line":2},"2":{"loc":{"start":{"line":2,"column":12},"end":{"line":2,"column":33}},"type":"binary-expr","locations":[{"start":{"line":2,"column":12},"end":{"line":2,"column":15}},{"start":{"line":2,"column":19},"end":{"line":2,"column":33}}],"line":2},"3":{"loc":{"start":{"line":13,"column":14},"end":{"line":13,"column":118}},"type":"cond-expr","locations":[{"start":{"line":13,"column":102},"end":{"line":13,"column":108}},{"start":{"line":13,"column":111},"end":{"line":13,"column":118}}],"line":13},"4":{"loc":{"start":{"line":13,"column":14},"end":{"line":13,"column":99}},"type":"binary-expr","locations":[{"start":{"line":13,"column":14},"end":{"line":13,"column":82}},{"start":{"line":13,"column":86},"end":{"line":13,"column":99}}],"line":13},"5":{"loc":{"start":{"line":13,"column":20},"end":{"line":13,"column":72}},"type":"cond-expr","locations":[{"start":{"line":13,"column":53},"end":{"line":13,"column":59}},{"start":{"line":13,"column":62},"end":{"line":13,"column":72}}],"line":13},"6":{"loc":{"start":{"line":13,"column":20},"end":{"line":13,"column":50}},"type":"binary-expr","locations":[{"start":{"line":13,"column":20},"end":{"line":13,"column":32}},{"start":{"line":13,"column":36},"end":{"line":13,"column":50}}],"line":13},"7":{"loc":{"start":{"line":14,"column":13},"end":{"line":14,"column":116}},"type":"cond-expr","locations":[{"start":{"line":14,"column":101},"end":{"line":14,"column":107}},{"start":{"line":14,"column":110},"end":{"line":14,"column":116}}],"line":14},"8":{"loc":{"start":{"line":14,"column":13},"end":{"line":14,"column":98}},"type":"binary-expr","locations":[{"start":{"line":14,"column":13},"end":{"line":14,"column":81}},{"start":{"line":14,"column":85},"end":{"line":14,"column":98}}],"line":14},"9":{"loc":{"start":{"line":14,"column":19},"end":{"line":14,"column":71}},"type":"cond-expr","locations":[{"start":{"line":14,"column":52},"end":{"line":14,"column":58}},{"start":{"line":14,"column":61},"end":{"line":14,"column":71}}],"line":14},"10":{"loc":{"start":{"line":14,"column":19},"end":{"line":14,"column":49}},"type":"binary-expr","locations":[{"start":{"line":14,"column":19},"end":{"line":14,"column":31}},{"start":{"line":14,"column":35},"end":{"line":14,"column":49}}],"line":14},"11":{"loc":{"start":{"line":15,"column":17},"end":{"line":15,"column":124}},"type":"cond-expr","locations":[{"start":{"line":15,"column":105},"end":{"line":15,"column":111}},{"start":{"line":15,"column":114},"end":{"line":15,"column":124}}],"line":15},"12":{"loc":{"start":{"line":15,"column":17},"end":{"line":15,"column":102}},"type":"binary-expr","locations":[{"start":{"line":15,"column":17},"end":{"line":15,"column":85}},{"start":{"line":15,"column":89},"end":{"line":15,"column":102}}],"line":15},"13":{"loc":{"start":{"line":15,"column":23},"end":{"line":15,"column":75}},"type":"cond-expr","locations":[{"start":{"line":15,"column":56},"end":{"line":15,"column":62}},{"start":{"line":15,"column":65},"end":{"line":15,"column":75}}],"line":15},"14":{"loc":{"start":{"line":15,"column":23},"end":{"line":15,"column":53}},"type":"binary-expr","locations":[{"start":{"line":15,"column":23},"end":{"line":15,"column":35}},{"start":{"line":15,"column":39},"end":{"line":15,"column":53}}],"line":15},"15":{"loc":{"start":{"line":25,"column":4},"end":{"line":26,"column":40}},"type":"if","locations":[{"start":{"line":25,"column":4},"end":{"line":26,"column":40}},{"start":{"line":25,"column":4},"end":{"line":26,"column":40}}],"line":25},"16":{"loc":{"start":{"line":30,"column":8},"end":{"line":31,"column":21}},"type":"if","locations":[{"start":{"line":30,"column":8},"end":{"line":31,"column":21}},{"start":{"line":30,"column":8},"end":{"line":31,"column":21}}],"line":30},"17":{"loc":{"start":{"line":32,"column":8},"end":{"line":59,"column":9}},"type":"if","locations":[{"start":{"line":32,"column":8},"end":{"line":59,"column":9}},{"start":{"line":32,"column":8},"end":{"line":59,"column":9}}],"line":32},"18":{"loc":{"start":{"line":32,"column":12},"end":{"line":32,"column":52}},"type":"binary-expr","locations":[{"start":{"line":32,"column":12},"end":{"line":32,"column":33}},{"start":{"line":32,"column":37},"end":{"line":32,"column":52}}],"line":32},"19":{"loc":{"start":{"line":33,"column":12},"end":{"line":58,"column":13}},"type":"if","locations":[{"start":{"line":33,"column":12},"end":{"line":58,"column":13}},{"start":{"line":33,"column":12},"end":{"line":58,"column":13}}],"line":33},"20":{"loc":{"start":{"line":38,"column":17},"end":{"line":58,"column":13}},"type":"if","locations":[{"start":{"line":38,"column":17},"end":{"line":58,"column":13}},{"start":{"line":38,"column":17},"end":{"line":58,"column":13}}],"line":38},"21":{"loc":{"start":{"line":41,"column":17},"end":{"line":58,"column":13}},"type":"if","locations":[{"start":{"line":41,"column":17},"end":{"line":58,"column":13}},{"start":{"line":41,"column":17},"end":{"line":58,"column":13}}],"line":41},"22":{"loc":{"start":{"line":46,"column":16},"end":{"line":57,"column":17}},"type":"if","locations":[{"start":{"line":46,"column":16},"end":{"line":57,"column":17}},{"start":{"line":46,"column":16},"end":{"line":57,"column":17}}],"line":46},"23":{"loc":{"start":{"line":50,"column":21},"end":{"line":57,"column":17}},"type":"if","locations":[{"start":{"line":50,"column":21},"end":{"line":57,"column":17}},{"start":{"line":50,"column":21},"end":{"line":57,"column":17}}],"line":50}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":0,"8":0,"9":1,"10":1,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":1},"f":{"0":1,"1":0,"2":0},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0]},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/pyParser.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/pyParser.ts"],"names":[],"mappings":"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","sourcesContent":["import path from \"path\";\nimport { PackageURL } from \"packageurl-js\";\nimport { ILocalDependency } from \"../DependencyTypes\";\nimport { isValidPath, isValidUrl } from './utils';\n\n\nfunction parseDep (str: string) {\n const res = /^(?<name>[-\\w]+)\\s*(?<sym>[>=~!]*)\\s*(?<version>[\\d\\.]*)/.exec(str);\n return {\n name: res?.groups?.name,\n sym: res?.groups?.sym,\n version: res?.groups?.version,\n };\n}\n\nconst PURL_TYPE = 'pypi';\n\n// Parse a requirements.txt file from python projects\n// See reference on: https://pip.pypa.io/en/stable/reference/requirements-file-format/\nconst MANIFEST_FILE = 'requirements.txt';\nexport function requirementsParser(fileContent: string, filePath: string): Promise<ILocalDependency> {\n\n // If the file is not a python manifest file, return an empty results\n const results: ILocalDependency = {file: filePath, purls: []};\n if(path.basename(filePath) != MANIFEST_FILE)\n return Promise.resolve(results);\n\n const lines: Array<string> = fileContent.split('\\n');\n\n for (let line of lines) {\n line = line.trim();\n if(line.length == 0) continue;\n if(!line.startsWith('#') && line.length>0) { // Avoid comments and new lines\n if(isValidUrl(line)) {\n // For reference about the regex see https://www.rfc-editor.org/rfc/rfc3986#appendix-B\n const res = line.match(/^(([^:\\/?#]+):)?(\\/\\/([^\\/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/);\n continue;\n }\n else if(isValidPath(line)) {continue;} // Do not parse local dependencies.\n else if(line.startsWith('-r')) {continue;} // Recursive dependencies (NOT SUPPORTED YET)\n else {\n\n const dep = parseDep(line);\n if (!dep.sym) {\n const purlString = new PackageURL(PURL_TYPE, undefined, dep.name, undefined, undefined, undefined).toString();\n results.purls.push({purl: purlString});\n } else if (dep.sym === '==') {\n const purlString = new PackageURL(PURL_TYPE, undefined, dep.name, dep.version, undefined, undefined).toString();\n results.purls.push({purl: purlString});\n } else {\n const purlString = new PackageURL(PURL_TYPE, undefined, dep.name, undefined, undefined, undefined).toString();\n results.purls.push({purl: purlString, requirement: dep.sym+dep.version});\n }\n }\n }\n }\n return Promise.resolve(results);\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"1b0cbedc34d5b2889f57086458c0d552291d7a66"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/utils.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/utils.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":62}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":50}},"2":{"start":{"line":3,"column":14},"end":{"line":3,"column":28}},"3":{"start":{"line":6,"column":4},"end":{"line":11,"column":5}},"4":{"start":{"line":7,"column":8},"end":{"line":7,"column":30}},"5":{"start":{"line":10,"column":8},"end":{"line":10,"column":21}},"6":{"start":{"line":12,"column":4},"end":{"line":12,"column":16}},"7":{"start":{"line":14,"column":0},"end":{"line":14,"column":32}},"8":{"start":{"line":16,"column":4},"end":{"line":16,"column":64}},"9":{"start":{"line":18,"column":0},"end":{"line":18,"column":34}}},"fnMap":{"0":{"name":"isValidUrl","decl":{"start":{"line":4,"column":9},"end":{"line":4,"column":19}},"loc":{"start":{"line":4,"column":28},"end":{"line":13,"column":1}},"line":4},"1":{"name":"isValidPath","decl":{"start":{"line":15,"column":9},"end":{"line":15,"column":20}},"loc":{"start":{"line":15,"column":29},"end":{"line":17,"column":1}},"line":15}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":0,"4":0,"5":0,"6":0,"7":1,"8":0,"9":1},"f":{"0":0,"1":0},"b":{},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/utils.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/utils.ts"],"names":[],"mappings":";;AAAA,6BAA0B;AAE1B,SAAgB,UAAU,CAAC,MAAc;IACrC,IAAI,GAAQ,CAAC;IACb,IAAI;QACF,IAAI,SAAG,CAAC,MAAM,CAAC,CAAC;KACjB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAC;KACd;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AARH,gCAQG;AAEH,SAAgB,WAAW,CAAC,MAAc;IACxC,OAAO,uCAAuC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9D,CAAC;AAFD,kCAEC","sourcesContent":["import { URL } from \"url\";\n\nexport function isValidUrl(string: string): boolean {\n let url: URL;\n try {\n new URL(string);\n } catch (_) {\n return false;\n }\n return true;\n }\n\nexport function isValidPath(string: string): boolean {\n return /^((?:\\.\\.?)|(?:[a-zA-Z]:\\\\)|(?:\\/))/gm.test(string);\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"ed29c650ea2b670ef70aeffad7ac5aa5ea63529b"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.ts","statementMap":{"0":{"start":{"line":1,"column":22},"end":{"line":3,"column":1}},"1":{"start":{"line":2,"column":4},"end":{"line":2,"column":62}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":62}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":27}},"4":{"start":{"line":6,"column":15},"end":{"line":6,"column":47}},"5":{"start":{"line":7,"column":24},"end":{"line":7,"column":48}},"6":{"start":{"line":8,"column":18},"end":{"line":8,"column":25}},"7":{"start":{"line":12,"column":22},"end":{"line":12,"column":31}},"8":{"start":{"line":15,"column":20},"end":{"line":15,"column":49}},"9":{"start":{"line":16,"column":4},"end":{"line":17,"column":40}},"10":{"start":{"line":17,"column":8},"end":{"line":17,"column":40}},"11":{"start":{"line":18,"column":25},"end":{"line":18,"column":86}},"12":{"start":{"line":19,"column":4},"end":{"line":45,"column":5}},"13":{"start":{"line":20,"column":8},"end":{"line":44,"column":11}},"14":{"start":{"line":22,"column":28},"end":{"line":22,"column":75}},"15":{"start":{"line":23,"column":30},"end":{"line":23,"column":82}},"16":{"start":{"line":25,"column":31},"end":{"line":25,"column":84}},"17":{"start":{"line":26,"column":25},"end":{"line":26,"column":86}},"18":{"start":{"line":27,"column":31},"end":{"line":27,"column":78}},"19":{"start":{"line":29,"column":12},"end":{"line":30,"column":70}},"20":{"start":{"line":30,"column":16},"end":{"line":30,"column":70}},"21":{"start":{"line":32,"column":29},"end":{"line":32,"column":72}},"22":{"start":{"line":33,"column":26},"end":{"line":33,"column":81}},"23":{"start":{"line":35,"column":34},"end":{"line":35,"column":87}},"24":{"start":{"line":36,"column":31},"end":{"line":36,"column":101}},"25":{"start":{"line":37,"column":28},"end":{"line":37,"column":69}},"26":{"start":{"line":38,"column":25},"end":{"line":38,"column":77}},"27":{"start":{"line":40,"column":12},"end":{"line":41,"column":118}},"28":{"start":{"line":41,"column":16},"end":{"line":41,"column":118}},"29":{"start":{"line":42,"column":31},"end":{"line":42,"column":138}},"30":{"start":{"line":43,"column":12},"end":{"line":43,"column":89}},"31":{"start":{"line":47,"column":33},"end":{"line":47,"column":58}},"32":{"start":{"line":48,"column":4},"end":{"line":48,"column":49}},"33":{"start":{"line":50,"column":0},"end":{"line":50,"column":30}},"34":{"start":{"line":52,"column":16},"end":{"line":52,"column":18}},"35":{"start":{"line":53,"column":4},"end":{"line":55,"column":5}},"36":{"start":{"line":54,"column":8},"end":{"line":54,"column":28}},"37":{"start":{"line":56,"column":4},"end":{"line":56,"column":39}},"38":{"start":{"line":57,"column":4},"end":{"line":57,"column":19}},"39":{"start":{"line":61,"column":18},"end":{"line":61,"column":20}},"40":{"start":{"line":62,"column":4},"end":{"line":75,"column":5}},"41":{"start":{"line":63,"column":8},"end":{"line":74,"column":9}},"42":{"start":{"line":64,"column":12},"end":{"line":64,"column":85}},"43":{"start":{"line":66,"column":13},"end":{"line":74,"column":9}},"44":{"start":{"line":67,"column":29},"end":{"line":67,"column":69}},"45":{"start":{"line":68,"column":27},"end":{"line":68,"column":96}},"46":{"start":{"line":69,"column":12},"end":{"line":70,"column":36}},"47":{"start":{"line":70,"column":16},"end":{"line":70,"column":36}},"48":{"start":{"line":73,"column":12},"end":{"line":73,"column":52}},"49":{"start":{"line":76,"column":4},"end":{"line":76,"column":19}},"50":{"start":{"line":79,"column":19},"end":{"line":79,"column":50}},"51":{"start":{"line":80,"column":4},"end":{"line":81,"column":32}},"52":{"start":{"line":81,"column":8},"end":{"line":81,"column":32}},"53":{"start":{"line":82,"column":4},"end":{"line":82,"column":14}},"54":{"start":{"line":85,"column":19},"end":{"line":85,"column":51}},"55":{"start":{"line":86,"column":4},"end":{"line":87,"column":32}},"56":{"start":{"line":87,"column":8},"end":{"line":87,"column":32}},"57":{"start":{"line":88,"column":4},"end":{"line":88,"column":14}},"58":{"start":{"line":91,"column":19},"end":{"line":91,"column":41}},"59":{"start":{"line":92,"column":4},"end":{"line":93,"column":30}},"60":{"start":{"line":93,"column":8},"end":{"line":93,"column":30}},"61":{"start":{"line":94,"column":4},"end":{"line":94,"column":14}},"62":{"start":{"line":97,"column":19},"end":{"line":97,"column":43}},"63":{"start":{"line":98,"column":4},"end":{"line":99,"column":29}},"64":{"start":{"line":99,"column":8},"end":{"line":99,"column":29}},"65":{"start":{"line":100,"column":4},"end":{"line":100,"column":14}},"66":{"start":{"line":103,"column":4},"end":{"line":103,"column":70}},"67":{"start":{"line":106,"column":4},"end":{"line":106,"column":63}},"68":{"start":{"line":109,"column":12},"end":{"line":109,"column":13}},"69":{"start":{"line":110,"column":4},"end":{"line":114,"column":5}},"70":{"start":{"line":111,"column":8},"end":{"line":112,"column":18}},"71":{"start":{"line":112,"column":12},"end":{"line":112,"column":18}},"72":{"start":{"line":113,"column":8},"end":{"line":113,"column":15}},"73":{"start":{"line":115,"column":4},"end":{"line":115,"column":13}},"74":{"start":{"line":118,"column":4},"end":{"line":130,"column":5}},"75":{"start":{"line":118,"column":17},"end":{"line":118,"column":18}},"76":{"start":{"line":119,"column":30},"end":{"line":119,"column":51}},"77":{"start":{"line":120,"column":29},"end":{"line":120,"column":49}},"78":{"start":{"line":121,"column":8},"end":{"line":129,"column":9}},"79":{"start":{"line":122,"column":12},"end":{"line":122,"column":57}},"80":{"start":{"line":123,"column":13},"end":{"line":129,"column":9}},"81":{"start":{"line":124,"column":12},"end":{"line":127,"column":13}},"82":{"start":{"line":125,"column":16},"end":{"line":125,"column":30}},"83":{"start":{"line":126,"column":16},"end":{"line":126,"column":23}},"84":{"start":{"line":128,"column":12},"end":{"line":128,"column":53}},"85":{"start":{"line":131,"column":4},"end":{"line":131,"column":17}},"86":{"start":{"line":134,"column":16},"end":{"line":134,"column":40}},"87":{"start":{"line":135,"column":18},"end":{"line":135,"column":20}},"88":{"start":{"line":136,"column":24},"end":{"line":136,"column":25}},"89":{"start":{"line":137,"column":23},"end":{"line":137,"column":25}},"90":{"start":{"line":138,"column":21},"end":{"line":138,"column":23}},"91":{"start":{"line":139,"column":18},"end":{"line":139,"column":20}},"92":{"start":{"line":141,"column":4},"end":{"line":141,"column":35}},"93":{"start":{"line":142,"column":4},"end":{"line":180,"column":5}},"94":{"start":{"line":142,"column":17},"end":{"line":142,"column":18}},"95":{"start":{"line":143,"column":19},"end":{"line":143,"column":34}},"96":{"start":{"line":144,"column":8},"end":{"line":145,"column":21}},"97":{"start":{"line":145,"column":12},"end":{"line":145,"column":21}},"98":{"start":{"line":146,"column":8},"end":{"line":146,"column":48}},"99":{"start":{"line":147,"column":8},"end":{"line":147,"column":44}},"100":{"start":{"line":149,"column":8},"end":{"line":150,"column":21}},"101":{"start":{"line":150,"column":12},"end":{"line":150,"column":21}},"102":{"start":{"line":153,"column":8},"end":{"line":158,"column":9}},"103":{"start":{"line":154,"column":12},"end":{"line":154,"column":19}},"104":{"start":{"line":155,"column":12},"end":{"line":156,"column":23}},"105":{"start":{"line":156,"column":16},"end":{"line":156,"column":23}},"106":{"start":{"line":157,"column":12},"end":{"line":157,"column":21}},"107":{"start":{"line":160,"column":8},"end":{"line":160,"column":27}},"108":{"start":{"line":161,"column":8},"end":{"line":161,"column":33}},"109":{"start":{"line":163,"column":8},"end":{"line":177,"column":9}},"110":{"start":{"line":165,"column":12},"end":{"line":169,"column":13}},"111":{"start":{"line":166,"column":16},"end":{"line":166,"column":59}},"112":{"start":{"line":167,"column":16},"end":{"line":167,"column":61}},"113":{"start":{"line":168,"column":16},"end":{"line":168,"column":28}},"114":{"start":{"line":171,"column":12},"end":{"line":171,"column":19}},"115":{"start":{"line":172,"column":12},"end":{"line":175,"column":13}},"116":{"start":{"line":173,"column":16},"end":{"line":173,"column":43}},"117":{"start":{"line":174,"column":16},"end":{"line":174,"column":23}},"118":{"start":{"line":176,"column":12},"end":{"line":176,"column":27}},"119":{"start":{"line":178,"column":8},"end":{"line":178,"column":26}},"120":{"start":{"line":179,"column":8},"end":{"line":179,"column":24}},"121":{"start":{"line":181,"column":4},"end":{"line":181,"column":14}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":56},"end":{"line":1,"column":57}},"loc":{"start":{"line":1,"column":71},"end":{"line":3,"column":1}},"line":1},"1":{"name":"pomParser","decl":{"start":{"line":13,"column":9},"end":{"line":13,"column":18}},"loc":{"start":{"line":13,"column":42},"end":{"line":49,"column":1}},"line":13},"2":{"name":"(anonymous_2)","decl":{"start":{"line":20,"column":29},"end":{"line":20,"column":30}},"loc":{"start":{"line":20,"column":43},"end":{"line":44,"column":9}},"line":20},"3":{"name":"removeDuplicated","decl":{"start":{"line":51,"column":9},"end":{"line":51,"column":25}},"loc":{"start":{"line":51,"column":35},"end":{"line":58,"column":1}},"line":51},"4":{"name":"resolve_version","decl":{"start":{"line":59,"column":9},"end":{"line":59,"column":24}},"loc":{"start":{"line":59,"column":59},"end":{"line":77,"column":1}},"line":59},"5":{"name":"get_start_tag_name","decl":{"start":{"line":78,"column":9},"end":{"line":78,"column":27}},"loc":{"start":{"line":78,"column":34},"end":{"line":83,"column":1}},"line":78},"6":{"name":"get_end_tag_name","decl":{"start":{"line":84,"column":9},"end":{"line":84,"column":25}},"loc":{"start":{"line":84,"column":32},"end":{"line":89,"column":1}},"line":84},"7":{"name":"get_end_tag","decl":{"start":{"line":90,"column":9},"end":{"line":90,"column":20}},"loc":{"start":{"line":90,"column":27},"end":{"line":95,"column":1}},"line":90},"8":{"name":"get_start_tag","decl":{"start":{"line":96,"column":9},"end":{"line":96,"column":22}},"loc":{"start":{"line":96,"column":29},"end":{"line":101,"column":1}},"line":96},"9":{"name":"element_match","decl":{"start":{"line":102,"column":9},"end":{"line":102,"column":22}},"loc":{"start":{"line":102,"column":42},"end":{"line":104,"column":1}},"line":102},"10":{"name":"is_element_complete","decl":{"start":{"line":105,"column":9},"end":{"line":105,"column":28}},"loc":{"start":{"line":105,"column":35},"end":{"line":107,"column":1}},"line":105},"11":{"name":"get_offset_until_end_of_tag","decl":{"start":{"line":108,"column":9},"end":{"line":108,"column":36}},"loc":{"start":{"line":108,"column":58},"end":{"line":116,"column":1}},"line":108},"12":{"name":"remove_comments","decl":{"start":{"line":117,"column":9},"end":{"line":117,"column":24}},"loc":{"start":{"line":117,"column":32},"end":{"line":132,"column":1}},"line":117},"13":{"name":"extract_content_from_tag","decl":{"start":{"line":133,"column":9},"end":{"line":133,"column":33}},"loc":{"start":{"line":133,"column":58},"end":{"line":182,"column":1}},"line":133}},"branchMap":{"0":{"loc":{"start":{"line":1,"column":22},"end":{"line":3,"column":1}},"type":"binary-expr","locations":[{"start":{"line":1,"column":23},"end":{"line":1,"column":27}},{"start":{"line":1,"column":31},"end":{"line":1,"column":51}},{"start":{"line":1,"column":56},"end":{"line":3,"column":1}}],"line":1},"1":{"loc":{"start":{"line":2,"column":11},"end":{"line":2,"column":61}},"type":"cond-expr","locations":[{"start":{"line":2,"column":37},"end":{"line":2,"column":40}},{"start":{"line":2,"column":43},"end":{"line":2,"column":61}}],"line":2},"2":{"loc":{"start":{"line":2,"column":12},"end":{"line":2,"column":33}},"type":"binary-expr","locations":[{"start":{"line":2,"column":12},"end":{"line":2,"column":15}},{"start":{"line":2,"column":19},"end":{"line":2,"column":33}}],"line":2},"3":{"loc":{"start":{"line":16,"column":4},"end":{"line":17,"column":40}},"type":"if","locations":[{"start":{"line":16,"column":4},"end":{"line":17,"column":40}},{"start":{"line":16,"column":4},"end":{"line":17,"column":40}}],"line":16},"4":{"loc":{"start":{"line":19,"column":4},"end":{"line":45,"column":5}},"type":"if","locations":[{"start":{"line":19,"column":4},"end":{"line":45,"column":5}},{"start":{"line":19,"column":4},"end":{"line":45,"column":5}}],"line":19},"5":{"loc":{"start":{"line":23,"column":30},"end":{"line":23,"column":82}},"type":"cond-expr","locations":[{"start":{"line":23,"column":65},"end":{"line":23,"column":75}},{"start":{"line":23,"column":78},"end":{"line":23,"column":82}}],"line":23},"6":{"loc":{"start":{"line":23,"column":31},"end":{"line":23,"column":61}},"type":"binary-expr","locations":[{"start":{"line":23,"column":31},"end":{"line":23,"column":38}},{"start":{"line":23,"column":42},"end":{"line":23,"column":61}}],"line":23},"7":{"loc":{"start":{"line":26,"column":25},"end":{"line":26,"column":86}},"type":"cond-expr","locations":[{"start":{"line":26,"column":66},"end":{"line":26,"column":79}},{"start":{"line":26,"column":82},"end":{"line":26,"column":86}}],"line":26},"8":{"loc":{"start":{"line":26,"column":26},"end":{"line":26,"column":62}},"type":"binary-expr","locations":[{"start":{"line":26,"column":26},"end":{"line":26,"column":36}},{"start":{"line":26,"column":40},"end":{"line":26,"column":62}}],"line":26},"9":{"loc":{"start":{"line":29,"column":12},"end":{"line":30,"column":70}},"type":"if","locations":[{"start":{"line":29,"column":12},"end":{"line":30,"column":70}},{"start":{"line":29,"column":12},"end":{"line":30,"column":70}}],"line":29},"10":{"loc":{"start":{"line":29,"column":16},"end":{"line":29,"column":52}},"type":"binary-expr","locations":[{"start":{"line":29,"column":16},"end":{"line":29,"column":26}},{"start":{"line":29,"column":30},"end":{"line":29,"column":52}}],"line":29},"11":{"loc":{"start":{"line":33,"column":26},"end":{"line":33,"column":81}},"type":"cond-expr","locations":[{"start":{"line":33,"column":63},"end":{"line":33,"column":74}},{"start":{"line":33,"column":77},"end":{"line":33,"column":81}}],"line":33},"12":{"loc":{"start":{"line":33,"column":27},"end":{"line":33,"column":59}},"type":"binary-expr","locations":[{"start":{"line":33,"column":27},"end":{"line":33,"column":35}},{"start":{"line":33,"column":39},"end":{"line":33,"column":59}}],"line":33},"13":{"loc":{"start":{"line":36,"column":31},"end":{"line":36,"column":101}},"type":"cond-expr","locations":[{"start":{"line":36,"column":78},"end":{"line":36,"column":94}},{"start":{"line":36,"column":97},"end":{"line":36,"column":101}}],"line":36},"14":{"loc":{"start":{"line":36,"column":32},"end":{"line":36,"column":74}},"type":"binary-expr","locations":[{"start":{"line":36,"column":32},"end":{"line":36,"column":45}},{"start":{"line":36,"column":49},"end":{"line":36,"column":74}}],"line":36},"15":{"loc":{"start":{"line":38,"column":25},"end":{"line":38,"column":77}},"type":"cond-expr","locations":[{"start":{"line":38,"column":60},"end":{"line":38,"column":70}},{"start":{"line":38,"column":73},"end":{"line":38,"column":77}}],"line":38},"16":{"loc":{"start":{"line":38,"column":26},"end":{"line":38,"column":56}},"type":"binary-expr","locations":[{"start":{"line":38,"column":26},"end":{"line":38,"column":33}},{"start":{"line":38,"column":37},"end":{"line":38,"column":56}}],"line":38},"17":{"loc":{"start":{"line":40,"column":12},"end":{"line":41,"column":118}},"type":"if","locations":[{"start":{"line":40,"column":12},"end":{"line":41,"column":118}},{"start":{"line":40,"column":12},"end":{"line":41,"column":118}}],"line":40},"18":{"loc":{"start":{"line":40,"column":16},"end":{"line":40,"column":34}},"type":"binary-expr","locations":[{"start":{"line":40,"column":16},"end":{"line":40,"column":20}},{"start":{"line":40,"column":24},"end":{"line":40,"column":34}}],"line":40},"19":{"loc":{"start":{"line":41,"column":66},"end":{"line":41,"column":82}},"type":"binary-expr","locations":[{"start":{"line":41,"column":66},"end":{"line":41,"column":70}},{"start":{"line":41,"column":74},"end":{"line":41,"column":82}}],"line":41},"20":{"loc":{"start":{"line":41,"column":87},"end":{"line":41,"column":115}},"type":"binary-expr","locations":[{"start":{"line":41,"column":87},"end":{"line":41,"column":97}},{"start":{"line":41,"column":101},"end":{"line":41,"column":115}}],"line":41},"21":{"loc":{"start":{"line":62,"column":4},"end":{"line":75,"column":5}},"type":"if","locations":[{"start":{"line":62,"column":4},"end":{"line":75,"column":5}},{"start":{"line":62,"column":4},"end":{"line":75,"column":5}}],"line":62},"22":{"loc":{"start":{"line":63,"column":8},"end":{"line":74,"column":9}},"type":"if","locations":[{"start":{"line":63,"column":8},"end":{"line":74,"column":9}},{"start":{"line":63,"column":8},"end":{"line":74,"column":9}}],"line":63},"23":{"loc":{"start":{"line":66,"column":13},"end":{"line":74,"column":9}},"type":"if","locations":[{"start":{"line":66,"column":13},"end":{"line":74,"column":9}},{"start":{"line":66,"column":13},"end":{"line":74,"column":9}}],"line":66},"24":{"loc":{"start":{"line":69,"column":12},"end":{"line":70,"column":36}},"type":"if","locations":[{"start":{"line":69,"column":12},"end":{"line":70,"column":36}},{"start":{"line":69,"column":12},"end":{"line":70,"column":36}}],"line":69},"25":{"loc":{"start":{"line":69,"column":16},"end":{"line":69,"column":43}},"type":"binary-expr","locations":[{"start":{"line":69,"column":16},"end":{"line":69,"column":22}},{"start":{"line":69,"column":26},"end":{"line":69,"column":43}}],"line":69},"26":{"loc":{"start":{"line":80,"column":4},"end":{"line":81,"column":32}},"type":"if","locations":[{"start":{"line":80,"column":4},"end":{"line":81,"column":32}},{"start":{"line":80,"column":4},"end":{"line":81,"column":32}}],"line":80},"27":{"loc":{"start":{"line":86,"column":4},"end":{"line":87,"column":32}},"type":"if","locations":[{"start":{"line":86,"column":4},"end":{"line":87,"column":32}},{"start":{"line":86,"column":4},"end":{"line":87,"column":32}}],"line":86},"28":{"loc":{"start":{"line":92,"column":4},"end":{"line":93,"column":30}},"type":"if","locations":[{"start":{"line":92,"column":4},"end":{"line":93,"column":30}},{"start":{"line":92,"column":4},"end":{"line":93,"column":30}}],"line":92},"29":{"loc":{"start":{"line":98,"column":4},"end":{"line":99,"column":29}},"type":"if","locations":[{"start":{"line":98,"column":4},"end":{"line":99,"column":29}},{"start":{"line":98,"column":4},"end":{"line":99,"column":29}}],"line":98},"30":{"loc":{"start":{"line":111,"column":8},"end":{"line":112,"column":18}},"type":"if","locations":[{"start":{"line":111,"column":8},"end":{"line":112,"column":18}},{"start":{"line":111,"column":8},"end":{"line":112,"column":18}}],"line":111},"31":{"loc":{"start":{"line":121,"column":8},"end":{"line":129,"column":9}},"type":"if","locations":[{"start":{"line":121,"column":8},"end":{"line":129,"column":9}},{"start":{"line":121,"column":8},"end":{"line":129,"column":9}}],"line":121},"32":{"loc":{"start":{"line":121,"column":12},"end":{"line":121,"column":45}},"type":"binary-expr","locations":[{"start":{"line":121,"column":12},"end":{"line":121,"column":27}},{"start":{"line":121,"column":31},"end":{"line":121,"column":45}}],"line":121},"33":{"loc":{"start":{"line":123,"column":13},"end":{"line":129,"column":9}},"type":"if","locations":[{"start":{"line":123,"column":13},"end":{"line":129,"column":9}},{"start":{"line":123,"column":13},"end":{"line":129,"column":9}}],"line":123},"34":{"loc":{"start":{"line":124,"column":19},"end":{"line":124,"column":60}},"type":"binary-expr","locations":[{"start":{"line":124,"column":19},"end":{"line":124,"column":40}},{"start":{"line":124,"column":44},"end":{"line":124,"column":60}}],"line":124},"35":{"loc":{"start":{"line":144,"column":8},"end":{"line":145,"column":21}},"type":"if","locations":[{"start":{"line":144,"column":8},"end":{"line":145,"column":21}},{"start":{"line":144,"column":8},"end":{"line":145,"column":21}}],"line":144},"36":{"loc":{"start":{"line":149,"column":8},"end":{"line":150,"column":21}},"type":"if","locations":[{"start":{"line":149,"column":8},"end":{"line":150,"column":21}},{"start":{"line":149,"column":8},"end":{"line":150,"column":21}}],"line":149},"37":{"loc":{"start":{"line":149,"column":12},"end":{"line":149,"column":81}},"type":"binary-expr","locations":[{"start":{"line":149,"column":12},"end":{"line":149,"column":52}},{"start":{"line":149,"column":56},"end":{"line":149,"column":81}}],"line":149},"38":{"loc":{"start":{"line":153,"column":8},"end":{"line":158,"column":9}},"type":"if","locations":[{"start":{"line":153,"column":8},"end":{"line":158,"column":9}},{"start":{"line":153,"column":8},"end":{"line":158,"column":9}}],"line":153},"39":{"loc":{"start":{"line":155,"column":19},"end":{"line":155,"column":69}},"type":"binary-expr","locations":[{"start":{"line":155,"column":19},"end":{"line":155,"column":35}},{"start":{"line":155,"column":39},"end":{"line":155,"column":69}}],"line":155},"40":{"loc":{"start":{"line":163,"column":8},"end":{"line":177,"column":9}},"type":"if","locations":[{"start":{"line":163,"column":8},"end":{"line":177,"column":9}},{"start":{"line":163,"column":8},"end":{"line":177,"column":9}}],"line":163},"41":{"loc":{"start":{"line":165,"column":12},"end":{"line":169,"column":13}},"type":"if","locations":[{"start":{"line":165,"column":12},"end":{"line":169,"column":13}},{"start":{"line":165,"column":12},"end":{"line":169,"column":13}}],"line":165},"42":{"loc":{"start":{"line":172,"column":19},"end":{"line":172,"column":69}},"type":"binary-expr","locations":[{"start":{"line":172,"column":19},"end":{"line":172,"column":35}},{"start":{"line":172,"column":39},"end":{"line":172,"column":69}}],"line":172}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":2,"9":2,"10":0,"11":2,"12":2,"13":2,"14":16,"15":16,"16":16,"17":16,"18":16,"19":16,"20":16,"21":16,"22":16,"23":16,"24":16,"25":16,"26":16,"27":16,"28":4,"29":16,"30":16,"31":2,"32":2,"33":1,"34":2,"35":2,"36":16,"37":2,"38":2,"39":16,"40":16,"41":16,"42":6,"43":10,"44":10,"45":10,"46":10,"47":10,"48":0,"49":16,"50":144,"51":144,"52":132,"53":12,"54":144,"55":144,"56":96,"57":48,"58":6,"59":6,"60":6,"61":0,"62":6,"63":6,"64":6,"65":0,"66":36,"67":48,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":6,"75":6,"76":4512,"77":4512,"78":4512,"79":126,"80":4386,"81":18,"82":174,"83":174,"84":18,"85":6,"86":6,"87":6,"88":6,"89":6,"90":6,"91":6,"92":6,"93":6,"94":6,"95":168,"96":168,"97":114,"98":54,"99":54,"100":54,"101":30,"102":24,"103":12,"104":12,"105":24,"106":12,"107":12,"108":12,"109":12,"110":6,"111":6,"112":6,"113":6,"114":0,"115":0,"116":0,"117":0,"118":0,"119":6,"120":6,"121":0},"f":{"0":1,"1":2,"2":16,"3":2,"4":16,"5":144,"6":144,"7":6,"8":6,"9":36,"10":48,"11":0,"12":6,"13":6},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1],"3":[0,2],"4":[2,0],"5":[16,0],"6":[16,16],"7":[16,0],"8":[16,16],"9":[16,0],"10":[16,16],"11":[0,16],"12":[16,0],"13":[1,15],"14":[16,1],"15":[3,13],"16":[16,3],"17":[4,12],"18":[16,13],"19":[4,3],"20":[4,1],"21":[16,0],"22":[6,10],"23":[10,0],"24":[10,0],"25":[10,10],"26":[132,12],"27":[96,48],"28":[6,0],"29":[6,0],"30":[0,0],"31":[126,4386],"32":[4512,144],"33":[18,4368],"34":[192,174],"35":[114,54],"36":[30,24],"37":[54,42],"38":[12,12],"39":[36,36],"40":[6,6],"41":[6,0],"42":[0,0]},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.ts"],"names":[],"mappings":"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","sourcesContent":["import path from \"path\";\nimport { PackageURL } from \"packageurl-js\";\nimport { ILocalDependency } from \"../DependencyTypes\";\n\nconst PURL_TYPE = 'maven';\n\n// Parse a pom.txt file from maven manifest file\n// See reference on: https://maven.apache.org/guides/introduction/introduction-to-the-pom.html\n// and https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html\nconst MANIFEST_FILE = 'pom.xml';\nexport function pomParser(fileContent: string, filePath: string): Promise<ILocalDependency> {\n\n // If the file is not a python manifest file, return an empty results\n const results: ILocalDependency = {file: filePath, purls: []};\n if(path.basename(filePath) != MANIFEST_FILE)\n return Promise.resolve(results);\n\n const dependencies = fileContent.match(/<dependency>((?:.|\\n)*?)<\\/dependency>/gm);\n if(dependencies) {\n\n dependencies.forEach(dependency => {\n // Extract groupId. It's the purl namespace\n const groupId = dependency.match(/<groupId>([^<]*)<\\/groupId>/);\n const namespace = (groupId && groupId.length>=1) ? groupId[1] : null;\n\n // Extract artifact id. It's the purl name\n const artifactId = dependency.match(/<artifactId>([^<]*)<\\/artifactId>/);\n const name = (artifactId && artifactId.length>=1) ? artifactId[1] : null;\n\n const versionReg = dependency.match(/<version>([^<]*)<\\/version>/);\n let version;\n if(versionReg && versionReg.length>=1) version = resolve_version(versionReg[1], fileContent);\n\n\n // Extract scope.\n const scopeRes = dependency.match(/<scope>([^<]*)<\\/scope>/);\n const scope = (scopeRes && scopeRes.length>=1) ? scopeRes[1] : null;\n\n\n //Detect and extract purl qualifiers\n const classifierRes = dependency.match(/<classifier>([^<]*)<\\/classifier>/);\n const classifier = (classifierRes && classifierRes.length>=1) ? classifierRes[1] : null;\n\n const typeRes = dependency.match(/<type>([^<]*)<\\/type>/);\n const type = (typeRes && typeRes.length>=1) ? typeRes[1] : null;\n\n let purlQualifiers;\n if (type || classifier)\n purlQualifiers = {\n ...(type && {type}),\n ...(classifier && {classifier}),\n };\n\n const purlString = new PackageURL(PURL_TYPE, namespace, name, undefined, purlQualifiers, undefined).toString();\n results.purls.push({purl: purlString, requirement: version, scope: scope});\n\n });\n }\n\n //Remove purls duplicated\n const nonDuplicatedResults = removeDuplicated(results);\n return Promise.resolve(nonDuplicatedResults);\n}\n\nfunction removeDuplicated(results: ILocalDependency): ILocalDependency {\n const map = {};\n for (let res of results.purls) {\n map[res.purl] = res\n }\n results.purls = Object.values(map);\n return results\n}\n\nfunction resolve_version(dependency_version: string, file_content: string): string {\n // See properties: https://maven.apache.org/pom.html#properties\n let version = '';\n if(dependency_version) {\n if(/\\${project.version}/.test(dependency_version)) {\n version = extract_content_from_tag(file_content, ['project', 'version']);\n } else if(/\\${.*?}/.test(dependency_version)) {\n const property = dependency_version.match(/\\${(.*?)}/)[1];\n const result = file_content.match(new RegExp(`<${property}>([^<]*)<\\/${property}>`));\n if (result && result.length>0) version = result[1];\n } else {\n version = dependency_version.toString();\n }\n }\n return version;\n}\n\n\nfunction get_start_tag_name(line: string): string {\n const result = line.match(/\\<([\\w\\-\\.]+).*?>/);\n if (result) return result[1].trim();\n return '';\n}\n\nfunction get_end_tag_name(line: string): string {\n const result = line.match(/\\<\\/([\\w\\-\\.]+) ?>/);\n if (result) return result[1].trim();\n return '';\n}\n\nfunction get_end_tag(line: string): string {\n const result = get_end_tag_name(line);\n if (result !== '') return `</${result}>`\n return '';\n}\n\nfunction get_start_tag(line: string): string {\n const result = get_start_tag_name(line);\n if (result !== '') return `<${result}>`\n return '';\n}\n\nfunction element_match(openTag: string, closeTag:string): boolean {\n return get_start_tag_name(openTag) === get_end_tag_name(closeTag);\n}\n\nfunction is_element_complete(line: string) {\n return get_start_tag_name(line) === get_end_tag_name(line);\n}\n\n\nfunction get_offset_until_end_of_tag(lines: Array<string>, end_tag_name: string) {\n let i = 0;\n for (const line of lines) {\n if ( get_end_tag_name(line) === end_tag_name) break;\n i += 1;\n }\n return i;\n}\n\nfunction remove_comments(lines: Array<string>): Array<string> {\n for (let i=0; i<lines.length; i+=1) {\n let openCommentFlag = /<!--/.test(lines[i]);\n let endCommentFlag = /-->/.test(lines[i]);\n\n if(openCommentFlag && endCommentFlag)\n lines[i] = lines[i].replace(/<!--.*-->/, '');\n else if (openCommentFlag){\n while(!/-->/.test(lines[i]) && i<lines.length) {\n lines[i] = '';\n i += 1;\n }\n lines[i] = lines[i].replace(/.*-->/, '');\n }\n\n }\n return lines;\n}\n\n\nfunction extract_content_from_tag(file_content: string, selector: Array<string>): string {\n let lines = file_content.split('\\n');\n const stack: Array<string> = [];\n\n let selectorIndex = 0;\n let startTagName = '';\n let endTagName = '';\n let content = '';\n\n // Sanitize xml: Removes comments\n lines = remove_comments(lines);\n\n for (let i=0; i<lines.length; i+=1) {\n let line = lines[i].trim();\n if(line === '') continue;\n\n startTagName = get_start_tag_name(line);\n endTagName = get_end_tag_name(line);\n\n // Element complete in the same line and different than my selector\n if(selector[selectorIndex] !== startTagName && is_element_complete(line)) continue;\n\n // Element spans multiline and is different than my selector\n // Loop until find corresponding end tag\n if (selector[selectorIndex] !== startTagName) {\n i += 1;\n while (i<lines.length && !element_match(line, lines[i])) i+=1;\n continue;\n }\n\n // lines[i] points to the opening tag of the current selector[selectorIndex]\n selectorIndex += 1;\n stack.push(startTagName);\n\n // Target reached\n if(selector.length === stack.length) {\n // Target has only one line\n if (is_element_complete(line)) {\n line = line.replace(get_end_tag(line), '');\n line = line.replace(get_start_tag(line), '');\n return line;\n }\n\n // Extracts everything beetwen opening and closing tag and return.\n i += 1;\n while (i<lines.length && !element_match(line, lines[i]) ) {\n content += lines[i].trim();\n i += 1;\n }\n return content;\n }\n startTagName='';\n endTagName='';\n }\n return '';\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"28a1ae68f2286162f8a0f8a17843567f1c6547ae"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/npmParser.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/npmParser.ts","statementMap":{"0":{"start":{"line":1,"column":22},"end":{"line":3,"column":1}},"1":{"start":{"line":2,"column":4},"end":{"line":2,"column":62}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":62}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":173}},"4":{"start":{"line":6,"column":15},"end":{"line":6,"column":47}},"5":{"start":{"line":7,"column":24},"end":{"line":7,"column":48}},"6":{"start":{"line":8,"column":18},"end":{"line":8,"column":23}},"7":{"start":{"line":11,"column":22},"end":{"line":11,"column":36}},"8":{"start":{"line":14,"column":20},"end":{"line":14,"column":49}},"9":{"start":{"line":15,"column":4},"end":{"line":16,"column":40}},"10":{"start":{"line":16,"column":8},"end":{"line":16,"column":40}},"11":{"start":{"line":17,"column":14},"end":{"line":17,"column":37}},"12":{"start":{"line":18,"column":18},"end":{"line":18,"column":54}},"13":{"start":{"line":19,"column":15},"end":{"line":19,"column":48}},"14":{"start":{"line":20,"column":4},"end":{"line":23,"column":5}},"15":{"start":{"line":21,"column":27},"end":{"line":21,"column":129}},"16":{"start":{"line":22,"column":8},"end":{"line":22,"column":107}},"17":{"start":{"line":24,"column":4},"end":{"line":27,"column":5}},"18":{"start":{"line":25,"column":27},"end":{"line":25,"column":129}},"19":{"start":{"line":26,"column":8},"end":{"line":26,"column":113}},"20":{"start":{"line":28,"column":4},"end":{"line":28,"column":36}},"21":{"start":{"line":30,"column":0},"end":{"line":30,"column":38}},"22":{"start":{"line":35,"column":20},"end":{"line":35,"column":49}},"23":{"start":{"line":36,"column":4},"end":{"line":37,"column":40}},"24":{"start":{"line":37,"column":8},"end":{"line":37,"column":40}},"25":{"start":{"line":38,"column":21},"end":{"line":38,"column":100}},"26":{"start":{"line":39,"column":4},"end":{"line":40,"column":40}},"27":{"start":{"line":40,"column":8},"end":{"line":40,"column":40}},"28":{"start":{"line":41,"column":4},"end":{"line":49,"column":5}},"29":{"start":{"line":42,"column":8},"end":{"line":43,"column":21}},"30":{"start":{"line":43,"column":12},"end":{"line":43,"column":21}},"31":{"start":{"line":44,"column":25},"end":{"line":44,"column":39}},"32":{"start":{"line":45,"column":24},"end":{"line":45,"column":53}},"33":{"start":{"line":46,"column":19},"end":{"line":46,"column":124}},"34":{"start":{"line":47,"column":18},"end":{"line":47,"column":34}},"35":{"start":{"line":48,"column":8},"end":{"line":48,"column":61}},"36":{"start":{"line":50,"column":4},"end":{"line":50,"column":36}},"37":{"start":{"line":52,"column":0},"end":{"line":52,"column":46}},"38":{"start":{"line":54,"column":20},"end":{"line":54,"column":49}},"39":{"start":{"line":55,"column":4},"end":{"line":56,"column":40}},"40":{"start":{"line":56,"column":8},"end":{"line":56,"column":40}},"41":{"start":{"line":57,"column":24},"end":{"line":57,"column":61}},"42":{"start":{"line":58,"column":4},"end":{"line":61,"column":55}},"43":{"start":{"line":59,"column":8},"end":{"line":59,"column":55}},"44":{"start":{"line":60,"column":9},"end":{"line":61,"column":55}},"45":{"start":{"line":61,"column":8},"end":{"line":61,"column":55}},"46":{"start":{"line":62,"column":4},"end":{"line":62,"column":36}},"47":{"start":{"line":64,"column":0},"end":{"line":64,"column":40}},"48":{"start":{"line":66,"column":0},"end":{"line":70,"column":54}},"49":{"start":{"line":67,"column":4},"end":{"line":67,"column":62}},"50":{"start":{"line":68,"column":4},"end":{"line":68,"column":62}},"51":{"start":{"line":69,"column":4},"end":{"line":69,"column":100}},"52":{"start":{"line":83,"column":17},"end":{"line":83,"column":44}},"53":{"start":{"line":84,"column":4},"end":{"line":89,"column":5}},"54":{"start":{"line":85,"column":8},"end":{"line":86,"column":42}},"55":{"start":{"line":86,"column":12},"end":{"line":86,"column":42}},"56":{"start":{"line":87,"column":8},"end":{"line":88,"column":42}},"57":{"start":{"line":88,"column":12},"end":{"line":88,"column":42}},"58":{"start":{"line":90,"column":4},"end":{"line":90,"column":53}},"59":{"start":{"line":92,"column":0},"end":{"line":92,"column":60}},"60":{"start":{"line":94,"column":20},"end":{"line":94,"column":49}},"61":{"start":{"line":105,"column":28},"end":{"line":105,"column":53}},"62":{"start":{"line":106,"column":4},"end":{"line":177,"column":5}},"63":{"start":{"line":107,"column":31},"end":{"line":107,"column":33}},"64":{"start":{"line":108,"column":32},"end":{"line":108,"column":34}},"65":{"start":{"line":109,"column":26},"end":{"line":109,"column":51}},"66":{"start":{"line":110,"column":8},"end":{"line":111,"column":21}},"67":{"start":{"line":110,"column":38},"end":{"line":110,"column":73}},"68":{"start":{"line":111,"column":12},"end":{"line":111,"column":21}},"69":{"start":{"line":112,"column":8},"end":{"line":113,"column":21}},"70":{"start":{"line":112,"column":38},"end":{"line":112,"column":55}},"71":{"start":{"line":113,"column":12},"end":{"line":113,"column":21}},"72":{"start":{"line":114,"column":8},"end":{"line":155,"column":9}},"73":{"start":{"line":116,"column":28},"end":{"line":116,"column":43}},"74":{"start":{"line":117,"column":28},"end":{"line":117,"column":51}},"75":{"start":{"line":118,"column":12},"end":{"line":119,"column":25}},"76":{"start":{"line":119,"column":16},"end":{"line":119,"column":25}},"77":{"start":{"line":123,"column":12},"end":{"line":154,"column":13}},"78":{"start":{"line":128,"column":17},"end":{"line":154,"column":13}},"79":{"start":{"line":129,"column":28},"end":{"line":129,"column":46}},"80":{"start":{"line":130,"column":28},"end":{"line":130,"column":41}},"81":{"start":{"line":131,"column":16},"end":{"line":133,"column":17}},"82":{"start":{"line":132,"column":20},"end":{"line":132,"column":71}},"83":{"start":{"line":137,"column":17},"end":{"line":154,"column":13}},"84":{"start":{"line":138,"column":28},"end":{"line":138,"column":65}},"85":{"start":{"line":139,"column":37},"end":{"line":139,"column":85}},"86":{"start":{"line":139,"column":53},"end":{"line":139,"column":84}},"87":{"start":{"line":140,"column":16},"end":{"line":153,"column":17}},"88":{"start":{"line":141,"column":36},"end":{"line":141,"column":56}},"89":{"start":{"line":142,"column":37},"end":{"line":142,"column":59}},"90":{"start":{"line":143,"column":20},"end":{"line":143,"column":64}},"91":{"start":{"line":144,"column":36},"end":{"line":144,"column":57}},"92":{"start":{"line":145,"column":29},"end":{"line":145,"column":31}},"93":{"start":{"line":146,"column":31},"end":{"line":146,"column":38}},"94":{"start":{"line":147,"column":20},"end":{"line":151,"column":21}},"95":{"start":{"line":148,"column":43},"end":{"line":148,"column":63}},"96":{"start":{"line":149,"column":24},"end":{"line":149,"column":58}},"97":{"start":{"line":150,"column":24},"end":{"line":150,"column":61}},"98":{"start":{"line":152,"column":20},"end":{"line":152,"column":89}},"99":{"start":{"line":157,"column":30},"end":{"line":159,"column":10}},"100":{"start":{"line":158,"column":12},"end":{"line":158,"column":114}},"101":{"start":{"line":160,"column":8},"end":{"line":163,"column":9}},"102":{"start":{"line":161,"column":12},"end":{"line":161,"column":82}},"103":{"start":{"line":162,"column":12},"end":{"line":162,"column":21}},"104":{"start":{"line":164,"column":31},"end":{"line":164,"column":49}},"105":{"start":{"line":165,"column":26},"end":{"line":165,"column":43}},"106":{"start":{"line":166,"column":21},"end":{"line":166,"column":40}},"107":{"start":{"line":167,"column":24},"end":{"line":167,"column":49}},"108":{"start":{"line":168,"column":21},"end":{"line":168,"column":121}},"109":{"start":{"line":169,"column":26},"end":{"line":169,"column":28}},"110":{"start":{"line":170,"column":8},"end":{"line":172,"column":9}},"111":{"start":{"line":171,"column":12},"end":{"line":171,"column":60}},"112":{"start":{"line":173,"column":8},"end":{"line":175,"column":9}},"113":{"start":{"line":174,"column":12},"end":{"line":174,"column":71}},"114":{"start":{"line":176,"column":8},"end":{"line":176,"column":69}},"115":{"start":{"line":178,"column":4},"end":{"line":178,"column":36}},"116":{"start":{"line":180,"column":0},"end":{"line":180,"column":44}},"117":{"start":{"line":183,"column":20},"end":{"line":183,"column":49}},"118":{"start":{"line":184,"column":4},"end":{"line":184,"column":36}},"119":{"start":{"line":186,"column":0},"end":{"line":186,"column":44}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":56},"end":{"line":1,"column":57}},"loc":{"start":{"line":1,"column":71},"end":{"line":3,"column":1}},"line":1},"1":{"name":"packageParser","decl":{"start":{"line":12,"column":9},"end":{"line":12,"column":22}},"loc":{"start":{"line":12,"column":46},"end":{"line":29,"column":1}},"line":12},"2":{"name":"packagelockParser","decl":{"start":{"line":33,"column":9},"end":{"line":33,"column":26}},"loc":{"start":{"line":33,"column":50},"end":{"line":51,"column":1}},"line":33},"3":{"name":"yarnLockParser","decl":{"start":{"line":53,"column":9},"end":{"line":53,"column":23}},"loc":{"start":{"line":53,"column":47},"end":{"line":63,"column":1}},"line":53},"4":{"name":"(anonymous_4)","decl":{"start":{"line":66,"column":1},"end":{"line":66,"column":2}},"loc":{"start":{"line":66,"column":32},"end":{"line":70,"column":1}},"line":66},"5":{"name":"yarnLockRecognizeVersion","decl":{"start":{"line":82,"column":9},"end":{"line":82,"column":33}},"loc":{"start":{"line":82,"column":47},"end":{"line":91,"column":1}},"line":82},"6":{"name":"yarnLockV1Parser","decl":{"start":{"line":93,"column":9},"end":{"line":93,"column":25}},"loc":{"start":{"line":93,"column":49},"end":{"line":179,"column":1}},"line":93},"7":{"name":"(anonymous_7)","decl":{"start":{"line":110,"column":28},"end":{"line":110,"column":29}},"loc":{"start":{"line":110,"column":38},"end":{"line":110,"column":73}},"line":110},"8":{"name":"(anonymous_8)","decl":{"start":{"line":112,"column":28},"end":{"line":112,"column":29}},"loc":{"start":{"line":112,"column":38},"end":{"line":112,"column":55}},"line":112},"9":{"name":"(anonymous_9)","decl":{"start":{"line":139,"column":45},"end":{"line":139,"column":46}},"loc":{"start":{"line":139,"column":53},"end":{"line":139,"column":84}},"line":139},"10":{"name":"(anonymous_10)","decl":{"start":{"line":157,"column":52},"end":{"line":157,"column":53}},"loc":{"start":{"line":157,"column":72},"end":{"line":159,"column":9}},"line":157},"11":{"name":"yarnLockV2Parser","decl":{"start":{"line":182,"column":9},"end":{"line":182,"column":25}},"loc":{"start":{"line":182,"column":49},"end":{"line":185,"column":1}},"line":182}},"branchMap":{"0":{"loc":{"start":{"line":1,"column":22},"end":{"line":3,"column":1}},"type":"binary-expr","locations":[{"start":{"line":1,"column":23},"end":{"line":1,"column":27}},{"start":{"line":1,"column":31},"end":{"line":1,"column":51}},{"start":{"line":1,"column":56},"end":{"line":3,"column":1}}],"line":1},"1":{"loc":{"start":{"line":2,"column":11},"end":{"line":2,"column":61}},"type":"cond-expr","locations":[{"start":{"line":2,"column":37},"end":{"line":2,"column":40}},{"start":{"line":2,"column":43},"end":{"line":2,"column":61}}],"line":2},"2":{"loc":{"start":{"line":2,"column":12},"end":{"line":2,"column":33}},"type":"binary-expr","locations":[{"start":{"line":2,"column":12},"end":{"line":2,"column":15}},{"start":{"line":2,"column":19},"end":{"line":2,"column":33}}],"line":2},"3":{"loc":{"start":{"line":15,"column":4},"end":{"line":16,"column":40}},"type":"if","locations":[{"start":{"line":15,"column":4},"end":{"line":16,"column":40}},{"start":{"line":15,"column":4},"end":{"line":16,"column":40}}],"line":15},"4":{"loc":{"start":{"line":18,"column":30},"end":{"line":18,"column":53}},"type":"binary-expr","locations":[{"start":{"line":18,"column":30},"end":{"line":18,"column":47}},{"start":{"line":18,"column":51},"end":{"line":18,"column":53}}],"line":18},"5":{"loc":{"start":{"line":19,"column":27},"end":{"line":19,"column":47}},"type":"binary-expr","locations":[{"start":{"line":19,"column":27},"end":{"line":19,"column":41}},{"start":{"line":19,"column":45},"end":{"line":19,"column":47}}],"line":19},"6":{"loc":{"start":{"line":36,"column":4},"end":{"line":37,"column":40}},"type":"if","locations":[{"start":{"line":36,"column":4},"end":{"line":37,"column":40}},{"start":{"line":36,"column":4},"end":{"line":37,"column":40}}],"line":36},"7":{"loc":{"start":{"line":38,"column":21},"end":{"line":38,"column":100}},"type":"cond-expr","locations":[{"start":{"line":38,"column":80},"end":{"line":38,"column":86}},{"start":{"line":38,"column":89},"end":{"line":38,"column":100}}],"line":38},"8":{"loc":{"start":{"line":38,"column":21},"end":{"line":38,"column":77}},"type":"binary-expr","locations":[{"start":{"line":38,"column":21},"end":{"line":38,"column":60}},{"start":{"line":38,"column":64},"end":{"line":38,"column":77}}],"line":38},"9":{"loc":{"start":{"line":39,"column":4},"end":{"line":40,"column":40}},"type":"if","locations":[{"start":{"line":39,"column":4},"end":{"line":40,"column":40}},{"start":{"line":39,"column":4},"end":{"line":40,"column":40}}],"line":39},"10":{"loc":{"start":{"line":42,"column":8},"end":{"line":43,"column":21}},"type":"if","locations":[{"start":{"line":42,"column":8},"end":{"line":43,"column":21}},{"start":{"line":42,"column":8},"end":{"line":43,"column":21}}],"line":42},"11":{"loc":{"start":{"line":55,"column":4},"end":{"line":56,"column":40}},"type":"if","locations":[{"start":{"line":55,"column":4},"end":{"line":56,"column":40}},{"start":{"line":55,"column":4},"end":{"line":56,"column":40}}],"line":55},"12":{"loc":{"start":{"line":58,"column":4},"end":{"line":61,"column":55}},"type":"if","locations":[{"start":{"line":58,"column":4},"end":{"line":61,"column":55}},{"start":{"line":58,"column":4},"end":{"line":61,"column":55}}],"line":58},"13":{"loc":{"start":{"line":60,"column":9},"end":{"line":61,"column":55}},"type":"if","locations":[{"start":{"line":60,"column":9},"end":{"line":61,"column":55}},{"start":{"line":60,"column":9},"end":{"line":61,"column":55}}],"line":60},"14":{"loc":{"start":{"line":70,"column":3},"end":{"line":70,"column":52}},"type":"binary-expr","locations":[{"start":{"line":70,"column":3},"end":{"line":70,"column":22}},{"start":{"line":70,"column":27},"end":{"line":70,"column":51}}],"line":70},"15":{"loc":{"start":{"line":85,"column":8},"end":{"line":86,"column":42}},"type":"if","locations":[{"start":{"line":85,"column":8},"end":{"line":86,"column":42}},{"start":{"line":85,"column":8},"end":{"line":86,"column":42}}],"line":85},"16":{"loc":{"start":{"line":87,"column":8},"end":{"line":88,"column":42}},"type":"if","locations":[{"start":{"line":87,"column":8},"end":{"line":88,"column":42}},{"start":{"line":87,"column":8},"end":{"line":88,"column":42}}],"line":87},"17":{"loc":{"start":{"line":110,"column":8},"end":{"line":111,"column":21}},"type":"if","locations":[{"start":{"line":110,"column":8},"end":{"line":111,"column":21}},{"start":{"line":110,"column":8},"end":{"line":111,"column":21}}],"line":110},"18":{"loc":{"start":{"line":112,"column":8},"end":{"line":113,"column":21}},"type":"if","locations":[{"start":{"line":112,"column":8},"end":{"line":113,"column":21}},{"start":{"line":112,"column":8},"end":{"line":113,"column":21}}],"line":112},"19":{"loc":{"start":{"line":118,"column":12},"end":{"line":119,"column":25}},"type":"if","locations":[{"start":{"line":118,"column":12},"end":{"line":119,"column":25}},{"start":{"line":118,"column":12},"end":{"line":119,"column":25}}],"line":118},"20":{"loc":{"start":{"line":118,"column":16},"end":{"line":118,"column":35}},"type":"binary-expr","locations":[{"start":{"line":118,"column":16},"end":{"line":118,"column":24}},{"start":{"line":118,"column":28},"end":{"line":118,"column":35}}],"line":118},"21":{"loc":{"start":{"line":123,"column":12},"end":{"line":154,"column":13}},"type":"if","locations":[{"start":{"line":123,"column":12},"end":{"line":154,"column":13}},{"start":{"line":123,"column":12},"end":{"line":154,"column":13}}],"line":123},"22":{"loc":{"start":{"line":128,"column":17},"end":{"line":154,"column":13}},"type":"if","locations":[{"start":{"line":128,"column":17},"end":{"line":154,"column":13}},{"start":{"line":128,"column":17},"end":{"line":154,"column":13}}],"line":128},"23":{"loc":{"start":{"line":131,"column":16},"end":{"line":133,"column":17}},"type":"if","locations":[{"start":{"line":131,"column":16},"end":{"line":133,"column":17}},{"start":{"line":131,"column":16},"end":{"line":133,"column":17}}],"line":131},"24":{"loc":{"start":{"line":131,"column":20},"end":{"line":131,"column":78}},"type":"binary-expr","locations":[{"start":{"line":131,"column":20},"end":{"line":131,"column":43}},{"start":{"line":131,"column":47},"end":{"line":131,"column":78}}],"line":131},"25":{"loc":{"start":{"line":137,"column":17},"end":{"line":154,"column":13}},"type":"if","locations":[{"start":{"line":137,"column":17},"end":{"line":154,"column":13}},{"start":{"line":137,"column":17},"end":{"line":154,"column":13}}],"line":137},"26":{"loc":{"start":{"line":147,"column":20},"end":{"line":151,"column":21}},"type":"if","locations":[{"start":{"line":147,"column":20},"end":{"line":151,"column":21}},{"start":{"line":147,"column":20},"end":{"line":151,"column":21}}],"line":147},"27":{"loc":{"start":{"line":158,"column":19},"end":{"line":158,"column":113}},"type":"binary-expr","locations":[{"start":{"line":158,"column":19},"end":{"line":158,"column":62}},{"start":{"line":158,"column":66},"end":{"line":158,"column":113}}],"line":158},"28":{"loc":{"start":{"line":160,"column":8},"end":{"line":163,"column":9}},"type":"if","locations":[{"start":{"line":160,"column":8},"end":{"line":163,"column":9}},{"start":{"line":160,"column":8},"end":{"line":163,"column":9}}],"line":160},"29":{"loc":{"start":{"line":173,"column":8},"end":{"line":175,"column":9}},"type":"if","locations":[{"start":{"line":173,"column":8},"end":{"line":175,"column":9}},{"start":{"line":173,"column":8},"end":{"line":175,"column":9}}],"line":173}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":1,"22":4,"23":4,"24":1,"25":3,"26":3,"27":2,"28":1,"29":1,"30":1,"31":0,"32":0,"33":0,"34":0,"35":0,"36":1,"37":1,"38":3,"39":3,"40":0,"41":3,"42":3,"43":3,"44":0,"45":0,"46":0,"47":1,"48":1,"49":1,"50":1,"51":1,"52":3,"53":3,"54":6,"55":0,"56":6,"57":3,"58":0,"59":1,"60":3,"61":3,"62":3,"63":1162,"64":1162,"65":1162,"66":1162,"67":1165,"68":3,"69":1159,"70":1162,"71":0,"72":1159,"73":7324,"74":7324,"75":7324,"76":6,"77":7318,"78":5284,"79":4125,"80":4125,"81":4125,"82":3469,"83":1159,"84":1159,"85":1159,"86":1447,"87":1159,"88":1447,"89":1447,"90":1447,"91":1447,"92":1447,"93":1447,"94":1447,"95":118,"96":118,"97":118,"98":1447,"99":1159,"100":1447,"101":1159,"102":0,"103":0,"104":1159,"105":1159,"106":1159,"107":1159,"108":1159,"109":1159,"110":1159,"111":1447,"112":1159,"113":1159,"114":1159,"115":3,"116":1,"117":0,"118":0,"119":1},"f":{"0":1,"1":0,"2":4,"3":3,"4":1,"5":3,"6":3,"7":1165,"8":1162,"9":1447,"10":1447,"11":0},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1],"3":[0,0],"4":[0,0],"5":[0,0],"6":[1,3],"7":[0,3],"8":[3,3],"9":[2,1],"10":[1,0],"11":[0,3],"12":[3,0],"13":[0,0],"14":[1,1],"15":[0,6],"16":[3,3],"17":[3,1159],"18":[0,1159],"19":[6,7318],"20":[7324,7318],"21":[2034,5284],"22":[4125,1159],"23":[3469,656],"24":[4125,3475],"25":[1159,0],"26":[118,1329],"27":[1447,1447],"28":[0,1159],"29":[1159,0]},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/npmParser.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/npmParser.ts"],"names":[],"mappings":"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","sourcesContent":["import path from \"path\";\nimport { PackageURL } from \"packageurl-js\";\nimport { ILocalDependency } from \"../DependencyTypes\";\n\nconst PURL_TYPE = 'npm';\n\n\n// Parse a package.json file from node projects\n// See reference on: https://docs.npmjs.com/cli/v8/configuring-npm/package-json\nconst MANIFEST_FILE = 'package.json';\nexport function packageParser(fileContent: string, filePath: string): Promise<ILocalDependency> {\n // If the file is not manifest file, return an empty results\n const results: ILocalDependency = {file: filePath, purls: []};\n if(path.basename(filePath) != MANIFEST_FILE)\n return Promise.resolve(results);\n\n const o = JSON.parse(fileContent);\n let devDeps = Object.keys(o.devDependencies || {});\n let deps = Object.keys(o.dependencies || {});\n\n for(const name of deps){\n const purlString = new PackageURL(PURL_TYPE, undefined, name, undefined, undefined, undefined).toString();\n results.purls.push({purl: purlString, scope: \"dependencies\", requirement: o.dependencies[name]});\n }\n\n for(const name of devDeps){\n const purlString = new PackageURL(PURL_TYPE, undefined, name, undefined, undefined, undefined).toString();\n results.purls.push({purl: purlString, scope: \"devDependencies\", requirement: o.devDependencies[name]});\n }\n\n return Promise.resolve(results);\n}\n\n\n// Parse a package-lock.json file from node projects\n// See reference on: https://docs.npmjs.com/cli/v8/configuring-npm/package-json\nexport function packagelockParser(fileContent: string, filePath: string): Promise<ILocalDependency> {\n\n const results: ILocalDependency = {file: filePath, purls: []};\n\n if(path.basename(filePath) != 'package-lock.json')\n return Promise.resolve(results);\n\n const packages = JSON.parse(fileContent)?.packages;\n\n if(!packages) return Promise.resolve(results);\n\n for (const [key, value] of Object.entries(packages)) {\n if(!key) continue;\n\n const keySplit = key.split(\"/\")\n const depName = keySplit[keySplit.length-1]\n\n let purl = new PackageURL(PURL_TYPE, undefined, depName,undefined, undefined, undefined).toString();\n let req = value['version'];\n results.purls.push({purl: purl, requirement: req});\n }\n\n return Promise.resolve(results);\n}\n\n\n\nexport function yarnLockParser(fileContent: string, filePath: string): Promise<ILocalDependency> {\n const results: ILocalDependency = {file: filePath, purls: []};\n\n if(path.basename(filePath) != 'yarn.lock')\n return Promise.resolve(results);\n\n const yarnVersion = yarnLockRecognizeVersion(fileContent)\n if (yarnVersion === YarnLockVersionEnum.V1) return yarnLockV1Parser(fileContent, filePath)\n else if (yarnVersion === YarnLockVersionEnum.V2) return yarnLockV2Parser(fileContent, filePath)\n\n return Promise.resolve(results);\n}\n\nenum YarnLockVersionEnum {\n \"V1\" ,\n \"V2\",\n UnknownYarnLockFormat\n}\n\n/*\n The start of v1 file has this:\n # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.\n # yarn lockfile v1\n\n The start of v2 file has this:\n # This file is generated by running \"yarn install\" inside your project.\n # Manual changes might be lost - proceed with caution!\n\n __metadata:\n */\nexport function yarnLockRecognizeVersion(fileContent: string): YarnLockVersionEnum {\n\n const yarn = fileContent.split(\"\\n\", 10) //Check only the first 10 lines;\n for (const line of yarn) {\n if ( line.includes('__metadata:') ) return YarnLockVersionEnum.V2\n if ( line.includes('yarn lockfile v1') ) return YarnLockVersionEnum.V1\n }\n return YarnLockVersionEnum.UnknownYarnLockFormat\n}\n\nexport function yarnLockV1Parser(fileContent: string, filePath: string): Promise <ILocalDependency> {\n\n const results: ILocalDependency = {file: filePath, purls: []};\n\n //Yield an array with each element is a dependency\n /*\n \"@babel/core@^7.1.0\", \"@babel/core@^7.3.4\":\n version \"7.3.4\"\n resolved \"https://registry.yarnpkg.com/@babel/core/-/core-7.3.4.tgz#921a5a13746c21e32445bf0798680e9d11a6530b\"\n integrity sha512-jRsuseXBo9pN197KnDwhhaaBzyZr2oIcLHHTt2oDdQrej5Qp57dCCJafWx5ivU8/alEYDpssYqv1MUqcxwQlrA==\n dependencies:\n \"@babel/code-frame\" \"^7.0.0\"\n \"@babel/generator\" \"^7.3.4\"\n */\n const yl_dependencies = fileContent.split(\"\\n\\n\");\n\n for (const yl_dependency of yl_dependencies) {\n\n\n\n const dependencyData: Record<string, string> = {}\n const topRequirements = [];\n\n const dep_lines = yl_dependency.split(\"\\n\");\n if (dep_lines.every((line) => line.trim().startsWith(\"#\") == true)) continue //All lines are coments\n if (dep_lines.every((line) => line.trim() == \"\")) continue //All lines are empty lines\n\n for (const dep_line of dep_lines) {\n\n // Clean comments and empty lines\n const trimmed = dep_line.trim();\n const comment = trimmed.startsWith('#');\n if (!trimmed || comment) continue\n\n // Do nothing with it's own dependencies\n // \"@babel/code-frame\" \"^7.0.0\"\n // \"@babel/generator\" \"^7.3.4\"\n if (dep_line.startsWith(' '.repeat(4))) {}\n\n // version \"7.3.4\"\n // resolved \"https://registry.yarnpkg.com/@babel/core/-/core-7.3.4.tgz#921a5a13746c21e32445bf0798680e9d11a6530b\"\n // integrity sha512-jRsuseXBo9pN197KnDwhhaaBzyZr2oIcLHHTt2oDdQrej5Qp57dCCJafWx5ivU8/alEYDpssYqv1MUqcxwQlrA==\n // dependencies:\n else if (dep_line.startsWith(' '.repeat(2))) {\n const dep = trimmed.split(\" \")\n const key = dep[0].trim();\n if (key !== \"dependencies:\" && key!==\"optionalDependencies:\") {\n dependencyData[key] = dep[1].replace(/\\\"|\\'/g, \"\");\n }\n }\n\n // the first line of a dependency has the name and requirements\n //\"@babel/core@^7.1.0\", \"@babel/core@^7.3.4\":\n else if (!dep_line.startsWith(' ')){\n const dep = dep_line.replace(/:/g, \"\").split(\",\");\n const requirements = dep.map(line => line.trim().replace(/\"|'/g, \"\"));\n\n for (const req of requirements) {\n\n const atIndex = req.lastIndexOf(\"@\")\n\n let constraint = req.slice(atIndex+1) // gets ^7.1.0\n constraint = constraint.replace(/\"|'/g, \"\");\n\n const ns_name = req.slice(0, atIndex)\n\n let ns = '';\n let name = ns_name;\n if (ns_name.includes(\"/\")) {\n const slashIndex = req.lastIndexOf(\"/\")\n ns = ns_name.slice(0,slashIndex);\n name = ns_name.slice(slashIndex+1)\n }\n\n topRequirements.push({constraint: constraint, ns: ns, name: name });\n }\n\n }\n\n\n }\n\n //Make sure that name and namespace are equal for the same dependency\n const isNsNameEqual = topRequirements.every((topRequirement) => {\n return topRequirement.ns === topRequirements[0].ns && topRequirement.name === topRequirements[0].name\n });\n\n if (!isNsNameEqual) {\n console.error(\"Different names for same dependency is not supported\")\n continue\n }\n const topRequirement = topRequirements[0];\n const namespace = topRequirement.ns;\n const name = topRequirement.name;\n const version = dependencyData['version'];\n const purl = new PackageURL(PURL_TYPE, namespace, name, version, undefined, undefined).toString()\n\n let requirement = ''\n for (const topRequirement of topRequirements) {\n requirement += topRequirement.constraint + \", \"\n }\n if (requirement.endsWith(\", \")) {\n requirement = requirement.slice(0, requirement.length-2)\n }\n\n results.purls.push({purl: purl, requirement: requirement})\n\n }\n\n\n return Promise.resolve(results);\n\n}\n\n\n//TODO: Implement yarn lock V2 parser\nexport function yarnLockV2Parser(fileContent: string, filePath: string): Promise<ILocalDependency> {\n\n const results: ILocalDependency = {file: filePath, purls: []};\n\n\n return Promise.resolve(results);\n\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"130f440075cda7caaa728f5381bf06fa9459c917"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.ts","statementMap":{"0":{"start":{"line":1,"column":22},"end":{"line":3,"column":1}},"1":{"start":{"line":2,"column":4},"end":{"line":2,"column":62}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":62}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":59}},"4":{"start":{"line":6,"column":15},"end":{"line":6,"column":47}},"5":{"start":{"line":7,"column":24},"end":{"line":7,"column":48}},"6":{"start":{"line":8,"column":18},"end":{"line":8,"column":23}},"7":{"start":{"line":12,"column":22},"end":{"line":12,"column":31}},"8":{"start":{"line":15,"column":20},"end":{"line":15,"column":49}},"9":{"start":{"line":16,"column":4},"end":{"line":17,"column":40}},"10":{"start":{"line":17,"column":8},"end":{"line":17,"column":40}},"11":{"start":{"line":18,"column":18},"end":{"line":18,"column":41}},"12":{"start":{"line":19,"column":19},"end":{"line":19,"column":21}},"13":{"start":{"line":20,"column":4},"end":{"line":32,"column":5}},"14":{"start":{"line":21,"column":8},"end":{"line":21,"column":27}},"15":{"start":{"line":22,"column":8},"end":{"line":31,"column":9}},"16":{"start":{"line":24,"column":24},"end":{"line":24,"column":58}},"17":{"start":{"line":25,"column":12},"end":{"line":30,"column":13}},"18":{"start":{"line":26,"column":16},"end":{"line":26,"column":57}},"19":{"start":{"line":27,"column":16},"end":{"line":27,"column":57}},"20":{"start":{"line":28,"column":35},"end":{"line":28,"column":141}},"21":{"start":{"line":29,"column":16},"end":{"line":29,"column":57}},"22":{"start":{"line":33,"column":4},"end":{"line":33,"column":36}},"23":{"start":{"line":35,"column":0},"end":{"line":35,"column":38}},"24":{"start":{"line":36,"column":24},"end":{"line":36,"column":38}},"25":{"start":{"line":39,"column":20},"end":{"line":39,"column":49}},"26":{"start":{"line":40,"column":4},"end":{"line":41,"column":40}},"27":{"start":{"line":41,"column":8},"end":{"line":41,"column":40}},"28":{"start":{"line":42,"column":26},"end":{"line":42,"column":49}},"29":{"start":{"line":43,"column":18},"end":{"line":43,"column":60}},"30":{"start":{"line":44,"column":4},"end":{"line":46,"column":5}},"31":{"start":{"line":45,"column":8},"end":{"line":45,"column":33}},"32":{"start":{"line":47,"column":4},"end":{"line":47,"column":36}},"33":{"start":{"line":49,"column":0},"end":{"line":49,"column":46}},"34":{"start":{"line":51,"column":13},"end":{"line":51,"column":19}},"35":{"start":{"line":52,"column":12},"end":{"line":52,"column":17}},"36":{"start":{"line":53,"column":12},"end":{"line":53,"column":17}},"37":{"start":{"line":54,"column":12},"end":{"line":54,"column":17}},"38":{"start":{"line":55,"column":18},"end":{"line":55,"column":29}},"39":{"start":{"line":56,"column":21},"end":{"line":56,"column":35}},"40":{"start":{"line":57,"column":14},"end":{"line":57,"column":24}},"41":{"start":{"line":60,"column":18},"end":{"line":60,"column":39}},"42":{"start":{"line":61,"column":18},"end":{"line":61,"column":94}},"43":{"start":{"line":62,"column":27},"end":{"line":62,"column":39}},"44":{"start":{"line":69,"column":8},"end":{"line":69,"column":27}},"45":{"start":{"line":71,"column":8},"end":{"line":71,"column":28}},"46":{"start":{"line":72,"column":8},"end":{"line":72,"column":60}},"47":{"start":{"line":73,"column":8},"end":{"line":73,"column":55}},"48":{"start":{"line":74,"column":8},"end":{"line":74,"column":48}},"49":{"start":{"line":75,"column":8},"end":{"line":75,"column":49}},"50":{"start":{"line":76,"column":8},"end":{"line":76,"column":48}},"51":{"start":{"line":77,"column":8},"end":{"line":77,"column":48}},"52":{"start":{"line":78,"column":8},"end":{"line":78,"column":47}},"53":{"start":{"line":81,"column":8},"end":{"line":81,"column":26}},"54":{"start":{"line":82,"column":19},"end":{"line":82,"column":42}},"55":{"start":{"line":83,"column":8},"end":{"line":100,"column":9}},"56":{"start":{"line":84,"column":12},"end":{"line":84,"column":34}},"57":{"start":{"line":86,"column":12},"end":{"line":89,"column":13}},"58":{"start":{"line":87,"column":16},"end":{"line":87,"column":34}},"59":{"start":{"line":88,"column":16},"end":{"line":88,"column":25}},"60":{"start":{"line":91,"column":12},"end":{"line":96,"column":13}},"61":{"start":{"line":92,"column":16},"end":{"line":93,"column":44}},"62":{"start":{"line":93,"column":20},"end":{"line":93,"column":44}},"63":{"start":{"line":94,"column":16},"end":{"line":94,"column":50}},"64":{"start":{"line":95,"column":16},"end":{"line":95,"column":25}},"65":{"start":{"line":98,"column":12},"end":{"line":99,"column":33}},"66":{"start":{"line":99,"column":16},"end":{"line":99,"column":33}},"67":{"start":{"line":101,"column":8},"end":{"line":101,"column":29}},"68":{"start":{"line":104,"column":8},"end":{"line":104,"column":34}},"69":{"start":{"line":105,"column":8},"end":{"line":105,"column":26}},"70":{"start":{"line":108,"column":22},"end":{"line":108,"column":52}},"71":{"start":{"line":109,"column":20},"end":{"line":109,"column":55}},"72":{"start":{"line":110,"column":22},"end":{"line":110,"column":57}},"73":{"start":{"line":111,"column":8},"end":{"line":112,"column":46}},"74":{"start":{"line":112,"column":12},"end":{"line":112,"column":46}},"75":{"start":{"line":117,"column":8},"end":{"line":126,"column":9}},"76":{"start":{"line":118,"column":12},"end":{"line":125,"column":13}},"77":{"start":{"line":119,"column":16},"end":{"line":119,"column":40}},"78":{"start":{"line":120,"column":30},"end":{"line":120,"column":51}},"79":{"start":{"line":121,"column":29},"end":{"line":121,"column":124}},"80":{"start":{"line":122,"column":16},"end":{"line":122,"column":86}},"81":{"start":{"line":127,"column":8},"end":{"line":127,"column":40}},"82":{"start":{"line":129,"column":8},"end":{"line":129,"column":41}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":56},"end":{"line":1,"column":57}},"loc":{"start":{"line":1,"column":71},"end":{"line":3,"column":1}},"line":1},"1":{"name":"gemfileParser","decl":{"start":{"line":13,"column":9},"end":{"line":13,"column":22}},"loc":{"start":{"line":13,"column":46},"end":{"line":34,"column":1}},"line":13},"2":{"name":"gemfilelockParser","decl":{"start":{"line":37,"column":9},"end":{"line":37,"column":26}},"loc":{"start":{"line":37,"column":50},"end":{"line":48,"column":1}},"line":37},"3":{"name":"(anonymous_3)","decl":{"start":{"line":68,"column":4},"end":{"line":68,"column":5}},"loc":{"start":{"line":68,"column":18},"end":{"line":79,"column":5}},"line":68},"4":{"name":"(anonymous_4)","decl":{"start":{"line":80,"column":4},"end":{"line":80,"column":5}},"loc":{"start":{"line":80,"column":33},"end":{"line":102,"column":5}},"line":80},"5":{"name":"(anonymous_5)","decl":{"start":{"line":103,"column":4},"end":{"line":103,"column":5}},"loc":{"start":{"line":103,"column":17},"end":{"line":106,"column":5}},"line":103},"6":{"name":"(anonymous_6)","decl":{"start":{"line":107,"column":4},"end":{"line":107,"column":5}},"loc":{"start":{"line":107,"column":23},"end":{"line":113,"column":5}},"line":107},"7":{"name":"(anonymous_7)","decl":{"start":{"line":114,"column":4},"end":{"line":114,"column":5}},"loc":{"start":{"line":114,"column":26},"end":{"line":114,"column":29}},"line":114},"8":{"name":"(anonymous_8)","decl":{"start":{"line":115,"column":4},"end":{"line":115,"column":5}},"loc":{"start":{"line":115,"column":24},"end":{"line":115,"column":27}},"line":115},"9":{"name":"(anonymous_9)","decl":{"start":{"line":116,"column":4},"end":{"line":116,"column":5}},"loc":{"start":{"line":116,"column":20},"end":{"line":130,"column":5}},"line":116}},"branchMap":{"0":{"loc":{"start":{"line":1,"column":22},"end":{"line":3,"column":1}},"type":"binary-expr","locations":[{"start":{"line":1,"column":23},"end":{"line":1,"column":27}},{"start":{"line":1,"column":31},"end":{"line":1,"column":51}},{"start":{"line":1,"column":56},"end":{"line":3,"column":1}}],"line":1},"1":{"loc":{"start":{"line":2,"column":11},"end":{"line":2,"column":61}},"type":"cond-expr","locations":[{"start":{"line":2,"column":37},"end":{"line":2,"column":40}},{"start":{"line":2,"column":43},"end":{"line":2,"column":61}}],"line":2},"2":{"loc":{"start":{"line":2,"column":12},"end":{"line":2,"column":33}},"type":"binary-expr","locations":[{"start":{"line":2,"column":12},"end":{"line":2,"column":15}},{"start":{"line":2,"column":19},"end":{"line":2,"column":33}}],"line":2},"3":{"loc":{"start":{"line":16,"column":4},"end":{"line":17,"column":40}},"type":"if","locations":[{"start":{"line":16,"column":4},"end":{"line":17,"column":40}},{"start":{"line":16,"column":4},"end":{"line":17,"column":40}}],"line":16},"4":{"loc":{"start":{"line":22,"column":8},"end":{"line":31,"column":9}},"type":"if","locations":[{"start":{"line":22,"column":8},"end":{"line":31,"column":9}},{"start":{"line":22,"column":8},"end":{"line":31,"column":9}}],"line":22},"5":{"loc":{"start":{"line":22,"column":12},"end":{"line":22,"column":52}},"type":"binary-expr","locations":[{"start":{"line":22,"column":12},"end":{"line":22,"column":33}},{"start":{"line":22,"column":37},"end":{"line":22,"column":52}}],"line":22},"6":{"loc":{"start":{"line":25,"column":12},"end":{"line":30,"column":13}},"type":"if","locations":[{"start":{"line":25,"column":12},"end":{"line":30,"column":13}},{"start":{"line":25,"column":12},"end":{"line":30,"column":13}}],"line":25},"7":{"loc":{"start":{"line":26,"column":27},"end":{"line":26,"column":56}},"type":"cond-expr","locations":[{"start":{"line":26,"column":44},"end":{"line":26,"column":50}},{"start":{"line":26,"column":53},"end":{"line":26,"column":56}}],"line":26},"8":{"loc":{"start":{"line":40,"column":4},"end":{"line":41,"column":40}},"type":"if","locations":[{"start":{"line":40,"column":4},"end":{"line":41,"column":40}},{"start":{"line":40,"column":4},"end":{"line":41,"column":40}}],"line":40},"9":{"loc":{"start":{"line":86,"column":12},"end":{"line":89,"column":13}},"type":"if","locations":[{"start":{"line":86,"column":12},"end":{"line":89,"column":13}},{"start":{"line":86,"column":12},"end":{"line":89,"column":13}}],"line":86},"10":{"loc":{"start":{"line":91,"column":12},"end":{"line":96,"column":13}},"type":"if","locations":[{"start":{"line":91,"column":12},"end":{"line":96,"column":13}},{"start":{"line":91,"column":12},"end":{"line":96,"column":13}}],"line":91},"11":{"loc":{"start":{"line":92,"column":16},"end":{"line":93,"column":44}},"type":"if","locations":[{"start":{"line":92,"column":16},"end":{"line":93,"column":44}},{"start":{"line":92,"column":16},"end":{"line":93,"column":44}}],"line":92},"12":{"loc":{"start":{"line":98,"column":12},"end":{"line":99,"column":33}},"type":"if","locations":[{"start":{"line":98,"column":12},"end":{"line":99,"column":33}},{"start":{"line":98,"column":12},"end":{"line":99,"column":33}}],"line":98},"13":{"loc":{"start":{"line":109,"column":20},"end":{"line":109,"column":55}},"type":"cond-expr","locations":[{"start":{"line":109,"column":40},"end":{"line":109,"column":48}},{"start":{"line":109,"column":51},"end":{"line":109,"column":55}}],"line":109},"14":{"loc":{"start":{"line":110,"column":22},"end":{"line":110,"column":57}},"type":"cond-expr","locations":[{"start":{"line":110,"column":42},"end":{"line":110,"column":50}},{"start":{"line":110,"column":53},"end":{"line":110,"column":57}}],"line":110},"15":{"loc":{"start":{"line":111,"column":8},"end":{"line":112,"column":46}},"type":"if","locations":[{"start":{"line":111,"column":8},"end":{"line":112,"column":46}},{"start":{"line":111,"column":8},"end":{"line":112,"column":46}}],"line":111},"16":{"loc":{"start":{"line":117,"column":8},"end":{"line":126,"column":9}},"type":"if","locations":[{"start":{"line":117,"column":8},"end":{"line":126,"column":9}},{"start":{"line":117,"column":8},"end":{"line":126,"column":9}}],"line":117},"17":{"loc":{"start":{"line":118,"column":12},"end":{"line":125,"column":13}},"type":"if","locations":[{"start":{"line":118,"column":12},"end":{"line":125,"column":13}},{"start":{"line":118,"column":12},"end":{"line":125,"column":13}}],"line":118},"18":{"loc":{"start":{"line":127,"column":8},"end":{"line":127,"column":40}},"type":"if","locations":[{"start":{"line":127,"column":8},"end":{"line":127,"column":40}},{"start":{"line":127,"column":8},"end":{"line":127,"column":40}}],"line":127},"19":{"loc":{"start":{"line":129,"column":8},"end":{"line":129,"column":41}},"type":"if","locations":[{"start":{"line":129,"column":8},"end":{"line":129,"column":41}},{"start":{"line":129,"column":8},"end":{"line":129,"column":41}}],"line":129}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":1,"24":1,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0},"f":{"0":1,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0]},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.ts"],"names":[],"mappings":"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","sourcesContent":["import path from \"path\";\nimport { PackageURL } from \"packageurl-js\";\nimport { ILocalDependency, ILocalPurl } from '../DependencyTypes';\n\n\nconst PURL_TYPE = 'gem';\n\n\n// Parse a gemfile file from ruby\n// See reference on: https://bundler.io/gemfile.html\n// and https://bundler.io/man/gemfile.5.html\nconst MANIFEST_FILE = 'Gemfile';\nexport function gemfileParser(fileContent: string, filePath: string): Promise<ILocalDependency> {\n\n // If the file is not a manifest file, return an empty results\n const results: ILocalDependency = {file: filePath, purls: []};\n if(path.basename(filePath) != MANIFEST_FILE)\n return Promise.resolve(results);\n\n\n const lines: Array<string> = fileContent.split('\\n');\n let compName: string = '';\n\n for (let line of lines) {\n line = line.trim();\n if (!line.startsWith('#') && line.length>0) { // Avoid comments and empty lines\n // Line contains a package name and/or version.\n const res = line.match(/^gem\\s*([\"']\\w+[\"'])/); //Extract name\n if (res) {\n compName = res.length > 1 ? res[1] : ' ';\n compName = compName.replace(/['\"]/g, '');\n const purlString = new PackageURL(PURL_TYPE, undefined, compName, undefined, undefined, undefined).toString();\n results.purls.push({purl: purlString});\n }\n }\n }\n return Promise.resolve(results);\n}\n\n\nconst MANIFEST_FILE_1 = 'Gemfile.lock';\nexport function gemfilelockParser(fileContent: string, filePath: string): Promise<ILocalDependency> {\n\n // If the file is not a manifest file, return an empty results\n const results: ILocalDependency = {file: filePath, purls: []};\n if(path.basename(filePath) != MANIFEST_FILE_1)\n return Promise.resolve(results);\n\n const gemlockParser = new GemfileLockParser();\n const purls = gemlockParser.getDependencies(fileContent);\n for (const purl of purls) {\n results.purls.push(purl);\n }\n\n return Promise.resolve(results);\n}\n\n\n// Section headings: these are also used as switches to track a parsing state\n\nconst PATH = 'PATH';\nconst GIT = 'GIT';\nconst SVN = 'SVN';\nconst GEM = 'GEM';\nconst PLATFORMS = 'PLATFORMS';\nconst DEPENDENCIES = 'DEPENDENCIES';\nconst SPECS = ' specs:';\n\n// types of Gems, which is really where they are provisioned from\n// RubyGems repo, local path or VCS\nconst GEM_TYPES = [GEM, PATH, GIT, SVN];\n\n\nconst specRegex = /(?<name>[^ \\)\\(,!:]+)?(?: \\((?<version>[^-]*?)(?:-(?<platform>[^!]*))?\\))?/;\nconst firstDepLevelRegex = /^ {4}(?! )/;\n/*\n The parsing use a simple state machine, switching states based on sections\n headings. The result is a list of purls\n*/\nclass GemfileLockParser {\n\n private statesMap;\n\n private state;\n\n private current_options: Record<string, string>;\n\n private current_gem;\n\n private purlList: Array<ILocalPurl>;\n\n constructor () {\n\n this.purlList = [];\n\n // map of a line start string to the next parsing state function\n this.statesMap = {};\n this.statesMap[DEPENDENCIES] = this.parseDependency;\n this.statesMap[PLATFORMS] = this.parsePlatform;\n this.statesMap[GIT] = this.parseOptions;\n this.statesMap[PATH] = this.parseOptions;\n this.statesMap[SVN] = this.parseOptions;\n this.statesMap[GEM] = this.parseOptions;\n this.statesMap[SPECS] = this.parseSpec;\n }\n\n public getDependencies(filecontent: string): Array<ILocalPurl> {\n this.resetState();\n let file = filecontent.split('\\n');\n for (let line of file) {\n line = line.trimEnd();\n\n //reset state on empty lines\n if (!line.length) {\n this.resetState();\n continue;\n }\n\n //switch to new state\n if (line in this.statesMap) {\n if (GEM_TYPES.includes(line))\n this.current_gem = line;\n this.state=this.statesMap[line];\n continue;\n }\n\n // process the line\n if (this.state) this.state(line);\n }\n return this.purlList;\n }\n\n private resetState() {\n this.current_options = {};\n this.state = null;\n }\n\n private parseOptions(line: string) {\n const match = line.match(/\\s*(\\w+):\\s*(.*)/);\n const key = match.length>=1 ? match[1] : null;\n const value = match.length>=2 ? match[2] : null;\n if(key) this.current_options[key] = value;\n }\n\n private parseDependency(line: string) {}\n private parsePlatform(line: string){}\n\n\n private parseSpec(line: string) {\n\n if(this.current_gem == GEM) {\n if(firstDepLevelRegex.test(line)) {\n line = line.trimStart();\n const match = line.match(specRegex);\n\n const purl = new PackageURL( PURL_TYPE,\n null,\n match.groups.name,\n null,\n null,\n null ).toString();\n this.purlList.push({purl: purl, requirement: match.groups.version});\n\n } else { // Second level of dependence\n\n }\n }\n\n if(this.current_gem == GIT) {}\n\n // Purl from local dependencies are not generated\n if(this.current_gem == PATH){}\n }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"29076a49b56b0ea7b54ed009b96463d9ce78ceed"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/golangParser.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/golangParser.ts","statementMap":{"0":{"start":{"line":1,"column":22},"end":{"line":3,"column":1}},"1":{"start":{"line":2,"column":4},"end":{"line":2,"column":62}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":62}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":51}},"4":{"start":{"line":6,"column":24},"end":{"line":6,"column":48}},"5":{"start":{"line":7,"column":15},"end":{"line":7,"column":47}},"6":{"start":{"line":10,"column":16},"end":{"line":10,"column":68}},"7":{"start":{"line":11,"column":4},"end":{"line":14,"column":6}},"8":{"start":{"line":17,"column":33},"end":{"line":17,"column":51}},"9":{"start":{"line":18,"column":18},"end":{"line":18,"column":42}},"10":{"start":{"line":19,"column":22},"end":{"line":19,"column":49}},"11":{"start":{"line":20,"column":17},"end":{"line":20,"column":45}},"12":{"start":{"line":21,"column":4},"end":{"line":21,"column":40}},"13":{"start":{"line":25,"column":4},"end":{"line":26,"column":53}},"14":{"start":{"line":26,"column":8},"end":{"line":26,"column":53}},"15":{"start":{"line":27,"column":4},"end":{"line":27,"column":23}},"16":{"start":{"line":29,"column":18},"end":{"line":29,"column":26}},"17":{"start":{"line":31,"column":22},"end":{"line":31,"column":30}},"18":{"start":{"line":34,"column":20},"end":{"line":34,"column":49}},"19":{"start":{"line":35,"column":4},"end":{"line":36,"column":40}},"20":{"start":{"line":36,"column":8},"end":{"line":36,"column":40}},"21":{"start":{"line":37,"column":18},"end":{"line":37,"column":41}},"22":{"start":{"line":38,"column":20},"end":{"line":38,"column":22}},"23":{"start":{"line":39,"column":4},"end":{"line":53,"column":5}},"24":{"start":{"line":39,"column":19},"end":{"line":39,"column":20}},"25":{"start":{"line":40,"column":19},"end":{"line":40,"column":45}},"26":{"start":{"line":41,"column":8},"end":{"line":52,"column":9}},"27":{"start":{"line":42,"column":12},"end":{"line":42,"column":21}},"28":{"start":{"line":43,"column":12},"end":{"line":43,"column":46}},"29":{"start":{"line":44,"column":12},"end":{"line":51,"column":13}},"30":{"start":{"line":45,"column":53},"end":{"line":45,"column":82}},"31":{"start":{"line":46,"column":35},"end":{"line":46,"column":135}},"32":{"start":{"line":47,"column":16},"end":{"line":47,"column":57}},"33":{"start":{"line":48,"column":16},"end":{"line":48,"column":35}},"34":{"start":{"line":49,"column":16},"end":{"line":49,"column":25}},"35":{"start":{"line":50,"column":16},"end":{"line":50,"column":50}},"36":{"start":{"line":54,"column":4},"end":{"line":54,"column":36}},"37":{"start":{"line":56,"column":0},"end":{"line":56,"column":34}},"38":{"start":{"line":59,"column":16},"end":{"line":59,"column":91}},"39":{"start":{"line":60,"column":4},"end":{"line":64,"column":6}},"40":{"start":{"line":67,"column":33},"end":{"line":67,"column":56}},"41":{"start":{"line":68,"column":4},"end":{"line":69,"column":18}},"42":{"start":{"line":69,"column":8},"end":{"line":69,"column":18}},"43":{"start":{"line":70,"column":18},"end":{"line":70,"column":42}},"44":{"start":{"line":71,"column":22},"end":{"line":71,"column":49}},"45":{"start":{"line":72,"column":17},"end":{"line":72,"column":45}},"46":{"start":{"line":73,"column":4},"end":{"line":73,"column":40}},"47":{"start":{"line":78,"column":20},"end":{"line":78,"column":49}},"48":{"start":{"line":79,"column":4},"end":{"line":80,"column":40}},"49":{"start":{"line":80,"column":8},"end":{"line":80,"column":40}},"50":{"start":{"line":81,"column":18},"end":{"line":81,"column":41}},"51":{"start":{"line":82,"column":4},"end":{"line":93,"column":5}},"52":{"start":{"line":82,"column":19},"end":{"line":82,"column":20}},"53":{"start":{"line":83,"column":19},"end":{"line":83,"column":45}},"54":{"start":{"line":84,"column":8},"end":{"line":85,"column":21}},"55":{"start":{"line":85,"column":12},"end":{"line":85,"column":21}},"56":{"start":{"line":86,"column":8},"end":{"line":86,"column":43}},"57":{"start":{"line":87,"column":45},"end":{"line":87,"column":74}},"58":{"start":{"line":88,"column":8},"end":{"line":89,"column":21}},"59":{"start":{"line":89,"column":12},"end":{"line":89,"column":21}},"60":{"start":{"line":91,"column":27},"end":{"line":91,"column":66}},"61":{"start":{"line":92,"column":8},"end":{"line":92,"column":71}},"62":{"start":{"line":94,"column":4},"end":{"line":94,"column":36}},"63":{"start":{"line":96,"column":0},"end":{"line":96,"column":34}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":56},"end":{"line":1,"column":57}},"loc":{"start":{"line":1,"column":71},"end":{"line":3,"column":1}},"line":1},"1":{"name":"parseDepLink","decl":{"start":{"line":8,"column":9},"end":{"line":8,"column":21}},"loc":{"start":{"line":8,"column":27},"end":{"line":15,"column":1}},"line":8},"2":{"name":"getDepDataGoModFromLine","decl":{"start":{"line":16,"column":9},"end":{"line":16,"column":32}},"loc":{"start":{"line":16,"column":39},"end":{"line":22,"column":1}},"line":16},"3":{"name":"preprocessLine","decl":{"start":{"line":24,"column":9},"end":{"line":24,"column":23}},"loc":{"start":{"line":24,"column":30},"end":{"line":28,"column":1}},"line":24},"4":{"name":"goModParser","decl":{"start":{"line":32,"column":9},"end":{"line":32,"column":20}},"loc":{"start":{"line":32,"column":44},"end":{"line":55,"column":1}},"line":32},"5":{"name":"parseGoSumDepLink","decl":{"start":{"line":57,"column":9},"end":{"line":57,"column":26}},"loc":{"start":{"line":57,"column":32},"end":{"line":65,"column":1}},"line":57},"6":{"name":"getDepDataGoSumFromLine","decl":{"start":{"line":66,"column":9},"end":{"line":66,"column":32}},"loc":{"start":{"line":66,"column":39},"end":{"line":74,"column":1}},"line":66},"7":{"name":"goSumParser","decl":{"start":{"line":76,"column":9},"end":{"line":76,"column":20}},"loc":{"start":{"line":76,"column":44},"end":{"line":95,"column":1}},"line":76}},"branchMap":{"0":{"loc":{"start":{"line":1,"column":22},"end":{"line":3,"column":1}},"type":"binary-expr","locations":[{"start":{"line":1,"column":23},"end":{"line":1,"column":27}},{"start":{"line":1,"column":31},"end":{"line":1,"column":51}},{"start":{"line":1,"column":56},"end":{"line":3,"column":1}}],"line":1},"1":{"loc":{"start":{"line":2,"column":11},"end":{"line":2,"column":61}},"type":"cond-expr","locations":[{"start":{"line":2,"column":37},"end":{"line":2,"column":40}},{"start":{"line":2,"column":43},"end":{"line":2,"column":61}}],"line":2},"2":{"loc":{"start":{"line":2,"column":12},"end":{"line":2,"column":33}},"type":"binary-expr","locations":[{"start":{"line":2,"column":12},"end":{"line":2,"column":15}},{"start":{"line":2,"column":19},"end":{"line":2,"column":33}}],"line":2},"3":{"loc":{"start":{"line":12,"column":17},"end":{"line":12,"column":124}},"type":"cond-expr","locations":[{"start":{"line":12,"column":105},"end":{"line":12,"column":111}},{"start":{"line":12,"column":114},"end":{"line":12,"column":124}}],"line":12},"4":{"loc":{"start":{"line":12,"column":17},"end":{"line":12,"column":102}},"type":"binary-expr","locations":[{"start":{"line":12,"column":17},"end":{"line":12,"column":85}},{"start":{"line":12,"column":89},"end":{"line":12,"column":102}}],"line":12},"5":{"loc":{"start":{"line":12,"column":23},"end":{"line":12,"column":75}},"type":"cond-expr","locations":[{"start":{"line":12,"column":56},"end":{"line":12,"column":62}},{"start":{"line":12,"column":65},"end":{"line":12,"column":75}}],"line":12},"6":{"loc":{"start":{"line":12,"column":23},"end":{"line":12,"column":53}},"type":"binary-expr","locations":[{"start":{"line":12,"column":23},"end":{"line":12,"column":35}},{"start":{"line":12,"column":39},"end":{"line":12,"column":53}}],"line":12},"7":{"loc":{"start":{"line":13,"column":17},"end":{"line":13,"column":124}},"type":"cond-expr","locations":[{"start":{"line":13,"column":105},"end":{"line":13,"column":111}},{"start":{"line":13,"column":114},"end":{"line":13,"column":124}}],"line":13},"8":{"loc":{"start":{"line":13,"column":17},"end":{"line":13,"column":102}},"type":"binary-expr","locations":[{"start":{"line":13,"column":17},"end":{"line":13,"column":85}},{"start":{"line":13,"column":89},"end":{"line":13,"column":102}}],"line":13},"9":{"loc":{"start":{"line":13,"column":23},"end":{"line":13,"column":75}},"type":"cond-expr","locations":[{"start":{"line":13,"column":56},"end":{"line":13,"column":62}},{"start":{"line":13,"column":65},"end":{"line":13,"column":75}}],"line":13},"10":{"loc":{"start":{"line":13,"column":23},"end":{"line":13,"column":53}},"type":"binary-expr","locations":[{"start":{"line":13,"column":23},"end":{"line":13,"column":35}},{"start":{"line":13,"column":39},"end":{"line":13,"column":53}}],"line":13},"11":{"loc":{"start":{"line":25,"column":4},"end":{"line":26,"column":53}},"type":"if","locations":[{"start":{"line":25,"column":4},"end":{"line":26,"column":53}},{"start":{"line":25,"column":4},"end":{"line":26,"column":53}}],"line":25},"12":{"loc":{"start":{"line":35,"column":4},"end":{"line":36,"column":40}},"type":"if","locations":[{"start":{"line":35,"column":4},"end":{"line":36,"column":40}},{"start":{"line":35,"column":4},"end":{"line":36,"column":40}}],"line":35},"13":{"loc":{"start":{"line":41,"column":8},"end":{"line":52,"column":9}},"type":"if","locations":[{"start":{"line":41,"column":8},"end":{"line":52,"column":9}},{"start":{"line":41,"column":8},"end":{"line":52,"column":9}}],"line":41},"14":{"loc":{"start":{"line":41,"column":12},"end":{"line":41,"column":58}},"type":"binary-expr","locations":[{"start":{"line":41,"column":12},"end":{"line":41,"column":36}},{"start":{"line":41,"column":40},"end":{"line":41,"column":58}}],"line":41},"15":{"loc":{"start":{"line":44,"column":19},"end":{"line":44,"column":53}},"type":"binary-expr","locations":[{"start":{"line":44,"column":19},"end":{"line":44,"column":37}},{"start":{"line":44,"column":41},"end":{"line":44,"column":53}}],"line":44},"16":{"loc":{"start":{"line":61,"column":17},"end":{"line":61,"column":124}},"type":"cond-expr","locations":[{"start":{"line":61,"column":105},"end":{"line":61,"column":111}},{"start":{"line":61,"column":114},"end":{"line":61,"column":124}}],"line":61},"17":{"loc":{"start":{"line":61,"column":17},"end":{"line":61,"column":102}},"type":"binary-expr","locations":[{"start":{"line":61,"column":17},"end":{"line":61,"column":85}},{"start":{"line":61,"column":89},"end":{"line":61,"column":102}}],"line":61},"18":{"loc":{"start":{"line":61,"column":23},"end":{"line":61,"column":75}},"type":"cond-expr","locations":[{"start":{"line":61,"column":56},"end":{"line":61,"column":62}},{"start":{"line":61,"column":65},"end":{"line":61,"column":75}}],"line":61},"19":{"loc":{"start":{"line":61,"column":23},"end":{"line":61,"column":53}},"type":"binary-expr","locations":[{"start":{"line":61,"column":23},"end":{"line":61,"column":35}},{"start":{"line":61,"column":39},"end":{"line":61,"column":53}}],"line":61},"20":{"loc":{"start":{"line":62,"column":17},"end":{"line":62,"column":124}},"type":"cond-expr","locations":[{"start":{"line":62,"column":105},"end":{"line":62,"column":111}},{"start":{"line":62,"column":114},"end":{"line":62,"column":124}}],"line":62},"21":{"loc":{"start":{"line":62,"column":17},"end":{"line":62,"column":102}},"type":"binary-expr","locations":[{"start":{"line":62,"column":17},"end":{"line":62,"column":85}},{"start":{"line":62,"column":89},"end":{"line":62,"column":102}}],"line":62},"22":{"loc":{"start":{"line":62,"column":23},"end":{"line":62,"column":75}},"type":"cond-expr","locations":[{"start":{"line":62,"column":56},"end":{"line":62,"column":62}},{"start":{"line":62,"column":65},"end":{"line":62,"column":75}}],"line":62},"23":{"loc":{"start":{"line":62,"column":23},"end":{"line":62,"column":53}},"type":"binary-expr","locations":[{"start":{"line":62,"column":23},"end":{"line":62,"column":35}},{"start":{"line":62,"column":39},"end":{"line":62,"column":53}}],"line":62},"24":{"loc":{"start":{"line":63,"column":18},"end":{"line":63,"column":126}},"type":"cond-expr","locations":[{"start":{"line":63,"column":106},"end":{"line":63,"column":112}},{"start":{"line":63,"column":115},"end":{"line":63,"column":126}}],"line":63},"25":{"loc":{"start":{"line":63,"column":18},"end":{"line":63,"column":103}},"type":"binary-expr","locations":[{"start":{"line":63,"column":18},"end":{"line":63,"column":86}},{"start":{"line":63,"column":90},"end":{"line":63,"column":103}}],"line":63},"26":{"loc":{"start":{"line":63,"column":24},"end":{"line":63,"column":76}},"type":"cond-expr","locations":[{"start":{"line":63,"column":57},"end":{"line":63,"column":63}},{"start":{"line":63,"column":66},"end":{"line":63,"column":76}}],"line":63},"27":{"loc":{"start":{"line":63,"column":24},"end":{"line":63,"column":54}},"type":"binary-expr","locations":[{"start":{"line":63,"column":24},"end":{"line":63,"column":36}},{"start":{"line":63,"column":40},"end":{"line":63,"column":54}}],"line":63},"28":{"loc":{"start":{"line":68,"column":4},"end":{"line":69,"column":18}},"type":"if","locations":[{"start":{"line":68,"column":4},"end":{"line":69,"column":18}},{"start":{"line":68,"column":4},"end":{"line":69,"column":18}}],"line":68},"29":{"loc":{"start":{"line":79,"column":4},"end":{"line":80,"column":40}},"type":"if","locations":[{"start":{"line":79,"column":4},"end":{"line":80,"column":40}},{"start":{"line":79,"column":4},"end":{"line":80,"column":40}}],"line":79},"30":{"loc":{"start":{"line":84,"column":8},"end":{"line":85,"column":21}},"type":"if","locations":[{"start":{"line":84,"column":8},"end":{"line":85,"column":21}},{"start":{"line":84,"column":8},"end":{"line":85,"column":21}}],"line":84},"31":{"loc":{"start":{"line":88,"column":8},"end":{"line":89,"column":21}},"type":"if","locations":[{"start":{"line":88,"column":8},"end":{"line":89,"column":21}},{"start":{"line":88,"column":8},"end":{"line":89,"column":21}}],"line":88}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":120,"14":0,"15":120,"16":1,"17":1,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":1,"38":119,"39":119,"40":119,"41":119,"42":0,"43":119,"44":119,"45":119,"46":119,"47":1,"48":1,"49":0,"50":1,"51":1,"52":1,"53":120,"54":120,"55":1,"56":119,"57":119,"58":119,"59":0,"60":119,"61":119,"62":1,"63":1},"f":{"0":1,"1":0,"2":0,"3":120,"4":0,"5":119,"6":119,"7":1},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,120],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,119],"17":[119,119],"18":[0,119],"19":[119,119],"20":[0,119],"21":[119,119],"22":[0,119],"23":[119,119],"24":[0,119],"25":[119,119],"26":[0,119],"27":[119,119],"28":[0,119],"29":[0,1],"30":[1,119],"31":[0,119]},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/golangParser.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/golangParser.ts"],"names":[],"mappings":"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","sourcesContent":["import { ILocalDependency } from \"../DependencyTypes\";\n\nimport { PackageURL } from \"packageurl-js\";\nimport path from \"path\";\n\nfunction parseDepLink (str: string) {\n const res = /.*?(?<ns_name>[^\\s]+)\\s+(?<version>(.*))/.exec(str);\n return {\n ns_name: res?.groups?.ns_name,\n version: res?.groups?.version\n };\n}\n\nfunction getDepDataGoModFromLine(line: string) {\n const {ns_name, version} = parseDepLink(line);\n\n const index = ns_name.lastIndexOf('/');\n const namespace = ns_name.substring(0, index);\n const name = ns_name.substring(index + 1);\n\n return {namespace, name, version}\n}\n\n// Removes comments and spaces\nfunction preprocessLine(line: string) {\n if (line.includes(\"//\"))\n line = line.substring(0,line.indexOf(\"//\"));\n return line.trim();\n}\n\n\n\n\nconst PURL_TYPE = 'golang';\n\n\n// See reference on: https://go.dev/ref/mod#go-mod-file\nconst MANIFEST_FILE = 'go.mod';\nexport function goModParser(fileContent: string, filePath: string): Promise<ILocalDependency> {\n\n // If the file is not a go.mod manifest file, return an empty results\n const results: ILocalDependency = {file: filePath, purls: []};\n if(path.basename(filePath) != MANIFEST_FILE)\n return Promise.resolve(results);\n\n const lines =\tfileContent.split('\\n');\n\n\tconst require = [];\n\n for (let num = 0 ; num < lines.length ; num+=1) {\n\n let line = preprocessLine(lines[num]);\n\n\n if(line.includes('require') && line.includes('(')) {\n num+=1;\n line = preprocessLine(lines[num]);\n while (num < lines.length && line!==')') {\n\n const {namespace, name, version} = getDepDataGoModFromLine(line)\n\n const purlString = new PackageURL(PURL_TYPE, namespace, name, version, undefined, undefined).toString();\n results.purls.push({purl: purlString});\n\n require.push(line);\n\n num+=1;\n line = preprocessLine(lines[num]);\n }\n }\n }\n\n return Promise.resolve(results);\n}\n\n\n\n\n\nfunction parseGoSumDepLink (str: string) {\n const res = /.*?(?<ns_name>[^\\s]+)\\s+(?<version>(.*))\\s+h1:(?<checksum>(.*))/.exec(str);\n return {\n ns_name: res?.groups?.ns_name,\n version: res?.groups?.version,\n checksum: res?.groups?.checksum\n };\n}\n\nfunction getDepDataGoSumFromLine(line: string) {\n const {ns_name, version} = parseGoSumDepLink(line);\n\n if (!ns_name) return {};\n\n const index = ns_name.lastIndexOf('/');\n const namespace = ns_name.substring(0, index);\n const name = ns_name.substring(index + 1);\n\n return {namespace, name, version}\n}\n\n// See reference on: https://go.dev/ref/mod#go-mod-file\nexport function goSumParser(fileContent: string, filePath: string): Promise<ILocalDependency> {\n\n // If the file is not a go.mod manifest file, return an empty results\n const results: ILocalDependency = { file: filePath, purls: [] };\n if (path.basename(filePath) != 'go.sum')\n return Promise.resolve(results);\n\n\n const lines = fileContent.split('\\n');\n for (let num = 0; num < lines.length; num += 1) {\n\n let line = preprocessLine(lines[num]); //Deletes coments\n if(!line) continue\n\n line = line.replace('/go.mod', '')\n const {namespace, name, version} = getDepDataGoSumFromLine(line)\n\n if (!name) continue\n\n //const purlString = new PackageURL(PURL_TYPE, namespace, name, undefined, undefined, undefined).toString();\n const purlString = `pkg:${PURL_TYPE}/${namespace}/${name}`\n results.purls.push({purl: purlString, requirement: version})\n }\n\n return Promise.resolve(results);\n\n\n}\n\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"cdf95105b478827e15fa3fc3b0605d1f1853f110"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.ts","statementMap":{"0":{"start":{"line":1,"column":22},"end":{"line":3,"column":1}},"1":{"start":{"line":2,"column":4},"end":{"line":2,"column":62}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":62}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":61}},"4":{"start":{"line":6,"column":17},"end":{"line":6,"column":51}},"5":{"start":{"line":7,"column":24},"end":{"line":7,"column":48}},"6":{"start":{"line":8,"column":18},"end":{"line":8,"column":25}},"7":{"start":{"line":10,"column":20},"end":{"line":10,"column":49}},"8":{"start":{"line":11,"column":4},"end":{"line":36,"column":5}},"9":{"start":{"line":12,"column":28},"end":{"line":12,"column":64}},"10":{"start":{"line":13,"column":24},"end":{"line":13,"column":81}},"11":{"start":{"line":13,"column":58},"end":{"line":13,"column":80}},"12":{"start":{"line":14,"column":27},"end":{"line":14,"column":84}},"13":{"start":{"line":14,"column":59},"end":{"line":14,"column":83}},"14":{"start":{"line":15,"column":33},"end":{"line":15,"column":35}},"15":{"start":{"line":16,"column":8},"end":{"line":21,"column":11}},"16":{"start":{"line":17,"column":12},"end":{"line":20,"column":15}},"17":{"start":{"line":18,"column":16},"end":{"line":19,"column":48}},"18":{"start":{"line":19,"column":20},"end":{"line":19,"column":48}},"19":{"start":{"line":23,"column":8},"end":{"line":31,"column":11}},"20":{"start":{"line":25,"column":32},"end":{"line":25,"column":167}},"21":{"start":{"line":26,"column":28},"end":{"line":26,"column":163}},"22":{"start":{"line":27,"column":12},"end":{"line":30,"column":15}},"23":{"start":{"line":34,"column":8},"end":{"line":34,"column":25}},"24":{"start":{"line":35,"column":8},"end":{"line":35,"column":62}},"25":{"start":{"line":37,"column":4},"end":{"line":37,"column":36}},"26":{"start":{"line":39,"column":0},"end":{"line":39,"column":36}},"27":{"start":{"line":41,"column":20},"end":{"line":41,"column":49}},"28":{"start":{"line":42,"column":26},"end":{"line":42,"column":62}},"29":{"start":{"line":43,"column":21},"end":{"line":43,"column":83}},"30":{"start":{"line":43,"column":59},"end":{"line":43,"column":82}},"31":{"start":{"line":44,"column":4},"end":{"line":54,"column":7}},"32":{"start":{"line":45,"column":8},"end":{"line":53,"column":11}},"33":{"start":{"line":47,"column":28},"end":{"line":47,"column":92}},"34":{"start":{"line":48,"column":31},"end":{"line":48,"column":100}},"35":{"start":{"line":49,"column":12},"end":{"line":52,"column":15}},"36":{"start":{"line":55,"column":4},"end":{"line":55,"column":36}},"37":{"start":{"line":57,"column":0},"end":{"line":57,"column":52}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":56},"end":{"line":1,"column":57}},"loc":{"start":{"line":1,"column":71},"end":{"line":3,"column":1}},"line":1},"1":{"name":"csprojParser","decl":{"start":{"line":9,"column":9},"end":{"line":9,"column":21}},"loc":{"start":{"line":9,"column":45},"end":{"line":38,"column":1}},"line":9},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":50},"end":{"line":13,"column":51}},"loc":{"start":{"line":13,"column":58},"end":{"line":13,"column":80}},"line":13},"3":{"name":"(anonymous_3)","decl":{"start":{"line":14,"column":51},"end":{"line":14,"column":52}},"loc":{"start":{"line":14,"column":59},"end":{"line":14,"column":83}},"line":14},"4":{"name":"(anonymous_4)","decl":{"start":{"line":16,"column":27},"end":{"line":16,"column":28}},"loc":{"start":{"line":16,"column":40},"end":{"line":21,"column":9}},"line":16},"5":{"name":"(anonymous_5)","decl":{"start":{"line":17,"column":39},"end":{"line":17,"column":40}},"loc":{"start":{"line":17,"column":47},"end":{"line":20,"column":13}},"line":17},"6":{"name":"(anonymous_6)","decl":{"start":{"line":23,"column":33},"end":{"line":23,"column":34}},"loc":{"start":{"line":23,"column":48},"end":{"line":31,"column":9}},"line":23},"7":{"name":"packagesConfigParser","decl":{"start":{"line":40,"column":9},"end":{"line":40,"column":29}},"loc":{"start":{"line":40,"column":53},"end":{"line":56,"column":1}},"line":40},"8":{"name":"(anonymous_8)","decl":{"start":{"line":43,"column":51},"end":{"line":43,"column":52}},"loc":{"start":{"line":43,"column":59},"end":{"line":43,"column":82}},"line":43},"9":{"name":"(anonymous_9)","decl":{"start":{"line":44,"column":21},"end":{"line":44,"column":22}},"loc":{"start":{"line":44,"column":28},"end":{"line":54,"column":5}},"line":44},"10":{"name":"(anonymous_10)","decl":{"start":{"line":45,"column":29},"end":{"line":45,"column":30}},"loc":{"start":{"line":45,"column":36},"end":{"line":53,"column":9}},"line":45}},"branchMap":{"0":{"loc":{"start":{"line":1,"column":22},"end":{"line":3,"column":1}},"type":"binary-expr","locations":[{"start":{"line":1,"column":23},"end":{"line":1,"column":27}},{"start":{"line":1,"column":31},"end":{"line":1,"column":51}},{"start":{"line":1,"column":56},"end":{"line":3,"column":1}}],"line":1},"1":{"loc":{"start":{"line":2,"column":11},"end":{"line":2,"column":61}},"type":"cond-expr","locations":[{"start":{"line":2,"column":37},"end":{"line":2,"column":40}},{"start":{"line":2,"column":43},"end":{"line":2,"column":61}}],"line":2},"2":{"loc":{"start":{"line":2,"column":12},"end":{"line":2,"column":33}},"type":"binary-expr","locations":[{"start":{"line":2,"column":12},"end":{"line":2,"column":15}},{"start":{"line":2,"column":19},"end":{"line":2,"column":33}}],"line":2},"3":{"loc":{"start":{"line":18,"column":16},"end":{"line":19,"column":48}},"type":"if","locations":[{"start":{"line":18,"column":16},"end":{"line":19,"column":48}},{"start":{"line":18,"column":16},"end":{"line":19,"column":48}}],"line":18},"4":{"loc":{"start":{"line":25,"column":32},"end":{"line":25,"column":167}},"type":"cond-expr","locations":[{"start":{"line":25,"column":145},"end":{"line":25,"column":151}},{"start":{"line":25,"column":154},"end":{"line":25,"column":167}}],"line":25},"5":{"loc":{"start":{"line":25,"column":32},"end":{"line":25,"column":142}},"type":"binary-expr","locations":[{"start":{"line":25,"column":32},"end":{"line":25,"column":125}},{"start":{"line":25,"column":129},"end":{"line":25,"column":142}}],"line":25},"6":{"loc":{"start":{"line":25,"column":38},"end":{"line":25,"column":115}},"type":"cond-expr","locations":[{"start":{"line":25,"column":96},"end":{"line":25,"column":102}},{"start":{"line":25,"column":105},"end":{"line":25,"column":115}}],"line":25},"7":{"loc":{"start":{"line":25,"column":38},"end":{"line":25,"column":93}},"type":"binary-expr","locations":[{"start":{"line":25,"column":38},"end":{"line":25,"column":76}},{"start":{"line":25,"column":80},"end":{"line":25,"column":93}}],"line":25},"8":{"loc":{"start":{"line":26,"column":28},"end":{"line":26,"column":163}},"type":"cond-expr","locations":[{"start":{"line":26,"column":141},"end":{"line":26,"column":147}},{"start":{"line":26,"column":150},"end":{"line":26,"column":163}}],"line":26},"9":{"loc":{"start":{"line":26,"column":28},"end":{"line":26,"column":138}},"type":"binary-expr","locations":[{"start":{"line":26,"column":28},"end":{"line":26,"column":121}},{"start":{"line":26,"column":125},"end":{"line":26,"column":138}}],"line":26},"10":{"loc":{"start":{"line":26,"column":34},"end":{"line":26,"column":111}},"type":"cond-expr","locations":[{"start":{"line":26,"column":92},"end":{"line":26,"column":98}},{"start":{"line":26,"column":101},"end":{"line":26,"column":111}}],"line":26},"11":{"loc":{"start":{"line":26,"column":34},"end":{"line":26,"column":89}},"type":"binary-expr","locations":[{"start":{"line":26,"column":34},"end":{"line":26,"column":72}},{"start":{"line":26,"column":76},"end":{"line":26,"column":89}}],"line":26},"12":{"loc":{"start":{"line":47,"column":28},"end":{"line":47,"column":92}},"type":"cond-expr","locations":[{"start":{"line":47,"column":78},"end":{"line":47,"column":84}},{"start":{"line":47,"column":87},"end":{"line":47,"column":92}}],"line":47},"13":{"loc":{"start":{"line":47,"column":28},"end":{"line":47,"column":75}},"type":"binary-expr","locations":[{"start":{"line":47,"column":28},"end":{"line":47,"column":58}},{"start":{"line":47,"column":62},"end":{"line":47,"column":75}}],"line":47},"14":{"loc":{"start":{"line":48,"column":31},"end":{"line":48,"column":100}},"type":"cond-expr","locations":[{"start":{"line":48,"column":81},"end":{"line":48,"column":87}},{"start":{"line":48,"column":90},"end":{"line":48,"column":100}}],"line":48},"15":{"loc":{"start":{"line":48,"column":31},"end":{"line":48,"column":78}},"type":"binary-expr","locations":[{"start":{"line":48,"column":31},"end":{"line":48,"column":61}},{"start":{"line":48,"column":65},"end":{"line":48,"column":78}}],"line":48}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":3,"8":3,"9":3,"10":3,"11":3,"12":3,"13":19,"14":3,"15":3,"16":5,"17":13,"18":3,"19":3,"20":3,"21":3,"22":3,"23":0,"24":0,"25":3,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":2,"34":2,"35":2,"36":1,"37":1},"f":{"0":1,"1":3,"2":3,"3":19,"4":5,"5":13,"6":3,"7":1,"8":1,"9":1,"10":2},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1],"3":[3,10],"4":[0,3],"5":[3,3],"6":[0,3],"7":[3,3],"8":[0,3],"9":[3,3],"10":[0,3],"11":[3,3],"12":[0,2],"13":[2,2],"14":[0,2],"15":[2,2]},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.ts"],"names":[],"mappings":"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","sourcesContent":["import { ILocalDependency } from '../DependencyTypes';\nimport xml, { Element } from 'xml-js';\nimport { PackageURL } from 'packageurl-js';\n\nconst PURL_TYPE = \"nuget\";\n\nexport function csprojParser(fileContent: string, filePath: string): Promise<ILocalDependency> {\n\n const results: ILocalDependency = {file: filePath, purls: []};\n\n try {\n const fileProject = xml.xml2js(fileContent);\n const project = fileProject.elements.find(item => item.name == 'Project');\n const itemGroups = project.elements.filter(item => item.name == 'ItemGroup');\n\n const packageReference: Array<Element> = [];\n itemGroups.forEach(itemGroup => {\n itemGroup.elements.forEach(item => {\n if (item.name == \"PackageReference\")\n packageReference.push(item);\n });\n });\n\n //Generates purls\n packageReference.forEach(itemPackage => {\n const packageName = itemPackage.attributes?.Include?.toString();\n const version = itemPackage.attributes?.Version?.toString();\n\n results.purls.push({\n purl: new PackageURL(PURL_TYPE, null, packageName, null, null,null).toString(),\n requirement: version\n })\n });\n\n } catch (e) {\n console.error(e);\n return Promise.resolve({file: filePath, purls: []});\n }\n\n return Promise.resolve(results)\n}\n\n\nexport function packagesConfigParser(fileContent: string, filePath: string): Promise<ILocalDependency> {\n\n const results: ILocalDependency = { file: filePath, purls: [] };\n const packageConfig = xml.xml2js(fileContent);\n\n const packages = packageConfig.elements.filter(item => item.name == \"packages\")\n\n packages.forEach(pkg => {\n pkg.elements.forEach(dep => {\n const depName = dep.attributes?.id;\n const depVersion = dep.attributes?.version;\n\n results.purls.push({\n purl: new PackageURL(PURL_TYPE, null, depName, null, null, null).toString(),\n requirement: depVersion\n })\n })\n });\n\n return Promise.resolve(results);\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"6c89fdf1f3e7519f7cddebf5f8ee16a5d685ede2"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.ts","statementMap":{"0":{"start":{"line":1,"column":22},"end":{"line":3,"column":1}},"1":{"start":{"line":2,"column":4},"end":{"line":2,"column":62}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":62}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":35}},"4":{"start":{"line":6,"column":15},"end":{"line":6,"column":47}},"5":{"start":{"line":7,"column":24},"end":{"line":7,"column":48}},"6":{"start":{"line":8,"column":22},"end":{"line":8,"column":36}},"7":{"start":{"line":9,"column":20},"end":{"line":9,"column":69}},"8":{"start":{"line":11,"column":0},"end":{"line":15,"column":42}},"9":{"start":{"line":12,"column":4},"end":{"line":12,"column":60}},"10":{"start":{"line":13,"column":4},"end":{"line":13,"column":88}},"11":{"start":{"line":14,"column":4},"end":{"line":14,"column":86}},"12":{"start":{"line":19,"column":20},"end":{"line":19,"column":49}},"13":{"start":{"line":20,"column":4},"end":{"line":21,"column":23}},"14":{"start":{"line":21,"column":8},"end":{"line":21,"column":23}},"15":{"start":{"line":24,"column":4},"end":{"line":60,"column":5}},"16":{"start":{"line":25,"column":23},"end":{"line":25,"column":144}},"17":{"start":{"line":26,"column":34},"end":{"line":26,"column":36}},"18":{"start":{"line":27,"column":20},"end":{"line":27,"column":43}},"19":{"start":{"line":28,"column":8},"end":{"line":59,"column":9}},"20":{"start":{"line":28,"column":21},"end":{"line":28,"column":22}},"21":{"start":{"line":29,"column":23},"end":{"line":29,"column":31}},"22":{"start":{"line":30,"column":12},"end":{"line":31,"column":53}},"23":{"start":{"line":31,"column":16},"end":{"line":31,"column":53}},"24":{"start":{"line":32,"column":12},"end":{"line":32,"column":31}},"25":{"start":{"line":33,"column":12},"end":{"line":34,"column":25}},"26":{"start":{"line":34,"column":16},"end":{"line":34,"column":25}},"27":{"start":{"line":35,"column":12},"end":{"line":35,"column":62}},"28":{"start":{"line":37,"column":12},"end":{"line":58,"column":13}},"29":{"start":{"line":38,"column":16},"end":{"line":48,"column":17}},"30":{"start":{"line":39,"column":42},"end":{"line":39,"column":74}},"31":{"start":{"line":40,"column":20},"end":{"line":46,"column":21}},"32":{"start":{"line":41,"column":24},"end":{"line":45,"column":27}},"33":{"start":{"line":47,"column":20},"end":{"line":47,"column":24}},"34":{"start":{"line":49,"column":16},"end":{"line":49,"column":41}},"35":{"start":{"line":52,"column":38},"end":{"line":52,"column":66}},"36":{"start":{"line":53,"column":16},"end":{"line":56,"column":17}},"37":{"start":{"line":54,"column":20},"end":{"line":54,"column":45}},"38":{"start":{"line":55,"column":20},"end":{"line":55,"column":29}},"39":{"start":{"line":57,"column":16},"end":{"line":57,"column":133}},"40":{"start":{"line":61,"column":4},"end":{"line":61,"column":36}},"41":{"start":{"line":63,"column":0},"end":{"line":63,"column":46}},"42":{"start":{"line":65,"column":21},"end":{"line":65,"column":23}},"43":{"start":{"line":66,"column":16},"end":{"line":66,"column":32}},"44":{"start":{"line":67,"column":4},"end":{"line":68,"column":52}},"45":{"start":{"line":68,"column":8},"end":{"line":68,"column":52}},"46":{"start":{"line":69,"column":4},"end":{"line":69,"column":22}},"47":{"start":{"line":73,"column":20},"end":{"line":73,"column":29}},"48":{"start":{"line":74,"column":15},"end":{"line":74,"column":24}},"49":{"start":{"line":75,"column":18},"end":{"line":75,"column":27}},"50":{"start":{"line":77,"column":14},"end":{"line":77,"column":90}},"51":{"start":{"line":78,"column":4},"end":{"line":87,"column":5}},"52":{"start":{"line":79,"column":8},"end":{"line":79,"column":41}},"53":{"start":{"line":80,"column":8},"end":{"line":80,"column":31}},"54":{"start":{"line":81,"column":8},"end":{"line":81,"column":37}},"55":{"start":{"line":83,"column":9},"end":{"line":87,"column":5}},"56":{"start":{"line":84,"column":8},"end":{"line":84,"column":90}},"57":{"start":{"line":85,"column":8},"end":{"line":85,"column":125}},"58":{"start":{"line":86,"column":8},"end":{"line":86,"column":133}},"59":{"start":{"line":88,"column":19},"end":{"line":88,"column":21}},"60":{"start":{"line":89,"column":4},"end":{"line":92,"column":5}},"61":{"start":{"line":90,"column":24},"end":{"line":90,"column":113}},"62":{"start":{"line":91,"column":8},"end":{"line":91,"column":57}},"63":{"start":{"line":93,"column":4},"end":{"line":93,"column":16}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":56},"end":{"line":1,"column":57}},"loc":{"start":{"line":1,"column":71},"end":{"line":3,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":1},"end":{"line":11,"column":2}},"loc":{"start":{"line":11,"column":26},"end":{"line":15,"column":1}},"line":11},"2":{"name":"buildGradleParser","decl":{"start":{"line":16,"column":15},"end":{"line":16,"column":32}},"loc":{"start":{"line":16,"column":56},"end":{"line":62,"column":1}},"line":16},"3":{"name":"getConfigNameFromLine","decl":{"start":{"line":64,"column":9},"end":{"line":64,"column":30}},"loc":{"start":{"line":64,"column":37},"end":{"line":70,"column":1}},"line":64},"4":{"name":"createPurlNameFromLine","decl":{"start":{"line":71,"column":9},"end":{"line":71,"column":31}},"loc":{"start":{"line":71,"column":38},"end":{"line":94,"column":1}},"line":71}},"branchMap":{"0":{"loc":{"start":{"line":1,"column":22},"end":{"line":3,"column":1}},"type":"binary-expr","locations":[{"start":{"line":1,"column":23},"end":{"line":1,"column":27}},{"start":{"line":1,"column":31},"end":{"line":1,"column":51}},{"start":{"line":1,"column":56},"end":{"line":3,"column":1}}],"line":1},"1":{"loc":{"start":{"line":2,"column":11},"end":{"line":2,"column":61}},"type":"cond-expr","locations":[{"start":{"line":2,"column":37},"end":{"line":2,"column":40}},{"start":{"line":2,"column":43},"end":{"line":2,"column":61}}],"line":2},"2":{"loc":{"start":{"line":2,"column":12},"end":{"line":2,"column":33}},"type":"binary-expr","locations":[{"start":{"line":2,"column":12},"end":{"line":2,"column":15}},{"start":{"line":2,"column":19},"end":{"line":2,"column":33}}],"line":2},"3":{"loc":{"start":{"line":15,"column":3},"end":{"line":15,"column":40}},"type":"binary-expr","locations":[{"start":{"line":15,"column":3},"end":{"line":15,"column":16}},{"start":{"line":15,"column":21},"end":{"line":15,"column":39}}],"line":15},"4":{"loc":{"start":{"line":20,"column":4},"end":{"line":21,"column":23}},"type":"if","locations":[{"start":{"line":20,"column":4},"end":{"line":21,"column":23}},{"start":{"line":20,"column":4},"end":{"line":21,"column":23}}],"line":20},"5":{"loc":{"start":{"line":25,"column":23},"end":{"line":25,"column":144}},"type":"cond-expr","locations":[{"start":{"line":25,"column":120},"end":{"line":25,"column":126}},{"start":{"line":25,"column":129},"end":{"line":25,"column":144}}],"line":25},"6":{"loc":{"start":{"line":25,"column":23},"end":{"line":25,"column":117}},"type":"binary-expr","locations":[{"start":{"line":25,"column":23},"end":{"line":25,"column":100}},{"start":{"line":25,"column":104},"end":{"line":25,"column":117}}],"line":25},"7":{"loc":{"start":{"line":25,"column":29},"end":{"line":25,"column":90}},"type":"cond-expr","locations":[{"start":{"line":25,"column":68},"end":{"line":25,"column":74}},{"start":{"line":25,"column":77},"end":{"line":25,"column":90}}],"line":25},"8":{"loc":{"start":{"line":25,"column":29},"end":{"line":25,"column":65}},"type":"binary-expr","locations":[{"start":{"line":25,"column":29},"end":{"line":25,"column":44}},{"start":{"line":25,"column":48},"end":{"line":25,"column":65}}],"line":25},"9":{"loc":{"start":{"line":30,"column":12},"end":{"line":31,"column":53}},"type":"if","locations":[{"start":{"line":30,"column":12},"end":{"line":31,"column":53}},{"start":{"line":30,"column":12},"end":{"line":31,"column":53}}],"line":30},"10":{"loc":{"start":{"line":33,"column":12},"end":{"line":34,"column":25}},"type":"if","locations":[{"start":{"line":33,"column":12},"end":{"line":34,"column":25}},{"start":{"line":33,"column":12},"end":{"line":34,"column":25}}],"line":33},"11":{"loc":{"start":{"line":37,"column":12},"end":{"line":58,"column":13}},"type":"if","locations":[{"start":{"line":37,"column":12},"end":{"line":58,"column":13}},{"start":{"line":37,"column":12},"end":{"line":58,"column":13}}],"line":37},"12":{"loc":{"start":{"line":37,"column":16},"end":{"line":37,"column":57}},"type":"binary-expr","locations":[{"start":{"line":37,"column":16},"end":{"line":37,"column":35}},{"start":{"line":37,"column":39},"end":{"line":37,"column":57}}],"line":37},"13":{"loc":{"start":{"line":38,"column":23},"end":{"line":38,"column":66}},"type":"binary-expr","locations":[{"start":{"line":38,"column":23},"end":{"line":38,"column":39}},{"start":{"line":38,"column":43},"end":{"line":38,"column":66}}],"line":38},"14":{"loc":{"start":{"line":40,"column":20},"end":{"line":46,"column":21}},"type":"if","locations":[{"start":{"line":40,"column":20},"end":{"line":46,"column":21}},{"start":{"line":40,"column":20},"end":{"line":46,"column":21}}],"line":40},"15":{"loc":{"start":{"line":53,"column":16},"end":{"line":56,"column":17}},"type":"if","locations":[{"start":{"line":53,"column":16},"end":{"line":56,"column":17}},{"start":{"line":53,"column":16},"end":{"line":56,"column":17}}],"line":53},"16":{"loc":{"start":{"line":67,"column":4},"end":{"line":68,"column":52}},"type":"if","locations":[{"start":{"line":67,"column":4},"end":{"line":68,"column":52}},{"start":{"line":67,"column":4},"end":{"line":68,"column":52}}],"line":67},"17":{"loc":{"start":{"line":78,"column":4},"end":{"line":87,"column":5}},"type":"if","locations":[{"start":{"line":78,"column":4},"end":{"line":87,"column":5}},{"start":{"line":78,"column":4},"end":{"line":87,"column":5}}],"line":78},"18":{"loc":{"start":{"line":78,"column":8},"end":{"line":78,"column":60}},"type":"cond-expr","locations":[{"start":{"line":78,"column":41},"end":{"line":78,"column":47}},{"start":{"line":78,"column":50},"end":{"line":78,"column":60}}],"line":78},"19":{"loc":{"start":{"line":78,"column":8},"end":{"line":78,"column":38}},"type":"binary-expr","locations":[{"start":{"line":78,"column":8},"end":{"line":78,"column":20}},{"start":{"line":78,"column":24},"end":{"line":78,"column":38}}],"line":78},"20":{"loc":{"start":{"line":83,"column":9},"end":{"line":87,"column":5}},"type":"if","locations":[{"start":{"line":83,"column":9},"end":{"line":87,"column":5}},{"start":{"line":83,"column":9},"end":{"line":87,"column":5}}],"line":83},"21":{"loc":{"start":{"line":83,"column":13},"end":{"line":83,"column":88}},"type":"binary-expr","locations":[{"start":{"line":83,"column":13},"end":{"line":83,"column":35}},{"start":{"line":83,"column":39},"end":{"line":83,"column":60}},{"start":{"line":83,"column":64},"end":{"line":83,"column":88}}],"line":83},"22":{"loc":{"start":{"line":85,"column":15},"end":{"line":85,"column":124}},"type":"cond-expr","locations":[{"start":{"line":85,"column":108},"end":{"line":85,"column":114}},{"start":{"line":85,"column":117},"end":{"line":85,"column":124}}],"line":85},"23":{"loc":{"start":{"line":85,"column":15},"end":{"line":85,"column":105}},"type":"binary-expr","locations":[{"start":{"line":85,"column":15},"end":{"line":85,"column":88}},{"start":{"line":85,"column":92},"end":{"line":85,"column":105}}],"line":85},"24":{"loc":{"start":{"line":86,"column":20},"end":{"line":86,"column":132}},"type":"cond-expr","locations":[{"start":{"line":86,"column":115},"end":{"line":86,"column":121}},{"start":{"line":86,"column":124},"end":{"line":86,"column":132}}],"line":86},"25":{"loc":{"start":{"line":86,"column":20},"end":{"line":86,"column":112}},"type":"binary-expr","locations":[{"start":{"line":86,"column":20},"end":{"line":86,"column":95}},{"start":{"line":86,"column":99},"end":{"line":86,"column":112}}],"line":86},"26":{"loc":{"start":{"line":89,"column":4},"end":{"line":92,"column":5}},"type":"if","locations":[{"start":{"line":89,"column":4},"end":{"line":92,"column":5}},{"start":{"line":89,"column":4},"end":{"line":92,"column":5}}],"line":89},"27":{"loc":{"start":{"line":89,"column":8},"end":{"line":89,"column":25}},"type":"binary-expr","locations":[{"start":{"line":89,"column":8},"end":{"line":89,"column":12}},{"start":{"line":89,"column":16},"end":{"line":89,"column":25}}],"line":89}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":2,"13":2,"14":0,"15":2,"16":3,"17":3,"18":3,"19":3,"20":3,"21":18,"22":18,"23":4,"24":18,"25":18,"26":10,"27":8,"28":8,"29":1,"30":3,"31":3,"32":2,"33":3,"34":1,"35":7,"36":7,"37":1,"38":1,"39":6,"40":2,"41":1,"42":8,"43":8,"44":8,"45":8,"46":8,"47":10,"48":10,"49":10,"50":10,"51":10,"52":4,"53":4,"54":4,"55":6,"56":4,"57":4,"58":4,"59":10,"60":10,"61":8,"62":8,"63":2},"f":{"0":1,"1":1,"2":2,"3":8,"4":10},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1],"3":[1,1],"4":[0,2],"5":[0,3],"6":[3,3],"7":[0,3],"8":[3,3],"9":[4,14],"10":[10,8],"11":[1,7],"12":[8,8],"13":[4,4],"14":[2,1],"15":[1,6],"16":[8,0],"17":[4,6],"18":[6,4],"19":[10,4],"20":[4,2],"21":[6,4,4],"22":[0,4],"23":[4,4],"24":[0,4],"25":[4,4],"26":[8,2],"27":[10,8]},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.ts"],"names":[],"mappings":"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","sourcesContent":["import { ILocalDependency } from '../DependencyTypes';\nimport path from 'path';\nimport { PackageURL } from 'packageurl-js';\n\n\nconst MANIFEST_FILE = 'build.gradle';\nconst depBlockRex = /dependencies\\s*{\\s*(?<dependencies>(.|\\n)*?)}/gm;\n\nenum GRADLE_STATES {\n WALKING,\n SINGLELINE_DEPENDENCY,\n MULTILINE_DEPENDENCY\n}\nexport async function buildGradleParser(fileContent: string, filePath: string): Promise<ILocalDependency> {\n\n\n // If the file is not a manifest file, return an empty results\n const results: ILocalDependency = {file: filePath, purls: []};\n if(path.basename(filePath) != MANIFEST_FILE)\n return results;\n\n //For each dependency block, generate purls\n let gradle;\n while ((gradle = depBlockRex.exec(fileContent)) !== null) {\n let depBlock = gradle?.groups?.dependencies;\n\n\n let current_config_name = \"\"; //Config name is placed in the scope\n let lines = depBlock.split(/\\r?\\n/) as string;\n for (let i = 0; i<lines.length; i++) {\n let line = lines[i];\n\n if (line.includes(\"//\")) line = line.replace(/\\/\\/.*$/gm, \"\");\n line = line.trim();\n if (line == '') continue;\n\n\n current_config_name = getConfigNameFromLine(line);\n\n //Multiline dependency\n if(current_config_name && line.includes(\"(\")) {\n\n while( i<lines.length && !lines[i].includes(\")\")) {\n const componentData = createPurlNameFromLine(lines[i]);\n if (componentData != null) {\n results.purls.push({\n purl: componentData.purlName,\n requirement: componentData.version,\n scope: current_config_name\n });\n }\n i++;\n }\n current_config_name='';\n } else { //Single line dependency\n const componentData = createPurlNameFromLine(line);\n if (componentData == null) {\n current_config_name = '';\n continue;\n }\n\n results.purls.push({purl: componentData.purlName, requirement: componentData.version, scope: current_config_name});\n }\n\n }\n\n\n }\n\n return Promise.resolve(results);\n\n}\n\nfunction getConfigNameFromLine(line): string {\n let configName = \"\"\n\n const dep = line.split(/\\s/);\n if (dep.length) configName = dep[0].replace(\"(\", \"\").trim();\n\n return configName;\n}\n\n//Takes a line and generate a purl when possible.\n// There are three ways of declaring dependencies\ninterface componentData{\n purlName: string;\n version: string;\n}\n\nfunction createPurlNameFromLine(line: string): componentData {\n\n let namespace = undefined;\n let name = undefined;\n let version = undefined;\n\n //Enters when line = implementation 'org.scala-lang:scala-library:2.11.12'\n let dep = line.match(/(?<namespace>[\\w\\.\\-]+):(?<name>[\\w\\.\\-]+):(?<version>[\\d\\.]+)/);\n if (dep?.length) {\n namespace = dep.groups.namespace\n name = dep.groups.name\n version = dep.groups.version\n } else if (line.includes(\"group\") && line.includes(\"name\") && line.includes(\"version\")) {\n version = line.match(/version:\\s+['\"](?<version>[\\w\\.\\-\\d]+)['\"]/).groups.version\n name = line.match(/name:\\s+['\"](?<name>[\\w\\.\\-\\d]+)['\"]/).groups?.name\n namespace = line.match(/group:\\s+['\"](?<group>[\\w\\.\\-\\d]+)['\"]/).groups?.group\n }\n\n let purlName = \"\";\n if(name && namespace) {\n const purlObj = new PackageURL('maven', namespace, name, undefined, undefined, undefined);\n return { purlName: purlObj.toString(), version }\n }\n\n return null;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"3860e37507ab7277ecc557418744a34dedd82193"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/FileCount/FileCount.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/FileCount/FileCount.ts","statementMap":{"0":{"start":{"line":1,"column":20},"end":{"line":7,"column":1}},"1":{"start":{"line":2,"column":4},"end":{"line":2,"column":91}},"2":{"start":{"line":2,"column":31},"end":{"line":2,"column":91}},"3":{"start":{"line":3,"column":12},"end":{"line":3,"column":35}},"4":{"start":{"line":4,"column":4},"end":{"line":4,"column":213}},"5":{"start":{"line":4,"column":194},"end":{"line":4,"column":206}},"6":{"start":{"line":5,"column":23},"end":{"line":5,"column":162}},"7":{"start":{"line":5,"column":53},"end":{"line":5,"column":159}},"8":{"start":{"line":5,"column":101},"end":{"line":5,"column":155}},"9":{"start":{"line":6,"column":45},"end":{"line":6,"column":126}},"10":{"start":{"line":6,"column":83},"end":{"line":6,"column":114}},"11":{"start":{"line":8,"column":22},"end":{"line":10,"column":1}},"12":{"start":{"line":9,"column":4},"end":{"line":9,"column":62}},"13":{"start":{"line":11,"column":0},"end":{"line":11,"column":62}},"14":{"start":{"line":12,"column":0},"end":{"line":12,"column":27}},"15":{"start":{"line":13,"column":13},"end":{"line":13,"column":43}},"16":{"start":{"line":14,"column":15},"end":{"line":14,"column":47}},"17":{"start":{"line":15,"column":21},"end":{"line":15,"column":44}},"18":{"start":{"line":16,"column":20},"end":{"line":16,"column":53}},"19":{"start":{"line":17,"column":26},"end":{"line":17,"column":54}},"20":{"start":{"line":22,"column":24},"end":{"line":22,"column":85}},"21":{"start":{"line":23,"column":8},"end":{"line":24,"column":29}},"22":{"start":{"line":24,"column":12},"end":{"line":24,"column":29}},"23":{"start":{"line":25,"column":21},"end":{"line":25,"column":61}},"24":{"start":{"line":26,"column":8},"end":{"line":27,"column":53}},"25":{"start":{"line":27,"column":12},"end":{"line":27,"column":53}},"26":{"start":{"line":28,"column":8},"end":{"line":28,"column":20}},"27":{"start":{"line":32,"column":24},"end":{"line":32,"column":68}},"28":{"start":{"line":33,"column":22},"end":{"line":33,"column":24}},"29":{"start":{"line":35,"column":8},"end":{"line":35,"column":29}},"30":{"start":{"line":36,"column":8},"end":{"line":69,"column":9}},"31":{"start":{"line":37,"column":32},"end":{"line":37,"column":45}},"32":{"start":{"line":38,"column":28},"end":{"line":38,"column":101}},"33":{"start":{"line":39,"column":12},"end":{"line":68,"column":13}},"34":{"start":{"line":40,"column":16},"end":{"line":60,"column":17}},"35":{"start":{"line":40,"column":38},"end":{"line":40,"column":74}},"36":{"start":{"line":41,"column":34},"end":{"line":41,"column":51}},"37":{"start":{"line":42,"column":36},"end":{"line":42,"column":80}},"38":{"start":{"line":43,"column":20},"end":{"line":59,"column":21}},"39":{"start":{"line":44,"column":24},"end":{"line":58,"column":25}},"40":{"start":{"line":45,"column":28},"end":{"line":45,"column":48}},"41":{"start":{"line":46,"column":29},"end":{"line":58,"column":25}},"42":{"start":{"line":47,"column":47},"end":{"line":47,"column":81}},"43":{"start":{"line":48,"column":52},"end":{"line":48,"column":137}},"44":{"start":{"line":49,"column":28},"end":{"line":56,"column":29}},"45":{"start":{"line":50,"column":48},"end":{"line":50,"column":83}},"46":{"start":{"line":51,"column":32},"end":{"line":51,"column":48}},"47":{"start":{"line":52,"column":32},"end":{"line":52,"column":64}},"48":{"start":{"line":55,"column":32},"end":{"line":55,"column":120}},"49":{"start":{"line":57,"column":28},"end":{"line":57,"column":69}},"50":{"start":{"line":62,"column":28},"end":{"line":62,"column":51}},"51":{"start":{"line":64,"column":16},"end":{"line":67,"column":53}},"52":{"start":{"line":65,"column":20},"end":{"line":65,"column":110}},"53":{"start":{"line":65,"column":85},"end":{"line":65,"column":110}},"54":{"start":{"line":67,"column":26},"end":{"line":67,"column":51}},"55":{"start":{"line":67,"column":35},"end":{"line":67,"column":51}},"56":{"start":{"line":71,"column":8},"end":{"line":74,"column":9}},"57":{"start":{"line":72,"column":26},"end":{"line":72,"column":54}},"58":{"start":{"line":73,"column":12},"end":{"line":73,"column":87}},"59":{"start":{"line":75,"column":8},"end":{"line":75,"column":23}},"60":{"start":{"line":78,"column":18},"end":{"line":78,"column":20}},"61":{"start":{"line":79,"column":8},"end":{"line":83,"column":9}},"62":{"start":{"line":80,"column":26},"end":{"line":80,"column":39}},"63":{"start":{"line":81,"column":28},"end":{"line":81,"column":165}},"64":{"start":{"line":82,"column":12},"end":{"line":82,"column":27}},"65":{"start":{"line":84,"column":8},"end":{"line":84,"column":19}},"66":{"start":{"line":87,"column":0},"end":{"line":87,"column":30}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":52},"end":{"line":1,"column":53}},"loc":{"start":{"line":1,"column":65},"end":{"line":7,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":180},"end":{"line":4,"column":181}},"loc":{"start":{"line":4,"column":192},"end":{"line":4,"column":208}},"line":4},"2":{"name":"verb","decl":{"start":{"line":5,"column":13},"end":{"line":5,"column":17}},"loc":{"start":{"line":5,"column":21},"end":{"line":5,"column":164}},"line":5},"3":{"name":"(anonymous_3)","decl":{"start":{"line":5,"column":38},"end":{"line":5,"column":39}},"loc":{"start":{"line":5,"column":51},"end":{"line":5,"column":161}},"line":5},"4":{"name":"(anonymous_4)","decl":{"start":{"line":5,"column":72},"end":{"line":5,"column":73}},"loc":{"start":{"line":5,"column":99},"end":{"line":5,"column":157}},"line":5},"5":{"name":"settle","decl":{"start":{"line":6,"column":13},"end":{"line":6,"column":19}},"loc":{"start":{"line":6,"column":43},"end":{"line":6,"column":128}},"line":6},"6":{"name":"(anonymous_6)","decl":{"start":{"line":6,"column":69},"end":{"line":6,"column":70}},"loc":{"start":{"line":6,"column":81},"end":{"line":6,"column":116}},"line":6},"7":{"name":"(anonymous_7)","decl":{"start":{"line":8,"column":56},"end":{"line":8,"column":57}},"loc":{"start":{"line":8,"column":71},"end":{"line":10,"column":1}},"line":8},"8":{"name":"(anonymous_8)","decl":{"start":{"line":19,"column":4},"end":{"line":19,"column":5}},"loc":{"start":{"line":19,"column":40},"end":{"line":29,"column":5}},"line":19},"9":{"name":"(anonymous_9)","decl":{"start":{"line":30,"column":4},"end":{"line":30,"column":5}},"loc":{"start":{"line":30,"column":47},"end":{"line":76,"column":5}},"line":30},"10":{"name":"(anonymous_10)","decl":{"start":{"line":77,"column":4},"end":{"line":77,"column":5}},"loc":{"start":{"line":77,"column":28},"end":{"line":85,"column":5}},"line":77}},"branchMap":{"0":{"loc":{"start":{"line":1,"column":20},"end":{"line":7,"column":1}},"type":"binary-expr","locations":[{"start":{"line":1,"column":21},"end":{"line":1,"column":25}},{"start":{"line":1,"column":29},"end":{"line":1,"column":47}},{"start":{"line":1,"column":52},"end":{"line":7,"column":1}}],"line":1},"1":{"loc":{"start":{"line":2,"column":4},"end":{"line":2,"column":91}},"type":"if","locations":[{"start":{"line":2,"column":4},"end":{"line":2,"column":91}},{"start":{"line":2,"column":4},"end":{"line":2,"column":91}}],"line":2},"2":{"loc":{"start":{"line":4,"column":11},"end":{"line":4,"column":212}},"type":"cond-expr","locations":[{"start":{"line":4,"column":15},"end":{"line":4,"column":24}},{"start":{"line":4,"column":28},"end":{"line":4,"column":211}}],"line":4},"3":{"loc":{"start":{"line":4,"column":32},"end":{"line":4,"column":99}},"type":"cond-expr","locations":[{"start":{"line":4,"column":65},"end":{"line":4,"column":76}},{"start":{"line":4,"column":79},"end":{"line":4,"column":99}}],"line":4},"4":{"loc":{"start":{"line":5,"column":30},"end":{"line":5,"column":161}},"type":"binary-expr","locations":[{"start":{"line":5,"column":30},"end":{"line":5,"column":34}},{"start":{"line":5,"column":38},"end":{"line":5,"column":161}}],"line":5},"5":{"loc":{"start":{"line":8,"column":22},"end":{"line":10,"column":1}},"type":"binary-expr","locations":[{"start":{"line":8,"column":23},"end":{"line":8,"column":27}},{"start":{"line":8,"column":31},"end":{"line":8,"column":51}},{"start":{"line":8,"column":56},"end":{"line":10,"column":1}}],"line":8},"6":{"loc":{"start":{"line":9,"column":11},"end":{"line":9,"column":61}},"type":"cond-expr","locations":[{"start":{"line":9,"column":37},"end":{"line":9,"column":40}},{"start":{"line":9,"column":43},"end":{"line":9,"column":61}}],"line":9},"7":{"loc":{"start":{"line":9,"column":12},"end":{"line":9,"column":33}},"type":"binary-expr","locations":[{"start":{"line":9,"column":12},"end":{"line":9,"column":15}},{"start":{"line":9,"column":19},"end":{"line":9,"column":33}}],"line":9},"8":{"loc":{"start":{"line":23,"column":8},"end":{"line":24,"column":29}},"type":"if","locations":[{"start":{"line":23,"column":8},"end":{"line":24,"column":29}},{"start":{"line":23,"column":8},"end":{"line":24,"column":29}}],"line":23},"9":{"loc":{"start":{"line":23,"column":12},"end":{"line":23,"column":133}},"type":"cond-expr","locations":[{"start":{"line":23,"column":110},"end":{"line":23,"column":116}},{"start":{"line":23,"column":119},"end":{"line":23,"column":133}}],"line":23},"10":{"loc":{"start":{"line":23,"column":12},"end":{"line":23,"column":107}},"type":"binary-expr","locations":[{"start":{"line":23,"column":12},"end":{"line":23,"column":90}},{"start":{"line":23,"column":94},"end":{"line":23,"column":107}}],"line":23},"11":{"loc":{"start":{"line":23,"column":18},"end":{"line":23,"column":80}},"type":"cond-expr","locations":[{"start":{"line":23,"column":57},"end":{"line":23,"column":63}},{"start":{"line":23,"column":66},"end":{"line":23,"column":80}}],"line":23},"12":{"loc":{"start":{"line":23,"column":18},"end":{"line":23,"column":54}},"type":"binary-expr","locations":[{"start":{"line":23,"column":18},"end":{"line":23,"column":33}},{"start":{"line":23,"column":37},"end":{"line":23,"column":54}}],"line":23},"13":{"loc":{"start":{"line":26,"column":8},"end":{"line":27,"column":53}},"type":"if","locations":[{"start":{"line":26,"column":8},"end":{"line":27,"column":53}},{"start":{"line":26,"column":8},"end":{"line":27,"column":53}}],"line":26},"14":{"loc":{"start":{"line":26,"column":13},"end":{"line":26,"column":74}},"type":"cond-expr","locations":[{"start":{"line":26,"column":52},"end":{"line":26,"column":58}},{"start":{"line":26,"column":61},"end":{"line":26,"column":74}}],"line":26},"15":{"loc":{"start":{"line":26,"column":13},"end":{"line":26,"column":49}},"type":"binary-expr","locations":[{"start":{"line":26,"column":13},"end":{"line":26,"column":28}},{"start":{"line":26,"column":32},"end":{"line":26,"column":49}}],"line":26},"16":{"loc":{"start":{"line":43,"column":20},"end":{"line":59,"column":21}},"type":"if","locations":[{"start":{"line":43,"column":20},"end":{"line":59,"column":21}},{"start":{"line":43,"column":20},"end":{"line":59,"column":21}}],"line":43},"17":{"loc":{"start":{"line":44,"column":24},"end":{"line":58,"column":25}},"type":"if","locations":[{"start":{"line":44,"column":24},"end":{"line":58,"column":25}},{"start":{"line":44,"column":24},"end":{"line":58,"column":25}}],"line":44},"18":{"loc":{"start":{"line":46,"column":29},"end":{"line":58,"column":25}},"type":"if","locations":[{"start":{"line":46,"column":29},"end":{"line":58,"column":25}},{"start":{"line":46,"column":29},"end":{"line":58,"column":25}}],"line":46},"19":{"loc":{"start":{"line":46,"column":33},"end":{"line":46,"column":74}},"type":"binary-expr","locations":[{"start":{"line":46,"column":33},"end":{"line":46,"column":47}},{"start":{"line":46,"column":51},"end":{"line":46,"column":74}}],"line":46},"20":{"loc":{"start":{"line":49,"column":28},"end":{"line":56,"column":29}},"type":"if","locations":[{"start":{"line":49,"column":28},"end":{"line":56,"column":29}},{"start":{"line":49,"column":28},"end":{"line":56,"column":29}}],"line":49},"21":{"loc":{"start":{"line":65,"column":20},"end":{"line":65,"column":110}},"type":"if","locations":[{"start":{"line":65,"column":20},"end":{"line":65,"column":110}},{"start":{"line":65,"column":20},"end":{"line":65,"column":110}}],"line":65},"22":{"loc":{"start":{"line":65,"column":24},"end":{"line":65,"column":83}},"type":"binary-expr","locations":[{"start":{"line":65,"column":24},"end":{"line":65,"column":35}},{"start":{"line":65,"column":39},"end":{"line":65,"column":56}},{"start":{"line":65,"column":61},"end":{"line":65,"column":82}}],"line":65},"23":{"loc":{"start":{"line":67,"column":26},"end":{"line":67,"column":51}},"type":"if","locations":[{"start":{"line":67,"column":26},"end":{"line":67,"column":51}},{"start":{"line":67,"column":26},"end":{"line":67,"column":51}}],"line":67},"24":{"loc":{"start":{"line":81,"column":38},"end":{"line":81,"column":95}},"type":"cond-expr","locations":[{"start":{"line":81,"column":75},"end":{"line":81,"column":81}},{"start":{"line":81,"column":84},"end":{"line":81,"column":95}}],"line":81},"25":{"loc":{"start":{"line":81,"column":38},"end":{"line":81,"column":72}},"type":"binary-expr","locations":[{"start":{"line":81,"column":38},"end":{"line":81,"column":52}},{"start":{"line":81,"column":56},"end":{"line":81,"column":72}}],"line":81},"26":{"loc":{"start":{"line":81,"column":99},"end":{"line":81,"column":161}},"type":"cond-expr","locations":[{"start":{"line":81,"column":136},"end":{"line":81,"column":142}},{"start":{"line":81,"column":145},"end":{"line":81,"column":161}}],"line":81},"27":{"loc":{"start":{"line":81,"column":99},"end":{"line":81,"column":133}},"type":"binary-expr","locations":[{"start":{"line":81,"column":99},"end":{"line":81,"column":113}},{"start":{"line":81,"column":117},"end":{"line":81,"column":133}}],"line":81}},"s":{"0":1,"1":6,"2":0,"3":6,"4":6,"5":0,"6":18,"7":19,"8":19,"9":19,"10":19,"11":1,"12":2,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":4,"21":4,"22":0,"23":4,"24":4,"25":3,"26":1,"27":4,"28":4,"29":4,"30":4,"31":6,"32":6,"33":6,"34":6,"35":6,"36":13,"37":13,"38":13,"39":11,"40":2,"41":9,"42":9,"43":9,"44":9,"45":7,"46":7,"47":7,"48":2,"49":9,"50":0,"51":6,"52":6,"53":0,"54":6,"55":0,"56":4,"57":2,"58":2,"59":4,"60":3,"61":3,"62":2,"63":2,"64":2,"65":3,"66":1},"f":{"0":6,"1":0,"2":18,"3":19,"4":19,"5":19,"6":19,"7":2,"8":4,"9":4,"10":3},"b":{"0":[1,1,1],"1":[0,6],"2":[0,6],"3":[0,6],"4":[18,6],"5":[1,1,1],"6":[0,2],"7":[2,2],"8":[0,4],"9":[4,0],"10":[4,4],"11":[1,3],"12":[4,4],"13":[3,1],"14":[1,3],"15":[4,4],"16":[11,2],"17":[2,9],"18":[9,0],"19":[9,9],"20":[7,2],"21":[0,6],"22":[6,6,0],"23":[0,6],"24":[0,2],"25":[2,2],"26":[0,2],"27":[2,2]},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/FileCount/FileCount.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/FileCount/FileCount.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\nimport {FileCountOptions, Format, IDirSummary, IFileSummary} from \"./Interfaces\";\nimport { FilterList } from '../Filtering/Filtering';\nimport { FileCountFilter } from './FileCountFilter';\n\n\nexport class FileCount {\n\n public static async walk(rootPath: string, option?: FileCountOptions) {\n\n //By default hidden folders and files are ignored\n const filters = new FilterList(FileCountFilter);\n if(option?.filters?.countHidden) filters.unload();\n\n const data = await this.exploreBFS(rootPath,filters);\n\n if (option?.output == Format.CSV) return this.produceCsv(data.fileSummary);\n return data;\n }\n\n\n\n private static async exploreBFS(rootPath: string, filters: FilterList): Promise<IDirSummary> {\n\n const results:\tIDirSummary = {fileSummary: new Map(), totalFileSize: 0};\n const queue: Array<string> = [];\n\n //TODO: Improve the queue implementation for a linked list\n queue.push(rootPath)\n\n while(queue.length) {\n const currentPath = queue.shift() as string;\n const entries = await fs.promises.readdir( currentPath , {withFileTypes: true});\n\n for await (const entry of entries) {\n const newPath = path.join(currentPath, entry.name);\n if (filters.include(newPath)) {\n if (entry.isDirectory()) queue.push(newPath);\n else if (entry.isFile() && !entry.isSymbolicLink()) {\n const currentExt =\tpath.extname(entry.name);\n const currentFileSize = (await fs.promises.stat(path.join(currentPath, entry.name))).size;\n if (results.fileSummary.has(currentExt) ) {\n const fileSum = results.fileSummary.get(currentExt)\n fileSum.count++\n fileSum.size += currentFileSize;\n } else {\n results.fileSummary.set(currentExt, {count: 1, size: currentFileSize, percentage: 0});\n }\n results.totalFileSize+= currentFileSize;\n }\n }\n }\n }\n\n //Update percentage\n for (const ext of results.fileSummary.keys()) {\n const entry = results.fileSummary.get(ext);\n entry.percentage = Number((entry.size / results.totalFileSize).toFixed(2));\n }\n return results;\n}\n\n\n private static produceCsv(data: Map<string,IFileSummary>): string {\n let csv = '';\n for (const key of data.keys()) {\n const value = data.get(key);\n const newLine = `${key},${value?.count},${value?.percentage}\\n`\n csv+=newLine;\n }\n return csv;\n }\n\n\n}\n\n\n\n\n\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c417d4be2912e8eeacc3ad6fa56adfec5d4ca6b5"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/FileCount/Interfaces.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/FileCount/Interfaces.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":62}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":24}},"2":{"start":{"line":4,"column":0},"end":{"line":7,"column":53}},"3":{"start":{"line":5,"column":4},"end":{"line":5,"column":38}},"4":{"start":{"line":6,"column":4},"end":{"line":6,"column":38}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":1},"end":{"line":4,"column":2}},"loc":{"start":{"line":4,"column":19},"end":{"line":7,"column":1}},"line":4}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":12},"end":{"line":7,"column":51}},"type":"binary-expr","locations":[{"start":{"line":7,"column":12},"end":{"line":7,"column":26}},{"start":{"line":7,"column":31},"end":{"line":7,"column":50}}],"line":7}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1},"f":{"0":1},"b":{"0":[1,1]},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/FileCount/Interfaces.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/FileCount/Interfaces.ts"],"names":[],"mappings":";;AAYA,IAAY,MAGX;AAHD,WAAY,MAAM;IACd,iCAAG,CAAA;IACH,iCAAG,CAAA;AACP,CAAC,EAHW,MAAM,GAAN,cAAM,KAAN,cAAM,QAGjB","sourcesContent":["export interface IDirSummary {\n fileSummary: Map<string,IFileSummary>;\n totalFileSize: number;\n}\n\nexport interface IFileSummary {\n count: number;\n size: number;\n percentage: number;\n}\n\n\nexport enum Format {\n RAW,\n CSV\n}\nexport interface FileCountOptions {\n filters?: {\n countHidden: boolean\n }\n output: Format;\n}\n\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"67e6e584ceab9851eed6f450d59ace77ae0d26ee"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Filtering/Filtering.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Filtering/Filtering.ts","statementMap":{"0":{"start":{"line":1,"column":22},"end":{"line":7,"column":3}},"1":{"start":{"line":2,"column":4},"end":{"line":2,"column":33}},"2":{"start":{"line":2,"column":26},"end":{"line":2,"column":33}},"3":{"start":{"line":3,"column":4},"end":{"line":3,"column":89}},"4":{"start":{"line":3,"column":71},"end":{"line":3,"column":83}},"5":{"start":{"line":5,"column":4},"end":{"line":5,"column":33}},"6":{"start":{"line":5,"column":26},"end":{"line":5,"column":33}},"7":{"start":{"line":6,"column":4},"end":{"line":6,"column":17}},"8":{"start":{"line":8,"column":25},"end":{"line":12,"column":2}},"9":{"start":{"line":9,"column":4},"end":{"line":9,"column":72}},"10":{"start":{"line":11,"column":4},"end":{"line":11,"column":21}},"11":{"start":{"line":13,"column":19},"end":{"line":19,"column":1}},"12":{"start":{"line":14,"column":4},"end":{"line":14,"column":42}},"13":{"start":{"line":14,"column":31},"end":{"line":14,"column":42}},"14":{"start":{"line":15,"column":17},"end":{"line":15,"column":19}},"15":{"start":{"line":16,"column":4},"end":{"line":16,"column":141}},"16":{"start":{"line":16,"column":21},"end":{"line":16,"column":141}},"17":{"start":{"line":16,"column":40},"end":{"line":16,"column":141}},"18":{"start":{"line":16,"column":109},"end":{"line":16,"column":141}},"19":{"start":{"line":17,"column":4},"end":{"line":17,"column":36}},"20":{"start":{"line":18,"column":4},"end":{"line":18,"column":18}},"21":{"start":{"line":20,"column":22},"end":{"line":22,"column":1}},"22":{"start":{"line":21,"column":4},"end":{"line":21,"column":62}},"23":{"start":{"line":23,"column":0},"end":{"line":23,"column":62}},"24":{"start":{"line":24,"column":0},"end":{"line":24,"column":209}},"25":{"start":{"line":25,"column":13},"end":{"line":25,"column":43}},"26":{"start":{"line":26,"column":14},"end":{"line":26,"column":43}},"27":{"start":{"line":27,"column":23},"end":{"line":27,"column":46}},"28":{"start":{"line":29,"column":0},"end":{"line":36,"column":65}},"29":{"start":{"line":30,"column":4},"end":{"line":30,"column":32}},"30":{"start":{"line":31,"column":4},"end":{"line":31,"column":38}},"31":{"start":{"line":32,"column":4},"end":{"line":32,"column":42}},"32":{"start":{"line":33,"column":4},"end":{"line":33,"column":32}},"33":{"start":{"line":34,"column":4},"end":{"line":34,"column":32}},"34":{"start":{"line":35,"column":4},"end":{"line":35,"column":32}},"35":{"start":{"line":39,"column":0},"end":{"line":42,"column":77}},"36":{"start":{"line":40,"column":4},"end":{"line":40,"column":40}},"37":{"start":{"line":41,"column":4},"end":{"line":41,"column":38}},"38":{"start":{"line":45,"column":0},"end":{"line":49,"column":68}},"39":{"start":{"line":46,"column":4},"end":{"line":46,"column":37}},"40":{"start":{"line":47,"column":4},"end":{"line":47,"column":33}},"41":{"start":{"line":48,"column":4},"end":{"line":48,"column":31}},"42":{"start":{"line":52,"column":8},"end":{"line":52,"column":35}},"43":{"start":{"line":53,"column":8},"end":{"line":53,"column":27}},"44":{"start":{"line":54,"column":8},"end":{"line":54,"column":37}},"45":{"start":{"line":55,"column":8},"end":{"line":55,"column":37}},"46":{"start":{"line":58,"column":8},"end":{"line":58,"column":20}},"47":{"start":{"line":63,"column":8},"end":{"line":63,"column":32}},"48":{"start":{"line":64,"column":8},"end":{"line":64,"column":37}},"49":{"start":{"line":65,"column":8},"end":{"line":65,"column":42}},"50":{"start":{"line":68,"column":8},"end":{"line":68,"column":46}},"51":{"start":{"line":69,"column":8},"end":{"line":69,"column":34}},"52":{"start":{"line":70,"column":8},"end":{"line":72,"column":9}},"53":{"start":{"line":71,"column":12},"end":{"line":71,"column":52}},"54":{"start":{"line":73,"column":8},"end":{"line":74,"column":55}},"55":{"start":{"line":74,"column":12},"end":{"line":74,"column":55}},"56":{"start":{"line":75,"column":8},"end":{"line":79,"column":9}},"57":{"start":{"line":77,"column":12},"end":{"line":77,"column":44}},"58":{"start":{"line":78,"column":12},"end":{"line":78,"column":52}},"59":{"start":{"line":80,"column":8},"end":{"line":84,"column":9}},"60":{"start":{"line":82,"column":12},"end":{"line":82,"column":44}},"61":{"start":{"line":83,"column":12},"end":{"line":83,"column":50}},"62":{"start":{"line":85,"column":8},"end":{"line":85,"column":20}},"63":{"start":{"line":88,"column":0},"end":{"line":88,"column":32}},"64":{"start":{"line":89,"column":0},"end":{"line":89,"column":33}},"65":{"start":{"line":90,"column":0},"end":{"line":90,"column":35}},"66":{"start":{"line":91,"column":0},"end":{"line":91,"column":29}},"67":{"start":{"line":92,"column":0},"end":{"line":92,"column":25}},"68":{"start":{"line":95,"column":8},"end":{"line":95,"column":32}},"69":{"start":{"line":96,"column":8},"end":{"line":96,"column":40}},"70":{"start":{"line":97,"column":8},"end":{"line":97,"column":42}},"71":{"start":{"line":100,"column":23},"end":{"line":100,"column":60}},"72":{"start":{"line":101,"column":8},"end":{"line":102,"column":25}},"73":{"start":{"line":102,"column":12},"end":{"line":102,"column":25}},"74":{"start":{"line":103,"column":8},"end":{"line":104,"column":25}},"75":{"start":{"line":104,"column":12},"end":{"line":104,"column":25}},"76":{"start":{"line":105,"column":8},"end":{"line":106,"column":25}},"77":{"start":{"line":106,"column":12},"end":{"line":106,"column":25}},"78":{"start":{"line":107,"column":8},"end":{"line":108,"column":25}},"79":{"start":{"line":108,"column":12},"end":{"line":108,"column":25}},"80":{"start":{"line":109,"column":8},"end":{"line":109,"column":20}},"81":{"start":{"line":112,"column":0},"end":{"line":112,"column":38}},"82":{"start":{"line":113,"column":0},"end":{"line":113,"column":38}},"83":{"start":{"line":114,"column":0},"end":{"line":114,"column":34}},"84":{"start":{"line":115,"column":0},"end":{"line":115,"column":26}},"85":{"start":{"line":116,"column":0},"end":{"line":116,"column":31}},"86":{"start":{"line":119,"column":8},"end":{"line":119,"column":32}},"87":{"start":{"line":120,"column":8},"end":{"line":120,"column":42}},"88":{"start":{"line":121,"column":8},"end":{"line":121,"column":42}},"89":{"start":{"line":124,"column":8},"end":{"line":124,"column":34}},"90":{"start":{"line":125,"column":8},"end":{"line":125,"column":46}},"91":{"start":{"line":126,"column":8},"end":{"line":126,"column":42}},"92":{"start":{"line":129,"column":0},"end":{"line":129,"column":42}},"93":{"start":{"line":132,"column":8},"end":{"line":132,"column":32}},"94":{"start":{"line":133,"column":8},"end":{"line":133,"column":37}},"95":{"start":{"line":134,"column":8},"end":{"line":134,"column":42}},"96":{"start":{"line":137,"column":21},"end":{"line":137,"column":48}},"97":{"start":{"line":138,"column":8},"end":{"line":144,"column":9}},"98":{"start":{"line":139,"column":12},"end":{"line":142,"column":13}},"99":{"start":{"line":141,"column":16},"end":{"line":141,"column":29}},"100":{"start":{"line":143,"column":12},"end":{"line":143,"column":24}},"101":{"start":{"line":145,"column":8},"end":{"line":150,"column":9}},"102":{"start":{"line":146,"column":12},"end":{"line":148,"column":13}},"103":{"start":{"line":147,"column":16},"end":{"line":147,"column":29}},"104":{"start":{"line":149,"column":12},"end":{"line":149,"column":24}},"105":{"start":{"line":151,"column":8},"end":{"line":156,"column":9}},"106":{"start":{"line":152,"column":12},"end":{"line":154,"column":13}},"107":{"start":{"line":153,"column":16},"end":{"line":153,"column":29}},"108":{"start":{"line":155,"column":12},"end":{"line":155,"column":24}},"109":{"start":{"line":157,"column":8},"end":{"line":157,"column":20}},"110":{"start":{"line":160,"column":0},"end":{"line":160,"column":32}},"111":{"start":{"line":161,"column":0},"end":{"line":161,"column":24}},"112":{"start":{"line":162,"column":0},"end":{"line":162,"column":25}},"113":{"start":{"line":163,"column":0},"end":{"line":163,"column":23}},"114":{"start":{"line":166,"column":8},"end":{"line":166,"column":32}},"115":{"start":{"line":167,"column":8},"end":{"line":167,"column":37}},"116":{"start":{"line":168,"column":8},"end":{"line":168,"column":42}},"117":{"start":{"line":171,"column":22},"end":{"line":171,"column":49}},"118":{"start":{"line":172,"column":8},"end":{"line":172,"column":31}},"119":{"start":{"line":173,"column":22},"end":{"line":173,"column":42}},"120":{"start":{"line":174,"column":19},"end":{"line":174,"column":32}},"121":{"start":{"line":175,"column":23},"end":{"line":175,"column":35}},"122":{"start":{"line":178,"column":8},"end":{"line":183,"column":9}},"123":{"start":{"line":179,"column":12},"end":{"line":181,"column":13}},"124":{"start":{"line":180,"column":16},"end":{"line":180,"column":29}},"125":{"start":{"line":182,"column":12},"end":{"line":182,"column":24}},"126":{"start":{"line":184,"column":8},"end":{"line":189,"column":9}},"127":{"start":{"line":185,"column":12},"end":{"line":187,"column":13}},"128":{"start":{"line":186,"column":16},"end":{"line":186,"column":29}},"129":{"start":{"line":188,"column":12},"end":{"line":188,"column":24}},"130":{"start":{"line":190,"column":8},"end":{"line":190,"column":20}},"131":{"start":{"line":193,"column":0},"end":{"line":193,"column":32}},"132":{"start":{"line":194,"column":0},"end":{"line":194,"column":24}},"133":{"start":{"line":195,"column":0},"end":{"line":195,"column":25}},"134":{"start":{"line":198,"column":8},"end":{"line":198,"column":26}},"135":{"start":{"line":199,"column":8},"end":{"line":200,"column":29}},"136":{"start":{"line":200,"column":12},"end":{"line":200,"column":29}},"137":{"start":{"line":203,"column":8},"end":{"line":203,"column":34}},"138":{"start":{"line":209,"column":25},"end":{"line":209,"column":53}},"139":{"start":{"line":211,"column":8},"end":{"line":219,"column":9}},"140":{"start":{"line":212,"column":31},"end":{"line":212,"column":61}},"141":{"start":{"line":213,"column":12},"end":{"line":214,"column":29}},"142":{"start":{"line":214,"column":16},"end":{"line":214,"column":29}},"143":{"start":{"line":215,"column":12},"end":{"line":216,"column":29}},"144":{"start":{"line":216,"column":16},"end":{"line":216,"column":29}},"145":{"start":{"line":217,"column":12},"end":{"line":218,"column":29}},"146":{"start":{"line":218,"column":16},"end":{"line":218,"column":29}},"147":{"start":{"line":220,"column":8},"end":{"line":220,"column":20}},"148":{"start":{"line":224,"column":8},"end":{"line":225,"column":39}},"149":{"start":{"line":225,"column":12},"end":{"line":225,"column":39}},"150":{"start":{"line":226,"column":8},"end":{"line":226,"column":36}},"151":{"start":{"line":229,"column":8},"end":{"line":229,"column":82}},"152":{"start":{"line":232,"column":21},"end":{"line":232,"column":60}},"153":{"start":{"line":233,"column":24},"end":{"line":233,"column":40}},"154":{"start":{"line":234,"column":8},"end":{"line":234,"column":27}},"155":{"start":{"line":237,"column":8},"end":{"line":237,"column":26}},"156":{"start":{"line":240,"column":8},"end":{"line":240,"column":31}},"157":{"start":{"line":241,"column":18},"end":{"line":241,"column":31}},"158":{"start":{"line":243,"column":8},"end":{"line":255,"column":9}},"159":{"start":{"line":244,"column":26},"end":{"line":244,"column":55}},"160":{"start":{"line":245,"column":12},"end":{"line":246,"column":82}},"161":{"start":{"line":246,"column":16},"end":{"line":246,"column":82}},"162":{"start":{"line":247,"column":12},"end":{"line":248,"column":82}},"163":{"start":{"line":248,"column":16},"end":{"line":248,"column":82}},"164":{"start":{"line":249,"column":12},"end":{"line":250,"column":82}},"165":{"start":{"line":250,"column":16},"end":{"line":250,"column":82}},"166":{"start":{"line":251,"column":12},"end":{"line":252,"column":87}},"167":{"start":{"line":252,"column":16},"end":{"line":252,"column":87}},"168":{"start":{"line":253,"column":12},"end":{"line":254,"column":85}},"169":{"start":{"line":254,"column":16},"end":{"line":254,"column":85}},"170":{"start":{"line":258,"column":0},"end":{"line":258,"column":32}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":74},"end":{"line":1,"column":75}},"loc":{"start":{"line":1,"column":96},"end":{"line":4,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":3,"column":58},"end":{"line":3,"column":59}},"loc":{"start":{"line":3,"column":69},"end":{"line":3,"column":85}},"line":3},"2":{"name":"(anonymous_2)","decl":{"start":{"line":4,"column":6},"end":{"line":4,"column":7}},"loc":{"start":{"line":4,"column":28},"end":{"line":7,"column":1}},"line":4},"3":{"name":"(anonymous_3)","decl":{"start":{"line":8,"column":80},"end":{"line":8,"column":81}},"loc":{"start":{"line":8,"column":95},"end":{"line":10,"column":1}},"line":8},"4":{"name":"(anonymous_4)","decl":{"start":{"line":10,"column":5},"end":{"line":10,"column":6}},"loc":{"start":{"line":10,"column":20},"end":{"line":12,"column":1}},"line":10},"5":{"name":"(anonymous_5)","decl":{"start":{"line":13,"column":50},"end":{"line":13,"column":51}},"loc":{"start":{"line":13,"column":65},"end":{"line":19,"column":1}},"line":13},"6":{"name":"(anonymous_6)","decl":{"start":{"line":20,"column":56},"end":{"line":20,"column":57}},"loc":{"start":{"line":20,"column":71},"end":{"line":22,"column":1}},"line":20},"7":{"name":"(anonymous_7)","decl":{"start":{"line":29,"column":1},"end":{"line":29,"column":2}},"loc":{"start":{"line":29,"column":23},"end":{"line":36,"column":1}},"line":29},"8":{"name":"(anonymous_8)","decl":{"start":{"line":39,"column":1},"end":{"line":39,"column":2}},"loc":{"start":{"line":39,"column":27},"end":{"line":42,"column":1}},"line":39},"9":{"name":"(anonymous_9)","decl":{"start":{"line":45,"column":1},"end":{"line":45,"column":2}},"loc":{"start":{"line":45,"column":24},"end":{"line":49,"column":1}},"line":45},"10":{"name":"(anonymous_10)","decl":{"start":{"line":51,"column":4},"end":{"line":51,"column":5}},"loc":{"start":{"line":51,"column":34},"end":{"line":56,"column":5}},"line":51},"11":{"name":"(anonymous_11)","decl":{"start":{"line":57,"column":4},"end":{"line":57,"column":5}},"loc":{"start":{"line":57,"column":19},"end":{"line":59,"column":5}},"line":57},"12":{"name":"(anonymous_12)","decl":{"start":{"line":62,"column":4},"end":{"line":62,"column":5}},"loc":{"start":{"line":62,"column":41},"end":{"line":66,"column":5}},"line":62},"13":{"name":"(anonymous_13)","decl":{"start":{"line":67,"column":4},"end":{"line":67,"column":5}},"loc":{"start":{"line":67,"column":19},"end":{"line":86,"column":5}},"line":67},"14":{"name":"(anonymous_14)","decl":{"start":{"line":94,"column":4},"end":{"line":94,"column":5}},"loc":{"start":{"line":94,"column":41},"end":{"line":98,"column":5}},"line":94},"15":{"name":"(anonymous_15)","decl":{"start":{"line":99,"column":4},"end":{"line":99,"column":5}},"loc":{"start":{"line":99,"column":19},"end":{"line":110,"column":5}},"line":99},"16":{"name":"(anonymous_16)","decl":{"start":{"line":118,"column":4},"end":{"line":118,"column":5}},"loc":{"start":{"line":118,"column":41},"end":{"line":122,"column":5}},"line":118},"17":{"name":"(anonymous_17)","decl":{"start":{"line":123,"column":4},"end":{"line":123,"column":5}},"loc":{"start":{"line":123,"column":19},"end":{"line":127,"column":5}},"line":123},"18":{"name":"(anonymous_18)","decl":{"start":{"line":131,"column":4},"end":{"line":131,"column":5}},"loc":{"start":{"line":131,"column":41},"end":{"line":135,"column":5}},"line":131},"19":{"name":"(anonymous_19)","decl":{"start":{"line":136,"column":4},"end":{"line":136,"column":5}},"loc":{"start":{"line":136,"column":19},"end":{"line":158,"column":5}},"line":136},"20":{"name":"(anonymous_20)","decl":{"start":{"line":165,"column":4},"end":{"line":165,"column":5}},"loc":{"start":{"line":165,"column":41},"end":{"line":169,"column":5}},"line":165},"21":{"name":"(anonymous_21)","decl":{"start":{"line":170,"column":4},"end":{"line":170,"column":5}},"loc":{"start":{"line":170,"column":19},"end":{"line":191,"column":5}},"line":170},"22":{"name":"(anonymous_22)","decl":{"start":{"line":197,"column":4},"end":{"line":197,"column":5}},"loc":{"start":{"line":197,"column":23},"end":{"line":201,"column":5}},"line":197},"23":{"name":"(anonymous_23)","decl":{"start":{"line":202,"column":4},"end":{"line":202,"column":5}},"loc":{"start":{"line":202,"column":22},"end":{"line":204,"column":5}},"line":202},"24":{"name":"(anonymous_24)","decl":{"start":{"line":208,"column":4},"end":{"line":208,"column":5}},"loc":{"start":{"line":208,"column":19},"end":{"line":221,"column":5}},"line":208},"25":{"name":"(anonymous_25)","decl":{"start":{"line":223,"column":4},"end":{"line":223,"column":5}},"loc":{"start":{"line":223,"column":18},"end":{"line":227,"column":5}},"line":223},"26":{"name":"(anonymous_26)","decl":{"start":{"line":228,"column":4},"end":{"line":228,"column":5}},"loc":{"start":{"line":228,"column":15},"end":{"line":230,"column":5}},"line":228},"27":{"name":"(anonymous_27)","decl":{"start":{"line":231,"column":4},"end":{"line":231,"column":5}},"loc":{"start":{"line":231,"column":23},"end":{"line":235,"column":5}},"line":231},"28":{"name":"(anonymous_28)","decl":{"start":{"line":236,"column":4},"end":{"line":236,"column":5}},"loc":{"start":{"line":236,"column":13},"end":{"line":238,"column":5}},"line":236},"29":{"name":"(anonymous_29)","decl":{"start":{"line":239,"column":4},"end":{"line":239,"column":5}},"loc":{"start":{"line":239,"column":16},"end":{"line":256,"column":5}},"line":239}},"branchMap":{"0":{"loc":{"start":{"line":1,"column":22},"end":{"line":7,"column":3}},"type":"binary-expr","locations":[{"start":{"line":1,"column":23},"end":{"line":1,"column":27}},{"start":{"line":1,"column":31},"end":{"line":1,"column":51}},{"start":{"line":1,"column":57},"end":{"line":7,"column":2}}],"line":1},"1":{"loc":{"start":{"line":1,"column":57},"end":{"line":7,"column":2}},"type":"cond-expr","locations":[{"start":{"line":1,"column":74},"end":{"line":4,"column":1}},{"start":{"line":4,"column":6},"end":{"line":7,"column":1}}],"line":1},"2":{"loc":{"start":{"line":2,"column":4},"end":{"line":2,"column":33}},"type":"if","locations":[{"start":{"line":2,"column":4},"end":{"line":2,"column":33}},{"start":{"line":2,"column":4},"end":{"line":2,"column":33}}],"line":2},"3":{"loc":{"start":{"line":5,"column":4},"end":{"line":5,"column":33}},"type":"if","locations":[{"start":{"line":5,"column":4},"end":{"line":5,"column":33}},{"start":{"line":5,"column":4},"end":{"line":5,"column":33}}],"line":5},"4":{"loc":{"start":{"line":8,"column":25},"end":{"line":12,"column":2}},"type":"binary-expr","locations":[{"start":{"line":8,"column":26},"end":{"line":8,"column":30}},{"start":{"line":8,"column":34},"end":{"line":8,"column":57}},{"start":{"line":8,"column":63},"end":{"line":12,"column":1}}],"line":8},"5":{"loc":{"start":{"line":8,"column":63},"end":{"line":12,"column":1}},"type":"cond-expr","locations":[{"start":{"line":8,"column":80},"end":{"line":10,"column":1}},{"start":{"line":10,"column":5},"end":{"line":12,"column":1}}],"line":8},"6":{"loc":{"start":{"line":13,"column":19},"end":{"line":19,"column":1}},"type":"binary-expr","locations":[{"start":{"line":13,"column":20},"end":{"line":13,"column":24}},{"start":{"line":13,"column":28},"end":{"line":13,"column":45}},{"start":{"line":13,"column":50},"end":{"line":19,"column":1}}],"line":13},"7":{"loc":{"start":{"line":14,"column":4},"end":{"line":14,"column":42}},"type":"if","locations":[{"start":{"line":14,"column":4},"end":{"line":14,"column":42}},{"start":{"line":14,"column":4},"end":{"line":14,"column":42}}],"line":14},"8":{"loc":{"start":{"line":14,"column":8},"end":{"line":14,"column":29}},"type":"binary-expr","locations":[{"start":{"line":14,"column":8},"end":{"line":14,"column":11}},{"start":{"line":14,"column":15},"end":{"line":14,"column":29}}],"line":14},"9":{"loc":{"start":{"line":16,"column":4},"end":{"line":16,"column":141}},"type":"if","locations":[{"start":{"line":16,"column":4},"end":{"line":16,"column":141}},{"start":{"line":16,"column":4},"end":{"line":16,"column":141}}],"line":16},"10":{"loc":{"start":{"line":16,"column":40},"end":{"line":16,"column":141}},"type":"if","locations":[{"start":{"line":16,"column":40},"end":{"line":16,"column":141}},{"start":{"line":16,"column":40},"end":{"line":16,"column":141}}],"line":16},"11":{"loc":{"start":{"line":16,"column":44},"end":{"line":16,"column":107}},"type":"binary-expr","locations":[{"start":{"line":16,"column":44},"end":{"line":16,"column":59}},{"start":{"line":16,"column":63},"end":{"line":16,"column":107}}],"line":16},"12":{"loc":{"start":{"line":20,"column":22},"end":{"line":22,"column":1}},"type":"binary-expr","locations":[{"start":{"line":20,"column":23},"end":{"line":20,"column":27}},{"start":{"line":20,"column":31},"end":{"line":20,"column":51}},{"start":{"line":20,"column":56},"end":{"line":22,"column":1}}],"line":20},"13":{"loc":{"start":{"line":21,"column":11},"end":{"line":21,"column":61}},"type":"cond-expr","locations":[{"start":{"line":21,"column":37},"end":{"line":21,"column":40}},{"start":{"line":21,"column":43},"end":{"line":21,"column":61}}],"line":21},"14":{"loc":{"start":{"line":21,"column":12},"end":{"line":21,"column":33}},"type":"binary-expr","locations":[{"start":{"line":21,"column":12},"end":{"line":21,"column":15}},{"start":{"line":21,"column":19},"end":{"line":21,"column":33}}],"line":21},"15":{"loc":{"start":{"line":36,"column":16},"end":{"line":36,"column":63}},"type":"binary-expr","locations":[{"start":{"line":36,"column":16},"end":{"line":36,"column":34}},{"start":{"line":36,"column":39},"end":{"line":36,"column":62}}],"line":36},"16":{"loc":{"start":{"line":42,"column":20},"end":{"line":42,"column":75}},"type":"binary-expr","locations":[{"start":{"line":42,"column":20},"end":{"line":42,"column":42}},{"start":{"line":42,"column":47},"end":{"line":42,"column":74}}],"line":42},"17":{"loc":{"start":{"line":49,"column":17},"end":{"line":49,"column":66}},"type":"binary-expr","locations":[{"start":{"line":49,"column":17},"end":{"line":49,"column":36}},{"start":{"line":49,"column":41},"end":{"line":49,"column":65}}],"line":49},"18":{"loc":{"start":{"line":65,"column":21},"end":{"line":65,"column":41}},"type":"binary-expr","locations":[{"start":{"line":65,"column":21},"end":{"line":65,"column":26}},{"start":{"line":65,"column":30},"end":{"line":65,"column":41}}],"line":65},"19":{"loc":{"start":{"line":70,"column":8},"end":{"line":72,"column":9}},"type":"if","locations":[{"start":{"line":70,"column":8},"end":{"line":72,"column":9}},{"start":{"line":70,"column":8},"end":{"line":72,"column":9}}],"line":70},"20":{"loc":{"start":{"line":73,"column":8},"end":{"line":74,"column":55}},"type":"if","locations":[{"start":{"line":73,"column":8},"end":{"line":74,"column":55}},{"start":{"line":73,"column":8},"end":{"line":74,"column":55}}],"line":73},"21":{"loc":{"start":{"line":75,"column":8},"end":{"line":79,"column":9}},"type":"if","locations":[{"start":{"line":75,"column":8},"end":{"line":79,"column":9}},{"start":{"line":75,"column":8},"end":{"line":79,"column":9}}],"line":75},"22":{"loc":{"start":{"line":80,"column":8},"end":{"line":84,"column":9}},"type":"if","locations":[{"start":{"line":80,"column":8},"end":{"line":84,"column":9}},{"start":{"line":80,"column":8},"end":{"line":84,"column":9}}],"line":80},"23":{"loc":{"start":{"line":97,"column":21},"end":{"line":97,"column":41}},"type":"binary-expr","locations":[{"start":{"line":97,"column":21},"end":{"line":97,"column":26}},{"start":{"line":97,"column":30},"end":{"line":97,"column":41}}],"line":97},"24":{"loc":{"start":{"line":101,"column":8},"end":{"line":102,"column":25}},"type":"if","locations":[{"start":{"line":101,"column":8},"end":{"line":102,"column":25}},{"start":{"line":101,"column":8},"end":{"line":102,"column":25}}],"line":101},"25":{"loc":{"start":{"line":101,"column":12},"end":{"line":101,"column":105}},"type":"binary-expr","locations":[{"start":{"line":101,"column":12},"end":{"line":101,"column":50}},{"start":{"line":101,"column":54},"end":{"line":101,"column":95}},{"start":{"line":101,"column":99},"end":{"line":101,"column":105}}],"line":101},"26":{"loc":{"start":{"line":103,"column":8},"end":{"line":104,"column":25}},"type":"if","locations":[{"start":{"line":103,"column":8},"end":{"line":104,"column":25}},{"start":{"line":103,"column":8},"end":{"line":104,"column":25}}],"line":103},"27":{"loc":{"start":{"line":103,"column":12},"end":{"line":103,"column":107}},"type":"binary-expr","locations":[{"start":{"line":103,"column":12},"end":{"line":103,"column":54}},{"start":{"line":103,"column":58},"end":{"line":103,"column":97}},{"start":{"line":103,"column":101},"end":{"line":103,"column":107}}],"line":103},"28":{"loc":{"start":{"line":105,"column":8},"end":{"line":106,"column":25}},"type":"if","locations":[{"start":{"line":105,"column":8},"end":{"line":106,"column":25}},{"start":{"line":105,"column":8},"end":{"line":106,"column":25}}],"line":105},"29":{"loc":{"start":{"line":105,"column":12},"end":{"line":105,"column":104}},"type":"binary-expr","locations":[{"start":{"line":105,"column":12},"end":{"line":105,"column":50}},{"start":{"line":105,"column":54},"end":{"line":105,"column":93}},{"start":{"line":105,"column":97},"end":{"line":105,"column":104}}],"line":105},"30":{"loc":{"start":{"line":107,"column":8},"end":{"line":108,"column":25}},"type":"if","locations":[{"start":{"line":107,"column":8},"end":{"line":108,"column":25}},{"start":{"line":107,"column":8},"end":{"line":108,"column":25}}],"line":107},"31":{"loc":{"start":{"line":107,"column":12},"end":{"line":107,"column":110}},"type":"binary-expr","locations":[{"start":{"line":107,"column":12},"end":{"line":107,"column":54}},{"start":{"line":107,"column":58},"end":{"line":107,"column":99}},{"start":{"line":107,"column":103},"end":{"line":107,"column":110}}],"line":107},"32":{"loc":{"start":{"line":121,"column":21},"end":{"line":121,"column":41}},"type":"binary-expr","locations":[{"start":{"line":121,"column":21},"end":{"line":121,"column":26}},{"start":{"line":121,"column":30},"end":{"line":121,"column":41}}],"line":121},"33":{"loc":{"start":{"line":134,"column":21},"end":{"line":134,"column":41}},"type":"binary-expr","locations":[{"start":{"line":134,"column":21},"end":{"line":134,"column":26}},{"start":{"line":134,"column":30},"end":{"line":134,"column":41}}],"line":134},"34":{"loc":{"start":{"line":138,"column":8},"end":{"line":144,"column":9}},"type":"if","locations":[{"start":{"line":138,"column":8},"end":{"line":144,"column":9}},{"start":{"line":138,"column":8},"end":{"line":144,"column":9}}],"line":138},"35":{"loc":{"start":{"line":139,"column":12},"end":{"line":142,"column":13}},"type":"if","locations":[{"start":{"line":139,"column":12},"end":{"line":142,"column":13}},{"start":{"line":139,"column":12},"end":{"line":142,"column":13}}],"line":139},"36":{"loc":{"start":{"line":145,"column":8},"end":{"line":150,"column":9}},"type":"if","locations":[{"start":{"line":145,"column":8},"end":{"line":150,"column":9}},{"start":{"line":145,"column":8},"end":{"line":150,"column":9}}],"line":145},"37":{"loc":{"start":{"line":146,"column":12},"end":{"line":148,"column":13}},"type":"if","locations":[{"start":{"line":146,"column":12},"end":{"line":148,"column":13}},{"start":{"line":146,"column":12},"end":{"line":148,"column":13}}],"line":146},"38":{"loc":{"start":{"line":151,"column":8},"end":{"line":156,"column":9}},"type":"if","locations":[{"start":{"line":151,"column":8},"end":{"line":156,"column":9}},{"start":{"line":151,"column":8},"end":{"line":156,"column":9}}],"line":151},"39":{"loc":{"start":{"line":152,"column":12},"end":{"line":154,"column":13}},"type":"if","locations":[{"start":{"line":152,"column":12},"end":{"line":154,"column":13}},{"start":{"line":152,"column":12},"end":{"line":154,"column":13}}],"line":152},"40":{"loc":{"start":{"line":168,"column":21},"end":{"line":168,"column":41}},"type":"binary-expr","locations":[{"start":{"line":168,"column":21},"end":{"line":168,"column":26}},{"start":{"line":168,"column":30},"end":{"line":168,"column":41}}],"line":168},"41":{"loc":{"start":{"line":178,"column":8},"end":{"line":183,"column":9}},"type":"if","locations":[{"start":{"line":178,"column":8},"end":{"line":183,"column":9}},{"start":{"line":178,"column":8},"end":{"line":183,"column":9}}],"line":178},"42":{"loc":{"start":{"line":179,"column":12},"end":{"line":181,"column":13}},"type":"if","locations":[{"start":{"line":179,"column":12},"end":{"line":181,"column":13}},{"start":{"line":179,"column":12},"end":{"line":181,"column":13}}],"line":179},"43":{"loc":{"start":{"line":184,"column":8},"end":{"line":189,"column":9}},"type":"if","locations":[{"start":{"line":184,"column":8},"end":{"line":189,"column":9}},{"start":{"line":184,"column":8},"end":{"line":189,"column":9}}],"line":184},"44":{"loc":{"start":{"line":185,"column":12},"end":{"line":187,"column":13}},"type":"if","locations":[{"start":{"line":185,"column":12},"end":{"line":187,"column":13}},{"start":{"line":185,"column":12},"end":{"line":187,"column":13}}],"line":185},"45":{"loc":{"start":{"line":199,"column":8},"end":{"line":200,"column":29}},"type":"if","locations":[{"start":{"line":199,"column":8},"end":{"line":200,"column":29}},{"start":{"line":199,"column":8},"end":{"line":200,"column":29}}],"line":199},"46":{"loc":{"start":{"line":213,"column":12},"end":{"line":214,"column":29}},"type":"if","locations":[{"start":{"line":213,"column":12},"end":{"line":214,"column":29}},{"start":{"line":213,"column":12},"end":{"line":214,"column":29}}],"line":213},"47":{"loc":{"start":{"line":213,"column":16},"end":{"line":213,"column":101}},"type":"binary-expr","locations":[{"start":{"line":213,"column":16},"end":{"line":213,"column":60}},{"start":{"line":213,"column":64},"end":{"line":213,"column":86}},{"start":{"line":213,"column":90},"end":{"line":213,"column":101}}],"line":213},"48":{"loc":{"start":{"line":215,"column":12},"end":{"line":216,"column":29}},"type":"if","locations":[{"start":{"line":215,"column":12},"end":{"line":216,"column":29}},{"start":{"line":215,"column":12},"end":{"line":216,"column":29}}],"line":215},"49":{"loc":{"start":{"line":215,"column":16},"end":{"line":215,"column":94}},"type":"binary-expr","locations":[{"start":{"line":215,"column":16},"end":{"line":215,"column":58}},{"start":{"line":215,"column":62},"end":{"line":215,"column":79}},{"start":{"line":215,"column":83},"end":{"line":215,"column":94}}],"line":215},"50":{"loc":{"start":{"line":217,"column":12},"end":{"line":218,"column":29}},"type":"if","locations":[{"start":{"line":217,"column":12},"end":{"line":218,"column":29}},{"start":{"line":217,"column":12},"end":{"line":218,"column":29}}],"line":217},"51":{"loc":{"start":{"line":217,"column":16},"end":{"line":217,"column":72}},"type":"binary-expr","locations":[{"start":{"line":217,"column":16},"end":{"line":217,"column":57}},{"start":{"line":217,"column":61},"end":{"line":217,"column":72}}],"line":217},"52":{"loc":{"start":{"line":224,"column":8},"end":{"line":225,"column":39}},"type":"if","locations":[{"start":{"line":224,"column":8},"end":{"line":225,"column":39}},{"start":{"line":224,"column":8},"end":{"line":225,"column":39}}],"line":224},"53":{"loc":{"start":{"line":244,"column":26},"end":{"line":244,"column":55}},"type":"binary-expr","locations":[{"start":{"line":244,"column":26},"end":{"line":244,"column":36}},{"start":{"line":244,"column":40},"end":{"line":244,"column":55}}],"line":244},"54":{"loc":{"start":{"line":245,"column":12},"end":{"line":246,"column":82}},"type":"if","locations":[{"start":{"line":245,"column":12},"end":{"line":246,"column":82}},{"start":{"line":245,"column":12},"end":{"line":246,"column":82}}],"line":245},"55":{"loc":{"start":{"line":247,"column":12},"end":{"line":248,"column":82}},"type":"if","locations":[{"start":{"line":247,"column":12},"end":{"line":248,"column":82}},{"start":{"line":247,"column":12},"end":{"line":248,"column":82}}],"line":247},"56":{"loc":{"start":{"line":249,"column":12},"end":{"line":250,"column":82}},"type":"if","locations":[{"start":{"line":249,"column":12},"end":{"line":250,"column":82}},{"start":{"line":249,"column":12},"end":{"line":250,"column":82}}],"line":249},"57":{"loc":{"start":{"line":251,"column":12},"end":{"line":252,"column":87}},"type":"if","locations":[{"start":{"line":251,"column":12},"end":{"line":252,"column":87}},{"start":{"line":251,"column":12},"end":{"line":252,"column":87}}],"line":251},"58":{"loc":{"start":{"line":253,"column":12},"end":{"line":254,"column":85}},"type":"if","locations":[{"start":{"line":253,"column":12},"end":{"line":254,"column":85}},{"start":{"line":253,"column":12},"end":{"line":254,"column":85}}],"line":253}},"s":{"0":1,"1":16,"2":16,"3":16,"4":13,"5":0,"6":0,"7":0,"8":1,"9":1,"10":0,"11":1,"12":1,"13":0,"14":1,"15":1,"16":1,"17":16,"18":16,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":4,"43":4,"44":4,"45":4,"46":0,"47":4,"48":4,"49":4,"50":13,"51":13,"52":13,"53":0,"54":13,"55":0,"56":13,"57":13,"58":13,"59":0,"60":0,"61":0,"62":0,"63":1,"64":1,"65":1,"66":1,"67":1,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":1,"82":1,"83":1,"84":1,"85":1,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":1,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":1,"111":1,"112":1,"113":1,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":1,"132":1,"133":1,"134":4,"135":4,"136":4,"137":4,"138":13,"139":13,"140":13,"141":13,"142":0,"143":13,"144":0,"145":13,"146":2,"147":11,"148":13,"149":13,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":4,"157":4,"158":4,"159":4,"160":4,"161":4,"162":4,"163":0,"164":4,"165":0,"166":4,"167":0,"168":4,"169":0,"170":1},"f":{"0":16,"1":13,"2":0,"3":1,"4":0,"5":1,"6":1,"7":1,"8":1,"9":1,"10":4,"11":0,"12":4,"13":13,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":4,"23":4,"24":13,"25":13,"26":0,"27":0,"28":0,"29":4},"b":{"0":[1,1,1],"1":[1,0],"2":[16,0],"3":[0,0],"4":[1,1,1],"5":[1,0],"6":[1,1,1],"7":[0,1],"8":[1,1],"9":[1,0],"10":[16,0],"11":[16,16],"12":[1,1,1],"13":[0,1],"14":[1,1],"15":[1,1],"16":[1,1],"17":[1,1],"18":[4,0],"19":[0,13],"20":[0,13],"21":[13,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0,0],"26":[0,0],"27":[0,0,0],"28":[0,0],"29":[0,0,0],"30":[0,0],"31":[0,0,0],"32":[0,0],"33":[0,0],"34":[0,0],"35":[0,0],"36":[0,0],"37":[0,0],"38":[0,0],"39":[0,0],"40":[0,0],"41":[0,0],"42":[0,0],"43":[0,0],"44":[0,0],"45":[4,0],"46":[0,13],"47":[13,0,0],"48":[0,13],"49":[13,0,0],"50":[2,11],"51":[13,13],"52":[13,0],"53":[4,0],"54":[4,0],"55":[0,4],"56":[0,4],"57":[0,4],"58":[0,4]},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Filtering/Filtering.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/Filtering/Filtering.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from 'fs';\nimport * as fpath from 'path';\nimport { isBinaryFileSync } from 'isbinaryfile';\n\n\n\nexport interface IFilter {\n type: FilterListType.ALLOW | FilterListType.BANNED;\n filters: Array<{\n ftype: FilterType;\n scope: FilterScope;\n condition: string;\n value: string;\n }>;\n}\n\nexport enum FilterType {\n NAME = 'NAME',\n CONTENT = 'CONTENT',\n EXTENSION = 'EXTENSION',\n SIZE = 'SIZE',\n DATE = 'DATE',\n NULL = 'NONE'\n};\n\nexport enum FilterListType {\n BANNED = 'BANNED',\n ALLOW = 'ALLOW',\n};\n\nexport enum FilterScope {\n FOLDER = 'FOLDER',\n FILE = 'FILE',\n ALL = 'ALL',\n}\n\nclass AbstractFilter {\n condition: string;\n\n value: string;\n\n ftype: FilterType;\n\n scope: FilterScope;\n\n constructor(condition: string, value: string) {\n this.condition = condition;\n this.value = value;\n this.ftype = FilterType.NULL;\n this.scope = FilterScope.ALL;\n }\n\n evaluate(path: string): boolean {\n return true;\n }\n}\n\nexport class NameFilter extends AbstractFilter {\n static CONTAINS = 'contains';\n static FULLMATCH = 'fullmatch';\n static STARTS = 'starts';\n static ENDS = 'ends';\n\n constructor(condition: string, value: string, scope: FilterScope) {\n super(condition, value);\n this.ftype = FilterType.NAME;\n this.scope = scope || super.scope;\n }\n\n evaluate(path: string): boolean {\n this.value = this.value.toLowerCase();\n path = path.toLowerCase();\n\n if (this.condition === NameFilter.CONTAINS) {\n return !(path.indexOf(this.value) >= 0);\n }\n if (this.condition === NameFilter.FULLMATCH) return fpath.basename(path) !== this.value;\n if (this.condition === NameFilter.STARTS) {\n let filename: string;\n filename = fpath.basename(path);\n return !filename.startsWith(this.value);\n }\n if (this.condition === NameFilter.ENDS) {\n let filename: string;\n filename = fpath.basename(path);\n return !filename.endsWith(this.value);\n }\n\n return true;\n }\n}\n\nexport class ContentFilter extends AbstractFilter {\n static VALUE_BINARY = 'BINARY';\n static VALUE_TEXT = 'TEXT';\n static EQUAL = '=';\n static NOT_EQUAL = '!=';\n\n constructor(condition: string, value: string, scope: FilterScope) {\n super(condition, value);\n this.ftype = FilterType.CONTENT;\n this.scope = scope || super.scope; // Verificar\n }\n\n evaluate(path: string): boolean {\n const binary = isBinaryFileSync(path);\n\n if (this.condition === ContentFilter.EQUAL && this.value === ContentFilter.VALUE_BINARY && binary) return false;\n if (this.condition === ContentFilter.NOT_EQUAL && this.value === ContentFilter.VALUE_TEXT && binary) return false;\n if (this.condition === ContentFilter.EQUAL && this.value === ContentFilter.VALUE_TEXT && !binary) return false;\n if (this.condition === ContentFilter.NOT_EQUAL && this.value === ContentFilter.VALUE_BINARY && !binary) return false;\n return true;\n }\n}\n\nexport class ExtensionFilter extends AbstractFilter {\n\n constructor(condition: string, value: string, scope: FilterScope) {\n super(condition, value);\n this.ftype = FilterType.EXTENSION;\n this.scope = scope || super.scope; // Verificar\n }\n\n evaluate(path: string): boolean {\n path = path.toLowerCase();\n this.value = this.value.toLowerCase();\n return !path.endsWith(this.value);\n }\n}\n\nexport class SizeFilter extends AbstractFilter {\n static BIGGER = '>'\n static SMALLER = '<'\n static EQUAL = '='\n constructor(condition: string, value: string, scope: FilterScope) {\n super(condition, value);\n this.ftype = FilterType.SIZE;\n this.scope = scope || super.scope; // Verificar\n }\n\n evaluate(path: string): boolean {\n const stat = fs.statSync(path);\n\n if (this.condition === SizeFilter.BIGGER) {\n if (stat.size > parseInt(this.value, 10)) {\n // console.log(\"NO aceptado por que NO es mayor\");\n return false;\n }\n return true;\n }\n if (this.condition === SizeFilter.SMALLER) {\n if (stat.size < parseInt(this.value, 10)) {\n return false;\n }\n return true;\n }\n if (this.condition === SizeFilter.EQUAL) {\n if (stat.size === parseInt(this.value, 10)) {\n return false;\n }\n\n return true;\n }\n\n return true;\n }\n}\nexport class DateFilter extends AbstractFilter {\n static BIGGER = '>'\n static SMALLER = '<'\n constructor(condition: string, value: string, scope: FilterScope) {\n super(condition, value);\n this.ftype = FilterType.NAME;\n this.scope = scope || super.scope; // Verificar\n }\n\n evaluate(path: string): boolean {\n const stats = fs.statSync(path);\n\n modified = stats.mtime;\n\n const lDate = new Date(this.value);\n\n const ms: number = stats.mtimeMs;\n var modified = new Date(ms);\n // console.log(lDate);\n // console.log(modified);\n if (this.condition === DateFilter.BIGGER) {\n if (modified > lDate) {\n return false;\n }\n return true;\n }\n if (this.condition === DateFilter.SMALLER) {\n if (modified < lDate) {\n return false;\n }\n return true;\n }\n return true;\n }\n}\n\nexport class FilterList {\n type: FilterListType;\n\n filters: AbstractFilter[];\n\n constructor(fList?: IFilter) {\n this.filters = [];\n if (fList) this.load(fList);\n }\n\n public addFilter(filter: AbstractFilter): void {\n this.filters.push(filter);\n }\n\n // Returns false if the path match with some filter in the list\n // IMPORTANT: This method DOES NOT honor the FilterType (BANNED | ALLOW)\n // Use the method include to honor the FilterType\n public evaluate(path: string): boolean {\n const pathStat = fs.lstatSync(path);\n\n let i: number;\n for (i = 0; i < this.filters.length; i += 1) {\n const evaluation = this.filters[i].evaluate(path);\n\n if (this.filters[i].scope === FilterScope.FOLDER && pathStat.isDirectory() && !evaluation) return false;\n\n if (this.filters[i].scope === FilterScope.FILE && pathStat.isFile() && !evaluation) return false;\n\n if (this.filters[i].scope === FilterScope.ALL && !evaluation) return false;\n }\n return true;\n }\n\n //\n public include(path: string): boolean {\n if(this.type === FilterListType.BANNED) return this.evaluate(path);\n return !this.evaluate(path);\n }\n\n public save(path: string) {\n fs.writeFileSync(path, JSON.stringify(this.filters).toString());\n }\n\n public loadFromFile(path: string) {\n const json = fs.readFileSync(path, 'utf8');\n const filters = JSON.parse(json);\n this.load(filters);\n }\n\n public unload() {\n this.filters = [];\n }\n\n public load(fList: IFilter) {\n this.type = fList.type;\n const a = fList.filters;\n\n let i: number;\n for (i = 0; i < a.length; i += 1) {\n const scope = a[i].scope || FilterScope.ALL;\n if (a[i].ftype === FilterType.NAME) this.addFilter(new NameFilter(a[i].condition, a[i].value, scope));\n if (a[i].ftype === FilterType.DATE) this.addFilter(new DateFilter(a[i].condition, a[i].value, scope));\n if (a[i].ftype === FilterType.SIZE) this.addFilter(new SizeFilter(a[i].condition, a[i].value, scope));\n if (a[i].ftype === FilterType.EXTENSION) this.addFilter(new ExtensionFilter(a[i].condition, a[i].value, scope));\n if (a[i].ftype === FilterType.CONTENT) this.addFilter(new ContentFilter(a[i].condition, a[i].value, scope));\n }\n }\n}\n\n\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a13cc673cd7127a73c70667592e58362b5d6e188"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/FileCount/FileCountFilter.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/FileCount/FileCountFilter.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":62}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":33}},"2":{"start":{"line":3,"column":20},"end":{"line":3,"column":53}},"3":{"start":{"line":4,"column":0},"end":{"line":9,"column":2}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1},"f":{},"b":{},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/FileCount/FileCountFilter.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/FileCount/FileCountFilter.ts"],"names":[],"mappings":";;AAAA,sDAKgC;AAEnB,QAAA,eAAe,GAAY;IACtC,IAAI,EAAE,0BAAc,CAAC,MAAM;IAC3B,OAAO,EAAE;QACP,EAAE,KAAK,EAAE,sBAAU,CAAC,IAAI,EAAE,SAAS,EAAE,sBAAU,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,uBAAW,CAAC,GAAG,EAAE;KAC7F;CACF,CAAC","sourcesContent":["import {\n FilterScope,\n FilterType,\n FilterListType,\n NameFilter, IFilter\n} from '../Filtering/Filtering';\n\nexport const FileCountFilter: IFilter = {\n type: FilterListType.BANNED,\n filters: [\n { ftype: FilterType.NAME, condition: NameFilter.STARTS, value: '.', scope: FilterScope.ALL },\n ],\n};\n\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"6c10ff8752e7fe7846c40fd8aeba97b2c06469b4"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/16557/files/a.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/16557/files/a.ts","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/16557/files/a.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/16557/files/a.ts"],"names":[],"mappings":"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","sourcesContent":["// import {\n// ComponentDataLayer,\n// DataProvider,\n// Health,\n// IDataLayers\n// } from '../DataLayerTypes';\n// import {\n// ScannerComponent,\n// ScannerResults\n// } from '../../scanner/ScannerTypes';\n// import { IDependencyResponse } from '../../Dependencies/DependencyTypes';\n//\n// export class ComponentDataProvider implements DataProvider {\n//\n// private scanRawResults: ScannerResults\n//\n// private componentList: Array<ScannerComponent>;\n//\n// private dependencies: IDependencyResponse;\n//\n// constructor(scanRawResults: ScannerResults, dependencies?: IDependencyResponse) {\n// this.scanRawResults=scanRawResults;\n// this.dependencies = dependencies;\n// }\n//\n// public getLayerName(): string {\n// return this.constructor.name;\n// }\n//\n// public getData(): IDataLayers {\n// const componentLayer = <IDataLayers>{component: null};\n//\n// if (!this.scanRawResults && !this.dependencies) return componentLayer;\n//\n//\n// //Extract all components from scanRawResults, does not matter if there are duplicated\n// //And removes all no match results.\n// this.componentList = Object.values(this.scanRawResults).flat();\n// this.componentList = this.componentList.filter(component => component.id!=='none')\n// const scannerComponentLayer = this.parseComponentsFromScanner(this.componentList);\n// const dependenciesComponentLayer = this.parseComponentsFromDependencies(this.dependencies);\n//\n// componentLayer.component = [...scannerComponentLayer, ...dependenciesComponentLayer].sort(\n// (itemA, itemB) => {\n// if ( itemA.name < itemB.name) return -1;\n// else if( itemA.name > itemB.name) return 1;\n// return 0;\n// });\n//\n// if(!componentLayer.component.length) componentLayer.component=null;\n//\n// return componentLayer\n//\n// }\n//\n// private parseComponentsFromDependencies(dependencies: IDependencyResponse): Array<ComponentDataLayer> {\n// const componentLayer: Array<ComponentDataLayer> = [];\n// if (!dependencies) return componentLayer;\n//\n// dependencies.filesList.forEach(file => {\n// file.dependenciesList.forEach(dependency => {\n// const newComponent: ComponentDataLayer = <ComponentDataLayer>{};\n// newComponent.key = dependency.purl;\n// newComponent.purls = [dependency.purl];\n// newComponent.name = dependency.component;\n// newComponent.url = null;\n// newComponent.vendor = null;\n// newComponent.health = null;\n// newComponent.versions = [{\n// version: dependency.version,\n// licenses: dependency.licensesList.map(license => license.spdxId),\n// copyrights: null,\n// cryptography: null,\n// quality: null,\n// }];\n//\n// const existingComponent = componentLayer.find(component => component.key === newComponent.key);\n// if (existingComponent) {\n// const existingVersion = existingComponent.versions.find(version => version.version === newComponent.versions[0].version);\n// if(!existingVersion) existingComponent.versions.push({\n// version : newComponent.versions[0].version,\n// licenses: newComponent.versions[0].licenses,\n// copyrights: newComponent.versions[0].copyrights,\n// quality: null,\n// cryptography: null,\n// });\n// } else { //Component does not exist, insert as it is.\n// componentLayer.push(newComponent);\n// }\n//\n// });\n// });\n// return componentLayer;\n// }\n//\n// private parseComponentsFromScanner(scanComponents: Array<ScannerComponent>): Array<ComponentDataLayer> {\n// const componentLayer: Array<ComponentDataLayer> = [];\n// if (!scanComponents) return componentLayer\n//\n// for (let i=0 ; i<scanComponents.length ; i++) {\n//\n// try {\n//\n// // qualityValue would have a number from 0 to 5 or undefined.\n// const qualityValue = Number(scanComponents[i]?.quality?.shift()?.score?.split(\"/\").shift());\n//\n//\n// //Generates a new component\n// const newComponent: ComponentDataLayer = {\n// key: scanComponents[i].purl[0],\n// purls: scanComponents[i].purl,\n// name: scanComponents[i].component,\n// url: scanComponents[i].url,\n// vendor: scanComponents[i].vendor,\n// health: scanComponents[i].health,\n// versions: [{\n// version: scanComponents[i].version,\n// licenses: scanComponents[i].licenses.map(license => license.name),\n// copyrights: scanComponents[i].copyrights,\n// quality: { sum: 0, scoreAvg: 0, count: 0 },\n// cryptography: scanComponents[i]?.cryptography,\n// }]\n// };\n//\n// //Removes duplicated licenses\n// newComponent.versions[0].licenses = [...new Set(newComponent.versions[0].licenses)]\n//\n// if(qualityValue) {\n// newComponent.versions[0].quality.count = 1;\n// newComponent.versions[0].quality.sum = qualityValue;\n// newComponent.versions[0].quality.scoreAvg = qualityValue;\n// }\n//\n// //Merge new component in componentList\n// const componentTarget = componentLayer.find(component => component.key === newComponent.key);\n// if (componentTarget) {\n// const versionTarget = componentTarget.versions.find(item => item.version === newComponent.versions[0].version);\n// if (versionTarget) {\n//\n// //Insert licenses\n// newComponent.versions[0].licenses.forEach(licence => {\n// if (!versionTarget.licenses.includes(licence)) versionTarget.licenses.push(licence);\n// });\n//\n// //Insert copyright\n// newComponent.versions[0]?.copyrights?.forEach(newCopyright => {\n// if (versionTarget.copyrights.every(copyright => newCopyright.name != copyright.name)) {\n// versionTarget.copyrights.push(newCopyright);\n// }\n// });\n//\n// //Insert cryptography\n// newComponent.versions[0]?.cryptography?.forEach(newCryptoAlgo => {\n// if (versionTarget.cryptography.every(cryptoAlgorithm => cryptoAlgorithm.algorithm != newCryptoAlgo.algorithm)) {\n// versionTarget.cryptography.push(newCryptoAlgo);\n// }\n// });\n//\n// //recalculate quality average in case we have a quality value\n// if (qualityValue) {\n// versionTarget.quality.count++;\n// versionTarget.quality.sum += Number(qualityValue);\n// versionTarget.quality.scoreAvg = versionTarget.quality.sum / versionTarget.quality.count\n// }\n//\n//\n//\n// } else {\n// //newComponent version is not included in the component with same purl key\n// componentTarget.versions = componentTarget.versions.concat(newComponent.versions);\n// }\n// } else componentLayer.push(newComponent);\n//\n// } catch (e) {\n// console.error(`Problem inserting new component building Component Data Layer - `, e);\n// }\n// }\n//\n// //Replace [] for null in versions\n// for (let i=0 ; i<componentLayer.length ; i++) {\n// if(!componentLayer[i].health) componentLayer[i].health = null;\n// componentLayer[i].versions.forEach(version => {\n// if(version.copyrights?.length == 0) version.copyrights = null;\n// if(version.licenses?.length == 0) version.licenses = null;\n// if(version.cryptography?.length === 0) version.cryptography = null;\n// if(version.quality.count === 0 ) version.quality = null;\n// })\n// }\n//\n// return componentLayer;\n//\n// }\n//\n// }\n//\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"9521d796bdf2702adaa8a463973d765932d61330"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/16557/files/b.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/16557/files/b.ts","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/16557/files/b.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/16557/files/b.ts"],"names":[],"mappings":"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","sourcesContent":["// import {\n// DataProvider,\n// IDataLayers,\n// LicenseComponent,\n// LicenseDataLayer\n// } from '../DataLayerTypes';\n// import {\n// ScannerComponent,\n// ScannerResults\n// } from '../../scanner/ScannerTypes';\n// import { IDependencyResponse } from '../../Dependencies/DependencyTypes';\n//\n// export class LicenseDataProvider implements DataProvider {\n//\n// private scanResults: ScannerResults\n//\n// private componentList: ScannerComponent[];\n//\n// private dependencies: IDependencyResponse;\n//\n// private licenseStorage: Record<string, LicenseDataLayer>;\n//\n// private licenseLayer: Array<LicenseDataLayer>;\n//\n// constructor(scanResults: ScannerResults, dependencies?: IDependencyResponse ) {\n// this.scanResults = scanResults;\n// this.dependencies = dependencies;\n//\n// //Maps a license name to its own data\n// this.licenseStorage = {};\n// this.licenseLayer = [];\n// }\n//\n// public getLayerName(): string {\n// return this.constructor.name;\n// }\n//\n// public getData(): IDataLayers {\n//\n// this.componentList = Object.values(this.scanResults).flat();\n// this.componentList = this.componentList.filter(component => component.id!=='none')\n//\n// if (this.componentList.length >0)\n// this.updateLicenseStorageFromComponentList();\n//\n// if (this.dependencies && this.dependencies.filesList.length > 0)\n// this.updateLicenseStorageFromDependencies();\n//\n//\n// this.licenseLayer = Object.values(this.licenseStorage);\n// if (this.licenseLayer.length > 0)\n// this.updateIncompatibilities();\n//\n// this.licenseLayer.sort((itemA, itemB) => {\n// if (itemA.value > itemB.value) return -1\n// else if (itemA.value < itemB.value) return 1\n// return 0;\n// });\n//\n// return {licenses: this.licenseLayer} as IDataLayers\n// }\n//\n// //Gets all license from the result of scan and stores in this.licenseStorage map\n// private updateLicenseStorageFromComponentList() {\n// this.componentList.forEach(component => {\n// component.licenses.forEach((license) => {\n//\n// const newLicenseComponent: LicenseComponent = <LicenseComponent>{};\n// newLicenseComponent.purl = component.purl[0];\n// newLicenseComponent.vendor = component.vendor;\n// newLicenseComponent.versions = [component.version];\n// newLicenseComponent.name = component.component\n// newLicenseComponent.url = component.url;\n//\n// const licenseExist = !!this.licenseStorage[license.name];\n// if(!licenseExist){\n// const newLicense: LicenseDataLayer = <LicenseDataLayer>{};\n// newLicense.value = 1;\n// newLicense.label = license.name;\n// newLicense.copyleft = license.copyleft === 'yes' ? true : false;\n// newLicense.hasIncompatibles = [];\n// newLicense.incompatibleWith = license.incompatible_with!== undefined ? license.incompatible_with.split(',').map(il=> il.trim()) : [];\n// newLicense.components = [newLicenseComponent];\n// this.licenseStorage[license.name] = newLicense;\n// } else {\n// this.licenseStorage[license.name] = this.insertComponentIntoLicense(this.licenseStorage[license.name], newLicenseComponent);\n// }\n// });\n// });\n// }\n//\n// //Gets all licenses from results of dependency analysis\n// private updateLicenseStorageFromDependencies() {\n// this.dependencies.filesList.forEach(file => {\n// file.dependenciesList.forEach(dependency => {\n// dependency.licensesList.forEach(license => {\n//\n//\n// const newLicenseComponent = <LicenseComponent>{};\n// newLicenseComponent.purl = dependency.purl;\n// newLicenseComponent.versions = [dependency.version];\n// newLicenseComponent.name = dependency.component;\n// newLicenseComponent.vendor = null;\n// newLicenseComponent.url = null;\n//\n// if(license.spdxId !== '') {\n// license.spdxId.split(/;|\\//g).forEach(license_name => {\n//\n// const licenseExist = !!this.licenseStorage[license_name];\n// if (!licenseExist) {\n// const newLicense: LicenseDataLayer = <LicenseDataLayer>{};\n// newLicense.value = 1;\n// newLicense.label = license_name;\n// newLicense.copyleft = false;\n// newLicense.hasIncompatibles = [];\n// newLicense.incompatibleWith = [];\n// newLicense.components = [newLicenseComponent];\n// this.licenseStorage[license_name] = newLicense;\n// } else {\n// this.licenseStorage[license_name] = this.insertComponentIntoLicense(this.licenseStorage[license_name], newLicenseComponent);\n// }\n// });\n// } else { // Unknown license\n// const licenseExist = !!this.licenseStorage['unknown'];\n// if (!licenseExist) {\n// const newLicense: LicenseDataLayer = <LicenseDataLayer>{};\n// newLicense.value = 1;\n// newLicense.label = 'unknown';\n// newLicense.copyleft = false;\n// newLicense.hasIncompatibles = [];\n// newLicense.incompatibleWith = [];\n// newLicense.components = [newLicenseComponent];\n// this.licenseStorage['unknown'] = newLicense;\n// } else{\n// this.licenseStorage['unknown'] = this.insertComponentIntoLicense(this.licenseStorage['unknown'], newLicenseComponent);\n// }\n// }\n// });\n// });\n// });\n// }\n//\n// private updateIncompatibilities() {\n// for (let l = 0; l < this.licenseLayer.length; l += 1) {\n// const license = this.licenseLayer[l];\n// if (license.incompatibleWith !== undefined)\n// for (let i = 0; i < license.incompatibleWith.length; i += 1) {\n// if (this.licenseLayer.some((lic) => lic.label === license.incompatibleWith[i]))\n// license.hasIncompatibles.push(license.incompatibleWith[i]);\n// }\n// }\n// }\n//\n//\n// private insertComponentIntoLicense(license: LicenseDataLayer, newComponent: LicenseComponent): LicenseDataLayer {\n// const componentIndex = license.components.findIndex((c)=> c.purl === newComponent.purl);\n// if (componentIndex >= 0) { //if newComponent exist in license\n// const versionExist = !!license.components[componentIndex].versions.find((version)=>version === newComponent.versions[0]);\n// if (!versionExist) {\n// license.components[componentIndex].versions.push(newComponent.versions[0]);\n// license.value++;\n// }\n// } else {\n// license.components.push(newComponent);\n// license.value++;\n// }\n// return license;\n// }\n//\n// private unknownLicensesToEnd(){\n// // let unknownLicenses = null;\n// // if(this.licenseMapper['unknown']){\n// // unknownLicenses = this.licenseMapper['unknown'];\n// // delete this.licenseMapper['unknown'];\n// // }\n// //\n// // this.licenses = Object.values((this.licenseMapper));\n// // if(unknownLicenses){\n// // this.licenses.push(unknownLicenses);\n// // }\n// }\n//\n//\n// }\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d6b18bd06ed5db9485aa79a39b1ab443d814ad3f"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/16557/files/c.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/16557/files/c.ts","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/16557/files/c.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/16557/files/c.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,WAAW;AACX,sBAAsB;AACtB,wBAAwB;AACxB,mBAAmB;AACnB,uCAAuC;AACvC,EAAE;AACF,6DAA6D;AAC7D,EAAE;AACF,4CAA4C;AAC5C,EAAE;AACF,uCAAuC;AACvC,EAAE;AACF,iCAAiC;AACjC,EAAE;AACF,mCAAmC;AACnC,EAAE;AACF,+FAA+F;AAC/F,4CAA4C;AAC5C,sCAAsC;AACtC,8CAA8C;AAC9C,2CAA2C;AAC3C,MAAM;AACN,EAAE;AACF,oCAAoC;AACpC,oCAAoC;AACpC,MAAM;AACN,EAAE;AACF,oCAAoC;AACpC,mDAAmD;AACnD,qDAAqD;AACrD,mCAAmC;AACnC,qCAAqC;AACrC,qCAAqC;AACrC,EAAE;AACF,8EAA8E;AAC9E,0CAA0C;AAC1C,kFAAkF;AAClF,4CAA4C;AAC5C,qCAAqC;AACrC,YAAY;AACZ,QAAQ;AACR,EAAE;AACF,mDAAmD;AACnD,MAAM;AACN,EAAE;AACF,IAAI","sourcesContent":["// import { DataProvider, IDataLayers, SummaryDataLayer } from '../DataLayerTypes';\n// import {\n// ScannerComponent,\n// ScannerComponentId,\n// ScannerResults\n// } from '../../scanner/ScannerTypes';\n//\n// export class SummaryDataProvider implements DataProvider {\n//\n// private scannerResults: ScannerResults;\n//\n// private summary: SummaryDataLayer;\n//\n// private projectName: string;\n//\n// private projectCreateAt: Date;\n//\n// constructor(projectName: string, projectCreatedAt: Date, scannerResults: ScannerResults) {\n// this.scannerResults = scannerResults;\n// this.projectName = projectName;\n// this.projectCreateAt = projectCreatedAt\n// this.summary = <SummaryDataLayer>{};\n// }\n//\n// public getLayerName(): string {\n// return this.constructor.name;\n// }\n//\n// public getData(): IDataLayers {\n// this.summary.projectName = this.projectName;\n// this.summary.timestamp = this.projectCreateAt;\n// this.summary.totalFiles = 0;\n// this.summary.noMatchFiles = 0;\n// this.summary.matchedFiles = 0;\n//\n// for (const [file, components] of Object.entries(this.scannerResults)) {\n// components.forEach(component => {\n// if (component.id==ScannerComponentId.NONE) this.summary.noMatchFiles++;\n// else this.summary.matchedFiles++;\n// this.summary.totalFiles++;\n// });\n// }\n//\n// return <IDataLayers>{summary: this.summary};\n// }\n//\n// }\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"e874f5f098c131e67d0e3efad6194774fc08d82f"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/files/a.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/files/a.ts","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/files/a.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/files/a.ts"],"names":[],"mappings":"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","sourcesContent":["// import {\n// ComponentDataLayer,\n// DataProvider,\n// Health,\n// IDataLayers\n// } from '../DataLayerTypes';\n// import {\n// ScannerComponent,\n// ScannerResults\n// } from '../../scanner/ScannerTypes';\n// import { IDependencyResponse } from '../../Dependencies/DependencyTypes';\n//\n// export class ComponentDataProvider implements DataProvider {\n//\n// private scanRawResults: ScannerResults\n//\n// private componentList: Array<ScannerComponent>;\n//\n// private dependencies: IDependencyResponse;\n//\n// constructor(scanRawResults: ScannerResults, dependencies?: IDependencyResponse) {\n// this.scanRawResults=scanRawResults;\n// this.dependencies = dependencies;\n// }\n//\n// public getLayerName(): string {\n// return this.constructor.name;\n// }\n//\n// public getData(): IDataLayers {\n// const componentLayer = <IDataLayers>{component: null};\n//\n// if (!this.scanRawResults && !this.dependencies) return componentLayer;\n//\n//\n// //Extract all components from scanRawResults, does not matter if there are duplicated\n// //And removes all no match results.\n// this.componentList = Object.values(this.scanRawResults).flat();\n// this.componentList = this.componentList.filter(component => component.id!=='none')\n// const scannerComponentLayer = this.parseComponentsFromScanner(this.componentList);\n// const dependenciesComponentLayer = this.parseComponentsFromDependencies(this.dependencies);\n//\n// componentLayer.component = [...scannerComponentLayer, ...dependenciesComponentLayer].sort(\n// (itemA, itemB) => {\n// if ( itemA.name < itemB.name) return -1;\n// else if( itemA.name > itemB.name) return 1;\n// return 0;\n// });\n//\n// if(!componentLayer.component.length) componentLayer.component=null;\n//\n// return componentLayer\n//\n// }\n//\n// private parseComponentsFromDependencies(dependencies: IDependencyResponse): Array<ComponentDataLayer> {\n// const componentLayer: Array<ComponentDataLayer> = [];\n// if (!dependencies) return componentLayer;\n//\n// dependencies.filesList.forEach(file => {\n// file.dependenciesList.forEach(dependency => {\n// const newComponent: ComponentDataLayer = <ComponentDataLayer>{};\n// newComponent.key = dependency.purl;\n// newComponent.purls = [dependency.purl];\n// newComponent.name = dependency.component;\n// newComponent.url = null;\n// newComponent.vendor = null;\n// newComponent.health = null;\n// newComponent.versions = [{\n// version: dependency.version,\n// licenses: dependency.licensesList.map(license => license.spdxId),\n// copyrights: null,\n// cryptography: null,\n// quality: null,\n// }];\n//\n// const existingComponent = componentLayer.find(component => component.key === newComponent.key);\n// if (existingComponent) {\n// const existingVersion = existingComponent.versions.find(version => version.version === newComponent.versions[0].version);\n// if(!existingVersion) existingComponent.versions.push({\n// version : newComponent.versions[0].version,\n// licenses: newComponent.versions[0].licenses,\n// copyrights: newComponent.versions[0].copyrights,\n// quality: null,\n// cryptography: null,\n// });\n// } else { //Component does not exist, insert as it is.\n// componentLayer.push(newComponent);\n// }\n//\n// });\n// });\n// return componentLayer;\n// }\n//\n// private parseComponentsFromScanner(scanComponents: Array<ScannerComponent>): Array<ComponentDataLayer> {\n// const componentLayer: Array<ComponentDataLayer> = [];\n// if (!scanComponents) return componentLayer\n//\n// for (let i=0 ; i<scanComponents.length ; i++) {\n//\n// try {\n//\n// // qualityValue would have a number from 0 to 5 or undefined.\n// const qualityValue = Number(scanComponents[i]?.quality?.shift()?.score?.split(\"/\").shift());\n//\n//\n// //Generates a new component\n// const newComponent: ComponentDataLayer = {\n// key: scanComponents[i].purl[0],\n// purls: scanComponents[i].purl,\n// name: scanComponents[i].component,\n// url: scanComponents[i].url,\n// vendor: scanComponents[i].vendor,\n// health: scanComponents[i].health,\n// versions: [{\n// version: scanComponents[i].version,\n// licenses: scanComponents[i].licenses.map(license => license.name),\n// copyrights: scanComponents[i].copyrights,\n// quality: { sum: 0, scoreAvg: 0, count: 0 },\n// cryptography: scanComponents[i]?.cryptography,\n// }]\n// };\n//\n// //Removes duplicated licenses\n// newComponent.versions[0].licenses = [...new Set(newComponent.versions[0].licenses)]\n//\n// if(qualityValue) {\n// newComponent.versions[0].quality.count = 1;\n// newComponent.versions[0].quality.sum = qualityValue;\n// newComponent.versions[0].quality.scoreAvg = qualityValue;\n// }\n//\n// //Merge new component in componentList\n// const componentTarget = componentLayer.find(component => component.key === newComponent.key);\n// if (componentTarget) {\n// const versionTarget = componentTarget.versions.find(item => item.version === newComponent.versions[0].version);\n// if (versionTarget) {\n//\n// //Insert licenses\n// newComponent.versions[0].licenses.forEach(licence => {\n// if (!versionTarget.licenses.includes(licence)) versionTarget.licenses.push(licence);\n// });\n//\n// //Insert copyright\n// newComponent.versions[0]?.copyrights?.forEach(newCopyright => {\n// if (versionTarget.copyrights.every(copyright => newCopyright.name != copyright.name)) {\n// versionTarget.copyrights.push(newCopyright);\n// }\n// });\n//\n// //Insert cryptography\n// newComponent.versions[0]?.cryptography?.forEach(newCryptoAlgo => {\n// if (versionTarget.cryptography.every(cryptoAlgorithm => cryptoAlgorithm.algorithm != newCryptoAlgo.algorithm)) {\n// versionTarget.cryptography.push(newCryptoAlgo);\n// }\n// });\n//\n// //recalculate quality average in case we have a quality value\n// if (qualityValue) {\n// versionTarget.quality.count++;\n// versionTarget.quality.sum += Number(qualityValue);\n// versionTarget.quality.scoreAvg = versionTarget.quality.sum / versionTarget.quality.count\n// }\n//\n//\n//\n// } else {\n// //newComponent version is not included in the component with same purl key\n// componentTarget.versions = componentTarget.versions.concat(newComponent.versions);\n// }\n// } else componentLayer.push(newComponent);\n//\n// } catch (e) {\n// console.error(`Problem inserting new component building Component Data Layer - `, e);\n// }\n// }\n//\n// //Replace [] for null in versions\n// for (let i=0 ; i<componentLayer.length ; i++) {\n// if(!componentLayer[i].health) componentLayer[i].health = null;\n// componentLayer[i].versions.forEach(version => {\n// if(version.copyrights?.length == 0) version.copyrights = null;\n// if(version.licenses?.length == 0) version.licenses = null;\n// if(version.cryptography?.length === 0) version.cryptography = null;\n// if(version.quality.count === 0 ) version.quality = null;\n// })\n// }\n//\n// return componentLayer;\n//\n// }\n//\n// }\n//\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"12ae45803511551ecd2e98bf46b56a1838905d86"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/files/b.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/files/b.ts","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/files/b.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/files/b.ts"],"names":[],"mappings":"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","sourcesContent":["// import {\n// DataProvider,\n// IDataLayers,\n// LicenseComponent,\n// LicenseDataLayer\n// } from '../DataLayerTypes';\n// import {\n// ScannerComponent,\n// ScannerResults\n// } from '../../scanner/ScannerTypes';\n// import { IDependencyResponse } from '../../Dependencies/DependencyTypes';\n//\n// export class LicenseDataProvider implements DataProvider {\n//\n// private scanResults: ScannerResults\n//\n// private componentList: ScannerComponent[];\n//\n// private dependencies: IDependencyResponse;\n//\n// private licenseStorage: Record<string, LicenseDataLayer>;\n//\n// private licenseLayer: Array<LicenseDataLayer>;\n//\n// constructor(scanResults: ScannerResults, dependencies?: IDependencyResponse ) {\n// this.scanResults = scanResults;\n// this.dependencies = dependencies;\n//\n// //Maps a license name to its own data\n// this.licenseStorage = {};\n// this.licenseLayer = [];\n// }\n//\n// public getLayerName(): string {\n// return this.constructor.name;\n// }\n//\n// public getData(): IDataLayers {\n//\n// this.componentList = Object.values(this.scanResults).flat();\n// this.componentList = this.componentList.filter(component => component.id!=='none')\n//\n// if (this.componentList.length >0)\n// this.updateLicenseStorageFromComponentList();\n//\n// if (this.dependencies && this.dependencies.filesList.length > 0)\n// this.updateLicenseStorageFromDependencies();\n//\n//\n// this.licenseLayer = Object.values(this.licenseStorage);\n// if (this.licenseLayer.length > 0)\n// this.updateIncompatibilities();\n//\n// this.licenseLayer.sort((itemA, itemB) => {\n// if (itemA.value > itemB.value) return -1\n// else if (itemA.value < itemB.value) return 1\n// return 0;\n// });\n//\n// return {licenses: this.licenseLayer} as IDataLayers\n// }\n//\n// //Gets all license from the result of scan and stores in this.licenseStorage map\n// private updateLicenseStorageFromComponentList() {\n// this.componentList.forEach(component => {\n// component.licenses.forEach((license) => {\n//\n// const newLicenseComponent: LicenseComponent = <LicenseComponent>{};\n// newLicenseComponent.purl = component.purl[0];\n// newLicenseComponent.vendor = component.vendor;\n// newLicenseComponent.versions = [component.version];\n// newLicenseComponent.name = component.component\n// newLicenseComponent.url = component.url;\n//\n// const licenseExist = !!this.licenseStorage[license.name];\n// if(!licenseExist){\n// const newLicense: LicenseDataLayer = <LicenseDataLayer>{};\n// newLicense.value = 1;\n// newLicense.label = license.name;\n// newLicense.copyleft = license.copyleft === 'yes' ? true : false;\n// newLicense.hasIncompatibles = [];\n// newLicense.incompatibleWith = license.incompatible_with!== undefined ? license.incompatible_with.split(',').map(il=> il.trim()) : [];\n// newLicense.components = [newLicenseComponent];\n// this.licenseStorage[license.name] = newLicense;\n// } else {\n// this.licenseStorage[license.name] = this.insertComponentIntoLicense(this.licenseStorage[license.name], newLicenseComponent);\n// }\n// });\n// });\n// }\n//\n// //Gets all licenses from results of dependency analysis\n// private updateLicenseStorageFromDependencies() {\n// this.dependencies.filesList.forEach(file => {\n// file.dependenciesList.forEach(dependency => {\n// dependency.licensesList.forEach(license => {\n//\n//\n// const newLicenseComponent = <LicenseComponent>{};\n// newLicenseComponent.purl = dependency.purl;\n// newLicenseComponent.versions = [dependency.version];\n// newLicenseComponent.name = dependency.component;\n// newLicenseComponent.vendor = null;\n// newLicenseComponent.url = null;\n//\n// if(license.spdxId !== '') {\n// license.spdxId.split(/;|\\//g).forEach(license_name => {\n//\n// const licenseExist = !!this.licenseStorage[license_name];\n// if (!licenseExist) {\n// const newLicense: LicenseDataLayer = <LicenseDataLayer>{};\n// newLicense.value = 1;\n// newLicense.label = license_name;\n// newLicense.copyleft = false;\n// newLicense.hasIncompatibles = [];\n// newLicense.incompatibleWith = [];\n// newLicense.components = [newLicenseComponent];\n// this.licenseStorage[license_name] = newLicense;\n// } else {\n// this.licenseStorage[license_name] = this.insertComponentIntoLicense(this.licenseStorage[license_name], newLicenseComponent);\n// }\n// });\n// } else { // Unknown license\n// const licenseExist = !!this.licenseStorage['unknown'];\n// if (!licenseExist) {\n// const newLicense: LicenseDataLayer = <LicenseDataLayer>{};\n// newLicense.value = 1;\n// newLicense.label = 'unknown';\n// newLicense.copyleft = false;\n// newLicense.hasIncompatibles = [];\n// newLicense.incompatibleWith = [];\n// newLicense.components = [newLicenseComponent];\n// this.licenseStorage['unknown'] = newLicense;\n// } else{\n// this.licenseStorage['unknown'] = this.insertComponentIntoLicense(this.licenseStorage['unknown'], newLicenseComponent);\n// }\n// }\n// });\n// });\n// });\n// }\n//\n// private updateIncompatibilities() {\n// for (let l = 0; l < this.licenseLayer.length; l += 1) {\n// const license = this.licenseLayer[l];\n// if (license.incompatibleWith !== undefined)\n// for (let i = 0; i < license.incompatibleWith.length; i += 1) {\n// if (this.licenseLayer.some((lic) => lic.label === license.incompatibleWith[i]))\n// license.hasIncompatibles.push(license.incompatibleWith[i]);\n// }\n// }\n// }\n//\n//\n// private insertComponentIntoLicense(license: LicenseDataLayer, newComponent: LicenseComponent): LicenseDataLayer {\n// const componentIndex = license.components.findIndex((c)=> c.purl === newComponent.purl);\n// if (componentIndex >= 0) { //if newComponent exist in license\n// const versionExist = !!license.components[componentIndex].versions.find((version)=>version === newComponent.versions[0]);\n// if (!versionExist) {\n// license.components[componentIndex].versions.push(newComponent.versions[0]);\n// license.value++;\n// }\n// } else {\n// license.components.push(newComponent);\n// license.value++;\n// }\n// return license;\n// }\n//\n// private unknownLicensesToEnd(){\n// // let unknownLicenses = null;\n// // if(this.licenseMapper['unknown']){\n// // unknownLicenses = this.licenseMapper['unknown'];\n// // delete this.licenseMapper['unknown'];\n// // }\n// //\n// // this.licenses = Object.values((this.licenseMapper));\n// // if(unknownLicenses){\n// // this.licenses.push(unknownLicenses);\n// // }\n// }\n//\n//\n// }\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"456e452d512c3525e0f0960f273a9204dd09ea70"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/files/c.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/files/c.ts","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/files/c.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/files/c.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,WAAW;AACX,sBAAsB;AACtB,wBAAwB;AACxB,mBAAmB;AACnB,uCAAuC;AACvC,EAAE;AACF,6DAA6D;AAC7D,EAAE;AACF,4CAA4C;AAC5C,EAAE;AACF,uCAAuC;AACvC,EAAE;AACF,iCAAiC;AACjC,EAAE;AACF,mCAAmC;AACnC,EAAE;AACF,+FAA+F;AAC/F,4CAA4C;AAC5C,sCAAsC;AACtC,8CAA8C;AAC9C,2CAA2C;AAC3C,MAAM;AACN,EAAE;AACF,oCAAoC;AACpC,oCAAoC;AACpC,MAAM;AACN,EAAE;AACF,oCAAoC;AACpC,mDAAmD;AACnD,qDAAqD;AACrD,mCAAmC;AACnC,qCAAqC;AACrC,qCAAqC;AACrC,EAAE;AACF,8EAA8E;AAC9E,0CAA0C;AAC1C,kFAAkF;AAClF,4CAA4C;AAC5C,qCAAqC;AACrC,YAAY;AACZ,QAAQ;AACR,EAAE;AACF,mDAAmD;AACnD,MAAM;AACN,EAAE;AACF,IAAI","sourcesContent":["// import { DataProvider, IDataLayers, SummaryDataLayer } from '../DataLayerTypes';\n// import {\n// ScannerComponent,\n// ScannerComponentId,\n// ScannerResults\n// } from '../../scanner/ScannerTypes';\n//\n// export class SummaryDataProvider implements DataProvider {\n//\n// private scannerResults: ScannerResults;\n//\n// private summary: SummaryDataLayer;\n//\n// private projectName: string;\n//\n// private projectCreateAt: Date;\n//\n// constructor(projectName: string, projectCreatedAt: Date, scannerResults: ScannerResults) {\n// this.scannerResults = scannerResults;\n// this.projectName = projectName;\n// this.projectCreateAt = projectCreatedAt\n// this.summary = <SummaryDataLayer>{};\n// }\n//\n// public getLayerName(): string {\n// return this.constructor.name;\n// }\n//\n// public getData(): IDataLayers {\n// this.summary.projectName = this.projectName;\n// this.summary.timestamp = this.projectCreateAt;\n// this.summary.totalFiles = 0;\n// this.summary.noMatchFiles = 0;\n// this.summary.matchedFiles = 0;\n//\n// for (const [file, components] of Object.entries(this.scannerResults)) {\n// components.forEach(component => {\n// if (component.id==ScannerComponentId.NONE) this.summary.noMatchFiles++;\n// else this.summary.matchedFiles++;\n// this.summary.totalFiles++;\n// });\n// }\n//\n// return <IDataLayers>{summary: this.summary};\n// }\n//\n// }\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"e5bef4ae344e67a85272a4a093ca07109a903b19"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/files/d.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/files/d.ts","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/files/d.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/files/d.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,kBAAkB;AAClB,iBAAiB;AACjB,yBAAyB;AACzB,wBAAwB;AACxB,8BAA8B;AAC9B,4EAA4E;AAC5E,EAAE;AACF,gEAAgE;AAChE,EAAE;AACF,+CAA+C;AAC/C,EAAE;AACF,qDAAqD;AACrD,wCAAwC;AACxC,MAAM;AACN,EAAE;AACF,oCAAoC;AACpC,oCAAoC;AACpC,MAAM;AACN,EAAE;AACF,oCAAoC;AACpC,iEAAiE;AACjE,qDAAqD;AACrD,0EAA0E;AAC1E,qDAAqD;AACrD,mFAAmF;AACnF,EAAE;AACF,8BAA8B;AAC9B,MAAM;AACN,EAAE;AACF,0FAA0F;AAC1F,8DAA8D;AAC9D,EAAE;AACF,+CAA+C;AAC/C,uDAAuD;AACvD,sDAAsD;AACtD,kDAAkD;AAClD,yDAAyD;AACzD,4EAA4E;AAC5E,cAAc;AACd,8IAA8I;AAC9I,YAAY;AACZ,gFAAgF;AAChF,UAAU;AACV,EAAE;AACF,8BAA8B;AAC9B,MAAM;AACN,IAAI","sourcesContent":["// import {\n// DataProvider,\n// IDataLayers,\n// DependencyDataLayer,\n// License, Dependency\n// } from '../DataLayerTypes';\n// import { IDependencyResponse } from '../../Dependencies/DependencyTypes';\n//\n// export class DependencyDataProvider implements DataProvider {\n//\n// private dependencies: IDependencyResponse;\n//\n// constructor(dependencies: IDependencyResponse) {\n// this.dependencies = dependencies;\n// }\n//\n// public getLayerName(): string {\n// return this.constructor.name;\n// }\n//\n// public getData(): IDataLayers {\n// const dependencyLayer = <IDataLayers>{dependencies: null};\n// if(!this.dependencies) return dependencyLayer;\n// const parsedDepLayer = this.parseDependencyData(this.dependencies);\n// dependencyLayer.dependencies = parsedDepLayer;\n// if (!dependencyLayer.dependencies.length) dependencyLayer.dependencies=null;\n//\n// return dependencyLayer;\n// }\n//\n// public parseDependencyData(dependencies: IDependencyResponse): DependencyDataLayer[]{\n// const dependencyLayer: Array<DependencyDataLayer> = [];\n//\n// dependencies.filesList.forEach(file => {\n// const newDependencies: Array<Dependency> = [];\n// file.dependenciesList.forEach(dependency => {\n// const newLicenses: Array<License> = [];\n// dependency.licensesList.forEach((license) => {\n// newLicenses.push({name: license.name, spdxid: license.spdxId});\n// });\n// newDependencies.push({purl: dependency.purl, licenses: newLicenses, version: dependency.version, component: dependency.component});\n// });\n// dependencyLayer.push({file: file.file, dependencies: newDependencies});\n// });\n//\n// return dependencyLayer;\n// }\n// }\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"53aac40054d4635004c2fad041c7ca3a9d0df796"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/y.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/y.ts","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/y.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/y.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,EAAE;AACF,qCAAqC;AACrC,sDAAsD;AACtD,EAAE;AACF,oBAAoB;AACpB,qCAAqC;AACrC,MAAM;AACN,EAAE;AACF,8CAA8C;AAC9C,uCAAuC;AACvC,MAAM;AACN,EAAE;AACF,yCAAyC;AACzC,EAAE;AACF,qCAAqC;AACrC,yBAAyB;AACzB,4BAA4B;AAC5B,+BAA+B;AAC/B,uBAAuB;AACvB,uBAAuB;AACvB,SAAS;AACT,EAAE;AACF,+FAA+F;AAC/F,wBAAwB;AACxB,MAAM;AACN,IAAI","sourcesContent":["// import { DataProvider, IDataLayers } from './DataLayerTypes';\n//\n// export class DataProviderManager {\n// private dataLayersProviders: Array<DataProvider>;\n//\n// constructor() {\n// this.dataLayersProviders = [];\n// }\n//\n// public addDataProvider(l: DataProvider) {\n// this.dataLayersProviders.push(l)\n// }\n//\n// public generateData(): IDataLayers {\n//\n// let dataLayer: IDataLayers = {\n// component: null,\n// dependencies: null,\n// vulnerabilities: null,\n// summary: null,\n// licenses: null\n// };\n//\n// for (const layer of this.dataLayersProviders) Object.assign(dataLayer, layer.getData());\n// return dataLayer;\n// }\n// }\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f567145e33b40e1b81a9c2ca19711241595cc15a"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/z.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/z.ts","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/z.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/tests/sdk/FileCount/samples/22036/z.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,wCAAwC;AACxC,4BAA4B;AAC5B,qBAAqB;AACrB,kBAAkB;AAClB,oBAAoB;AACpB,iBAAiB;AACjB,oBAAoB;AACpB,yBAAyB;AACzB,IAAI;AACJ,EAAE;AACF,6BAA6B;AAC7B,qBAAqB;AACrB,wBAAwB;AACxB,4BAA4B;AAC5B,kCAAkC;AAClC,sBAAsB;AACtB,IAAI;AACJ,EAAE;AACF,+BAA+B;AAC/B,kBAAkB;AAClB,oBAAoB;AACpB,KAAK;AACL,EAAE;AACF,kCAAkC;AAClC,uBAAuB;AACvB,sBAAsB;AACtB,KAAK;AACL,EAAE;AACF,6BAA6B;AAC7B,sBAAsB;AACtB,mBAAmB;AACnB,+BAA+B;AAC/B,KAAK;AACL,EAAE;AACF,4BAA4B;AAC5B,2BAA2B;AAC3B,oBAAoB;AACpB,uBAAuB;AACvB,yBAAyB;AACzB,sBAAsB;AACtB,qBAAqB;AACrB,mBAAmB;AACnB,mBAAmB;AACnB,IAAI;AACJ,iEAAiE;AACjE,EAAE;AACF,EAAE;AACF,kEAAkE;AAClE,yCAAyC;AACzC,kBAAkB;AAClB,gCAAgC;AAChC,IAAI;AACJ,EAAE;AACF,6BAA6B;AAC7B,kBAAkB;AAClB,oBAAoB;AACpB,IAAI;AACJ,EAAE;AACF,gCAAgC;AAChC,kBAAkB;AAClB,uBAAuB;AACvB,qBAAqB;AACrB,wBAAwB;AACxB,IAAI;AACJ,kEAAkE;AAClE,EAAE;AACF,qEAAqE;AACrE,mCAAmC;AACnC,gBAAgB;AAChB,iBAAiB;AACjB,iBAAiB;AACjB,qBAAqB;AACrB,sBAAsB;AACtB,uBAAuB;AACvB,sBAAsB;AACtB,oBAAoB;AACpB,IAAI;AACJ,EAAE;AACF,4CAA4C;AAC5C,kBAAkB;AAClB,oCAAoC;AACpC,IAAI;AACJ,qEAAqE;AACrE,EAAE;AACF,EAAE;AACF,+DAA+D;AAC/D,sCAAsC;AACtC,mBAAmB;AACnB,+CAA+C;AAC/C,yCAAyC;AACzC,qCAAqC;AACrC,qCAAqC;AACrC,sBAAsB;AACtB,IAAI;AACJ,EAAE;AACF,EAAE;AACF,sCAAsC;AACtC,kBAAkB;AAClB,kBAAkB;AAClB,6BAA6B;AAC7B,gBAAgB;AAChB,mBAAmB;AACnB,IAAI;AACJ,+DAA+D;AAC/D,EAAE;AACF,sCAAsC;AACtC,yBAAyB;AACzB,qBAAqB;AACrB,0BAA0B;AAC1B,0BAA0B;AAC1B,wBAAwB;AACxB,IAAI;AACJ,EAAE;AACF,4DAA4D;AAC5D,iCAAiC;AACjC,kCAAkC;AAClC,qCAAqC;AACrC,yCAAyC;AACzC,+CAA+C;AAC/C,+BAA+B;AAC/B,IAAI;AACJ,EAAE;AACF,EAAE;AACF,kCAAkC;AAClC,4BAA4B;AAC5B,4BAA4B;AAC5B,IAAI;AACJ,EAAE","sourcesContent":["// /************* Component interface definition *************/\n// export interface ComponentDataLayer {\n// key: string; // purl[0]\n// purls: string[];\n// name: string;\n// vendor: string;\n// url: string;\n// health: Health;\n// versions: Version[];\n// }\n//\n// export interface Version {\n// version: string;\n// licenses: string[]\n// copyrights: Copyright[]\n// cryptography: Cryptography[];\n// quality: Quality;\n// }\n//\n// export interface Copyright {\n// name: string;\n// source: string;\n// };\n//\n// export interface Cryptography {\n// algorithm: string;\n// strength: string;\n// };\n//\n// export interface Quality {\n// scoreAvg: number;\n// count: number;\n// sum: number; //TODO remove\n// };\n//\n// export interface Health {\n// creation_date: string;\n// issues: number;\n// last_push: string;\n// last_update: string;\n// watchers: number;\n// country: string;\n// stars: number;\n// forks: number;\n// }\n// /************* Component interface definition *************/\n//\n//\n// /************* Dependency interface definition *************/\n// export interface DependencyDataLayer {\n// file: string;\n// dependencies: Dependency[];\n// }\n//\n// export interface License {\n// name: string;\n// spdxid: string;\n// }\n//\n// export interface Dependency {\n// purl: string;\n// component: string;\n// version: string;\n// licenses: License[]\n// }\n// /************* Dependency interface definition *************/\n//\n// /************* Vulnerability interface definition *************/\n// export interface Vulnerability {\n// id: string;\n// cve: string;\n// url: string;\n// summary: string;\n// severity: string;\n// published: string;\n// modified: string;\n// source: string;\n// }\n//\n// export interface VulnerabilityDataLayer {\n// purl: string;\n// vulnerability: Vulnerability[];\n// }\n// /************* Vulnerability interface definition *************/\n//\n//\n// /************* License interface definition *************/\n// export interface LicenseDataLayer {\n// label: string;\n// value: number; //Number of licenses found\n// components: Array<LicenseComponent>;\n// incompatibleWith: Array<string>;\n// hasIncompatibles: Array<string>;\n// copyleft:boolean;\n// }\n//\n//\n// export interface LicenseComponent {\n// purl: string;\n// name: string;\n// versions: Array<string>;\n// url:string;\n// vendor:string;\n// }\n// /************* License interface definition *************/\n//\n// export interface SummaryDataLayer {\n// projectName: string;\n// timestamp: Date;\n// matchedFiles: number;\n// noMatchFiles: number;\n// totalFiles: number;\n// }\n//\n// // Each layer is created to group by differents criteria.\n// export interface IDataLayers {\n// licenses: LicenseDataLayer[];\n// component: ComponentDataLayer[];\n// dependencies: DependencyDataLayer[];\n// vulnerabilities: VulnerabilityDataLayer[];\n// summary: SummaryDataLayer;\n// }\n//\n//\n// export interface DataProvider {\n// getData(): IDataLayers;\n// getLayerName(): string;\n// }\n//\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"7f126da8f8fcf0ceba686a049529c1aacfe59dfb"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.ts","statementMap":{"0":{"start":{"line":1,"column":22},"end":{"line":3,"column":1}},"1":{"start":{"line":2,"column":4},"end":{"line":2,"column":62}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":62}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":31}},"4":{"start":{"line":6,"column":13},"end":{"line":6,"column":43}},"5":{"start":{"line":7,"column":25},"end":{"line":7,"column":50}},"6":{"start":{"line":8,"column":24},"end":{"line":8,"column":64}},"7":{"start":{"line":9,"column":21},"end":{"line":9,"column":48}},"8":{"start":{"line":10,"column":23},"end":{"line":10,"column":52}},"9":{"start":{"line":11,"column":29},"end":{"line":11,"column":61}},"10":{"start":{"line":12,"column":22},"end":{"line":12,"column":47}},"11":{"start":{"line":13,"column":21},"end":{"line":391,"column":1}},"12":{"start":{"line":394,"column":8},"end":{"line":394,"column":16}},"13":{"start":{"line":395,"column":8},"end":{"line":395,"column":37}},"14":{"start":{"line":398,"column":8},"end":{"line":398,"column":21}},"15":{"start":{"line":399,"column":8},"end":{"line":399,"column":29}},"16":{"start":{"line":400,"column":8},"end":{"line":400,"column":27}},"17":{"start":{"line":401,"column":8},"end":{"line":401,"column":31}},"18":{"start":{"line":404,"column":8},"end":{"line":404,"column":80}},"19":{"start":{"line":405,"column":8},"end":{"line":408,"column":11}},"20":{"start":{"line":406,"column":12},"end":{"line":406,"column":62}},"21":{"start":{"line":407,"column":12},"end":{"line":407,"column":41}},"22":{"start":{"line":412,"column":22},"end":{"line":412,"column":116}},"23":{"start":{"line":413,"column":8},"end":{"line":427,"column":9}},"24":{"start":{"line":414,"column":37},"end":{"line":414,"column":60}},"25":{"start":{"line":415,"column":20},"end":{"line":415,"column":21}},"26":{"start":{"line":416,"column":12},"end":{"line":418,"column":13}},"27":{"start":{"line":417,"column":16},"end":{"line":417,"column":23}},"28":{"start":{"line":420,"column":12},"end":{"line":423,"column":13}},"29":{"start":{"line":421,"column":16},"end":{"line":421,"column":68}},"30":{"start":{"line":422,"column":16},"end":{"line":422,"column":26}},"31":{"start":{"line":424,"column":12},"end":{"line":424,"column":36}},"32":{"start":{"line":425,"column":12},"end":{"line":426,"column":40}},"33":{"start":{"line":426,"column":16},"end":{"line":426,"column":40}},"34":{"start":{"line":428,"column":8},"end":{"line":428,"column":17}},"35":{"start":{"line":431,"column":8},"end":{"line":431,"column":41}},"36":{"start":{"line":432,"column":8},"end":{"line":432,"column":32}},"37":{"start":{"line":435,"column":28},"end":{"line":435,"column":97}},"38":{"start":{"line":436,"column":8},"end":{"line":436,"column":42}},"39":{"start":{"line":439,"column":8},"end":{"line":442,"column":9}},"40":{"start":{"line":440,"column":12},"end":{"line":440,"column":141}},"41":{"start":{"line":441,"column":12},"end":{"line":441,"column":24}},"42":{"start":{"line":443,"column":21},"end":{"line":443,"column":54}},"43":{"start":{"line":444,"column":30},"end":{"line":444,"column":68}},"44":{"start":{"line":445,"column":24},"end":{"line":445,"column":66}},"45":{"start":{"line":446,"column":8},"end":{"line":446,"column":32}},"46":{"start":{"line":447,"column":8},"end":{"line":448,"column":118}},"47":{"start":{"line":448,"column":12},"end":{"line":448,"column":118}},"48":{"start":{"line":449,"column":26},"end":{"line":449,"column":138}},"49":{"start":{"line":450,"column":8},"end":{"line":450,"column":25}},"50":{"start":{"line":453,"column":8},"end":{"line":454,"column":19}},"51":{"start":{"line":454,"column":12},"end":{"line":454,"column":19}},"52":{"start":{"line":455,"column":30},"end":{"line":455,"column":63}},"53":{"start":{"line":456,"column":8},"end":{"line":462,"column":9}},"54":{"start":{"line":457,"column":12},"end":{"line":457,"column":51}},"55":{"start":{"line":459,"column":12},"end":{"line":459,"column":35}},"56":{"start":{"line":460,"column":12},"end":{"line":460,"column":35}},"57":{"start":{"line":461,"column":12},"end":{"line":461,"column":68}},"58":{"start":{"line":465,"column":8},"end":{"line":466,"column":52}},"59":{"start":{"line":466,"column":12},"end":{"line":466,"column":52}},"60":{"start":{"line":467,"column":8},"end":{"line":467,"column":64}},"61":{"start":{"line":468,"column":8},"end":{"line":468,"column":20}},"62":{"start":{"line":469,"column":8},"end":{"line":469,"column":29}},"63":{"start":{"line":470,"column":8},"end":{"line":471,"column":56}},"64":{"start":{"line":471,"column":12},"end":{"line":471,"column":56}},"65":{"start":{"line":472,"column":8},"end":{"line":472,"column":33}},"66":{"start":{"line":473,"column":8},"end":{"line":473,"column":44}},"67":{"start":{"line":474,"column":8},"end":{"line":474,"column":40}},"68":{"start":{"line":475,"column":8},"end":{"line":475,"column":31}},"69":{"start":{"line":476,"column":8},"end":{"line":476,"column":34}},"70":{"start":{"line":479,"column":8},"end":{"line":479,"column":62}},"71":{"start":{"line":480,"column":8},"end":{"line":480,"column":30}},"72":{"start":{"line":483,"column":8},"end":{"line":483,"column":63}},"73":{"start":{"line":484,"column":8},"end":{"line":484,"column":29}},"74":{"start":{"line":485,"column":8},"end":{"line":485,"column":29}},"75":{"start":{"line":486,"column":8},"end":{"line":486,"column":31}},"76":{"start":{"line":489,"column":8},"end":{"line":489,"column":30}},"77":{"start":{"line":490,"column":8},"end":{"line":490,"column":34}},"78":{"start":{"line":491,"column":8},"end":{"line":491,"column":31}},"79":{"start":{"line":492,"column":8},"end":{"line":492,"column":29}},"80":{"start":{"line":493,"column":8},"end":{"line":493,"column":20}},"81":{"start":{"line":496,"column":0},"end":{"line":496,"column":38}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":56},"end":{"line":1,"column":57}},"loc":{"start":{"line":1,"column":71},"end":{"line":3,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":393,"column":4},"end":{"line":393,"column":5}},"loc":{"start":{"line":393,"column":60},"end":{"line":396,"column":5}},"line":393},"2":{"name":"(anonymous_2)","decl":{"start":{"line":397,"column":4},"end":{"line":397,"column":5}},"loc":{"start":{"line":397,"column":11},"end":{"line":402,"column":5}},"line":397},"3":{"name":"(anonymous_3)","decl":{"start":{"line":403,"column":4},"end":{"line":403,"column":5}},"loc":{"start":{"line":403,"column":20},"end":{"line":409,"column":5}},"line":403},"4":{"name":"(anonymous_4)","decl":{"start":{"line":405,"column":34},"end":{"line":405,"column":35}},"loc":{"start":{"line":405,"column":59},"end":{"line":408,"column":9}},"line":405},"5":{"name":"(anonymous_5)","decl":{"start":{"line":410,"column":4},"end":{"line":410,"column":5}},"loc":{"start":{"line":410,"column":20},"end":{"line":429,"column":5}},"line":410},"6":{"name":"(anonymous_6)","decl":{"start":{"line":430,"column":4},"end":{"line":430,"column":5}},"loc":{"start":{"line":430,"column":22},"end":{"line":433,"column":5}},"line":430},"7":{"name":"(anonymous_7)","decl":{"start":{"line":434,"column":4},"end":{"line":434,"column":5}},"loc":{"start":{"line":434,"column":30},"end":{"line":437,"column":5}},"line":434},"8":{"name":"(anonymous_8)","decl":{"start":{"line":438,"column":4},"end":{"line":438,"column":5}},"loc":{"start":{"line":438,"column":33},"end":{"line":451,"column":5}},"line":438},"9":{"name":"(anonymous_9)","decl":{"start":{"line":452,"column":4},"end":{"line":452,"column":5}},"loc":{"start":{"line":452,"column":28},"end":{"line":463,"column":5}},"line":452},"10":{"name":"(anonymous_10)","decl":{"start":{"line":464,"column":4},"end":{"line":464,"column":5}},"loc":{"start":{"line":464,"column":18},"end":{"line":477,"column":5}},"line":464},"11":{"name":"(anonymous_11)","decl":{"start":{"line":478,"column":4},"end":{"line":478,"column":5}},"loc":{"start":{"line":478,"column":12},"end":{"line":481,"column":5}},"line":478},"12":{"name":"(anonymous_12)","decl":{"start":{"line":482,"column":4},"end":{"line":482,"column":5}},"loc":{"start":{"line":482,"column":13},"end":{"line":487,"column":5}},"line":482},"13":{"name":"(anonymous_13)","decl":{"start":{"line":488,"column":4},"end":{"line":488,"column":5}},"loc":{"start":{"line":488,"column":11},"end":{"line":494,"column":5}},"line":488}},"branchMap":{"0":{"loc":{"start":{"line":1,"column":22},"end":{"line":3,"column":1}},"type":"binary-expr","locations":[{"start":{"line":1,"column":23},"end":{"line":1,"column":27}},{"start":{"line":1,"column":31},"end":{"line":1,"column":51}},{"start":{"line":1,"column":56},"end":{"line":3,"column":1}}],"line":1},"1":{"loc":{"start":{"line":2,"column":11},"end":{"line":2,"column":61}},"type":"cond-expr","locations":[{"start":{"line":2,"column":37},"end":{"line":2,"column":40}},{"start":{"line":2,"column":43},"end":{"line":2,"column":61}}],"line":2},"2":{"loc":{"start":{"line":2,"column":12},"end":{"line":2,"column":33}},"type":"binary-expr","locations":[{"start":{"line":2,"column":12},"end":{"line":2,"column":15}},{"start":{"line":2,"column":19},"end":{"line":2,"column":33}}],"line":2},"3":{"loc":{"start":{"line":393,"column":16},"end":{"line":393,"column":58}},"type":"default-arg","locations":[{"start":{"line":393,"column":29},"end":{"line":393,"column":58}}],"line":393},"4":{"loc":{"start":{"line":413,"column":8},"end":{"line":427,"column":9}},"type":"if","locations":[{"start":{"line":413,"column":8},"end":{"line":427,"column":9}},{"start":{"line":413,"column":8},"end":{"line":427,"column":9}}],"line":413},"5":{"loc":{"start":{"line":416,"column":19},"end":{"line":416,"column":98}},"type":"binary-expr","locations":[{"start":{"line":416,"column":19},"end":{"line":416,"column":36}},{"start":{"line":416,"column":40},"end":{"line":416,"column":98}}],"line":416},"6":{"loc":{"start":{"line":420,"column":12},"end":{"line":423,"column":13}},"type":"if","locations":[{"start":{"line":420,"column":12},"end":{"line":423,"column":13}},{"start":{"line":420,"column":12},"end":{"line":423,"column":13}}],"line":420},"7":{"loc":{"start":{"line":425,"column":12},"end":{"line":426,"column":40}},"type":"if","locations":[{"start":{"line":425,"column":12},"end":{"line":426,"column":40}},{"start":{"line":425,"column":12},"end":{"line":426,"column":40}}],"line":425},"8":{"loc":{"start":{"line":439,"column":8},"end":{"line":442,"column":9}},"type":"if","locations":[{"start":{"line":439,"column":8},"end":{"line":442,"column":9}},{"start":{"line":439,"column":8},"end":{"line":442,"column":9}}],"line":439},"9":{"loc":{"start":{"line":447,"column":8},"end":{"line":448,"column":118}},"type":"if","locations":[{"start":{"line":447,"column":8},"end":{"line":448,"column":118}},{"start":{"line":447,"column":8},"end":{"line":448,"column":118}}],"line":447},"10":{"loc":{"start":{"line":453,"column":8},"end":{"line":454,"column":19}},"type":"if","locations":[{"start":{"line":453,"column":8},"end":{"line":454,"column":19}},{"start":{"line":453,"column":8},"end":{"line":454,"column":19}}],"line":453},"11":{"loc":{"start":{"line":456,"column":8},"end":{"line":462,"column":9}},"type":"if","locations":[{"start":{"line":456,"column":8},"end":{"line":462,"column":9}},{"start":{"line":456,"column":8},"end":{"line":462,"column":9}}],"line":456},"12":{"loc":{"start":{"line":465,"column":8},"end":{"line":466,"column":52}},"type":"if","locations":[{"start":{"line":465,"column":8},"end":{"line":466,"column":52}},{"start":{"line":465,"column":8},"end":{"line":466,"column":52}}],"line":465},"13":{"loc":{"start":{"line":470,"column":8},"end":{"line":471,"column":56}},"type":"if","locations":[{"start":{"line":470,"column":8},"end":{"line":471,"column":56}},{"start":{"line":470,"column":8},"end":{"line":471,"column":56}}],"line":470}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":2,"13":2,"14":4,"15":4,"16":4,"17":4,"18":2,"19":2,"20":2,"21":2,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":2,"36":2,"37":0,"38":0,"39":4,"40":2,"41":2,"42":2,"43":2,"44":2,"45":2,"46":2,"47":0,"48":2,"49":2,"50":4,"51":0,"52":4,"53":4,"54":2,"55":2,"56":2,"57":2,"58":2,"59":0,"60":2,"61":2,"62":2,"63":2,"64":2,"65":2,"66":2,"67":2,"68":2,"69":2,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":1},"f":{"0":1,"1":2,"2":4,"3":2,"4":2,"5":0,"6":2,"7":0,"8":4,"9":4,"10":2,"11":0,"12":0,"13":0},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1],"3":[2],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[2,2],"9":[0,2],"10":[0,4],"11":[2,2],"12":[0,2],"13":[2,0]},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from 'fs';\nimport { Worker } from 'worker_threads';\n\nimport { ScannableItem } from '../../Scannable/ScannableItem';\nimport { ScannerCfg } from '../../ScannerCfg';\nimport { ScannerEvents, ScannerInput, WinnowingMode } from '../../ScannerTypes';\n\nimport { FingerprintPackage } from '../FingerprintPackage';\nimport { IWfpProviderInput, WfpProvider } from '../WfpProvider';\n\nconst stringWorker = `\nconst { parentPort } = require('worker_threads');\n\nparentPort.on('message', async (scannableItem) => {\n\n let fingerprint;\n if ( scannableItem.winnowingMode === \"FULL_WINNOWING\") {\n fingerprint = wfp_for_content(\n scannableItem.content,\n scannableItem.contentSource,\n scannableItem.maxSizeWfp\n );\n } else if (scannableItem.winnowingMode === \"FULL_WINNOWING_HPSM\") {\n fingerprint = wfp_hpsm_for_content(\n scannableItem.content,\n scannableItem.contentSource,\n scannableItem.maxSizeWfp\n );\n } else if (scannableItem.winnowingMode === \"WINNOWING_ONLY_MD5\") {\n fingerprint = wfp_only_md5(\n scannableItem.content,\n scannableItem.contentSource\n );\n }\n\n scannableItem.fingerprint = fingerprint;\n parentPort.postMessage(scannableItem);\n\n });\n\n /**\n * Winnowing and HPSM algorithm begins\n */\n\nconst crypto = require('crypto');\nconst isWin = process.platform === 'win32';\nconst pathSeparator = isWin ? String.fromCharCode(92) : '/';\n\n// Winnowing configuration. DO NOT CHANGE.\nconst GRAM = 30;\nconst WINDOW = 64;\n\n// ASCII characters\nconst ASCII_0 = 48;\nconst ASCII_9 = 57;\nconst ASCII_A = 65;\nconst ASCII_Z = 90;\nconst ASCII_a = 97;\nconst ASCII_z = 122;\nconst ASCII_LF = 10;\n\nfunction normalize(byte) {\n if (byte < ASCII_0 || byte > ASCII_z) {\n return 0;\n }\n if (byte <= ASCII_9 || byte >= ASCII_a) {\n return byte;\n }\n if (byte >= ASCII_A && byte <= ASCII_Z) {\n return byte + 32;\n }\n return 0;\n}\n\nfunction min_hex_array(array) {\n let min = 'ffffffff';\n for (let i = 0; i < array.length; i++) {\n if (array[i] < min) {\n min = array[i];\n }\n }\n return min;\n}\n\nfunction calc_wfp(contents, maxSize) {\n let gram = '';\n const window = [];\n let normalized = 0;\n let line = 1;\n let min_hash = 'ffffffff';\n let last_hash = 'ffffffff';\n let last_line = 0;\n let output = '';\n let gram_crc32 = 0;\n let wfp = '';\n\n for (let i = 0; i < contents.length; i++) {\n if(wfp.length > maxSize)\n return wfp;\n\n const byte = contents[i];\n if (byte == ASCII_LF) {\n line += 1;\n normalized = 0;\n } else {\n normalized = normalize(byte);\n }\n // Is this an useful byte?\n if (normalized) {\n gram += String.fromCharCode(normalized);\n\n if (gram.length >= GRAM) {\n gram_crc32 = crc32c_hex(gram);\n window.push(gram_crc32);\n\n if (window.length >= WINDOW) {\n min_hash = min_hex_array(window);\n if (min_hash !== last_hash) {\n // Hashing the hash will result in a better balanced output data set\n // as it will counter the winnowing effect which selects the \"minimum\"\n // hash in each window\n const min_hash_bytes_le = parseHexString(\n toLittleEndianCRCHex(min_hash)\n );\n const crc_hex = crc32c_for_bytes_hex(min_hash_bytes_le);\n\n if (last_line != line) {\n if (output.length > 0) {\n wfp += String(output) + String.fromCharCode(10);\n }\n output = String(line) + '=' + String(crc_hex);\n } else {\n output += ',' + String(crc_hex);\n }\n last_line = line;\n last_hash = min_hash;\n }\n window.shift();\n }\n gram = gram.slice(1);\n }\n }\n }\n if (output.length > 0) {\n wfp += String(output) + String.fromCharCode(10);\n }\n\n return wfp;\n}\n\nfunction parseHexString(str) {\n const result = [];\n while (str.length >= 2) {\n result.push(parseInt(str.substring(0, 2), 16));\n str = str.substring(2, str.length);\n }\n\n return result;\n}\n\n/**\n *\n * @param {string} hex\n */\nfunction toLittleEndianCRCHex(hex) {\n return (\n hex.charAt(6) +\n hex.charAt(7) +\n hex.charAt(4) +\n hex.charAt(5) +\n hex.charAt(2) +\n hex.charAt(3) +\n hex.charAt(0) +\n hex.charAt(1)\n );\n}\n\nlet CRC_TABLE = [];\n\nfunction makeCRCTable() {\n let c;\n const crcTable = [];\n for (let n = 0; n < 256; n++) {\n c = n;\n for (let k = 0; k < 8; k++) {\n c = c & 1 ? 0x82f63b78 ^ (c >>> 1) : c >>> 1;\n }\n crcTable[n] = c;\n }\n return crcTable;\n}\n\nfunction crc32c(str) {\n if (CRC_TABLE.length == 0) {\n CRC_TABLE = makeCRCTable();\n }\n let crc = 0 ^ -1;\n\n for (let i = 0; i < str.length; i++) {\n crc = (crc >>> 8) ^ CRC_TABLE[(crc ^ str.charCodeAt(i)) & 0xff];\n }\n\n return (crc ^ -1) >>> 0;\n}\n\nfunction crc32c_for_bytes(bytes) {\n if (CRC_TABLE.length == 0) {\n CRC_TABLE = makeCRCTable();\n }\n let crc = 0 ^ -1;\n\n for (let i = 0; i < bytes.length; i++) {\n crc = (crc >>> 8) ^ CRC_TABLE[(crc ^ bytes[i]) & 0xff];\n }\n\n return (crc ^ -1) >>> 0;\n}\n\nfunction crc32c_for_bytes_hex(bytes) {\n return crc32c_for_bytes(bytes).toString(16).padStart(8, '0');\n}\n\nfunction crc32c_hex(str) {\n return crc32c(str).toString(16).padStart(8, '0');\n}\n\nfunction truncate_string(input, maxSize){\n return input.slice(0, maxSize)\n}\n\nfunction toHexString(byteArray) {\n return Array.from(byteArray, function(byte) {\n return ('0' + (byte & 0xFF).toString(16)).slice(-2);\n }).join('')\n}\n\nfunction calc_hpsm(content) {\n let list_normalized = []; //Array of numbers\n let crc_lines = []; //Array of numbers that represent the crc8_maxim for each line of the file\n\n let last_line = 0;\n crc8_MAXIM_DOW_GenerateTable();\n\n for(let i = 0; i<content.length; i++) {\n const c = content[i];\n if (c == ASCII_LF) { //When there is a new line\n if (list_normalized.length) {\n crc_lines.push(crc8_MAXIM_DOW_Buffer(list_normalized))\n list_normalized=[];\n } else if(last_line+1 == i) {\n crc_lines.push(0xFF);\n } else if (i-last_line > 1) {\n crc_lines.push(0x00)\n }\n last_line = i;\n } else {\n const c_normalized = normalize(c);\n if (c_normalized != 0) list_normalized.push(c_normalized)\n }\n }\n return \"hpsm=\" + toHexString(crc_lines)\n}\n\n\n/**\n * Create a wfp_hpsm package joining wfp (with md5 line) and a hpsm.\n *\n * Example:\n * wfp = file=508cb9dfbe1c7dca5ed24f124473f33d,300,asd.c\n * 11=b19bdbfa\n *\n * hpsm = hpsm=1909ff06ff688630ff45a92b52f47eff3500ffff\n *\n * wfp_hpsm = file=508cb9dfbe1c7dca5ed24f124473f33d,300,asd.c\n * hpsm=1909ff06ff688630ff45a92b52f47eff3500ffff\n * 11=b19bdbfa\n *\n * @param {string} wfp Complete wfp string (with md5 line)\n * @param {string} hpsm\n * @returns {string}\n */\nfunction join_wfp_hpsm(wfp, hpsm) {\n let header = wfp.match(/file=.*/);\n header += String.fromCharCode(10);\n header += hpsm;\n wfp = wfp.replace(/file=.*/, \"\")\n return header + wfp;\n}\n\n/**\n *\n * @param {Buffer} content\n * @param {string} contentSource\n * @param {number} maxSize\n * @returns {string}\n */\nfunction wfp_hpsm_for_content(content, contentSource, maxSize) {\n let wfp = wfp_for_content(content, contentSource, maxSize)\n let hpsm = calc_hpsm(content) //Returns a string\n let wfp_hpsm_joined = join_wfp_hpsm(wfp, hpsm)\n return truncate_string(wfp_hpsm_joined, maxSize)\n}\n\nfunction wfp_for_content(content, contentSource, maxSize) {\n let wfp = wfp_only_md5(content, contentSource);\n wfp += calc_wfp(content, maxSize);\n return wfp;\n}\n\nfunction wfp_only_md5(contents, contentSource) {\n const file_md5 = crypto.createHash('md5').update(contents).digest('hex');\n let wfp = 'file=' + String(file_md5) + ',' + String(contents.length) + ',' + String(contentSource)+ String.fromCharCode(10);\n return wfp;\n}\n\n/**\n* CRC8_MAXIM algorithm begins\n*/\n\n\n//=============================================================================\n// Implementation of CRC-8/MAXIM-DOW,CRC-8/MAXIM,DOW-CRC.\n// Notes: Code ported from C Auto-generated by http://crc.drque.net/\n//=============================================================================\n\n//Table size\nconst CRC8_MAXIM_DOW_TABLE_SIZE = 0x100\nconst CRC8_MAXIM_DOW_POLYNOMIAL = 0x8C // 0x31 reflected\nconst CRC8_MAXIM_DOW_INITIAL = 0x00 // 0x00 reflected\nconst CRC8_MAXIM_DOW_FINAL = 0x00 // 0x00 reflected\n\nlet crc8_MAXIM_DOW_Table = []\n\n/**\n * Compute CRC of byte without lookup tables.\n *\n * @param {number} crc Current CRC or initial value\n * @param {number} byte New byte to accumulate.\n * @returns {number} Updated CRC.\n */\nfunction crc8_MAXIM_DOW_ByteNoTable(crc, byte) {\n crc ^= byte;\n for (let count = 0; count<8; count++) {\n const isSet = (crc & 0x01)\n crc >>= 1;\n if (isSet) crc ^= CRC8_MAXIM_DOW_POLYNOMIAL\n }\n return crc\n}\n\n/**\n * Create the lookup table.\n * Note: Must be called before any table based CRC calculations can be done.\n */\nfunction crc8_MAXIM_DOW_GenerateTable() {\n for(let i = 0; i<CRC8_MAXIM_DOW_TABLE_SIZE; i++) {\n crc8_MAXIM_DOW_Table.push(crc8_MAXIM_DOW_ByteNoTable(0, i))\n }\n}\n\n/**\n * Update CRC by byte.\n *\n * @param {number} crc Initial CRC.\n * @param {number} byte New byte to accumulate.\n * @returns {number} Updated CRC.\n */\nfunction crc8_MAXIM_DOW_Byte( crc, byte )\n{\n const index = byte ^ crc;\n return crc8_MAXIM_DOW_Table[ index ] ^ ( crc >> 8 );\n}\n\n/**\n * Compute CRC of buffer.\n * Note: crc8_MAXIM_DOW_GenerateTable() must be called before use this function\n *\n * @param {Buffer} buffer Buffer with bytes to calculate CRC.\n * @returns {number} CRC\n */\nfunction crc8_MAXIM_DOW_Buffer(buffer) {\n let crc = CRC8_MAXIM_DOW_INITIAL;\n for (let index = 0; index < buffer.length ; index ++) {\n crc = crc8_MAXIM_DOW_Byte(crc, buffer[index])\n }\n crc ^= CRC8_MAXIM_DOW_FINAL;\n return crc;\n}\n`;\n\nexport class WfpCalculator extends WfpProvider {\n private fileList: any;\n\n private fileListIndex: number;\n\n private continue: boolean;\n\n constructor(scannerCfg = new ScannerCfg()) {\n super();\n this.scannerCfg = scannerCfg;\n }\n\n init() {\n super.init();\n this.continue = true;\n this.fileList = [];\n this.fileListIndex = 0;\n }\n\n prepareWorker() {\n this.worker = new Worker(stringWorker, { eval: true });\n this.worker.on('message', async (scannableItem) => {\n this.fingerprintPacker(scannableItem.fingerprint);\n await this.nextStepMachine();\n });\n }\n\n recoveryIndex() {\n // Files: contains all files winnowed but not packed yet\n const files = new FingerprintPackage(this.wfp, this.folderRoot).getFilesFingerprinted();\n if (files.length) {\n const lastFileWinnowed = files[files.length - 1];\n let i = 0;\n while (i <= files.length && lastFileWinnowed !== this.fileList[this.fileListIndex - i]) {\n i += 1;\n }\n // If file already winnowed cannot be found in fileList emit an error.\n if (i > files.length) {\n this.sendError('Cannot recovery index on winnower');\n return -1;\n }\n this.fileListIndex -= i;\n if (this.fileList[this.fileListIndex] === lastFileWinnowed) this.fileListIndex += 1;\n }\n return 0;\n }\n\n forceStopWorker() {\n this.worker.removeAllListeners();\n this.worker.terminate();\n }\n\n protected processPackedWfp(content) {\n const fingerprint = new FingerprintPackage(content, this.folderRoot);\n this.sendFingerprint(fingerprint);\n }\n\n async getNextScannableItem() {\n if (this.fileListIndex >= this.fileList.length) {\n this.emit(ScannerEvents.WINNOWING_STATUS, (this.fileListIndex) % this.scannerCfg.WINNOWING_REPORT_STATUS_AFTER_X)\n return null;\n }\n const path = this.fileList[this.fileListIndex];\n const contentSource = path.replace(`${this.folderRoot}`, '');\n const content = await fs.promises.readFile(path);\n this.fileListIndex += 1;\n if (!(this.fileListIndex % this.scannerCfg.WINNOWING_REPORT_STATUS_AFTER_X))\n this.emit(ScannerEvents.WINNOWING_STATUS, this.scannerCfg.WINNOWING_REPORT_STATUS_AFTER_X);\n\n const scannable = new ScannableItem(content, contentSource, this.winnowingMode, this.scannerCfg.WFP_FILE_MAX_SIZE);\n return scannable;\n }\n\n async nextStepMachine() {\n if (!this.continue) return;\n const scannableItem = await this.getNextScannableItem();\n if (scannableItem) this.worker.postMessage(scannableItem);\n else {\n this.finishWinnowing();\n this.forceStopWorker();\n this.sendLog('[ SCANNER ]: WFP Calculator finished...');\n }\n }\n\n\n public start(params: IWfpProviderInput): Promise<void> {\n\n if(!params.fileList) this.sendError('File list is required');\n this.sendLog('[ SCANNER ]: WFP Calculator starting...');\n\n this.init();\n this.prepareWorker();\n\n if(params.winnowingMode) this.setWinnowingMode(params.winnowingMode);\n this.pendingFiles = true;\n this.folderRoot = params.folderRoot;\n this.fileList = params.fileList;\n this.nextStepMachine();\n\n return this.finishPromise;\n }\n\n\n\n\n public pause(): void {\n this.sendLog('[ SCANNER ]: WFP Calculator paused...')\n this.continue = false;\n }\n\n public resume(): void {\n this.sendLog('[ SCANNER ]: WFP Calculator resumed...')\n this.continue = true;\n this.recoveryIndex();\n this.nextStepMachine();\n }\n\n public stop(): void {\n this.continue = false;\n this.pendingFiles = false;\n this.forceStopWorker();\n this.prepareWorker();\n this.init();\n }\n\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"694fbbbadb006a719180bd0744e4fa1ec52ac7dc"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/Scannable/ScannableItem.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/Scannable/ScannableItem.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":62}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":31}},"2":{"start":{"line":5,"column":8},"end":{"line":5,"column":43}},"3":{"start":{"line":6,"column":8},"end":{"line":6,"column":31}},"4":{"start":{"line":7,"column":8},"end":{"line":7,"column":43}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":37}},"6":{"start":{"line":11,"column":8},"end":{"line":11,"column":28}},"7":{"start":{"line":14,"column":8},"end":{"line":14,"column":34}},"8":{"start":{"line":17,"column":8},"end":{"line":17,"column":32}},"9":{"start":{"line":20,"column":8},"end":{"line":20,"column":34}},"10":{"start":{"line":23,"column":8},"end":{"line":23,"column":31}},"11":{"start":{"line":26,"column":0},"end":{"line":26,"column":38}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":4},"end":{"line":4,"column":5}},"loc":{"start":{"line":4,"column":67},"end":{"line":9,"column":5}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":17},"end":{"line":12,"column":5}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":23},"end":{"line":15,"column":5}},"line":13},"3":{"name":"(anonymous_3)","decl":{"start":{"line":16,"column":4},"end":{"line":16,"column":5}},"loc":{"start":{"line":16,"column":21},"end":{"line":18,"column":5}},"line":16},"4":{"name":"(anonymous_4)","decl":{"start":{"line":19,"column":4},"end":{"line":19,"column":5}},"loc":{"start":{"line":19,"column":23},"end":{"line":21,"column":5}},"line":19},"5":{"name":"(anonymous_5)","decl":{"start":{"line":22,"column":4},"end":{"line":22,"column":5}},"loc":{"start":{"line":22,"column":20},"end":{"line":24,"column":5}},"line":22}},"branchMap":{},"s":{"0":1,"1":1,"2":2,"3":2,"4":2,"5":2,"6":0,"7":0,"8":0,"9":0,"10":0,"11":1},"f":{"0":2,"1":0,"2":0,"3":0,"4":0,"5":0},"b":{},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/Scannable/ScannableItem.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/Scannable/ScannableItem.ts"],"names":[],"mappings":";;AAGA,MAAa,aAAa;IAWxB,YAAY,OAAe,EAAE,aAAqB,EAAE,aAAkB,EAAE,UAAkB;QACxF,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEM,gBAAgB;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEM,gBAAgB;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAEM,aAAa;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CAGF;AAvCD,sCAuCC","sourcesContent":["import { WinnowingMode } from \"../ScannerTypes\";\n\n\nexport class ScannableItem {\n private contentSource: string;\n\n private content: Buffer;\n\n private winnowingMode: WinnowingMode;\n\n private fingerprint: any;\n\n private maxSizeWfp: any;\n\n constructor(content: Buffer, contentSource: string, winnowingMode: any, maxSizeWfp: number) {\n this.contentSource = contentSource;\n this.content = content;\n this.winnowingMode = winnowingMode;\n this.maxSizeWfp = maxSizeWfp;\n }\n\n public getContent() {\n return this.content;\n }\n\n public getContentSource() {\n return this.contentSource;\n }\n\n public getFingerprint() {\n return this.fingerprint;\n }\n\n public getWinnowingMode(): WinnowingMode {\n return this.winnowingMode;\n }\n\n public getMaxSizeWfp() {\n return this.maxSizeWfp;\n }\n\n\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0ef558b51b0afd0e18e6833d2afe7274d990995e"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/ScannerCfg.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/ScannerCfg.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":62}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":28}},"2":{"start":{"line":6,"column":8},"end":{"line":6,"column":35}},"3":{"start":{"line":8,"column":8},"end":{"line":8,"column":59}},"4":{"start":{"line":9,"column":8},"end":{"line":9,"column":26}},"5":{"start":{"line":10,"column":8},"end":{"line":10,"column":26}},"6":{"start":{"line":11,"column":8},"end":{"line":11,"column":24}},"7":{"start":{"line":13,"column":8},"end":{"line":13,"column":40}},"8":{"start":{"line":15,"column":8},"end":{"line":15,"column":36}},"9":{"start":{"line":17,"column":8},"end":{"line":17,"column":29}},"10":{"start":{"line":19,"column":8},"end":{"line":19,"column":43}},"11":{"start":{"line":22,"column":8},"end":{"line":22,"column":50}},"12":{"start":{"line":23,"column":8},"end":{"line":23,"column":53}},"13":{"start":{"line":24,"column":8},"end":{"line":24,"column":41}},"14":{"start":{"line":26,"column":8},"end":{"line":26,"column":43}},"15":{"start":{"line":27,"column":8},"end":{"line":27,"column":51}},"16":{"start":{"line":28,"column":8},"end":{"line":28,"column":51}},"17":{"start":{"line":31,"column":0},"end":{"line":31,"column":32}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":4},"end":{"line":4,"column":5}},"loc":{"start":{"line":4,"column":18},"end":{"line":29,"column":5}},"line":4}},"branchMap":{},"s":{"0":1,"1":1,"2":3,"3":3,"4":3,"5":3,"6":3,"7":3,"8":3,"9":3,"10":3,"11":3,"12":3,"13":3,"14":3,"15":3,"16":3,"17":1},"f":{"0":3},"b":{},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/ScannerCfg.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/ScannerCfg.ts"],"names":[],"mappings":";;AAAA,MAAa,UAAU;IAAvB;QACE,2DAA2D;QAC3D,qBAAgB,GAAG,EAAE,CAAA;QAErB,UAAU;QACV,YAAO,GAAG,mCAAmC,CAAC;QAE9C,YAAO,GAAG,EAAE,CAAC;QAEb,YAAO,GAAG,EAAE,CAAC;QAEb,UAAK,GAAG,EAAE,CAAC;QAEX,gDAAgD;QAChD,uBAAkB,GAAG,KAAK,CAAC;QAE3B,uBAAuB;QACvB,sBAAiB,GAAG,EAAE,CAAC;QAEvB,+BAA+B;QAC/B,YAAO,GAAG,KAAK,CAAC;QAEhB,sCAAsC;QACtC,sBAAiB,GAAG,EAAE,GAAG,IAAI,CAAC;QAE9B,0DAA0D;QAC1D,8EAA8E;QAC9E,oCAA+B,GAAG,EAAE,CAAC;QAErC,wCAAmC,GAAG,CAAC,CAAC;QAExC,yBAAoB,GAAG,IAAI,CAAC;QAE5B,+CAA+C;QAC/C,4BAAuB,GAAG,GAAG,CAAC;QAE9B,oCAA+B,GAAG,GAAG,CAAC;QAEtC,oCAA+B,GAAG,GAAG,CAAC;IAIxC,CAAC;CAAA;AA1CD,gCA0CC;AAAA,CAAC","sourcesContent":["export class ScannerCfg {\n // Client Timestamp, default value is scanoss-js/${version}\n CLIENT_TIMESTAMP = \"\"\n\n // API URL\n API_URL = 'https://osskb.org/api/scan/direct';\n\n API_KEY = '';\n\n CA_CERT = '';\n\n PROXY = '';\n\n //Set to true to ignore self certificates issues\n IGNORE_CERT_ERRORS = false;\n\n // Level of concurrency\n CONCURRENCY_LIMIT = 15;\n\n // Timeout for each transaction\n TIMEOUT = 60000;\n\n // The maximum size for each .wfp file\n WFP_FILE_MAX_SIZE = 64 * 1000;\n\n //After processing #WINNOWING_AFTER_X_REPORT_STATUS files,\n // the winnowing algorithm will report a ScannerEvents.WINNOWING_STATUS event.\n WINNOWING_REPORT_STATUS_AFTER_X = 10;\n\n MAX_RETRIES_FOR_RECOVERABLES_ERRORS = 5;\n\n ABORT_ON_MAX_RETRIES = true;\n\n // Persist results after [ X ] server responses\n MAX_RESPONSES_IN_BUFFER = 300;\n\n DISPATCHER_QUEUE_SIZE_MAX_LIMIT = 300;\n\n DISPATCHER_QUEUE_SIZE_MIN_LIMIT = 200;\n\n\n\n};\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"5137e83c408da1a3ae8f9f6c9a6d5318447e42b1"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/WfpProvider/FingerprintPackage.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/WfpProvider/FingerprintPackage.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":62}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":36}},"2":{"start":{"line":5,"column":8},"end":{"line":5,"column":37}},"3":{"start":{"line":6,"column":8},"end":{"line":6,"column":33}},"4":{"start":{"line":9,"column":8},"end":{"line":9,"column":69}},"5":{"start":{"line":12,"column":8},"end":{"line":12,"column":31}},"6":{"start":{"line":15,"column":22},"end":{"line":15,"column":55}},"7":{"start":{"line":16,"column":8},"end":{"line":17,"column":21}},"8":{"start":{"line":17,"column":12},"end":{"line":17,"column":21}},"9":{"start":{"line":18,"column":8},"end":{"line":18,"column":28}},"10":{"start":{"line":21,"column":22},"end":{"line":21,"column":24}},"11":{"start":{"line":22,"column":23},"end":{"line":22,"column":47}},"12":{"start":{"line":25,"column":8},"end":{"line":26,"column":50}},"13":{"start":{"line":26,"column":12},"end":{"line":26,"column":50}},"14":{"start":{"line":27,"column":8},"end":{"line":27,"column":27}},"15":{"start":{"line":30,"column":0},"end":{"line":30,"column":48}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":4},"end":{"line":4,"column":5}},"loc":{"start":{"line":4,"column":43},"end":{"line":7,"column":5}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":32},"end":{"line":10,"column":5}},"line":8},"2":{"name":"(anonymous_2)","decl":{"start":{"line":11,"column":4},"end":{"line":11,"column":5}},"loc":{"start":{"line":11,"column":17},"end":{"line":13,"column":5}},"line":11},"3":{"name":"(anonymous_3)","decl":{"start":{"line":14,"column":4},"end":{"line":14,"column":5}},"loc":{"start":{"line":14,"column":34},"end":{"line":19,"column":5}},"line":14},"4":{"name":"(anonymous_4)","decl":{"start":{"line":20,"column":4},"end":{"line":20,"column":5}},"loc":{"start":{"line":20,"column":28},"end":{"line":28,"column":5}},"line":20}},"branchMap":{"0":{"loc":{"start":{"line":4,"column":28},"end":{"line":4,"column":41}},"type":"default-arg","locations":[{"start":{"line":4,"column":39},"end":{"line":4,"column":41}}],"line":4},"1":{"loc":{"start":{"line":16,"column":8},"end":{"line":17,"column":21}},"type":"if","locations":[{"start":{"line":16,"column":8},"end":{"line":17,"column":21}},{"start":{"line":16,"column":8},"end":{"line":17,"column":21}}],"line":16},"2":{"loc":{"start":{"line":27,"column":15},"end":{"line":27,"column":26}},"type":"binary-expr","locations":[{"start":{"line":27,"column":15},"end":{"line":27,"column":20}},{"start":{"line":27,"column":24},"end":{"line":27,"column":26}}],"line":27}},"s":{"0":1,"1":1,"2":3,"3":3,"4":0,"5":2,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":1},"f":{"0":3,"1":0,"2":2,"3":0,"4":0},"b":{"0":[0],"1":[0,0],"2":[0,0]},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/WfpProvider/FingerprintPackage.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/WfpProvider/FingerprintPackage.ts"],"names":[],"mappings":";;AAAA,MAAa,kBAAkB;IAK7B,YAAY,UAAkB,EAAE,QAAQ,GAAG,EAAE;QAC3C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEM,OAAO,CAAC,kBAAsC;QACnD,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,kBAAkB,CAAC,UAAU,EAAE,CAAC;IAC/D,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAEM,2BAA2B;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAG,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC;QACpB,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IAEM,qBAAqB;QAC1B,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC;QACX,0CAA0C;QAC1C,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,OAAO,KAAK,IAAI,EAAE,CAAC;IACrB,CAAC;CACF;AAhCD,gDAgCC","sourcesContent":["export class FingerprintPackage {\n private wfpContent: string;\n\n private scanRoot: string;\n\n constructor(wfpContent: string, scanRoot = '') {\n this.wfpContent = wfpContent;\n this.scanRoot = scanRoot;\n }\n\n public isEqual(fingerprintPackage: FingerprintPackage): boolean {\n return this.getContent() === fingerprintPackage.getContent();\n }\n\n public getContent(): string {\n return this.wfpContent;\n }\n\n public getNumberFilesFingerprinted() {\n const match = this.getContent().match(/file=/g);\n if(!match) return 0;\n return match.length;\n }\n\n public getFilesFingerprinted() {\n const files = [];\n const regExp = new RegExp(/,(.?\\/.*)/g);\n let result;\n // eslint-disable-next-line no-cond-assign\n while ((result = regExp.exec(this.wfpContent))) files.push(this.scanRoot + result[1]);\n return files || '';\n }\n}\n\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a655dd6324092398fc4c2eccd3bd1dde8688052d"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/WfpProvider/WfpProvider.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/WfpProvider/WfpProvider.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":62}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":29}},"2":{"start":{"line":3,"column":17},"end":{"line":3,"column":34}},"3":{"start":{"line":4,"column":23},"end":{"line":4,"column":49}},"4":{"start":{"line":5,"column":29},"end":{"line":5,"column":60}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":22}},"6":{"start":{"line":9,"column":8},"end":{"line":9,"column":29}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":34}},"8":{"start":{"line":11,"column":8},"end":{"line":11,"column":73}},"9":{"start":{"line":12,"column":8},"end":{"line":15,"column":11}},"10":{"start":{"line":13,"column":12},"end":{"line":13,"column":48}},"11":{"start":{"line":14,"column":12},"end":{"line":14,"column":46}},"12":{"start":{"line":20,"column":8},"end":{"line":33,"column":9}},"13":{"start":{"line":21,"column":40},"end":{"line":21,"column":73}},"14":{"start":{"line":22,"column":41},"end":{"line":22,"column":45}},"15":{"start":{"line":23,"column":12},"end":{"line":27,"column":13}},"16":{"start":{"line":24,"column":16},"end":{"line":25,"column":51}},"17":{"start":{"line":25,"column":20},"end":{"line":25,"column":51}},"18":{"start":{"line":26,"column":16},"end":{"line":26,"column":43}},"19":{"start":{"line":28,"column":12},"end":{"line":28,"column":39}},"20":{"start":{"line":30,"column":12},"end":{"line":30,"column":74}},"21":{"start":{"line":32,"column":12},"end":{"line":32,"column":32}},"22":{"start":{"line":34,"column":8},"end":{"line":37,"column":9}},"23":{"start":{"line":35,"column":12},"end":{"line":35,"column":105}},"24":{"start":{"line":36,"column":12},"end":{"line":36,"column":26}},"25":{"start":{"line":38,"column":8},"end":{"line":38,"column":32}},"26":{"start":{"line":39,"column":8},"end":{"line":40,"column":25}},"27":{"start":{"line":40,"column":12},"end":{"line":40,"column":25}},"28":{"start":{"line":41,"column":8},"end":{"line":41,"column":20}},"29":{"start":{"line":44,"column":8},"end":{"line":45,"column":105}},"30":{"start":{"line":45,"column":12},"end":{"line":45,"column":105}},"31":{"start":{"line":46,"column":8},"end":{"line":46,"column":34}},"32":{"start":{"line":47,"column":8},"end":{"line":47,"column":67}},"33":{"start":{"line":48,"column":8},"end":{"line":48,"column":36}},"34":{"start":{"line":51,"column":8},"end":{"line":51,"column":90}},"35":{"start":{"line":54,"column":8},"end":{"line":54,"column":69}},"36":{"start":{"line":57,"column":8},"end":{"line":57,"column":75}},"37":{"start":{"line":58,"column":8},"end":{"line":58,"column":35}},"38":{"start":{"line":61,"column":8},"end":{"line":61,"column":34}},"39":{"start":{"line":64,"column":8},"end":{"line":64,"column":33}},"40":{"start":{"line":67,"column":0},"end":{"line":67,"column":34}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":11},"end":{"line":16,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":41},"end":{"line":12,"column":42}},"loc":{"start":{"line":12,"column":62},"end":{"line":15,"column":9}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":18,"column":4},"end":{"line":18,"column":5}},"loc":{"start":{"line":18,"column":35},"end":{"line":42,"column":5}},"line":18},"3":{"name":"(anonymous_3)","decl":{"start":{"line":43,"column":4},"end":{"line":43,"column":5}},"loc":{"start":{"line":43,"column":22},"end":{"line":49,"column":5}},"line":43},"4":{"name":"(anonymous_4)","decl":{"start":{"line":50,"column":4},"end":{"line":50,"column":5}},"loc":{"start":{"line":50,"column":40},"end":{"line":52,"column":5}},"line":50},"5":{"name":"(anonymous_5)","decl":{"start":{"line":53,"column":4},"end":{"line":53,"column":5}},"loc":{"start":{"line":53,"column":20},"end":{"line":55,"column":5}},"line":53},"6":{"name":"(anonymous_6)","decl":{"start":{"line":56,"column":4},"end":{"line":56,"column":5}},"loc":{"start":{"line":56,"column":24},"end":{"line":59,"column":5}},"line":56},"7":{"name":"(anonymous_7)","decl":{"start":{"line":60,"column":4},"end":{"line":60,"column":5}},"loc":{"start":{"line":60,"column":27},"end":{"line":62,"column":5}},"line":60},"8":{"name":"(anonymous_8)","decl":{"start":{"line":63,"column":4},"end":{"line":63,"column":5}},"loc":{"start":{"line":63,"column":22},"end":{"line":65,"column":5}},"line":63}},"branchMap":{"0":{"loc":{"start":{"line":20,"column":8},"end":{"line":33,"column":9}},"type":"if","locations":[{"start":{"line":20,"column":8},"end":{"line":33,"column":9}},{"start":{"line":20,"column":8},"end":{"line":33,"column":9}}],"line":20},"1":{"loc":{"start":{"line":24,"column":16},"end":{"line":25,"column":51}},"type":"if","locations":[{"start":{"line":24,"column":16},"end":{"line":25,"column":51}},{"start":{"line":24,"column":16},"end":{"line":25,"column":51}}],"line":24},"2":{"loc":{"start":{"line":34,"column":8},"end":{"line":37,"column":9}},"type":"if","locations":[{"start":{"line":34,"column":8},"end":{"line":37,"column":9}},{"start":{"line":34,"column":8},"end":{"line":37,"column":9}}],"line":34},"3":{"loc":{"start":{"line":34,"column":12},"end":{"line":34,"column":108}},"type":"binary-expr","locations":[{"start":{"line":34,"column":12},"end":{"line":34,"column":85}},{"start":{"line":34,"column":89},"end":{"line":34,"column":108}}],"line":34},"4":{"loc":{"start":{"line":39,"column":8},"end":{"line":40,"column":25}},"type":"if","locations":[{"start":{"line":39,"column":8},"end":{"line":40,"column":25}},{"start":{"line":39,"column":8},"end":{"line":40,"column":25}}],"line":39},"5":{"loc":{"start":{"line":44,"column":8},"end":{"line":45,"column":105}},"type":"if","locations":[{"start":{"line":44,"column":8},"end":{"line":45,"column":105}},{"start":{"line":44,"column":8},"end":{"line":45,"column":105}}],"line":44}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":5,"6":5,"7":5,"8":5,"9":5,"10":5,"11":5,"12":8,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":8,"23":0,"24":0,"25":8,"26":8,"27":5,"28":3,"29":3,"30":3,"31":3,"32":3,"33":3,"34":3,"35":6,"36":0,"37":0,"38":2,"39":0,"40":1},"f":{"0":5,"1":5,"2":8,"3":3,"4":3,"5":6,"6":0,"7":2,"8":0},"b":{"0":[0,8],"1":[0,0],"2":[0,8],"3":[8,0],"4":[5,3],"5":[3,0]},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/WfpProvider/WfpProvider.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/WfpProvider/WfpProvider.ts"],"names":[],"mappings":"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","sourcesContent":["import { Worker } from 'worker_threads';\nimport { EventEmitter } from \"stream\";\nimport { ScannerCfg } from \"../ScannerCfg\";\nimport { ScannerEvents, WinnowingMode } from \"../ScannerTypes\";\nimport { FingerprintPackage } from \"./FingerprintPackage\";\n\n\nexport interface IWfpProviderInput {\n wfpPath?: string;\n folderRoot?: string; //This string is being removed from the fingerprint results paths\n fileList?: Array<string>;\n winnowingMode?: WinnowingMode; // Enable winnowing algorithm, otherwise is scanned only MD5\n}\n\nexport abstract class WfpProvider extends EventEmitter {\n\n protected wfp: string;\n protected scannerCfg: ScannerCfg;\n protected folderRoot: string;\n protected worker: Worker;\n protected pendingFiles: boolean;\n protected winnowingMode: WinnowingMode;\n protected finishPromise: Promise<void>;\n\n //Allow resolve or reject the promise returned in start call\n protected finishPromiseResolve: (value?: void | PromiseLike<void>) => void;\n protected finishPromiseReject: (value?: void | PromiseLike<void>) => void;\n\n protected init(): void {\n this.wfp = '';\n this.folderRoot = '';\n this.pendingFiles = false;\n this.winnowingMode = WinnowingMode.FULL_WINNOWING;\n\n this.finishPromise = new Promise((resolve, reject) =>{\n this.finishPromiseResolve = resolve;\n this.finishPromiseReject = reject;\n });\n\n }\n\n // returns true if the function emitted a new fingerprint packet\n protected fingerprintPacker(fingerprint: string): boolean {\n // When the fingerprint of one file is bigger than 64Kb, truncate to the last 64Kb line.\n if (fingerprint.length > this.scannerCfg.WFP_FILE_MAX_SIZE) {\n let truncateStringOnIndex = this.scannerCfg.WFP_FILE_MAX_SIZE;\n let keepRemovingCharacters = true;\n while (keepRemovingCharacters) {\n if (fingerprint[truncateStringOnIndex] === '\\n') keepRemovingCharacters = false;\n truncateStringOnIndex -= 1;\n }\n truncateStringOnIndex += 1;\n // eslint-disable-next-line no-param-reassign\n fingerprint = fingerprint.substring(0, truncateStringOnIndex);\n // eslint-disable-next-line no-param-reassign\n fingerprint += '\\n';\n }\n\n if (this.wfp.length + fingerprint.length >= this.scannerCfg.WFP_FILE_MAX_SIZE && this.wfp.length > 0) {\n this.sendFingerprint(new FingerprintPackage(this.wfp, this.folderRoot));\n this.wfp = '';\n }\n this.wfp += fingerprint;\n\n if(this.wfp !== fingerprint) return false;\n return true;\n }\n\n protected finishWinnowing() {\n if (this.wfp.length !== 0) this.sendFingerprint(new FingerprintPackage(this.wfp, this.folderRoot));\n this.pendingFiles = false;\n this.emit(ScannerEvents.WINNOWING_FINISHED);\n this.finishPromiseResolve();\n }\n\n\n protected sendFingerprint(fingerprintPackage: FingerprintPackage) {\n this.emit(ScannerEvents.WINNOWING_NEW_CONTENT, fingerprintPackage);\n }\n\n protected sendLog(logMsg: string): void {\n this.emit(ScannerEvents.WINNOWER_LOG, logMsg);\n }\n\n protected sendError(errorMsg: string): void {\n this.emit(ScannerEvents.ERROR, new Error(errorMsg));\n this.finishPromiseReject();\n }\n\n protected setWinnowingMode(mode: WinnowingMode): void {\n this.winnowingMode = mode;\n }\n\n public abstract start(params: IWfpProviderInput): Promise<void>;\n\n public abstract stop(): void;\n public abstract pause(): void;\n public abstract resume(): void;\n\n\n public hasPendingFiles(): boolean {\n return this.pendingFiles;\n }\n\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a0cd87c085303ec90239b90e68cd7f82aa17da2b"},"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.ts":{"path":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.ts","statementMap":{"0":{"start":{"line":1,"column":22},"end":{"line":3,"column":1}},"1":{"start":{"line":2,"column":4},"end":{"line":2,"column":62}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":62}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":29}},"4":{"start":{"line":6,"column":22},"end":{"line":6,"column":47}},"5":{"start":{"line":7,"column":13},"end":{"line":7,"column":43}},"6":{"start":{"line":8,"column":21},"end":{"line":8,"column":48}},"7":{"start":{"line":12,"column":8},"end":{"line":12,"column":16}},"8":{"start":{"line":13,"column":8},"end":{"line":13,"column":37}},"9":{"start":{"line":16,"column":8},"end":{"line":16,"column":62}},"10":{"start":{"line":17,"column":8},"end":{"line":17,"column":20}},"11":{"start":{"line":18,"column":8},"end":{"line":18,"column":33}},"12":{"start":{"line":19,"column":8},"end":{"line":19,"column":32}},"13":{"start":{"line":20,"column":8},"end":{"line":20,"column":31}},"14":{"start":{"line":21,"column":8},"end":{"line":21,"column":29}},"15":{"start":{"line":22,"column":8},"end":{"line":22,"column":34}},"16":{"start":{"line":23,"column":8},"end":{"line":23,"column":100}},"17":{"start":{"line":24,"column":24},"end":{"line":24,"column":38}},"18":{"start":{"line":25,"column":8},"end":{"line":26,"column":54}},"19":{"start":{"line":26,"column":12},"end":{"line":26,"column":54}},"20":{"start":{"line":27,"column":8},"end":{"line":27,"column":86}},"21":{"start":{"line":28,"column":8},"end":{"line":28,"column":34}},"22":{"start":{"line":29,"column":8},"end":{"line":29,"column":34}},"23":{"start":{"line":32,"column":8},"end":{"line":32,"column":30}},"24":{"start":{"line":35,"column":8},"end":{"line":35,"column":60}},"25":{"start":{"line":36,"column":8},"end":{"line":36,"column":30}},"26":{"start":{"line":39,"column":8},"end":{"line":39,"column":61}},"27":{"start":{"line":40,"column":8},"end":{"line":40,"column":29}},"28":{"start":{"line":41,"column":8},"end":{"line":41,"column":32}},"29":{"start":{"line":42,"column":8},"end":{"line":42,"column":33}},"30":{"start":{"line":46,"column":8},"end":{"line":56,"column":9}},"31":{"start":{"line":47,"column":12},"end":{"line":55,"column":15}},"32":{"start":{"line":48,"column":16},"end":{"line":54,"column":17}},"33":{"start":{"line":49,"column":20},"end":{"line":49,"column":85}},"34":{"start":{"line":50,"column":20},"end":{"line":50,"column":44}},"35":{"start":{"line":53,"column":20},"end":{"line":53,"column":48}},"36":{"start":{"line":59,"column":8},"end":{"line":59,"column":34}},"37":{"start":{"line":60,"column":8},"end":{"line":60,"column":31}},"38":{"start":{"line":61,"column":8},"end":{"line":64,"column":9}},"39":{"start":{"line":62,"column":12},"end":{"line":62,"column":35}},"40":{"start":{"line":63,"column":12},"end":{"line":63,"column":66}},"41":{"start":{"line":68,"column":44},"end":{"line":68,"column":49}},"42":{"start":{"line":70,"column":8},"end":{"line":119,"column":9}},"43":{"start":{"line":72,"column":12},"end":{"line":105,"column":13}},"44":{"start":{"line":74,"column":16},"end":{"line":82,"column":17}},"45":{"start":{"line":76,"column":20},"end":{"line":81,"column":48}},"46":{"start":{"line":77,"column":24},"end":{"line":77,"column":111}},"47":{"start":{"line":78,"column":24},"end":{"line":78,"column":62}},"48":{"start":{"line":81,"column":24},"end":{"line":81,"column":48}},"49":{"start":{"line":83,"column":33},"end":{"line":83,"column":75}},"50":{"start":{"line":87,"column":16},"end":{"line":104,"column":17}},"51":{"start":{"line":88,"column":20},"end":{"line":103,"column":21}},"52":{"start":{"line":89,"column":48},"end":{"line":89,"column":60}},"53":{"start":{"line":92,"column":44},"end":{"line":92,"column":100}},"54":{"start":{"line":93,"column":24},"end":{"line":98,"column":25}},"55":{"start":{"line":94,"column":28},"end":{"line":94,"column":70}},"56":{"start":{"line":97,"column":28},"end":{"line":97,"column":65}},"57":{"start":{"line":99,"column":38},"end":{"line":99,"column":86}},"58":{"start":{"line":100,"column":39},"end":{"line":100,"column":109}},"59":{"start":{"line":101,"column":24},"end":{"line":101,"column":60}},"60":{"start":{"line":102,"column":24},"end":{"line":102,"column":47}},"61":{"start":{"line":108,"column":12},"end":{"line":117,"column":13}},"62":{"start":{"line":111,"column":16},"end":{"line":114,"column":17}},"63":{"start":{"line":112,"column":40},"end":{"line":112,"column":108}},"64":{"start":{"line":113,"column":20},"end":{"line":113,"column":83}},"65":{"start":{"line":115,"column":16},"end":{"line":115,"column":106}},"66":{"start":{"line":116,"column":16},"end":{"line":116,"column":40}},"67":{"start":{"line":122,"column":8},"end":{"line":124,"column":11}},"68":{"start":{"line":123,"column":12},"end":{"line":123,"column":37}},"69":{"start":{"line":125,"column":8},"end":{"line":125,"column":44}},"70":{"start":{"line":128,"column":20},"end":{"line":128,"column":28}},"71":{"start":{"line":129,"column":28},"end":{"line":129,"column":80}},"72":{"start":{"line":129,"column":72},"end":{"line":129,"column":79}},"73":{"start":{"line":130,"column":29},"end":{"line":130,"column":31}},"74":{"start":{"line":131,"column":8},"end":{"line":134,"column":9}},"75":{"start":{"line":131,"column":21},"end":{"line":131,"column":22}},"76":{"start":{"line":132,"column":32},"end":{"line":132,"column":89}},"77":{"start":{"line":133,"column":12},"end":{"line":133,"column":43}},"78":{"start":{"line":135,"column":8},"end":{"line":135,"column":28}},"79":{"start":{"line":138,"column":0},"end":{"line":138,"column":34}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":56},"end":{"line":1,"column":57}},"loc":{"start":{"line":1,"column":71},"end":{"line":3,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":4},"end":{"line":11,"column":5}},"loc":{"start":{"line":11,"column":60},"end":{"line":14,"column":5}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":15,"column":4},"end":{"line":15,"column":5}},"loc":{"start":{"line":15,"column":18},"end":{"line":30,"column":5}},"line":15},"3":{"name":"(anonymous_3)","decl":{"start":{"line":31,"column":4},"end":{"line":31,"column":5}},"loc":{"start":{"line":31,"column":11},"end":{"line":33,"column":5}},"line":31},"4":{"name":"(anonymous_4)","decl":{"start":{"line":34,"column":4},"end":{"line":34,"column":5}},"loc":{"start":{"line":34,"column":12},"end":{"line":37,"column":5}},"line":34},"5":{"name":"(anonymous_5)","decl":{"start":{"line":38,"column":4},"end":{"line":38,"column":5}},"loc":{"start":{"line":38,"column":13},"end":{"line":43,"column":5}},"line":38},"6":{"name":"(anonymous_6)","decl":{"start":{"line":44,"column":4},"end":{"line":44,"column":5}},"loc":{"start":{"line":44,"column":23},"end":{"line":57,"column":5}},"line":44},"7":{"name":"(anonymous_7)","decl":{"start":{"line":47,"column":37},"end":{"line":47,"column":38}},"loc":{"start":{"line":47,"column":43},"end":{"line":55,"column":13}},"line":47},"8":{"name":"(anonymous_8)","decl":{"start":{"line":58,"column":4},"end":{"line":58,"column":5}},"loc":{"start":{"line":58,"column":27},"end":{"line":65,"column":5}},"line":58},"9":{"name":"(anonymous_9)","decl":{"start":{"line":66,"column":4},"end":{"line":66,"column":5}},"loc":{"start":{"line":66,"column":24},"end":{"line":120,"column":5}},"line":66},"10":{"name":"(anonymous_10)","decl":{"start":{"line":121,"column":4},"end":{"line":121,"column":5}},"loc":{"start":{"line":121,"column":25},"end":{"line":126,"column":5}},"line":121},"11":{"name":"(anonymous_11)","decl":{"start":{"line":122,"column":38},"end":{"line":122,"column":39}},"loc":{"start":{"line":122,"column":44},"end":{"line":124,"column":9}},"line":122},"12":{"name":"(anonymous_12)","decl":{"start":{"line":125,"column":33},"end":{"line":125,"column":34}},"loc":{"start":{"line":125,"column":39},"end":{"line":125,"column":42}},"line":125},"13":{"name":"(anonymous_13)","decl":{"start":{"line":127,"column":4},"end":{"line":127,"column":5}},"loc":{"start":{"line":127,"column":35},"end":{"line":136,"column":5}},"line":127},"14":{"name":"(anonymous_14)","decl":{"start":{"line":129,"column":67},"end":{"line":129,"column":68}},"loc":{"start":{"line":129,"column":72},"end":{"line":129,"column":79}},"line":129}},"branchMap":{"0":{"loc":{"start":{"line":1,"column":22},"end":{"line":3,"column":1}},"type":"binary-expr","locations":[{"start":{"line":1,"column":23},"end":{"line":1,"column":27}},{"start":{"line":1,"column":31},"end":{"line":1,"column":51}},{"start":{"line":1,"column":56},"end":{"line":3,"column":1}}],"line":1},"1":{"loc":{"start":{"line":2,"column":11},"end":{"line":2,"column":61}},"type":"cond-expr","locations":[{"start":{"line":2,"column":37},"end":{"line":2,"column":40}},{"start":{"line":2,"column":43},"end":{"line":2,"column":61}}],"line":2},"2":{"loc":{"start":{"line":2,"column":12},"end":{"line":2,"column":33}},"type":"binary-expr","locations":[{"start":{"line":2,"column":12},"end":{"line":2,"column":15}},{"start":{"line":2,"column":19},"end":{"line":2,"column":33}}],"line":2},"3":{"loc":{"start":{"line":11,"column":16},"end":{"line":11,"column":58}},"type":"default-arg","locations":[{"start":{"line":11,"column":29},"end":{"line":11,"column":58}}],"line":11},"4":{"loc":{"start":{"line":23,"column":35},"end":{"line":23,"column":98}},"type":"cond-expr","locations":[{"start":{"line":23,"column":74},"end":{"line":23,"column":80}},{"start":{"line":23,"column":83},"end":{"line":23,"column":98}}],"line":23},"5":{"loc":{"start":{"line":23,"column":35},"end":{"line":23,"column":71}},"type":"binary-expr","locations":[{"start":{"line":23,"column":35},"end":{"line":23,"column":50}},{"start":{"line":23,"column":54},"end":{"line":23,"column":71}}],"line":23},"6":{"loc":{"start":{"line":25,"column":8},"end":{"line":26,"column":54}},"type":"if","locations":[{"start":{"line":25,"column":8},"end":{"line":26,"column":54}},{"start":{"line":25,"column":8},"end":{"line":26,"column":54}}],"line":25},"7":{"loc":{"start":{"line":46,"column":8},"end":{"line":56,"column":9}},"type":"if","locations":[{"start":{"line":46,"column":8},"end":{"line":56,"column":9}},{"start":{"line":46,"column":8},"end":{"line":56,"column":9}}],"line":46},"8":{"loc":{"start":{"line":48,"column":16},"end":{"line":54,"column":17}},"type":"if","locations":[{"start":{"line":48,"column":16},"end":{"line":54,"column":17}},{"start":{"line":48,"column":16},"end":{"line":54,"column":17}}],"line":48},"9":{"loc":{"start":{"line":48,"column":20},"end":{"line":48,"column":85}},"type":"binary-expr","locations":[{"start":{"line":48,"column":20},"end":{"line":48,"column":68}},{"start":{"line":48,"column":72},"end":{"line":48,"column":85}}],"line":48},"10":{"loc":{"start":{"line":61,"column":8},"end":{"line":64,"column":9}},"type":"if","locations":[{"start":{"line":61,"column":8},"end":{"line":64,"column":9}},{"start":{"line":61,"column":8},"end":{"line":64,"column":9}}],"line":61},"11":{"loc":{"start":{"line":70,"column":15},"end":{"line":70,"column":100}},"type":"binary-expr","locations":[{"start":{"line":70,"column":15},"end":{"line":70,"column":28}},{"start":{"line":70,"column":32},"end":{"line":70,"column":100}}],"line":70},"12":{"loc":{"start":{"line":72,"column":12},"end":{"line":105,"column":13}},"type":"if","locations":[{"start":{"line":72,"column":12},"end":{"line":105,"column":13}},{"start":{"line":72,"column":12},"end":{"line":105,"column":13}}],"line":72},"13":{"loc":{"start":{"line":74,"column":16},"end":{"line":82,"column":17}},"type":"if","locations":[{"start":{"line":74,"column":16},"end":{"line":82,"column":17}},{"start":{"line":74,"column":16},"end":{"line":82,"column":17}}],"line":74},"14":{"loc":{"start":{"line":76,"column":20},"end":{"line":81,"column":48}},"type":"if","locations":[{"start":{"line":76,"column":20},"end":{"line":81,"column":48}},{"start":{"line":76,"column":20},"end":{"line":81,"column":48}}],"line":76},"15":{"loc":{"start":{"line":88,"column":20},"end":{"line":103,"column":21}},"type":"if","locations":[{"start":{"line":88,"column":20},"end":{"line":103,"column":21}},{"start":{"line":88,"column":20},"end":{"line":103,"column":21}}],"line":88},"16":{"loc":{"start":{"line":88,"column":45},"end":{"line":88,"column":158}},"type":"cond-expr","locations":[{"start":{"line":88,"column":142},"end":{"line":88,"column":148}},{"start":{"line":88,"column":151},"end":{"line":88,"column":158}}],"line":88},"17":{"loc":{"start":{"line":88,"column":45},"end":{"line":88,"column":139}},"type":"binary-expr","locations":[{"start":{"line":88,"column":45},"end":{"line":88,"column":122}},{"start":{"line":88,"column":126},"end":{"line":88,"column":139}}],"line":88},"18":{"loc":{"start":{"line":88,"column":51},"end":{"line":88,"column":112}},"type":"cond-expr","locations":[{"start":{"line":88,"column":90},"end":{"line":88,"column":96}},{"start":{"line":88,"column":99},"end":{"line":88,"column":112}}],"line":88},"19":{"loc":{"start":{"line":88,"column":51},"end":{"line":88,"column":87}},"type":"binary-expr","locations":[{"start":{"line":88,"column":51},"end":{"line":88,"column":66}},{"start":{"line":88,"column":70},"end":{"line":88,"column":87}}],"line":88},"20":{"loc":{"start":{"line":93,"column":24},"end":{"line":98,"column":25}},"type":"if","locations":[{"start":{"line":93,"column":24},"end":{"line":98,"column":25}},{"start":{"line":93,"column":24},"end":{"line":98,"column":25}}],"line":93},"21":{"loc":{"start":{"line":108,"column":12},"end":{"line":117,"column":13}},"type":"if","locations":[{"start":{"line":108,"column":12},"end":{"line":117,"column":13}},{"start":{"line":108,"column":12},"end":{"line":117,"column":13}}],"line":108},"22":{"loc":{"start":{"line":111,"column":16},"end":{"line":114,"column":17}},"type":"if","locations":[{"start":{"line":111,"column":16},"end":{"line":114,"column":17}},{"start":{"line":111,"column":16},"end":{"line":114,"column":17}}],"line":111}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":0,"20":1,"21":1,"22":1,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":1,"31":1,"32":7,"33":6,"34":6,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":2,"42":2,"43":1,"44":1,"45":0,"46":0,"47":0,"48":0,"49":1,"50":1,"51":8,"52":2,"53":2,"54":2,"55":0,"56":0,"57":2,"58":2,"59":2,"60":2,"61":1,"62":1,"63":0,"64":0,"65":1,"66":1,"67":1,"68":2,"69":1,"70":1,"71":1,"72":6,"73":1,"74":1,"75":1,"76":6,"77":6,"78":1,"79":1},"f":{"0":1,"1":1,"2":1,"3":0,"4":0,"5":0,"6":1,"7":7,"8":1,"9":2,"10":1,"11":2,"12":1,"13":1,"14":6},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1],"3":[1],"4":[0,1],"5":[1,1],"6":[0,1],"7":[1,0],"8":[6,1],"9":[7,6],"10":[1,0],"11":[3,3],"12":[1,0],"13":[0,1],"14":[0,0],"15":[2,6],"16":[0,8],"17":[8,8],"18":[0,8],"19":[8,8],"20":[0,2],"21":[1,0],"22":[0,1]},"inputSourceMap":{"version":3,"file":"/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.ts","sources":["/home/ubuntu/Projects/SCANOSS/scanoss.js/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.ts"],"names":[],"mappings":";;;;;AAAA,gDAAgE;AAChE,4CAAoB;AACpB,iDAA8C;AAG9C,kCAAkC;AAElC,MAAa,WAAY,SAAQ,yBAAW;IAgB1C,YAAY,UAAU,GAAG,IAAI,uBAAU,EAAE;QACvC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAEM,KAAK,CAAC,MAAyB;QAEpC,IAAI,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;QAEtD,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAC,CAAC;QAE7C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAE/B,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAExD,IAAI,CAAC,SAAS,GAAG,YAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAEM,IAAI;QACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAA;QACnD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAEM,MAAM;QACX,IAAI,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAA;QACpD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAGO,gBAAgB;QACtB,uEAAuE;QACvE,IAAG,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YAC3B,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC5B,IAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACpE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;oBACjE,IAAI,CAAC,gBAAgB,EAAE,CAAC;iBACzB;qBAAM;oBACL,IAAI,CAAC,oBAAoB,EAAE,CAAC;iBAC7B;YACH,CAAC,CAAC,CAAC;SACJ;IAGH,CAAC;IAEO,oBAAoB;QAC1B,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAG,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,YAAY,CAAC,MAAM,EAAC;YACpD,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;SACvD;IACH,CAAC;IAEO,iBAAiB;;QAEvB,IAAI,6BAA6B,GAAG,KAAK,CAAC;QAG1C,8DAA8D;QAC9D,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE,EAAG,iCAAiC;YAEhI,yFAAyF;YACzF,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE;gBAE7B,gGAAgG;gBAChG,IAAI,6BAA6B,EAAE,EAAE,0BAA0B;oBAC7D,6CAA6C;oBAC7C,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wBAC5C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;wBACvF,6BAA6B,GAAG,KAAK,CAAC;qBACvC;;wBAAM,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;iBAChC;gBAGD,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,8BAA8B,CAAC,CAAA;gBAC3D,mEAAmE;gBACnE,qEAAqE;gBACrE,IAAI,MAAM,CAAC;gBACX,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE;oBAC5D,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,OAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,IAAI,CAAC,EAAE;wBAC9C,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAA;wBAEpC,6BAA6B;wBAC7B,4DAA4D;wBAC5D,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,CAAC,CAAC,CAAA;wBAC5E,IAAI,aAAa,GAAG,CAAC,EAAE;4BACrB,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;4BAE1C,0GAA0G;4BAC1G,4HAA4H;4BAC5H,6BAA6B,GAAG,IAAI,CAAC;yBACtC;wBAED,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;wBAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;wBACtF,IAAI,CAAC,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;wBACpC,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,4CAA4C;qBACrE;iBACF;aACF;YACD,yFAAyF;YAIzF,oFAAoF;YACpF,IAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAC;gBAE3B,+DAA+D;gBAC/D,iDAAiD;gBACjD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,EAAG;oBAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;oBACzF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAC,CAAC,CAAC,IAAI,WAAW,CAAC;iBAC9D;gBAED,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBAC1F,IAAI,CAAC,gBAAgB,EAAE,CAAC;aACzB;YACD,oFAAoF;SAErF;IACH,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;YACjC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACrC,CAAC;IAEO,iBAAiB,CAAC,WAAkB;QAC1C,MAAM,GAAG,GAAG,QAAQ,CAAC;QACrB,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACzE,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAG,CAAC,EAAE,EAAE;YAC5C,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9E,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAChC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;CAGF;AA9KD,kCA8KC","sourcesContent":["import { IWfpProviderInput, WfpProvider } from \"../WfpProvider\";\nimport fs from \"fs\";\nimport { ScannerCfg } from \"../../ScannerCfg\";\nimport { Readable } from \"stream\";\n\n//Regex find paths from wfp string\n\nexport class WfpSplitter extends WfpProvider {\n\n private continue: boolean;\n\n private wfpStream: Readable;\n\n private chunkDataRead: string;\n\n private fingerprints: Array<string>;\n\n private fingerprintIndex: number;\n\n private timer: ReturnType<typeof setTimeout>;\n\n private ignoreFiles: Set<string>;\n\n constructor(scannerCfg = new ScannerCfg()) {\n super();\n this.scannerCfg = scannerCfg;\n }\n\n public start(params: IWfpProviderInput): Promise<void> {\n\n this.sendLog('[ SCANNER ]: WFP Splitter starting...');\n\n this.init();\n this.pendingFiles = true;\n this.chunkDataRead = '';\n this.fingerprints = [];\n this.continue = true;\n this.fingerprintIndex = 0;\n this.ignoreFiles = new Set(params?.fileList);\n\n const wfpPath = params.wfpPath;\n\n if (!wfpPath) this.sendError('WFP path is not defined');\n\n this.wfpStream = fs.createReadStream(wfpPath, { encoding: 'utf8' });\n this.setStreamListeners();\n\n return this.finishPromise;\n }\n\n public stop(): void {\n this.continue = false;\n }\n\n public pause(): void {\n this.sendLog('[ SCANNER ]: WFP Splitter paused...')\n this.continue = false;\n }\n\n public resume(): void {\n this.sendLog('[ SCANNER ]: WFP Splitter resumed...')\n this.continue = true;\n this.sendFingerprints();\n this.streamBufferFlush();\n }\n\n\n private sendFingerprints() {\n //The timer allows the main thread not to be blocked while sending wfps\n if(this.timer === undefined) {\n this.timer = setInterval(() => {\n if(this.fingerprintIndex < this.fingerprints.length && this.continue) {\n this.fingerprintPacker(this.fingerprints[this.fingerprintIndex]);\n this.fingerprintIndex++;\n } else {\n this.stopSendFingerprints();\n }\n });\n }\n\n\n }\n\n private stopSendFingerprints() {\n clearInterval(this.timer);\n this.timer = undefined;\n if(this.fingerprintIndex === this.fingerprints.length){\n this.finishWinnowing();\n this.sendLog('[ SCANNER ]: WFP Splitter finished...');\n }\n }\n\n private streamBufferFlush(): void {\n\n let ignoreFirstChunkOfFingerprint = false;\n\n\n //Use a loop to make sure we read all currently available data\n while (this.continue && null !== (this.chunkDataRead = this.wfpStream.read(1 * 1024 * 1024))) { // Read chunks of 1MB 1*1024*1024\n\n /**** This part removes all the wfp that includes the paths inside this.ignoreFiles ****/\n if (this.ignoreFiles.size > 0) {\n\n // Removes fingerprints that are loose because the file=...... was removed in previous iteration\n if (ignoreFirstChunkOfFingerprint) { //TODO: Test this scenario\n //If there is no file= delete everything then\n if (this.chunkDataRead.indexOf(\"file=\") >= 0) {\n this.chunkDataRead = this.chunkDataRead.substring(this.chunkDataRead.indexOf('file='));\n ignoreFirstChunkOfFingerprint = false;\n } else this.chunkDataRead = \"\";\n }\n\n\n const rWfpPath = new RegExp(/^file=\\w+,\\d+,(?<path>.+)$/gm)\n //Search for paths in the wfp and compares with the ignorefiles set\n //When there is a match the matched fingerprint is deleted on the fly\n let result;\n while ((result = rWfpPath.exec(this.chunkDataRead)) !== null) {\n if (this.ignoreFiles.has(result?.groups?.path)) {\n const indexDeleteFrom = result.index\n\n //TODO: Verify this condition\n //If there is no next file= in the string, remove until end.\n let indexDeleteTo = this.chunkDataRead.indexOf('file=', indexDeleteFrom + 1)\n if (indexDeleteTo < 0) {\n indexDeleteTo = this.chunkDataRead.length;\n\n //After the deletion of a wfp there are no other file=, so then set ignoreFirstChunkOfFingerprint to true.\n //In the next iteration, the next chunk of data will be fingerprints without a file=. So, this first part will be discarded.\n ignoreFirstChunkOfFingerprint = true;\n }\n\n const first = this.chunkDataRead.substring(0, indexDeleteFrom);\n const second = this.chunkDataRead.substring(indexDeleteTo, this.chunkDataRead.length);\n this.chunkDataRead = first + second;\n rWfpPath.lastIndex = 0; //Make sure we reset the state of the regex.\n }\n }\n }\n /**** This part removes all the wfp that includes the paths inside this.ignoreFiles ****/\n\n\n\n /**** This part process a chunk of wfp and send the packages to the subscriber ****/\n if(this.chunkDataRead.length){\n\n // Extract the first portion of the chunk until the first file=\n // Then append the chunk to the last fingerprint.\n if (!this.chunkDataRead.startsWith('file=') ) {\n const chunkOfData = this.chunkDataRead.substring(0, this.chunkDataRead.indexOf('file='));\n this.fingerprints[this.fingerprints.length-1] += chunkOfData;\n }\n\n this.fingerprints = [...this.fingerprints, ...this.splitFingerprints(this.chunkDataRead)];\n this.sendFingerprints();\n }\n /**** This part process a chunk of wfp and send the packages to the subscriber ****/\n\n }\n }\n\n private setStreamListeners() {\n this.wfpStream.on('readable', () => {\n this.streamBufferFlush();\n });\n\n this.wfpStream.on('end', () => {});\n }\n\n private splitFingerprints(chunkOfData:string): Array<string> {\n const reg = /file=/g;\n const blocksIndex = [...((chunkOfData).matchAll(reg))].map(x => x.index);\n const fingerprints = [];\n for (let i = 0; i < blocksIndex.length ; i++) {\n const fingerprint = chunkOfData.substring(blocksIndex[i], blocksIndex[i + 1]);\n fingerprints.push(fingerprint);\n }\n return fingerprints;\n }\n\n\n}\n\n\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a45ba3c43e3a0f013ccc24fdd2dfd7dab451fca4"}}