slnodejs 6.1.2 → 6.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (421) hide show
  1. package/browser-agent/dist/browser-agent-all.js +101189 -0
  2. package/browser-agent/dist/browser-agent-all.min.js +57 -0
  3. package/browser-agent/package.json +44 -0
  4. package/lib/cli.js +1 -1
  5. package/package.json +125 -124
  6. package/tsOutputs/api.d.ts +10 -12
  7. package/tsOutputs/api.js +115 -116
  8. package/tsOutputs/build-scanner/ast-utils.js +38 -38
  9. package/tsOutputs/build-scanner/ast-utils.js.map +1 -1
  10. package/tsOutputs/build-scanner/build-diff-process.js +352 -352
  11. package/tsOutputs/build-scanner/cia.js +95 -95
  12. package/tsOutputs/build-scanner/configuration-loader.js +17 -17
  13. package/tsOutputs/build-scanner/current-agent-instance.js +5 -5
  14. package/tsOutputs/build-scanner/default-values-resolver.js +42 -42
  15. package/tsOutputs/build-scanner/entities-mapper.js +35 -35
  16. package/tsOutputs/build-scanner/file-and-folder-utils.js +176 -176
  17. package/tsOutputs/build-scanner/file-system/actual-file.js +66 -66
  18. package/tsOutputs/build-scanner/file-system/actual-file.js.map +1 -1
  19. package/tsOutputs/build-scanner/git-format-builder.js +68 -68
  20. package/tsOutputs/build-scanner/global-error-handler.js +20 -20
  21. package/tsOutputs/build-scanner/instrumentation/browser-instrumenter.js +299 -299
  22. package/tsOutputs/build-scanner/instrumentation/file-instrumenter.js +271 -271
  23. package/tsOutputs/build-scanner/instrumentation/file-instrumenter.js.map +1 -1
  24. package/tsOutputs/build-scanner/instrumentation/instrumentation-utils.js +58 -58
  25. package/tsOutputs/build-scanner/instrumentation/instrumented-file-size-reducer.js +159 -159
  26. package/tsOutputs/build-scanner/instrumentation/markup-file-instrumenter.js +187 -185
  27. package/tsOutputs/build-scanner/instrumentation/markup-file-instrumenter.js.map +1 -1
  28. package/tsOutputs/build-scanner/instrumentation/sync-instrumenter.js +39 -39
  29. package/tsOutputs/build-scanner/js_diff/ast-node-types.js +44 -44
  30. package/tsOutputs/build-scanner/js_diff/branch-key.js +10 -10
  31. package/tsOutputs/build-scanner/js_diff/branch-signature.js +156 -156
  32. package/tsOutputs/build-scanner/js_diff/create-node-key.js +7 -7
  33. package/tsOutputs/build-scanner/js_diff/dry-run-files-mapping.js +23 -23
  34. package/tsOutputs/build-scanner/js_diff/file-signature.js +234 -234
  35. package/tsOutputs/build-scanner/js_diff/files-mapping.js +456 -460
  36. package/tsOutputs/build-scanner/js_diff/files-mapping.js.map +1 -1
  37. package/tsOutputs/build-scanner/js_diff/generated-file-signature.js +143 -143
  38. package/tsOutputs/build-scanner/js_diff/globalMethodIndexer.js +26 -26
  39. package/tsOutputs/build-scanner/js_diff/guess-method-location.js +100 -100
  40. package/tsOutputs/build-scanner/js_diff/guess-method-name.js +54 -54
  41. package/tsOutputs/build-scanner/js_diff/method-signature.js +142 -142
  42. package/tsOutputs/build-scanner/js_diff/sl-mapper.js +136 -136
  43. package/tsOutputs/build-scanner/js_diff/source-data-enricher.js +89 -89
  44. package/tsOutputs/build-scanner/js_diff/source-files-notifier.js +31 -31
  45. package/tsOutputs/build-scanner/js_diff/source-position-mapper.js +29 -29
  46. package/tsOutputs/build-scanner/mappings/ensure-files-handler.service.js +213 -213
  47. package/tsOutputs/build-scanner/mappings/ensure-files-handler.service.js.map +1 -1
  48. package/tsOutputs/build-scanner/mappings/file-element-utils.js +46 -46
  49. package/tsOutputs/build-scanner/mappings/file-element-utils.js.map +1 -1
  50. package/tsOutputs/build-scanner/mappings/file-enricher.js +209 -204
  51. package/tsOutputs/build-scanner/mappings/file-enricher.js.map +1 -1
  52. package/tsOutputs/build-scanner/mappings/files-data-container.js +51 -51
  53. package/tsOutputs/build-scanner/mappings/files-data-container.js.map +1 -1
  54. package/tsOutputs/build-scanner/mappings/scm-file-fixer.js +79 -77
  55. package/tsOutputs/build-scanner/mappings/scm-file-fixer.js.map +1 -1
  56. package/tsOutputs/build-scanner/markup-files-parser.js +71 -71
  57. package/tsOutputs/build-scanner/nopt-types.js +19 -19
  58. package/tsOutputs/build-scanner/nopt-usage-2.js +56 -56
  59. package/tsOutputs/build-scanner/polyfills.js +6 -6
  60. package/tsOutputs/build-scanner/scm/parse-log.js +5 -5
  61. package/tsOutputs/build-scanner/scm/scm-files-container.js +49 -49
  62. package/tsOutputs/build-scanner/sl-config-cia-cli.js +175 -175
  63. package/tsOutputs/build-scanner/utils.js +91 -91
  64. package/tsOutputs/cli-parse/agent-instance-data.d.ts +2 -2
  65. package/tsOutputs/cli-parse/agent-instance-data.js +6 -6
  66. package/tsOutputs/cli-parse/child-process-wrapper.js +82 -82
  67. package/tsOutputs/cli-parse/child-process-wrapper.js.map +1 -1
  68. package/tsOutputs/cli-parse/cli.js +509 -509
  69. package/tsOutputs/cli-parse/constants/constants.js +56 -55
  70. package/tsOutputs/cli-parse/constants/constants.js.map +1 -1
  71. package/tsOutputs/cli-parse/constants/third-parties.js +10 -10
  72. package/tsOutputs/cli-parse/contracts.js +2 -2
  73. package/tsOutputs/cli-parse/custom-commander.js +44 -44
  74. package/tsOutputs/cli-parse/executors/base-executor.js +254 -263
  75. package/tsOutputs/cli-parse/executors/base-executor.js.map +1 -1
  76. package/tsOutputs/cli-parse/executors/build-args-dto.js +55 -55
  77. package/tsOutputs/cli-parse/executors/build-end-executor.js +117 -115
  78. package/tsOutputs/cli-parse/executors/build-end-executor.js.map +1 -1
  79. package/tsOutputs/cli-parse/executors/build-executor.js +149 -147
  80. package/tsOutputs/cli-parse/executors/build-executor.js.map +1 -1
  81. package/tsOutputs/cli-parse/executors/config-executor.js +114 -112
  82. package/tsOutputs/cli-parse/executors/config-executor.js.map +1 -1
  83. package/tsOutputs/cli-parse/executors/dry-run/base-data.js +55 -55
  84. package/tsOutputs/cli-parse/executors/dry-run/base-data.js.map +1 -1
  85. package/tsOutputs/cli-parse/executors/dry-run/build-mapping-data.js +230 -228
  86. package/tsOutputs/cli-parse/executors/dry-run/build-mapping-data.js.map +1 -1
  87. package/tsOutputs/cli-parse/executors/dry-run/dry-run-executor.js +279 -277
  88. package/tsOutputs/cli-parse/executors/dry-run/dry-run-executor.js.map +1 -1
  89. package/tsOutputs/cli-parse/executors/dry-run/dry-run-validation.js +122 -120
  90. package/tsOutputs/cli-parse/executors/dry-run/dry-run-validation.js.map +1 -1
  91. package/tsOutputs/cli-parse/executors/dry-run/footprints-data.js +132 -130
  92. package/tsOutputs/cli-parse/executors/dry-run/footprints-data.js.map +1 -1
  93. package/tsOutputs/cli-parse/executors/dry-run/helper-methods.js +104 -104
  94. package/tsOutputs/cli-parse/executors/dry-run/helper-methods.js.map +1 -1
  95. package/tsOutputs/cli-parse/executors/end-execution-executor.js +90 -88
  96. package/tsOutputs/cli-parse/executors/end-execution-executor.js.map +1 -1
  97. package/tsOutputs/cli-parse/executors/integration-build-components-executor.js +134 -132
  98. package/tsOutputs/cli-parse/executors/integration-build-components-executor.js.map +1 -1
  99. package/tsOutputs/cli-parse/executors/integration-build-delete-components-executor.js +75 -73
  100. package/tsOutputs/cli-parse/executors/integration-build-delete-components-executor.js.map +1 -1
  101. package/tsOutputs/cli-parse/executors/integration-build-update-components-executor.js +73 -71
  102. package/tsOutputs/cli-parse/executors/integration-build-update-components-executor.js.map +1 -1
  103. package/tsOutputs/cli-parse/executors/mocha-executor.js +124 -122
  104. package/tsOutputs/cli-parse/executors/mocha-executor.js.map +1 -1
  105. package/tsOutputs/cli-parse/executors/nyc-report-executor.js +106 -104
  106. package/tsOutputs/cli-parse/executors/nyc-report-executor.js.map +1 -1
  107. package/tsOutputs/cli-parse/executors/pr-config-executor.js +85 -83
  108. package/tsOutputs/cli-parse/executors/pr-config-executor.js.map +1 -1
  109. package/tsOutputs/cli-parse/executors/run-executor.js +95 -93
  110. package/tsOutputs/cli-parse/executors/run-executor.js.map +1 -1
  111. package/tsOutputs/cli-parse/executors/start-execution-executor.js +93 -91
  112. package/tsOutputs/cli-parse/executors/start-execution-executor.js.map +1 -1
  113. package/tsOutputs/cli-parse/executors/test-executions-executor.js +77 -75
  114. package/tsOutputs/cli-parse/executors/test-executions-executor.js.map +1 -1
  115. package/tsOutputs/cli-parse/executors/test-listener-executor.js +151 -149
  116. package/tsOutputs/cli-parse/executors/test-listener-executor.js.map +1 -1
  117. package/tsOutputs/cli-parse/executors/test-runner-build-session-data-builder.js +77 -75
  118. package/tsOutputs/cli-parse/executors/test-runner-build-session-data-builder.js.map +1 -1
  119. package/tsOutputs/cli-parse/executors/upload-report-executor.js +118 -116
  120. package/tsOutputs/cli-parse/executors/upload-report-executor.js.map +1 -1
  121. package/tsOutputs/cli-parse/utils.js +32 -32
  122. package/tsOutputs/cli-parse/utils.js.map +1 -1
  123. package/tsOutputs/common/agent-events/agent-events-conracts.d.ts +123 -123
  124. package/tsOutputs/common/agent-events/agent-events-conracts.js +56 -56
  125. package/tsOutputs/common/agent-events/agent-events-controller.d.ts +45 -45
  126. package/tsOutputs/common/agent-events/agent-events-controller.js +301 -301
  127. package/tsOutputs/common/agent-events/agent-events-controller.js.map +1 -1
  128. package/tsOutputs/common/agent-events/agent-instance-info-builder.d.ts +22 -22
  129. package/tsOutputs/common/agent-events/agent-instance-info-builder.js +63 -63
  130. package/tsOutputs/common/agent-events/agent-instance-info-builder.js.map +1 -1
  131. package/tsOutputs/common/agent-events/agent-start-info-builder.d.ts +14 -14
  132. package/tsOutputs/common/agent-events/agent-start-info-builder.js +23 -23
  133. package/tsOutputs/common/agent-events/ci-info-builder.d.ts +7 -7
  134. package/tsOutputs/common/agent-events/ci-info-builder.js +30 -30
  135. package/tsOutputs/common/agent-events/cockpit-notifier.d.ts +26 -26
  136. package/tsOutputs/common/agent-events/cockpit-notifier.js +119 -119
  137. package/tsOutputs/common/agent-events/dry-run-agent-events-controller.d.ts +7 -7
  138. package/tsOutputs/common/agent-events/dry-run-agent-events-controller.js +33 -31
  139. package/tsOutputs/common/agent-events/dry-run-agent-events-controller.js.map +1 -1
  140. package/tsOutputs/common/agent-events/machine-info-builder.d.ts +7 -7
  141. package/tsOutputs/common/agent-events/machine-info-builder.js +35 -35
  142. package/tsOutputs/common/agent-events/machine-info-builder.js.map +1 -1
  143. package/tsOutputs/common/agent-events/nodejs-env-info-builder.d.ts +8 -8
  144. package/tsOutputs/common/agent-events/nodejs-env-info-builder.js +19 -19
  145. package/tsOutputs/common/agent-events/sensitive-data-filter.d.ts +2 -2
  146. package/tsOutputs/common/agent-events/sensitive-data-filter.js +54 -54
  147. package/tsOutputs/common/agent-instance-data.d.ts +10 -10
  148. package/tsOutputs/common/agent-instance-data.js +39 -39
  149. package/tsOutputs/common/agent-instance-data.js.map +1 -1
  150. package/tsOutputs/common/config-process/config-loader.d.ts +8 -8
  151. package/tsOutputs/common/config-process/config-loader.js +86 -86
  152. package/tsOutputs/common/config-process/config-system.d.ts +88 -88
  153. package/tsOutputs/common/config-process/config-system.js +293 -293
  154. package/tsOutputs/common/config-process/config.d.ts +60 -60
  155. package/tsOutputs/common/config-process/config.js +92 -90
  156. package/tsOutputs/common/config-process/config.js.map +1 -1
  157. package/tsOutputs/common/config-process/index.d.ts +21 -21
  158. package/tsOutputs/common/config-process/index.js +127 -125
  159. package/tsOutputs/common/config-process/index.js.map +1 -1
  160. package/tsOutputs/common/constants/constants.d.ts +18 -18
  161. package/tsOutputs/common/constants/constants.js +29 -29
  162. package/tsOutputs/common/constants/sl-env-vars.d.ts +52 -52
  163. package/tsOutputs/common/constants/sl-env-vars.js +122 -122
  164. package/tsOutputs/common/contracts.d.ts +123 -123
  165. package/tsOutputs/common/contracts.js +2 -2
  166. package/tsOutputs/common/coverage-elements/contracts.d.ts +25 -25
  167. package/tsOutputs/common/coverage-elements/contracts.js +8 -8
  168. package/tsOutputs/common/coverage-elements/file-element.d.ts +35 -35
  169. package/tsOutputs/common/coverage-elements/file-element.js +158 -158
  170. package/tsOutputs/common/coverage-elements/istanbul-unique-id-converter.d.ts +12 -12
  171. package/tsOutputs/common/coverage-elements/istanbul-unique-id-converter.js +97 -95
  172. package/tsOutputs/common/coverage-elements/istanbul-unique-id-converter.js.map +1 -1
  173. package/tsOutputs/common/coverage-elements/new-id-resolver.d.ts +3 -3
  174. package/tsOutputs/common/coverage-elements/new-id-resolver.js +45 -45
  175. package/tsOutputs/common/coverage-elements/new-id-resolver.js.map +1 -1
  176. package/tsOutputs/common/coverage-elements/original-module-loader.d.ts +41 -41
  177. package/tsOutputs/common/coverage-elements/original-module-loader.js +189 -189
  178. package/tsOutputs/common/coverage-elements/unique-id-converter.d.ts +32 -32
  179. package/tsOutputs/common/coverage-elements/unique-id-converter.js +234 -234
  180. package/tsOutputs/common/environment-data-service.d.ts +15 -15
  181. package/tsOutputs/common/environment-data-service.js +60 -60
  182. package/tsOutputs/common/events-process/events-contracts.d.ts +52 -52
  183. package/tsOutputs/common/events-process/events-contracts.js +19 -19
  184. package/tsOutputs/common/events-process/events-creator.js +40 -42
  185. package/tsOutputs/common/events-process/events-creator.js.map +1 -1
  186. package/tsOutputs/common/events-process/index.d.ts +42 -42
  187. package/tsOutputs/common/events-process/index.js +266 -265
  188. package/tsOutputs/common/events-process/index.js.map +1 -1
  189. package/tsOutputs/common/footprints-process/collection-interval.d.ts +10 -10
  190. package/tsOutputs/common/footprints-process/collection-interval.js +27 -27
  191. package/tsOutputs/common/footprints-process/collection-interval.js.map +1 -1
  192. package/tsOutputs/common/footprints-process/footprints-service-proxy.d.ts +12 -12
  193. package/tsOutputs/common/footprints-process/footprints-service-proxy.js +51 -51
  194. package/tsOutputs/common/footprints-process/index.d.ts +71 -71
  195. package/tsOutputs/common/footprints-process/index.js +264 -264
  196. package/tsOutputs/common/footprints-process/index.js.map +1 -1
  197. package/tsOutputs/common/footprints-process/istanbul-to-footprints-contract.d.ts +98 -98
  198. package/tsOutputs/common/footprints-process/istanbul-to-footprints-contract.js +9 -9
  199. package/tsOutputs/common/footprints-process/istanbul-to-footprints.d.ts +47 -47
  200. package/tsOutputs/common/footprints-process/istanbul-to-footprints.js +421 -421
  201. package/tsOutputs/common/footprints-process/istanbul-to-footprints.js.map +1 -1
  202. package/tsOutputs/common/footprints-process/production-footprints-handler.d.ts +54 -54
  203. package/tsOutputs/common/footprints-process/production-footprints-handler.js +308 -308
  204. package/tsOutputs/common/footprints-process/production-footprints-handler.js.map +1 -1
  205. package/tsOutputs/common/footprints-process-v6/base-browser-hits-converter.d.ts +20 -20
  206. package/tsOutputs/common/footprints-process-v6/base-browser-hits-converter.js +65 -63
  207. package/tsOutputs/common/footprints-process-v6/base-browser-hits-converter.js.map +1 -1
  208. package/tsOutputs/common/footprints-process-v6/buffer-size-helper.d.ts +15 -15
  209. package/tsOutputs/common/footprints-process-v6/buffer-size-helper.js +40 -40
  210. package/tsOutputs/common/footprints-process-v6/contracts.d.ts +181 -184
  211. package/tsOutputs/common/footprints-process-v6/contracts.js +9 -9
  212. package/tsOutputs/common/footprints-process-v6/footprints-buffer.d.ts +34 -36
  213. package/tsOutputs/common/footprints-process-v6/footprints-buffer.js +135 -147
  214. package/tsOutputs/common/footprints-process-v6/footprints-buffer.js.map +1 -1
  215. package/tsOutputs/common/footprints-process-v6/hits-collector.d.ts +24 -24
  216. package/tsOutputs/common/footprints-process-v6/hits-collector.js +168 -168
  217. package/tsOutputs/common/footprints-process-v6/hits-converter.d.ts +28 -30
  218. package/tsOutputs/common/footprints-process-v6/hits-converter.js +114 -135
  219. package/tsOutputs/common/footprints-process-v6/hits-converter.js.map +1 -1
  220. package/tsOutputs/common/footprints-process-v6/index.d.ts +40 -41
  221. package/tsOutputs/common/footprints-process-v6/index.js +258 -304
  222. package/tsOutputs/common/footprints-process-v6/index.js.map +1 -1
  223. package/tsOutputs/common/footprints-process-v6/location-formatter.d.ts +6 -6
  224. package/tsOutputs/common/footprints-process-v6/location-formatter.js +25 -25
  225. package/tsOutputs/common/footprints-process-v6/relative-path-resolver.d.ts +8 -8
  226. package/tsOutputs/common/footprints-process-v6/relative-path-resolver.js +28 -28
  227. package/tsOutputs/common/footprints-process-v6/remote-browser-hits-converter.d.ts +9 -9
  228. package/tsOutputs/common/footprints-process-v6/remote-browser-hits-converter.js +40 -38
  229. package/tsOutputs/common/footprints-process-v6/remote-browser-hits-converter.js.map +1 -1
  230. package/tsOutputs/common/footprints-process-v6/remote-footprints-process.d.ts +8 -8
  231. package/tsOutputs/common/footprints-process-v6/remote-footprints-process.js +34 -32
  232. package/tsOutputs/common/footprints-process-v6/remote-footprints-process.js.map +1 -1
  233. package/tsOutputs/common/footprints-process-v6/remote-hits-collector.d.ts +14 -14
  234. package/tsOutputs/common/footprints-process-v6/remote-hits-collector.js +41 -39
  235. package/tsOutputs/common/footprints-process-v6/remote-hits-collector.js.map +1 -1
  236. package/tsOutputs/common/footprints-process-v6/source-map-data.d.ts +9 -9
  237. package/tsOutputs/common/footprints-process-v6/source-map-data.js +32 -32
  238. package/tsOutputs/common/footprints-process-v6/source-map-data.js.map +1 -1
  239. package/tsOutputs/common/http/backend-proxy-interface.d.ts +33 -33
  240. package/tsOutputs/common/http/backend-proxy-interface.js +2 -2
  241. package/tsOutputs/common/http/backend-proxy.d.ts +54 -54
  242. package/tsOutputs/common/http/backend-proxy.js +408 -408
  243. package/tsOutputs/common/http/contracts.d.ts +280 -280
  244. package/tsOutputs/common/http/contracts.js +158 -156
  245. package/tsOutputs/common/http/contracts.js.map +1 -1
  246. package/tsOutputs/common/http/dry-run-proxy.js +106 -106
  247. package/tsOutputs/common/http/entities-mapper.d.ts +4 -4
  248. package/tsOutputs/common/http/entities-mapper.js +17 -17
  249. package/tsOutputs/common/http/http-client.d.ts +21 -21
  250. package/tsOutputs/common/http/http-client.js +191 -195
  251. package/tsOutputs/common/http/http-client.js.map +1 -1
  252. package/tsOutputs/common/http/http-verb.d.ts +6 -6
  253. package/tsOutputs/common/http/http-verb.js +10 -10
  254. package/tsOutputs/common/http/sl-routes.d.ts +70 -70
  255. package/tsOutputs/common/http/sl-routes.js +218 -218
  256. package/tsOutputs/common/ignored-files-handler.js +122 -122
  257. package/tsOutputs/common/ignored-files-handler.js.map +1 -1
  258. package/tsOutputs/common/logger.d.ts +40 -40
  259. package/tsOutputs/common/logger.js +190 -188
  260. package/tsOutputs/common/logger.js.map +1 -1
  261. package/tsOutputs/common/messages-formatter.d.ts +6 -6
  262. package/tsOutputs/common/messages-formatter.js +21 -21
  263. package/tsOutputs/common/queue.d.ts +19 -19
  264. package/tsOutputs/common/queue.js +57 -55
  265. package/tsOutputs/common/queue.js.map +1 -1
  266. package/tsOutputs/common/scm/contracts.js +2 -2
  267. package/tsOutputs/common/scm/git-cloner.js +137 -137
  268. package/tsOutputs/common/scm/git-cloner.js.map +1 -1
  269. package/tsOutputs/common/scm/git-format-builder.js +72 -72
  270. package/tsOutputs/common/scm/git.js +411 -411
  271. package/tsOutputs/common/scm/git.js.map +1 -1
  272. package/tsOutputs/common/scm/none.js +115 -115
  273. package/tsOutputs/common/scm/scm-factory.js +21 -21
  274. package/tsOutputs/common/short-name-to-file-mapper.js +79 -79
  275. package/tsOutputs/common/source-map-handler.d.ts +58 -58
  276. package/tsOutputs/common/source-map-handler.js +197 -197
  277. package/tsOutputs/common/source-map-reader.js +84 -84
  278. package/tsOutputs/common/source-maps-utils.d.ts +3 -3
  279. package/tsOutputs/common/source-maps-utils.js +39 -39
  280. package/tsOutputs/common/state-tracker-fpv6.d.ts +6 -6
  281. package/tsOutputs/common/state-tracker-fpv6.js +44 -42
  282. package/tsOutputs/common/state-tracker-fpv6.js.map +1 -1
  283. package/tsOutputs/common/state-tracker.d.ts +49 -49
  284. package/tsOutputs/common/state-tracker.js +301 -299
  285. package/tsOutputs/common/state-tracker.js.map +1 -1
  286. package/tsOutputs/common/system-date.d.ts +2 -2
  287. package/tsOutputs/common/system-date.js +21 -21
  288. package/tsOutputs/common/utils/abstract-data-builder.d.ts +10 -10
  289. package/tsOutputs/common/utils/abstract-data-builder.js +24 -24
  290. package/tsOutputs/common/utils/abstract-data-builder.js.map +1 -1
  291. package/tsOutputs/common/utils/build-session-data-builder.d.ts +18 -18
  292. package/tsOutputs/common/utils/build-session-data-builder.js +137 -135
  293. package/tsOutputs/common/utils/build-session-data-builder.js.map +1 -1
  294. package/tsOutputs/common/utils/dependency-utils.js +69 -69
  295. package/tsOutputs/common/utils/files-utils.d.ts +6 -6
  296. package/tsOutputs/common/utils/files-utils.js +45 -45
  297. package/tsOutputs/common/utils/parsing-utils.d.ts +4 -4
  298. package/tsOutputs/common/utils/parsing-utils.js +29 -29
  299. package/tsOutputs/common/utils/test-utils/mock-server-utils/contracts.js +10 -10
  300. package/tsOutputs/common/utils/test-utils/mock-server-utils/mock-server-proxy.js +248 -248
  301. package/tsOutputs/common/utils/timer-utils.d.ts +3 -3
  302. package/tsOutputs/common/utils/timer-utils.js +12 -12
  303. package/tsOutputs/common/utils/token-data-builder.d.ts +21 -21
  304. package/tsOutputs/common/utils/token-data-builder.js +97 -95
  305. package/tsOutputs/common/utils/token-data-builder.js.map +1 -1
  306. package/tsOutputs/common/utils/validation-utils.d.ts +3 -3
  307. package/tsOutputs/common/utils/validation-utils.js +18 -18
  308. package/tsOutputs/common/uuid.js +23 -23
  309. package/tsOutputs/common/watchdog.d.ts +96 -96
  310. package/tsOutputs/common/watchdog.js +151 -149
  311. package/tsOutputs/common/watchdog.js.map +1 -1
  312. package/tsOutputs/mocha-reporter/constants.js +27 -27
  313. package/tsOutputs/mocha-reporter/end-execution.js +22 -22
  314. package/tsOutputs/mocha-reporter/index.js +323 -323
  315. package/tsOutputs/test-listener/IConsoleLogger.js +5 -5
  316. package/tsOutputs/test-listener/SlNodeJsProxy.js +96 -96
  317. package/tsOutputs/test-listener/UserMessageHelper.js +47 -47
  318. package/tsOutputs/test-listener/agent-loader.js +58 -58
  319. package/tsOutputs/test-listener/agent.d.ts +53 -53
  320. package/tsOutputs/test-listener/agent.js +273 -273
  321. package/tsOutputs/test-listener/agent.js.map +1 -1
  322. package/tsOutputs/test-listener/api.js +157 -157
  323. package/tsOutputs/test-listener/base-proxy.d.ts +15 -15
  324. package/tsOutputs/test-listener/base-proxy.js +133 -133
  325. package/tsOutputs/test-listener/bootstrap.js +16 -16
  326. package/tsOutputs/test-listener/child-process-patcher.js +136 -136
  327. package/tsOutputs/test-listener/child-process-patcher.js.map +1 -1
  328. package/tsOutputs/test-listener/cli.js +64 -64
  329. package/tsOutputs/test-listener/coloring/http-coloring.d.ts +15 -15
  330. package/tsOutputs/test-listener/coloring/http-coloring.js +188 -188
  331. package/tsOutputs/test-listener/coloring/icoloring-provider.d.ts +10 -10
  332. package/tsOutputs/test-listener/coloring/icoloring-provider.js +2 -2
  333. package/tsOutputs/test-listener/coloring/listening-port.d.ts +20 -20
  334. package/tsOutputs/test-listener/coloring/listening-port.js +48 -48
  335. package/tsOutputs/test-listener/command-line-arg-parser.js +91 -91
  336. package/tsOutputs/test-listener/config-process/config-loader.js +104 -104
  337. package/tsOutputs/test-listener/config-process/config-system.d.ts +88 -88
  338. package/tsOutputs/test-listener/config-process/config-system.js +285 -285
  339. package/tsOutputs/test-listener/config-process/index.js +128 -126
  340. package/tsOutputs/test-listener/config-process/index.js.map +1 -1
  341. package/tsOutputs/test-listener/config.d.ts +50 -50
  342. package/tsOutputs/test-listener/config.js +82 -80
  343. package/tsOutputs/test-listener/config.js.map +1 -1
  344. package/tsOutputs/test-listener/contracts.d.ts +72 -72
  345. package/tsOutputs/test-listener/contracts.js +2 -2
  346. package/tsOutputs/test-listener/entities/BasicConfigurationData.js +72 -72
  347. package/tsOutputs/test-listener/entities/build-scanner/ConfigModeData.js +50 -48
  348. package/tsOutputs/test-listener/entities/build-scanner/ConfigModeData.js.map +1 -1
  349. package/tsOutputs/test-listener/entities/build-scanner/ScanModeData.js +53 -51
  350. package/tsOutputs/test-listener/entities/build-scanner/ScanModeData.js.map +1 -1
  351. package/tsOutputs/test-listener/environment-data-service.d.ts +11 -11
  352. package/tsOutputs/test-listener/environment-data-service.js +60 -60
  353. package/tsOutputs/test-listener/execution-process/contracts.js +5 -5
  354. package/tsOutputs/test-listener/execution-process/entities-mapper.js +49 -49
  355. package/tsOutputs/test-listener/execution-process/execution-service-proxy.js +207 -205
  356. package/tsOutputs/test-listener/execution-process/execution-service-proxy.js.map +1 -1
  357. package/tsOutputs/test-listener/execution-process/index.js +163 -163
  358. package/tsOutputs/test-listener/factory.d.ts +87 -87
  359. package/tsOutputs/test-listener/factory.js +285 -285
  360. package/tsOutputs/test-listener/footprints-process/footprints-service-proxy.js +52 -50
  361. package/tsOutputs/test-listener/footprints-process/footprints-service-proxy.js.map +1 -1
  362. package/tsOutputs/test-listener/footprints-process/index.js +230 -230
  363. package/tsOutputs/test-listener/footprints-process/index.js.map +1 -1
  364. package/tsOutputs/test-listener/footprints-process/istanbul-to-footprints-base.js +130 -130
  365. package/tsOutputs/test-listener/footprints-process/istanbul-to-footprints-contract.js +2 -2
  366. package/tsOutputs/test-listener/footprints-process/istanbul-to-footprints-v3.js +290 -288
  367. package/tsOutputs/test-listener/footprints-process/istanbul-to-footprints-v3.js.map +1 -1
  368. package/tsOutputs/test-listener/integrations/SlGulp.js +104 -104
  369. package/tsOutputs/test-listener/logs-process/index.d.ts +48 -48
  370. package/tsOutputs/test-listener/logs-process/index.js +142 -142
  371. package/tsOutputs/test-listener/logs-process/index.js.map +1 -1
  372. package/tsOutputs/test-listener/logs-process/log-service-proxy.d.ts +9 -9
  373. package/tsOutputs/test-listener/logs-process/log-service-proxy.js +31 -29
  374. package/tsOutputs/test-listener/logs-process/log-service-proxy.js.map +1 -1
  375. package/tsOutputs/test-listener/nyc-report-executor-fpv6.js +143 -143
  376. package/tsOutputs/test-listener/nyc-report-executor-fpv6.js.map +1 -1
  377. package/tsOutputs/test-listener/nyc-report-executor.js +144 -144
  378. package/tsOutputs/test-listener/nyc-report-executor.js.map +1 -1
  379. package/tsOutputs/test-listener/queue.js +57 -55
  380. package/tsOutputs/test-listener/queue.js.map +1 -1
  381. package/tsOutputs/test-listener/remote-agent.d.ts +42 -42
  382. package/tsOutputs/test-listener/remote-agent.js +200 -200
  383. package/tsOutputs/test-listener/remote-agent.js.map +1 -1
  384. package/tsOutputs/test-listener/resolvers/AppNameResolver.js +34 -32
  385. package/tsOutputs/test-listener/resolvers/AppNameResolver.js.map +1 -1
  386. package/tsOutputs/test-listener/resolvers/ArgumentResolver.js +64 -64
  387. package/tsOutputs/test-listener/resolvers/ArgumentResolver.js.map +1 -1
  388. package/tsOutputs/test-listener/resolvers/BuildResolver.js +33 -31
  389. package/tsOutputs/test-listener/resolvers/BuildResolver.js.map +1 -1
  390. package/tsOutputs/test-listener/resolvers/BuildSessionIdFileResolver.js +33 -31
  391. package/tsOutputs/test-listener/resolvers/BuildSessionIdFileResolver.js.map +1 -1
  392. package/tsOutputs/test-listener/resolvers/BuildSessionIdResolver.js +36 -34
  393. package/tsOutputs/test-listener/resolvers/BuildSessionIdResolver.js.map +1 -1
  394. package/tsOutputs/test-listener/resolvers/ProxyResolver.js +33 -31
  395. package/tsOutputs/test-listener/resolvers/ProxyResolver.js.map +1 -1
  396. package/tsOutputs/test-listener/resolvers/TokenResolver.js +33 -31
  397. package/tsOutputs/test-listener/resolvers/TokenResolver.js.map +1 -1
  398. package/tsOutputs/test-listener/state-tracker-process/index.js +162 -160
  399. package/tsOutputs/test-listener/state-tracker-process/index.js.map +1 -1
  400. package/tsOutputs/test-listener/state-tracker-process/state-tracker-proxy.d.ts +8 -8
  401. package/tsOutputs/test-listener/state-tracker-process/state-tracker-proxy.js +71 -69
  402. package/tsOutputs/test-listener/state-tracker-process/state-tracker-proxy.js.map +1 -1
  403. package/tsOutputs/test-listener/test-recommendation-handler.d.ts +29 -29
  404. package/tsOutputs/test-listener/test-recommendation-handler.js +161 -161
  405. package/tsOutputs/test-listener/upload-report-handler.js +96 -96
  406. package/tsOutputs/test-listener/utils.js +68 -68
  407. package/tsOutputs/test-listener/uuid.d.ts +3 -3
  408. package/tsOutputs/test-listener/uuid.js +23 -23
  409. package/tsOutputs/test-listener/wait-for-multiple-callbacks.d.ts +22 -22
  410. package/tsOutputs/test-listener/wait-for-multiple-callbacks.js +60 -60
  411. package/tsOutputs/test-listener/watchdog.d.ts +89 -89
  412. package/tsOutputs/test-listener/watchdog.js +146 -144
  413. package/tsOutputs/test-listener/watchdog.js.map +1 -1
  414. package/tsOutputs/build-scanner/complexity-metrics/complexity-metrics.js +0 -1
  415. package/tsOutputs/build-scanner/complexity-metrics/complexity-metrics.js.map +0 -1
  416. package/tsOutputs/build-scanner/js_diff/code-metrics-spec.js +0 -1
  417. package/tsOutputs/build-scanner/js_diff/code-metrics-spec.js.map +0 -1
  418. package/tsOutputs/build-scanner/js_diff/code-metrics.js +0 -1
  419. package/tsOutputs/build-scanner/js_diff/code-metrics.js.map +0 -1
  420. package/tsOutputs/build-scanner/mappings/contracts.js +0 -3
  421. package/tsOutputs/build-scanner/mappings/contracts.js.map +0 -1
@@ -1,235 +1,235 @@
1
- // @ts-ignore
2
- var traverse = require('ast-traverse');
3
- var astUtils = require('sl-esprima-ast-utils');
4
- var createNodeKey = require('./create-node-key').createNodeKey;
5
- var AstNodeTypes = require("./ast-node-types");
6
- var MethodSignature = require("./method-signature");
7
- var BranchSignature = require("./branch-signature");
8
- var globalMethodIndexer = require("./globalMethodIndexer");
9
- var parseContentToAST = require("../ast-utils").parseContentToAST;
10
- /**
11
- * Traverse the AST and handle specific node types.
12
- * Information about the Node Types can be found in: https://github.com/babel/babylon/blob/master/ast/spec.md
13
- * @param absolutePtah
14
- * @param relativePath
15
- * @param content
16
- * @param {*} sourceMaps
17
- * @param opts
18
- * @param scmFilesContainer
19
- * @param logger
20
- */
21
- var FileSignature = function (absolutePtah, relativePath, content, sourceMaps, opts, scmFilesContainer, logger) {
22
- this.absolutePath = absolutePtah;
23
- this.relativePath = relativePath;
24
- this.methods = [];
25
- this.branches = [];
26
- this.content = content;
27
- this.sourceMaps = sourceMaps;
28
- this.opts = opts;
29
- this.scmFilesContainer = scmFilesContainer;
30
- this.hasSourceMaps = !!sourceMaps;
31
- this.logger = logger;
32
- this.positionToMethod = {};
33
- this.endPositionToMethod = {};
34
- this.positionToBranchMap = {};
35
- this.methodIndex = 0;
36
- this.branchIndex = 0;
37
- };
38
- FileSignature.prototype._createSignature = function () {
39
- this.prepareContent();
40
- var ast = parseContentToAST(this.content, this.opts, this.absolutePath);
41
- this.traverseAST(ast);
42
- };
43
- FileSignature.prototype.createDTO = function () {
44
- return {
45
- methods: this.methods,
46
- branches: this.branches,
47
- filename: this.relativePath,
48
- hasSourceMaps: this.hasSourceMaps
49
- };
50
- };
51
- FileSignature.prototype.traverseAST = function (ast) {
52
- var context = this;
53
- var nodeToParent = {};
54
- var activeMethodKey = null;
55
- var activeMethodIndex = null;
56
- traverse(ast, {
57
- pre: function (node, parentNode) {
58
- var key = createNodeKey(node);
59
- nodeToParent[key] = parentNode;
60
- if (AstNodeTypes.isMethodNode(node)) {
61
- // If there is no active method it means we are in global context.
62
- if (activeMethodKey == null) {
63
- activeMethodKey = createNodeKey(node);
64
- }
65
- globalMethodIndexer.incrementIndex();
66
- /*
67
- We set the active method index to point the current method index index.
68
- This value sets the 'enclosingMethodIdx' in branches.
69
- */
70
- activeMethodIndex = globalMethodIndexer.getCurrentIndex();
71
- context.addMethod(node, parentNode, nodeToParent);
72
- context.addDefaultParameterBranch(node.params, parentNode, activeMethodIndex);
73
- }
74
- else if (context.opts.isBranchCoverage && AstNodeTypes.isBranchNode(node)) {
75
- context.addBranch(node, parentNode, activeMethodKey == null, activeMethodIndex);
76
- }
77
- },
78
- post: function (node) {
79
- if (AstNodeTypes.isMethodNode(node)) {
80
- // If we are quiting method which is active, its mean we are in global context.
81
- if (activeMethodKey === createNodeKey(node)) {
82
- activeMethodKey = null;
83
- }
84
- /*
85
- If a function contains branch after method, then the 'activeMethodIndex' will contains the index of
86
- the inner method while the branch belongs to the parent method.
87
- Here we decreasing the index after each method so the 'enclosingMethodIdx' of the branch will point to parent.
88
- */
89
- activeMethodIndex--;
90
- }
91
- }
92
- });
93
- };
94
- FileSignature.prototype.addMethod = function (node, parentNode, nodeToParent) {
95
- var method = MethodSignature.create(node, parentNode, nodeToParent, this.absolutePath, this.relativePath, this.logger);
96
- method.srcData = method.generatedData;
97
- this.methods.push(method.createDTO());
98
- this.endPositionToMethod[method.generatedData.endPosition] = this.methodIndex;
99
- this.positionToMethod[method.generatedData.position] = this.methodIndex;
100
- if (method.generatedData.identifierPosition) {
101
- this.positionToMethod[method.generatedData.identifierPosition] = this.methodIndex;
102
- }
103
- this.methodIndex++;
104
- };
105
- FileSignature.prototype.addBranch = function (node, parentNode, isGlobalBranch, activeMethodIndex) {
106
- var context = this;
107
- var branches = [];
108
- if (node.type !== AstNodeTypes.LogicalExpression) {
109
- branches = branches.concat(this.getBranchesToAdd(node, isGlobalBranch, activeMethodIndex));
110
- }
111
- // If this node its not logical exp inside logical exp.
112
- if (node.type == AstNodeTypes.LogicalExpression && (parentNode == undefined || parentNode.type !== AstNodeTypes.LogicalExpression)) {
113
- branches = branches.concat(this.getBranchesToAdd(node, isGlobalBranch, activeMethodIndex));
114
- }
115
- branches.forEach(function (branch) {
116
- branch.srcData = branch.generatedData;
117
- context.branches.push(branch.createDTO());
118
- context.positionToBranchMap[branch.generatedData.position + '|' + branch.index] = context.branchIndex;
119
- context.positionToBranchMap[branch.generatedData.parentPosition + '|' + branch.index] = context.branchIndex;
120
- context.branchIndex++;
121
- });
122
- };
123
- FileSignature.prototype.prepareContent = function () {
124
- this.content = trimShebang(this.content);
125
- };
126
- FileSignature.prototype.getBranchesToAdd = function (node, isGlobalBranch, activeMethodIndex) {
127
- var branchesToAdd = [];
128
- var context = this;
129
- var nodeKey = createNodeKey(node);
130
- switch (node.type) {
131
- // Those types contains some kind of "if else" structure.
132
- case AstNodeTypes.IfStatement:
133
- case AstNodeTypes.ConditionalExpression:
134
- var branchIndex = 0;
135
- // consequent mean when condition equals true.
136
- if (node.consequent !== null) {
137
- var branch = BranchSignature.create(node.consequent, node, node.type, branchIndex++, this.absolutePath, this.relativePath, isGlobalBranch, activeMethodIndex, this.logger);
138
- branchesToAdd.push(branch);
139
- }
140
- // altrnate equivalent to "else".
141
- var clonedNode = null;
142
- if (node.alternate == null) {
143
- clonedNode = createEmptyAlternate(node);
144
- }
145
- var nodeToAdd = clonedNode || node;
146
- var branch = BranchSignature.create(nodeToAdd.alternate, nodeToAdd, node.type, branchIndex++, this.absolutePath, this.relativePath, isGlobalBranch, activeMethodIndex, this.logger);
147
- branchesToAdd.push(branch);
148
- break;
149
- case AstNodeTypes.SwitchStatement:
150
- var branchIndex = 0;
151
- // Create branch from each case statement.
152
- node.cases.forEach(function (caseNode) {
153
- if (caseNode !== null) {
154
- var branch = BranchSignature.create(caseNode, node, node.type, branchIndex++, context.absolutePath, context.relativePath, isGlobalBranch, activeMethodIndex, context.logger);
155
- branchesToAdd.push(branch);
156
- }
157
- });
158
- break;
159
- case AstNodeTypes.LogicalExpression:
160
- var branchIndex = 0;
161
- var leaves = [];
162
- findLogicalExpressionLeaves(node, leaves);
163
- leaves.forEach(function (leafNode) {
164
- if (leafNode !== null) {
165
- var branch = BranchSignature.create(leafNode, node, node.type, branchIndex++, context.absolutePath, context.relativePath, isGlobalBranch, activeMethodIndex, context.logger);
166
- branchesToAdd.push(branch);
167
- }
168
- });
169
- break;
170
- case AstNodeTypes.AssignmentPattern:
171
- /*
172
- In babel es6 default arg is resolves with type 'AssignmentPattern' anf istanbul reports
173
- a branch with the location of the default value.
174
- For example: (a=2) => {console.log(a)} will be reported with branch on location of '2'
175
- */
176
- var branchIndex = 0;
177
- var branch = BranchSignature.create(node.right, node, AstNodeTypes.DefaultArgument, branchIndex++, this.absolutePath, this.relativePath, isGlobalBranch, activeMethodIndex, this.logger);
178
- branchesToAdd.push(branch);
179
- break;
180
- }
181
- return branchesToAdd;
182
- };
183
- FileSignature.prototype.addDefaultParameterBranch = function (functionParams, parentNode, activeMethodIndex) {
184
- var context = this;
185
- functionParams = functionParams || [];
186
- functionParams.forEach(function (param) {
187
- if (param.type === AstNodeTypes.AssignmentPattern) {
188
- context.addBranch(param, parentNode, true, activeMethodIndex);
189
- }
190
- });
191
- };
192
- FileSignature.create = function (absolutePtah, relativePath, content, sourceMaps, opts, scmFilesContainer, logger) {
193
- var signature = new this(absolutePtah, relativePath, content, sourceMaps, opts, scmFilesContainer, logger);
194
- signature._createSignature();
195
- return signature;
196
- };
197
- // Brake the expression to pieces (every "or" will be different branch).
198
- function findLogicalExpressionLeaves(node, leaves) {
199
- if (node.type === AstNodeTypes.LogicalExpression) {
200
- findLogicalExpressionLeaves(node.left, leaves);
201
- findLogicalExpressionLeaves(node.right, leaves);
202
- }
203
- else {
204
- leaves.push(node);
205
- }
206
- }
207
- /**
208
- * Taken from eslint - https://github.com/eslint/eslint/blob/183def6115cad6f17c82ef1c1a245eb22d0bee83/lib/eslint.js#L800
209
- */
210
- function trimShebang(text) {
211
- return text.replace(/^#!([^\r\n]+)/, function (match, captured) {
212
- return "//" + captured;
213
- });
214
- }
215
- /**
216
- * When we have inner method we set it to empty block statement, because we want to calculate the hash and diff
217
- * for outer method only.
218
- * @param {*} methodNode
219
- */
220
- function _createEmptyBlock() {
221
- return {
222
- type: AstNodeTypes.BlockStatement,
223
- body: []
224
- };
225
- }
226
- function createEmptyAlternate(node) {
227
- // Istanbul counts empty alternates and takes the consequent's location
228
- var clonedNode = astUtils.clone(node);
229
- clonedNode.alternate = _createEmptyBlock();
230
- // Set alternate location to consequent location (same as istanbul).
231
- clonedNode.alternate.loc = node.consequent !== null ? node.consequent.loc : node.loc;
232
- return clonedNode;
233
- }
234
- module.exports = FileSignature;
1
+ // @ts-ignore
2
+ var traverse = require('ast-traverse');
3
+ var astUtils = require('sl-esprima-ast-utils');
4
+ var createNodeKey = require('./create-node-key').createNodeKey;
5
+ var AstNodeTypes = require("./ast-node-types");
6
+ var MethodSignature = require("./method-signature");
7
+ var BranchSignature = require("./branch-signature");
8
+ var globalMethodIndexer = require("./globalMethodIndexer");
9
+ var parseContentToAST = require("../ast-utils").parseContentToAST;
10
+ /**
11
+ * Traverse the AST and handle specific node types.
12
+ * Information about the Node Types can be found in: https://github.com/babel/babylon/blob/master/ast/spec.md
13
+ * @param absolutePtah
14
+ * @param relativePath
15
+ * @param content
16
+ * @param {*} sourceMaps
17
+ * @param opts
18
+ * @param scmFilesContainer
19
+ * @param logger
20
+ */
21
+ var FileSignature = function (absolutePtah, relativePath, content, sourceMaps, opts, scmFilesContainer, logger) {
22
+ this.absolutePath = absolutePtah;
23
+ this.relativePath = relativePath;
24
+ this.methods = [];
25
+ this.branches = [];
26
+ this.content = content;
27
+ this.sourceMaps = sourceMaps;
28
+ this.opts = opts;
29
+ this.scmFilesContainer = scmFilesContainer;
30
+ this.hasSourceMaps = !!sourceMaps;
31
+ this.logger = logger;
32
+ this.positionToMethod = {};
33
+ this.endPositionToMethod = {};
34
+ this.positionToBranchMap = {};
35
+ this.methodIndex = 0;
36
+ this.branchIndex = 0;
37
+ };
38
+ FileSignature.prototype._createSignature = function () {
39
+ this.prepareContent();
40
+ var ast = parseContentToAST(this.content, this.opts, this.absolutePath);
41
+ this.traverseAST(ast);
42
+ };
43
+ FileSignature.prototype.createDTO = function () {
44
+ return {
45
+ methods: this.methods,
46
+ branches: this.branches,
47
+ filename: this.relativePath,
48
+ hasSourceMaps: this.hasSourceMaps
49
+ };
50
+ };
51
+ FileSignature.prototype.traverseAST = function (ast) {
52
+ var context = this;
53
+ var nodeToParent = {};
54
+ var activeMethodKey = null;
55
+ var activeMethodIndex = null;
56
+ traverse(ast, {
57
+ pre: function (node, parentNode) {
58
+ var key = createNodeKey(node);
59
+ nodeToParent[key] = parentNode;
60
+ if (AstNodeTypes.isMethodNode(node)) {
61
+ // If there is no active method it means we are in global context.
62
+ if (activeMethodKey == null) {
63
+ activeMethodKey = createNodeKey(node);
64
+ }
65
+ globalMethodIndexer.incrementIndex();
66
+ /*
67
+ We set the active method index to point the current method index index.
68
+ This value sets the 'enclosingMethodIdx' in branches.
69
+ */
70
+ activeMethodIndex = globalMethodIndexer.getCurrentIndex();
71
+ context.addMethod(node, parentNode, nodeToParent);
72
+ context.addDefaultParameterBranch(node.params, parentNode, activeMethodIndex);
73
+ }
74
+ else if (context.opts.isBranchCoverage && AstNodeTypes.isBranchNode(node)) {
75
+ context.addBranch(node, parentNode, activeMethodKey == null, activeMethodIndex);
76
+ }
77
+ },
78
+ post: function (node) {
79
+ if (AstNodeTypes.isMethodNode(node)) {
80
+ // If we are quiting method which is active, its mean we are in global context.
81
+ if (activeMethodKey === createNodeKey(node)) {
82
+ activeMethodKey = null;
83
+ }
84
+ /*
85
+ If a function contains branch after method, then the 'activeMethodIndex' will contains the index of
86
+ the inner method while the branch belongs to the parent method.
87
+ Here we decreasing the index after each method so the 'enclosingMethodIdx' of the branch will point to parent.
88
+ */
89
+ activeMethodIndex--;
90
+ }
91
+ }
92
+ });
93
+ };
94
+ FileSignature.prototype.addMethod = function (node, parentNode, nodeToParent) {
95
+ var method = MethodSignature.create(node, parentNode, nodeToParent, this.absolutePath, this.relativePath, this.logger);
96
+ method.srcData = method.generatedData;
97
+ this.methods.push(method.createDTO());
98
+ this.endPositionToMethod[method.generatedData.endPosition] = this.methodIndex;
99
+ this.positionToMethod[method.generatedData.position] = this.methodIndex;
100
+ if (method.generatedData.identifierPosition) {
101
+ this.positionToMethod[method.generatedData.identifierPosition] = this.methodIndex;
102
+ }
103
+ this.methodIndex++;
104
+ };
105
+ FileSignature.prototype.addBranch = function (node, parentNode, isGlobalBranch, activeMethodIndex) {
106
+ var context = this;
107
+ var branches = [];
108
+ if (node.type !== AstNodeTypes.LogicalExpression) {
109
+ branches = branches.concat(this.getBranchesToAdd(node, isGlobalBranch, activeMethodIndex));
110
+ }
111
+ // If this node its not logical exp inside logical exp.
112
+ if (node.type == AstNodeTypes.LogicalExpression && (parentNode == undefined || parentNode.type !== AstNodeTypes.LogicalExpression)) {
113
+ branches = branches.concat(this.getBranchesToAdd(node, isGlobalBranch, activeMethodIndex));
114
+ }
115
+ branches.forEach(function (branch) {
116
+ branch.srcData = branch.generatedData;
117
+ context.branches.push(branch.createDTO());
118
+ context.positionToBranchMap[branch.generatedData.position + '|' + branch.index] = context.branchIndex;
119
+ context.positionToBranchMap[branch.generatedData.parentPosition + '|' + branch.index] = context.branchIndex;
120
+ context.branchIndex++;
121
+ });
122
+ };
123
+ FileSignature.prototype.prepareContent = function () {
124
+ this.content = trimShebang(this.content);
125
+ };
126
+ FileSignature.prototype.getBranchesToAdd = function (node, isGlobalBranch, activeMethodIndex) {
127
+ var branchesToAdd = [];
128
+ var context = this;
129
+ var nodeKey = createNodeKey(node);
130
+ switch (node.type) {
131
+ // Those types contains some kind of "if else" structure.
132
+ case AstNodeTypes.IfStatement:
133
+ case AstNodeTypes.ConditionalExpression:
134
+ var branchIndex = 0;
135
+ // consequent mean when condition equals true.
136
+ if (node.consequent !== null) {
137
+ var branch = BranchSignature.create(node.consequent, node, node.type, branchIndex++, this.absolutePath, this.relativePath, isGlobalBranch, activeMethodIndex, this.logger);
138
+ branchesToAdd.push(branch);
139
+ }
140
+ // altrnate equivalent to "else".
141
+ var clonedNode = null;
142
+ if (node.alternate == null) {
143
+ clonedNode = createEmptyAlternate(node);
144
+ }
145
+ var nodeToAdd = clonedNode || node;
146
+ var branch = BranchSignature.create(nodeToAdd.alternate, nodeToAdd, node.type, branchIndex++, this.absolutePath, this.relativePath, isGlobalBranch, activeMethodIndex, this.logger);
147
+ branchesToAdd.push(branch);
148
+ break;
149
+ case AstNodeTypes.SwitchStatement:
150
+ var branchIndex = 0;
151
+ // Create branch from each case statement.
152
+ node.cases.forEach(function (caseNode) {
153
+ if (caseNode !== null) {
154
+ var branch = BranchSignature.create(caseNode, node, node.type, branchIndex++, context.absolutePath, context.relativePath, isGlobalBranch, activeMethodIndex, context.logger);
155
+ branchesToAdd.push(branch);
156
+ }
157
+ });
158
+ break;
159
+ case AstNodeTypes.LogicalExpression:
160
+ var branchIndex = 0;
161
+ var leaves = [];
162
+ findLogicalExpressionLeaves(node, leaves);
163
+ leaves.forEach(function (leafNode) {
164
+ if (leafNode !== null) {
165
+ var branch = BranchSignature.create(leafNode, node, node.type, branchIndex++, context.absolutePath, context.relativePath, isGlobalBranch, activeMethodIndex, context.logger);
166
+ branchesToAdd.push(branch);
167
+ }
168
+ });
169
+ break;
170
+ case AstNodeTypes.AssignmentPattern:
171
+ /*
172
+ In babel es6 default arg is resolves with type 'AssignmentPattern' anf istanbul reports
173
+ a branch with the location of the default value.
174
+ For example: (a=2) => {console.log(a)} will be reported with branch on location of '2'
175
+ */
176
+ var branchIndex = 0;
177
+ var branch = BranchSignature.create(node.right, node, AstNodeTypes.DefaultArgument, branchIndex++, this.absolutePath, this.relativePath, isGlobalBranch, activeMethodIndex, this.logger);
178
+ branchesToAdd.push(branch);
179
+ break;
180
+ }
181
+ return branchesToAdd;
182
+ };
183
+ FileSignature.prototype.addDefaultParameterBranch = function (functionParams, parentNode, activeMethodIndex) {
184
+ var context = this;
185
+ functionParams = functionParams || [];
186
+ functionParams.forEach(function (param) {
187
+ if (param.type === AstNodeTypes.AssignmentPattern) {
188
+ context.addBranch(param, parentNode, true, activeMethodIndex);
189
+ }
190
+ });
191
+ };
192
+ FileSignature.create = function (absolutePtah, relativePath, content, sourceMaps, opts, scmFilesContainer, logger) {
193
+ var signature = new this(absolutePtah, relativePath, content, sourceMaps, opts, scmFilesContainer, logger);
194
+ signature._createSignature();
195
+ return signature;
196
+ };
197
+ // Brake the expression to pieces (every "or" will be different branch).
198
+ function findLogicalExpressionLeaves(node, leaves) {
199
+ if (node.type === AstNodeTypes.LogicalExpression) {
200
+ findLogicalExpressionLeaves(node.left, leaves);
201
+ findLogicalExpressionLeaves(node.right, leaves);
202
+ }
203
+ else {
204
+ leaves.push(node);
205
+ }
206
+ }
207
+ /**
208
+ * Taken from eslint - https://github.com/eslint/eslint/blob/183def6115cad6f17c82ef1c1a245eb22d0bee83/lib/eslint.js#L800
209
+ */
210
+ function trimShebang(text) {
211
+ return text.replace(/^#!([^\r\n]+)/, function (match, captured) {
212
+ return "//" + captured;
213
+ });
214
+ }
215
+ /**
216
+ * When we have inner method we set it to empty block statement, because we want to calculate the hash and diff
217
+ * for outer method only.
218
+ * @param {*} methodNode
219
+ */
220
+ function _createEmptyBlock() {
221
+ return {
222
+ type: AstNodeTypes.BlockStatement,
223
+ body: []
224
+ };
225
+ }
226
+ function createEmptyAlternate(node) {
227
+ // Istanbul counts empty alternates and takes the consequent's location
228
+ var clonedNode = astUtils.clone(node);
229
+ clonedNode.alternate = _createEmptyBlock();
230
+ // Set alternate location to consequent location (same as istanbul).
231
+ clonedNode.alternate.loc = node.consequent !== null ? node.consequent.loc : node.loc;
232
+ return clonedNode;
233
+ }
234
+ module.exports = FileSignature;
235
235
  //# sourceMappingURL=file-signature.js.map