slnodejs 6.0.42 → 6.1.2

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 (431) hide show
  1. package/lib/cli.js +1 -1
  2. package/package.json +124 -124
  3. package/tsOutputs/api.d.ts +12 -12
  4. package/tsOutputs/api.js +116 -116
  5. package/tsOutputs/build-scanner/ast-utils.js +38 -38
  6. package/tsOutputs/build-scanner/ast-utils.js.map +1 -1
  7. package/tsOutputs/build-scanner/build-diff-process.js +352 -346
  8. package/tsOutputs/build-scanner/build-diff-process.js.map +1 -1
  9. package/tsOutputs/build-scanner/cia.js +95 -95
  10. package/tsOutputs/build-scanner/complexity-metrics/complexity-metrics.js +1 -0
  11. package/tsOutputs/build-scanner/complexity-metrics/complexity-metrics.js.map +1 -0
  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 -46
  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 +185 -190
  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/code-metrics-spec.js +1 -0
  33. package/tsOutputs/build-scanner/js_diff/code-metrics-spec.js.map +1 -0
  34. package/tsOutputs/build-scanner/js_diff/code-metrics.js +1 -0
  35. package/tsOutputs/build-scanner/js_diff/code-metrics.js.map +1 -0
  36. package/tsOutputs/build-scanner/js_diff/create-node-key.js +7 -7
  37. package/tsOutputs/build-scanner/js_diff/dry-run-files-mapping.js +23 -23
  38. package/tsOutputs/build-scanner/js_diff/dry-run-files-mapping.js.map +1 -1
  39. package/tsOutputs/build-scanner/js_diff/file-signature.js +234 -231
  40. package/tsOutputs/build-scanner/js_diff/file-signature.js.map +1 -1
  41. package/tsOutputs/build-scanner/js_diff/files-mapping.js +460 -473
  42. package/tsOutputs/build-scanner/js_diff/files-mapping.js.map +1 -1
  43. package/tsOutputs/build-scanner/js_diff/generated-file-signature.js +143 -143
  44. package/tsOutputs/build-scanner/js_diff/generated-file-signature.js.map +1 -1
  45. package/tsOutputs/build-scanner/js_diff/globalMethodIndexer.js +26 -26
  46. package/tsOutputs/build-scanner/js_diff/guess-method-location.js +100 -97
  47. package/tsOutputs/build-scanner/js_diff/guess-method-location.js.map +1 -1
  48. package/tsOutputs/build-scanner/js_diff/guess-method-name.js +54 -54
  49. package/tsOutputs/build-scanner/js_diff/method-signature.js +142 -140
  50. package/tsOutputs/build-scanner/js_diff/method-signature.js.map +1 -1
  51. package/tsOutputs/build-scanner/js_diff/sl-mapper.js +136 -75
  52. package/tsOutputs/build-scanner/js_diff/sl-mapper.js.map +1 -1
  53. package/tsOutputs/build-scanner/js_diff/source-data-enricher.js +89 -89
  54. package/tsOutputs/build-scanner/js_diff/source-data-enricher.js.map +1 -1
  55. package/tsOutputs/build-scanner/js_diff/source-files-notifier.js +31 -31
  56. package/tsOutputs/build-scanner/js_diff/source-position-mapper.js +29 -29
  57. package/tsOutputs/build-scanner/mappings/contracts.js +3 -0
  58. package/tsOutputs/build-scanner/mappings/contracts.js.map +1 -0
  59. package/tsOutputs/build-scanner/mappings/ensure-files-handler.service.js +214 -0
  60. package/tsOutputs/build-scanner/mappings/ensure-files-handler.service.js.map +1 -0
  61. package/tsOutputs/build-scanner/mappings/file-element-utils.js +47 -0
  62. package/tsOutputs/build-scanner/mappings/file-element-utils.js.map +1 -0
  63. package/tsOutputs/build-scanner/mappings/file-enricher.js +205 -0
  64. package/tsOutputs/build-scanner/mappings/file-enricher.js.map +1 -0
  65. package/tsOutputs/build-scanner/mappings/files-data-container.js +52 -0
  66. package/tsOutputs/build-scanner/mappings/files-data-container.js.map +1 -0
  67. package/tsOutputs/build-scanner/mappings/scm-file-fixer.js +78 -0
  68. package/tsOutputs/build-scanner/mappings/scm-file-fixer.js.map +1 -0
  69. package/tsOutputs/build-scanner/markup-files-parser.js +71 -71
  70. package/tsOutputs/build-scanner/nopt-types.js +19 -19
  71. package/tsOutputs/build-scanner/nopt-usage-2.js +56 -56
  72. package/tsOutputs/build-scanner/polyfills.js +6 -6
  73. package/tsOutputs/build-scanner/scm/parse-log.js +5 -5
  74. package/tsOutputs/build-scanner/scm/scm-files-container.js +49 -49
  75. package/tsOutputs/build-scanner/sl-config-cia-cli.js +175 -175
  76. package/tsOutputs/build-scanner/utils.js +91 -91
  77. package/tsOutputs/cli-parse/agent-instance-data.d.ts +2 -2
  78. package/tsOutputs/cli-parse/agent-instance-data.js +6 -6
  79. package/tsOutputs/cli-parse/child-process-wrapper.js +82 -82
  80. package/tsOutputs/cli-parse/child-process-wrapper.js.map +1 -1
  81. package/tsOutputs/cli-parse/cli.js +509 -509
  82. package/tsOutputs/cli-parse/constants/constants.js +55 -56
  83. package/tsOutputs/cli-parse/constants/constants.js.map +1 -1
  84. package/tsOutputs/cli-parse/constants/third-parties.js +10 -10
  85. package/tsOutputs/cli-parse/contracts.js +2 -2
  86. package/tsOutputs/cli-parse/custom-commander.js +44 -44
  87. package/tsOutputs/cli-parse/executors/base-executor.js +263 -254
  88. package/tsOutputs/cli-parse/executors/base-executor.js.map +1 -1
  89. package/tsOutputs/cli-parse/executors/build-args-dto.js +55 -55
  90. package/tsOutputs/cli-parse/executors/build-end-executor.js +115 -117
  91. package/tsOutputs/cli-parse/executors/build-end-executor.js.map +1 -1
  92. package/tsOutputs/cli-parse/executors/build-executor.js +147 -149
  93. package/tsOutputs/cli-parse/executors/build-executor.js.map +1 -1
  94. package/tsOutputs/cli-parse/executors/config-executor.js +112 -114
  95. package/tsOutputs/cli-parse/executors/config-executor.js.map +1 -1
  96. package/tsOutputs/cli-parse/executors/dry-run/base-data.js +55 -55
  97. package/tsOutputs/cli-parse/executors/dry-run/base-data.js.map +1 -1
  98. package/tsOutputs/cli-parse/executors/dry-run/build-mapping-data.js +228 -230
  99. package/tsOutputs/cli-parse/executors/dry-run/build-mapping-data.js.map +1 -1
  100. package/tsOutputs/cli-parse/executors/dry-run/dry-run-executor.js +277 -277
  101. package/tsOutputs/cli-parse/executors/dry-run/dry-run-executor.js.map +1 -1
  102. package/tsOutputs/cli-parse/executors/dry-run/dry-run-validation.js +120 -122
  103. package/tsOutputs/cli-parse/executors/dry-run/dry-run-validation.js.map +1 -1
  104. package/tsOutputs/cli-parse/executors/dry-run/footprints-data.js +130 -72
  105. package/tsOutputs/cli-parse/executors/dry-run/footprints-data.js.map +1 -1
  106. package/tsOutputs/cli-parse/executors/dry-run/helper-methods.js +104 -99
  107. package/tsOutputs/cli-parse/executors/dry-run/helper-methods.js.map +1 -1
  108. package/tsOutputs/cli-parse/executors/end-execution-executor.js +88 -90
  109. package/tsOutputs/cli-parse/executors/end-execution-executor.js.map +1 -1
  110. package/tsOutputs/cli-parse/executors/integration-build-components-executor.js +132 -134
  111. package/tsOutputs/cli-parse/executors/integration-build-components-executor.js.map +1 -1
  112. package/tsOutputs/cli-parse/executors/integration-build-delete-components-executor.js +73 -75
  113. package/tsOutputs/cli-parse/executors/integration-build-delete-components-executor.js.map +1 -1
  114. package/tsOutputs/cli-parse/executors/integration-build-update-components-executor.js +71 -73
  115. package/tsOutputs/cli-parse/executors/integration-build-update-components-executor.js.map +1 -1
  116. package/tsOutputs/cli-parse/executors/mocha-executor.js +122 -124
  117. package/tsOutputs/cli-parse/executors/mocha-executor.js.map +1 -1
  118. package/tsOutputs/cli-parse/executors/nyc-report-executor.js +104 -106
  119. package/tsOutputs/cli-parse/executors/nyc-report-executor.js.map +1 -1
  120. package/tsOutputs/cli-parse/executors/pr-config-executor.js +83 -85
  121. package/tsOutputs/cli-parse/executors/pr-config-executor.js.map +1 -1
  122. package/tsOutputs/cli-parse/executors/run-executor.js +93 -95
  123. package/tsOutputs/cli-parse/executors/run-executor.js.map +1 -1
  124. package/tsOutputs/cli-parse/executors/start-execution-executor.js +91 -93
  125. package/tsOutputs/cli-parse/executors/start-execution-executor.js.map +1 -1
  126. package/tsOutputs/cli-parse/executors/test-executions-executor.js +75 -77
  127. package/tsOutputs/cli-parse/executors/test-executions-executor.js.map +1 -1
  128. package/tsOutputs/cli-parse/executors/test-listener-executor.js +149 -151
  129. package/tsOutputs/cli-parse/executors/test-listener-executor.js.map +1 -1
  130. package/tsOutputs/cli-parse/executors/test-runner-build-session-data-builder.js +75 -77
  131. package/tsOutputs/cli-parse/executors/test-runner-build-session-data-builder.js.map +1 -1
  132. package/tsOutputs/cli-parse/executors/upload-report-executor.js +116 -118
  133. package/tsOutputs/cli-parse/executors/upload-report-executor.js.map +1 -1
  134. package/tsOutputs/cli-parse/utils.js +32 -32
  135. package/tsOutputs/cli-parse/utils.js.map +1 -1
  136. package/tsOutputs/common/agent-events/agent-events-conracts.d.ts +123 -123
  137. package/tsOutputs/common/agent-events/agent-events-conracts.js +56 -56
  138. package/tsOutputs/common/agent-events/agent-events-controller.d.ts +45 -45
  139. package/tsOutputs/common/agent-events/agent-events-controller.js +301 -301
  140. package/tsOutputs/common/agent-events/agent-events-controller.js.map +1 -1
  141. package/tsOutputs/common/agent-events/agent-instance-info-builder.d.ts +22 -22
  142. package/tsOutputs/common/agent-events/agent-instance-info-builder.js +63 -63
  143. package/tsOutputs/common/agent-events/agent-instance-info-builder.js.map +1 -1
  144. package/tsOutputs/common/agent-events/agent-start-info-builder.d.ts +14 -14
  145. package/tsOutputs/common/agent-events/agent-start-info-builder.js +23 -23
  146. package/tsOutputs/common/agent-events/ci-info-builder.d.ts +7 -7
  147. package/tsOutputs/common/agent-events/ci-info-builder.js +30 -30
  148. package/tsOutputs/common/agent-events/cockpit-notifier.d.ts +26 -26
  149. package/tsOutputs/common/agent-events/cockpit-notifier.js +119 -119
  150. package/tsOutputs/common/agent-events/dry-run-agent-events-controller.d.ts +7 -7
  151. package/tsOutputs/common/agent-events/dry-run-agent-events-controller.js +31 -33
  152. package/tsOutputs/common/agent-events/dry-run-agent-events-controller.js.map +1 -1
  153. package/tsOutputs/common/agent-events/machine-info-builder.d.ts +7 -7
  154. package/tsOutputs/common/agent-events/machine-info-builder.js +35 -35
  155. package/tsOutputs/common/agent-events/machine-info-builder.js.map +1 -1
  156. package/tsOutputs/common/agent-events/nodejs-env-info-builder.d.ts +8 -8
  157. package/tsOutputs/common/agent-events/nodejs-env-info-builder.js +19 -19
  158. package/tsOutputs/common/agent-events/sensitive-data-filter.d.ts +2 -2
  159. package/tsOutputs/common/agent-events/sensitive-data-filter.js +54 -54
  160. package/tsOutputs/common/agent-instance-data.d.ts +10 -10
  161. package/tsOutputs/common/agent-instance-data.js +39 -39
  162. package/tsOutputs/common/agent-instance-data.js.map +1 -1
  163. package/tsOutputs/common/config-process/config-loader.d.ts +8 -8
  164. package/tsOutputs/common/config-process/config-loader.js +86 -86
  165. package/tsOutputs/common/config-process/config-system.d.ts +88 -88
  166. package/tsOutputs/common/config-process/config-system.js +293 -293
  167. package/tsOutputs/common/config-process/config.d.ts +60 -60
  168. package/tsOutputs/common/config-process/config.js +90 -92
  169. package/tsOutputs/common/config-process/config.js.map +1 -1
  170. package/tsOutputs/common/config-process/index.d.ts +21 -21
  171. package/tsOutputs/common/config-process/index.js +125 -127
  172. package/tsOutputs/common/config-process/index.js.map +1 -1
  173. package/tsOutputs/common/constants/constants.d.ts +18 -18
  174. package/tsOutputs/common/constants/constants.js +29 -29
  175. package/tsOutputs/common/constants/sl-env-vars.d.ts +52 -52
  176. package/tsOutputs/common/constants/sl-env-vars.js +122 -122
  177. package/tsOutputs/common/contracts.d.ts +123 -123
  178. package/tsOutputs/common/contracts.js +2 -2
  179. package/tsOutputs/common/coverage-elements/contracts.d.ts +25 -25
  180. package/tsOutputs/common/coverage-elements/contracts.js +8 -8
  181. package/tsOutputs/common/coverage-elements/file-element.d.ts +35 -35
  182. package/tsOutputs/common/coverage-elements/file-element.js +158 -158
  183. package/tsOutputs/common/coverage-elements/istanbul-unique-id-converter.d.ts +12 -12
  184. package/tsOutputs/common/coverage-elements/istanbul-unique-id-converter.js +95 -97
  185. package/tsOutputs/common/coverage-elements/istanbul-unique-id-converter.js.map +1 -1
  186. package/tsOutputs/common/coverage-elements/new-id-resolver.d.ts +3 -3
  187. package/tsOutputs/common/coverage-elements/new-id-resolver.js +45 -45
  188. package/tsOutputs/common/coverage-elements/new-id-resolver.js.map +1 -1
  189. package/tsOutputs/common/coverage-elements/original-module-loader.d.ts +41 -41
  190. package/tsOutputs/common/coverage-elements/original-module-loader.js +189 -189
  191. package/tsOutputs/common/coverage-elements/unique-id-converter.d.ts +32 -32
  192. package/tsOutputs/common/coverage-elements/unique-id-converter.js +234 -234
  193. package/tsOutputs/common/environment-data-service.d.ts +15 -15
  194. package/tsOutputs/common/environment-data-service.js +60 -60
  195. package/tsOutputs/common/events-process/events-contracts.d.ts +52 -52
  196. package/tsOutputs/common/events-process/events-contracts.js +19 -19
  197. package/tsOutputs/common/events-process/events-creator.js +42 -40
  198. package/tsOutputs/common/events-process/events-creator.js.map +1 -1
  199. package/tsOutputs/common/events-process/index.d.ts +42 -42
  200. package/tsOutputs/common/events-process/index.js +265 -266
  201. package/tsOutputs/common/events-process/index.js.map +1 -1
  202. package/tsOutputs/common/footprints-process/collection-interval.d.ts +10 -10
  203. package/tsOutputs/common/footprints-process/collection-interval.js +27 -27
  204. package/tsOutputs/common/footprints-process/collection-interval.js.map +1 -1
  205. package/tsOutputs/common/footprints-process/footprints-service-proxy.d.ts +12 -12
  206. package/tsOutputs/common/footprints-process/footprints-service-proxy.js +51 -51
  207. package/tsOutputs/common/footprints-process/index.d.ts +71 -71
  208. package/tsOutputs/common/footprints-process/index.js +264 -264
  209. package/tsOutputs/common/footprints-process/index.js.map +1 -1
  210. package/tsOutputs/common/footprints-process/istanbul-to-footprints-contract.d.ts +98 -98
  211. package/tsOutputs/common/footprints-process/istanbul-to-footprints-contract.js +9 -9
  212. package/tsOutputs/common/footprints-process/istanbul-to-footprints.d.ts +47 -47
  213. package/tsOutputs/common/footprints-process/istanbul-to-footprints.js +421 -421
  214. package/tsOutputs/common/footprints-process/istanbul-to-footprints.js.map +1 -1
  215. package/tsOutputs/common/footprints-process/production-footprints-handler.d.ts +54 -54
  216. package/tsOutputs/common/footprints-process/production-footprints-handler.js +308 -308
  217. package/tsOutputs/common/footprints-process/production-footprints-handler.js.map +1 -1
  218. package/tsOutputs/common/footprints-process-v6/base-browser-hits-converter.d.ts +20 -20
  219. package/tsOutputs/common/footprints-process-v6/base-browser-hits-converter.js +63 -65
  220. package/tsOutputs/common/footprints-process-v6/base-browser-hits-converter.js.map +1 -1
  221. package/tsOutputs/common/footprints-process-v6/buffer-size-helper.d.ts +15 -15
  222. package/tsOutputs/common/footprints-process-v6/buffer-size-helper.js +40 -40
  223. package/tsOutputs/common/footprints-process-v6/contracts.d.ts +184 -181
  224. package/tsOutputs/common/footprints-process-v6/contracts.js +9 -9
  225. package/tsOutputs/common/footprints-process-v6/footprints-buffer.d.ts +36 -34
  226. package/tsOutputs/common/footprints-process-v6/footprints-buffer.js +147 -135
  227. package/tsOutputs/common/footprints-process-v6/footprints-buffer.js.map +1 -1
  228. package/tsOutputs/common/footprints-process-v6/hits-collector.d.ts +24 -24
  229. package/tsOutputs/common/footprints-process-v6/hits-collector.js +168 -168
  230. package/tsOutputs/common/footprints-process-v6/hits-converter.d.ts +30 -28
  231. package/tsOutputs/common/footprints-process-v6/hits-converter.js +135 -105
  232. package/tsOutputs/common/footprints-process-v6/hits-converter.js.map +1 -1
  233. package/tsOutputs/common/footprints-process-v6/index.d.ts +41 -40
  234. package/tsOutputs/common/footprints-process-v6/index.js +304 -258
  235. package/tsOutputs/common/footprints-process-v6/index.js.map +1 -1
  236. package/tsOutputs/common/footprints-process-v6/location-formatter.d.ts +6 -6
  237. package/tsOutputs/common/footprints-process-v6/location-formatter.js +25 -25
  238. package/tsOutputs/common/footprints-process-v6/relative-path-resolver.d.ts +8 -8
  239. package/tsOutputs/common/footprints-process-v6/relative-path-resolver.js +28 -28
  240. package/tsOutputs/common/footprints-process-v6/remote-browser-hits-converter.d.ts +9 -9
  241. package/tsOutputs/common/footprints-process-v6/remote-browser-hits-converter.js +38 -40
  242. package/tsOutputs/common/footprints-process-v6/remote-browser-hits-converter.js.map +1 -1
  243. package/tsOutputs/common/footprints-process-v6/remote-footprints-process.d.ts +8 -8
  244. package/tsOutputs/common/footprints-process-v6/remote-footprints-process.js +32 -34
  245. package/tsOutputs/common/footprints-process-v6/remote-footprints-process.js.map +1 -1
  246. package/tsOutputs/common/footprints-process-v6/remote-hits-collector.d.ts +14 -14
  247. package/tsOutputs/common/footprints-process-v6/remote-hits-collector.js +39 -41
  248. package/tsOutputs/common/footprints-process-v6/remote-hits-collector.js.map +1 -1
  249. package/tsOutputs/common/footprints-process-v6/source-map-data.d.ts +9 -9
  250. package/tsOutputs/common/footprints-process-v6/source-map-data.js +32 -32
  251. package/tsOutputs/common/footprints-process-v6/source-map-data.js.map +1 -1
  252. package/tsOutputs/common/http/backend-proxy-interface.d.ts +33 -33
  253. package/tsOutputs/common/http/backend-proxy-interface.js +2 -2
  254. package/tsOutputs/common/http/backend-proxy.d.ts +54 -53
  255. package/tsOutputs/common/http/backend-proxy.js +408 -398
  256. package/tsOutputs/common/http/backend-proxy.js.map +1 -1
  257. package/tsOutputs/common/http/contracts.d.ts +280 -203
  258. package/tsOutputs/common/http/contracts.js +156 -158
  259. package/tsOutputs/common/http/contracts.js.map +1 -1
  260. package/tsOutputs/common/http/dry-run-proxy.js +106 -106
  261. package/tsOutputs/common/http/entities-mapper.d.ts +4 -4
  262. package/tsOutputs/common/http/entities-mapper.js +17 -17
  263. package/tsOutputs/common/http/http-client.d.ts +21 -21
  264. package/tsOutputs/common/http/http-client.js +195 -191
  265. package/tsOutputs/common/http/http-client.js.map +1 -1
  266. package/tsOutputs/common/http/http-verb.d.ts +6 -6
  267. package/tsOutputs/common/http/http-verb.js +10 -10
  268. package/tsOutputs/common/http/sl-routes.d.ts +70 -70
  269. package/tsOutputs/common/http/sl-routes.js +218 -218
  270. package/tsOutputs/common/ignored-files-handler.js +122 -122
  271. package/tsOutputs/common/ignored-files-handler.js.map +1 -1
  272. package/tsOutputs/common/logger.d.ts +40 -40
  273. package/tsOutputs/common/logger.js +188 -190
  274. package/tsOutputs/common/logger.js.map +1 -1
  275. package/tsOutputs/common/messages-formatter.d.ts +6 -6
  276. package/tsOutputs/common/messages-formatter.js +21 -21
  277. package/tsOutputs/common/queue.d.ts +19 -19
  278. package/tsOutputs/common/queue.js +55 -57
  279. package/tsOutputs/common/queue.js.map +1 -1
  280. package/tsOutputs/common/scm/contracts.js +2 -2
  281. package/tsOutputs/common/scm/git-cloner.js +138 -0
  282. package/tsOutputs/common/scm/git-cloner.js.map +1 -0
  283. package/tsOutputs/common/scm/git-format-builder.js +72 -72
  284. package/tsOutputs/common/scm/git.js +411 -411
  285. package/tsOutputs/common/scm/git.js.map +1 -1
  286. package/tsOutputs/common/scm/none.js +115 -115
  287. package/tsOutputs/common/scm/scm-factory.js +21 -21
  288. package/tsOutputs/common/short-name-to-file-mapper.js +79 -79
  289. package/tsOutputs/common/source-map-handler.d.ts +58 -58
  290. package/tsOutputs/common/source-map-handler.js +197 -197
  291. package/tsOutputs/common/source-map-reader.js +84 -84
  292. package/tsOutputs/common/source-maps-utils.d.ts +3 -3
  293. package/tsOutputs/common/source-maps-utils.js +39 -39
  294. package/tsOutputs/common/state-tracker-fpv6.d.ts +6 -6
  295. package/tsOutputs/common/state-tracker-fpv6.js +42 -44
  296. package/tsOutputs/common/state-tracker-fpv6.js.map +1 -1
  297. package/tsOutputs/common/state-tracker.d.ts +49 -49
  298. package/tsOutputs/common/state-tracker.js +299 -304
  299. package/tsOutputs/common/state-tracker.js.map +1 -1
  300. package/tsOutputs/common/system-date.d.ts +2 -2
  301. package/tsOutputs/common/system-date.js +21 -21
  302. package/tsOutputs/common/utils/abstract-data-builder.d.ts +10 -10
  303. package/tsOutputs/common/utils/abstract-data-builder.js +24 -24
  304. package/tsOutputs/common/utils/abstract-data-builder.js.map +1 -1
  305. package/tsOutputs/common/utils/build-session-data-builder.d.ts +18 -18
  306. package/tsOutputs/common/utils/build-session-data-builder.js +135 -137
  307. package/tsOutputs/common/utils/build-session-data-builder.js.map +1 -1
  308. package/tsOutputs/common/utils/dependency-utils.js +69 -69
  309. package/tsOutputs/common/utils/files-utils.d.ts +6 -5
  310. package/tsOutputs/common/utils/files-utils.js +45 -36
  311. package/tsOutputs/common/utils/files-utils.js.map +1 -1
  312. package/tsOutputs/common/utils/parsing-utils.d.ts +4 -4
  313. package/tsOutputs/common/utils/parsing-utils.js +29 -29
  314. package/tsOutputs/common/utils/test-utils/mock-server-utils/contracts.js +10 -10
  315. package/tsOutputs/common/utils/test-utils/mock-server-utils/mock-server-proxy.js +248 -248
  316. package/tsOutputs/common/utils/timer-utils.d.ts +3 -3
  317. package/tsOutputs/common/utils/timer-utils.js +12 -12
  318. package/tsOutputs/common/utils/token-data-builder.d.ts +21 -21
  319. package/tsOutputs/common/utils/token-data-builder.js +95 -97
  320. package/tsOutputs/common/utils/token-data-builder.js.map +1 -1
  321. package/tsOutputs/common/utils/validation-utils.d.ts +3 -3
  322. package/tsOutputs/common/utils/validation-utils.js +18 -18
  323. package/tsOutputs/common/uuid.js +23 -23
  324. package/tsOutputs/common/watchdog.d.ts +96 -96
  325. package/tsOutputs/common/watchdog.js +149 -151
  326. package/tsOutputs/common/watchdog.js.map +1 -1
  327. package/tsOutputs/mocha-reporter/constants.js +27 -27
  328. package/tsOutputs/mocha-reporter/end-execution.js +22 -22
  329. package/tsOutputs/mocha-reporter/index.js +323 -323
  330. package/tsOutputs/test-listener/IConsoleLogger.js +5 -5
  331. package/tsOutputs/test-listener/SlNodeJsProxy.js +96 -96
  332. package/tsOutputs/test-listener/UserMessageHelper.js +47 -47
  333. package/tsOutputs/test-listener/agent-loader.js +58 -58
  334. package/tsOutputs/test-listener/agent.d.ts +53 -53
  335. package/tsOutputs/test-listener/agent.js +273 -273
  336. package/tsOutputs/test-listener/agent.js.map +1 -1
  337. package/tsOutputs/test-listener/api.js +157 -157
  338. package/tsOutputs/test-listener/base-proxy.d.ts +15 -15
  339. package/tsOutputs/test-listener/base-proxy.js +133 -133
  340. package/tsOutputs/test-listener/bootstrap.js +16 -16
  341. package/tsOutputs/test-listener/child-process-patcher.js +136 -136
  342. package/tsOutputs/test-listener/child-process-patcher.js.map +1 -1
  343. package/tsOutputs/test-listener/cli.js +64 -64
  344. package/tsOutputs/test-listener/coloring/http-coloring.d.ts +15 -15
  345. package/tsOutputs/test-listener/coloring/http-coloring.js +188 -188
  346. package/tsOutputs/test-listener/coloring/icoloring-provider.d.ts +10 -10
  347. package/tsOutputs/test-listener/coloring/icoloring-provider.js +2 -2
  348. package/tsOutputs/test-listener/coloring/listening-port.d.ts +20 -20
  349. package/tsOutputs/test-listener/coloring/listening-port.js +48 -48
  350. package/tsOutputs/test-listener/command-line-arg-parser.js +91 -91
  351. package/tsOutputs/test-listener/config-process/config-loader.js +104 -104
  352. package/tsOutputs/test-listener/config-process/config-system.d.ts +88 -88
  353. package/tsOutputs/test-listener/config-process/config-system.js +285 -285
  354. package/tsOutputs/test-listener/config-process/index.js +126 -128
  355. package/tsOutputs/test-listener/config-process/index.js.map +1 -1
  356. package/tsOutputs/test-listener/config.d.ts +50 -50
  357. package/tsOutputs/test-listener/config.js +80 -82
  358. package/tsOutputs/test-listener/config.js.map +1 -1
  359. package/tsOutputs/test-listener/contracts.d.ts +72 -72
  360. package/tsOutputs/test-listener/contracts.js +2 -2
  361. package/tsOutputs/test-listener/entities/BasicConfigurationData.js +72 -72
  362. package/tsOutputs/test-listener/entities/build-scanner/ConfigModeData.js +48 -50
  363. package/tsOutputs/test-listener/entities/build-scanner/ConfigModeData.js.map +1 -1
  364. package/tsOutputs/test-listener/entities/build-scanner/ScanModeData.js +51 -53
  365. package/tsOutputs/test-listener/entities/build-scanner/ScanModeData.js.map +1 -1
  366. package/tsOutputs/test-listener/environment-data-service.d.ts +11 -11
  367. package/tsOutputs/test-listener/environment-data-service.js +60 -60
  368. package/tsOutputs/test-listener/execution-process/contracts.js +5 -5
  369. package/tsOutputs/test-listener/execution-process/entities-mapper.js +49 -49
  370. package/tsOutputs/test-listener/execution-process/execution-service-proxy.js +205 -207
  371. package/tsOutputs/test-listener/execution-process/execution-service-proxy.js.map +1 -1
  372. package/tsOutputs/test-listener/execution-process/index.js +163 -163
  373. package/tsOutputs/test-listener/factory.d.ts +87 -87
  374. package/tsOutputs/test-listener/factory.js +285 -285
  375. package/tsOutputs/test-listener/footprints-process/footprints-service-proxy.js +50 -52
  376. package/tsOutputs/test-listener/footprints-process/footprints-service-proxy.js.map +1 -1
  377. package/tsOutputs/test-listener/footprints-process/index.js +230 -230
  378. package/tsOutputs/test-listener/footprints-process/index.js.map +1 -1
  379. package/tsOutputs/test-listener/footprints-process/istanbul-to-footprints-base.js +130 -130
  380. package/tsOutputs/test-listener/footprints-process/istanbul-to-footprints-contract.js +2 -2
  381. package/tsOutputs/test-listener/footprints-process/istanbul-to-footprints-v3.js +288 -290
  382. package/tsOutputs/test-listener/footprints-process/istanbul-to-footprints-v3.js.map +1 -1
  383. package/tsOutputs/test-listener/integrations/SlGulp.js +104 -104
  384. package/tsOutputs/test-listener/logs-process/index.d.ts +48 -48
  385. package/tsOutputs/test-listener/logs-process/index.js +142 -142
  386. package/tsOutputs/test-listener/logs-process/index.js.map +1 -1
  387. package/tsOutputs/test-listener/logs-process/log-service-proxy.d.ts +9 -9
  388. package/tsOutputs/test-listener/logs-process/log-service-proxy.js +29 -31
  389. package/tsOutputs/test-listener/logs-process/log-service-proxy.js.map +1 -1
  390. package/tsOutputs/test-listener/nyc-report-executor-fpv6.js +143 -136
  391. package/tsOutputs/test-listener/nyc-report-executor-fpv6.js.map +1 -1
  392. package/tsOutputs/test-listener/nyc-report-executor.js +144 -144
  393. package/tsOutputs/test-listener/nyc-report-executor.js.map +1 -1
  394. package/tsOutputs/test-listener/queue.js +55 -57
  395. package/tsOutputs/test-listener/queue.js.map +1 -1
  396. package/tsOutputs/test-listener/remote-agent.d.ts +42 -42
  397. package/tsOutputs/test-listener/remote-agent.js +200 -200
  398. package/tsOutputs/test-listener/remote-agent.js.map +1 -1
  399. package/tsOutputs/test-listener/resolvers/AppNameResolver.js +32 -34
  400. package/tsOutputs/test-listener/resolvers/AppNameResolver.js.map +1 -1
  401. package/tsOutputs/test-listener/resolvers/ArgumentResolver.js +64 -64
  402. package/tsOutputs/test-listener/resolvers/ArgumentResolver.js.map +1 -1
  403. package/tsOutputs/test-listener/resolvers/BuildResolver.js +31 -33
  404. package/tsOutputs/test-listener/resolvers/BuildResolver.js.map +1 -1
  405. package/tsOutputs/test-listener/resolvers/BuildSessionIdFileResolver.js +31 -33
  406. package/tsOutputs/test-listener/resolvers/BuildSessionIdFileResolver.js.map +1 -1
  407. package/tsOutputs/test-listener/resolvers/BuildSessionIdResolver.js +34 -36
  408. package/tsOutputs/test-listener/resolvers/BuildSessionIdResolver.js.map +1 -1
  409. package/tsOutputs/test-listener/resolvers/ProxyResolver.js +31 -33
  410. package/tsOutputs/test-listener/resolvers/ProxyResolver.js.map +1 -1
  411. package/tsOutputs/test-listener/resolvers/TokenResolver.js +31 -33
  412. package/tsOutputs/test-listener/resolvers/TokenResolver.js.map +1 -1
  413. package/tsOutputs/test-listener/state-tracker-process/index.js +160 -162
  414. package/tsOutputs/test-listener/state-tracker-process/index.js.map +1 -1
  415. package/tsOutputs/test-listener/state-tracker-process/state-tracker-proxy.d.ts +8 -8
  416. package/tsOutputs/test-listener/state-tracker-process/state-tracker-proxy.js +69 -71
  417. package/tsOutputs/test-listener/state-tracker-process/state-tracker-proxy.js.map +1 -1
  418. package/tsOutputs/test-listener/test-recommendation-handler.d.ts +29 -29
  419. package/tsOutputs/test-listener/test-recommendation-handler.js +161 -161
  420. package/tsOutputs/test-listener/upload-report-handler.js +96 -96
  421. package/tsOutputs/test-listener/utils.js +68 -68
  422. package/tsOutputs/test-listener/uuid.d.ts +3 -3
  423. package/tsOutputs/test-listener/uuid.js +23 -23
  424. package/tsOutputs/test-listener/wait-for-multiple-callbacks.d.ts +22 -22
  425. package/tsOutputs/test-listener/wait-for-multiple-callbacks.js +60 -60
  426. package/tsOutputs/test-listener/watchdog.d.ts +89 -89
  427. package/tsOutputs/test-listener/watchdog.js +144 -146
  428. package/tsOutputs/test-listener/watchdog.js.map +1 -1
  429. package/browser-agent/dist/browser-agent-all.js +0 -101140
  430. package/browser-agent/dist/browser-agent-all.min.js +0 -57
  431. package/browser-agent/package.json +0 -44
@@ -1,347 +1,353 @@
1
- var Promise = require('promise');
2
- var FilesMapping = require("./js_diff/files-mapping");
3
- var DryRunFilesMapping = require("./js_diff/dry-run-files-mapping");
4
- // TODO: Find a way to get version number without relative path
5
- // var version = require("../package.json").version;
6
- var version = "1.0.0";
7
- var utils = require('./utils.js');
8
- var os = require("os");
9
- var DefaultValuesResolver = require('./default-values-resolver');
10
- var fileAndFolderUtils = require("./file-and-folder-utils");
11
- var BrowserInstrumenter = require('./instrumentation/browser-instrumenter');
12
- var dvr = new DefaultValuesResolver();
13
- var SlMapper = require("./js_diff/sl-mapper").SlMapper;
14
- var ScmFilesContainer = require("./scm/scm-files-container");
15
- var CiaEnvVars = require("../common/constants/sl-env-vars").SlEnvVars.CIA;
16
- var globalErrorHandler = require('./global-error-handler');
17
- function BuildDiffProcess(buildArgs, backendProxy, scmFactory, parsedDependencies, logger) {
18
- var log = logger.child({
19
- className: "BuildDiffProcess"
20
- });
21
- function createBuildDiffPromiseChain(buildArguments) {
22
- parsedDependencies = parsedDependencies || [];
23
- var handlerParams = {
24
- buildArguments: buildArguments,
25
- cfg: buildArguments,
26
- finalOutput: {
27
- meta: createMetaTag(buildArguments),
28
- version: "2.0",
29
- files: [],
30
- dependencies: parsedDependencies
31
- }
32
- };
33
- var promiseChain = Promise.resolve();
34
- if (parsedDependencies.length == 0) { //If there are dependencies, no need to require workspacepath, scm, commit, and no need to perform actual scanning
35
- var scmInstance;
36
- if (buildArguments.workspacepath) {
37
- scmInstance = scmFactory.createScmByType(buildArguments.scm, buildArguments, buildArguments.workspacepath, globalErrorHandler);
38
- if (scmInstance) {
39
- handlerParams.finalOutput.meta.scm = buildArguments.scm;
40
- log.info("Created an scmInstance of type '" + buildArguments.scm + "'. Searching for a local repository at '" + buildArguments.workspacepath + "'.");
41
- if (!buildArguments.commit && !scmInstance.detectCommitVersion) {
42
- return Promise.reject("'commit' command-line argument is required, since automatic detection by the " + buildArguments.scm + " SCM is not supported");
43
- }
44
- }
45
- else {
46
- log.warn("Unsupported scm type: '" + buildArguments.scm + "'.");
47
- }
48
- //2. If there is a mapping, get the diffs
49
- if (scmInstance) {
50
- promiseChain = promiseChain.then(function () { return collectScmData(buildArguments, handlerParams, scmInstance); });
51
- }
52
- //3. Call JS mapping handler
53
- var slMapper = null;
54
- if (buildArguments.instrumentForBrowsers) {
55
- slMapper = new SlMapper(CiaEnvVars.getSlMappingPath(), backendProxy, buildArguments.buildSessionId, logger);
56
- }
57
- promiseChain = promiseChain.then(function () {
58
- log.info("Handling files and sending information in the new Build Scanner Format (with UniqueID).");
59
- var fileMappingInstance = buildArguments.isDryRunMode ? DryRunFilesMapping : FilesMapping;
60
- var filesMapping = new fileMappingInstance(handlerParams, slMapper, log);
61
- return filesMapping.process();
62
- });
63
- }
64
- }
65
- //4. Submit the final output to the server
66
- promiseChain = promiseChain.then(function () {
67
- if (buildArguments.instrumentationOnly) {
68
- log.info("No need to submit the files to server as the 'instrumentationOnly' flag is on.");
69
- return Promise.resolve();
70
- }
71
- else {
72
- //TODO: [SLDEV-4708] When the call to the server fails, the agent is "silent" and not showing any error message.
73
- return backendProxy.submitBuildMapping(handlerParams.finalOutput);
74
- }
75
- });
76
- //5. Print the counters
77
- promiseChain = promiseChain.then(function () {
78
- var mapping = handlerParams.finalOutput;
79
- if (!buildArguments.isDryRunMode && mapping != null && mapping.counters != null && mapping.counters.methods != null && mapping.counters.branches != null) {
80
- console.log("Reported " + mapping.counters.methods + " methods and " + mapping.counters.branches + " branches in " + mapping.files.length + " files.");
81
- }
82
- });
83
- //6. Create instrumented browser files.
84
- if (buildArguments.instrumentForBrowsers) {
85
- promiseChain = promiseChain.then(function () {
86
- return submitSlMapping(promiseChain, slMapper, buildArguments.uniqueModuleId, logger);
87
- });
88
- promiseChain = promiseChain.then(function () {
89
- if (handlerParams.finalOutput && handlerParams.finalOutput.files && !buildArguments.isDryRunMode) {
90
- delete handlerParams.finalOutput.files;
91
- }
92
- var promise = new Promise(function (resolve, reject) {
93
- var resolveWithoutHash = true;
94
- var delayShutdownInSeconds = buildArguments.delayShutdownInSeconds || 30;
95
- var downloadAgent = buildArguments.downloadAgent != null ? buildArguments.downloadAgent : true;
96
- var instrumentationConfig = {
97
- appName: buildArguments.appname,
98
- build: buildArguments.build,
99
- customerId: buildArguments.customerId,
100
- branch: buildArguments.branch,
101
- sourceRoot: buildArguments.workspacepath,
102
- files: getProcessedFiles(buildArguments, handlerParams.processedFiles, logger),
103
- outputPath: buildArguments.outputpath,
104
- copyAllFilesToOutput: buildArguments.copyAllFilesToOutput !== false,
105
- buildSessionId: buildArguments.buildSessionId,
106
- esModules: buildArguments["es6Modules"],
107
- server: buildArguments.server,
108
- token: buildArguments.token,
109
- instrumentationType: "browser",
110
- resolveWithoutHash: resolveWithoutHash,
111
- delayShutdownInSeconds: delayShutdownInSeconds,
112
- downloadAgent: downloadAgent,
113
- workspacepath: buildArguments.workspacepath,
114
- slMappingPath: CiaEnvVars.getSlMappingPath(),
115
- slMappingUrl: CiaEnvVars.getSlMappingUrl() || CiaEnvVars.getSlMappingPath(),
116
- labId: buildArguments.labid,
117
- babylonPlugins: buildArguments.babylonPlugins,
118
- usebranchcoverage: buildArguments.usebranchcoverage
119
- };
120
- log.info("'instrumentForBrowsers' flag is on. Starting instrumentation. Instrumentation config: %s", instrumentationConfig);
121
- var callback = function (err, processedFiles) {
122
- if (buildArguments.isDryRunMode) {
123
- return resolve({ err: err, processedFiles: processedFiles });
124
- }
125
- else if (err) {
126
- log.info("Finished the instrumentation with an error. Error: %s", err);
127
- reject(err);
128
- }
129
- else {
130
- log.info("Finished the instrumentation successfully");
131
- return resolve();
132
- }
133
- };
134
- runBrowserInstrumentation(log, instrumentationConfig, callback, slMapper);
135
- });
136
- return promise;
137
- });
138
- }
139
- return promiseChain;
140
- }
141
- function collectScmData(buildArguments, handlerParams, scmInstance) {
142
- var promiseChain = Promise.resolve();
143
- //2.1 Get repository url from the SCM
144
- promiseChain = promiseChain.then(function () {
145
- log.info("Getting repository URL.");
146
- return getRepositoryUrl(handlerParams, scmInstance);
147
- });
148
- //2.2 Get all contributors from the scm
149
- if (buildArguments.sendContributors) {
150
- promiseChain = promiseChain.then(function () {
151
- log.info("Getting contributors.");
152
- return getContributors(handlerParams, scmInstance);
153
- });
154
- }
155
- //2.3 Get branch history from the SCM
156
- promiseChain = promiseChain.then(function () {
157
- log.info("Loading branch history.");
158
- return loadBranchHistory(handlerParams, scmInstance);
159
- });
160
- //2.4 Get all commits effected each file
161
- if (buildArguments.sendContributors) {
162
- promiseChain = promiseChain.then(function (mapping) {
163
- log.info("Getting commits per file.");
164
- return getCommitsPerFile(handlerParams, scmInstance);
165
- });
166
- }
167
- //2.5 if commit was not specified, automatically detect it
168
- if (!buildArguments.commit) {
169
- promiseChain = promiseChain.then(function () {
170
- log.info("Couldn't find a 'commit' on the 'buildArguments'. Trying to detect the commit version.");
171
- return scmInstance.detectCommitVersion(handlerParams, log).then(function (commit) {
172
- if (commit) {
173
- handlerParams.finalOutput.meta.commit = commit;
174
- }
175
- });
176
- });
177
- }
178
- //2.6 Find repository root directory
179
- promiseChain = promiseChain.then(function () {
180
- return scmInstance.getRootDirectory(handlerParams, log).then(function (rootDir) {
181
- handlerParams.scmRootDir = rootDir;
182
- });
183
- });
184
- //2.6 Get list of all files in git
185
- promiseChain = promiseChain.then(function () {
186
- return scmInstance.getFiles(handlerParams, log).then(function (scmFiles) {
187
- if (scmFiles && Array.isArray(scmFiles)) {
188
- var scmFilesContainer = new ScmFilesContainer(logger);
189
- scmFiles.forEach(function (file) {
190
- scmFilesContainer.addFile(file);
191
- });
192
- handlerParams.scmFilesContainer = scmFilesContainer;
193
- }
194
- });
195
- });
196
- return promiseChain;
197
- }
198
- this.run = function run(buildArguments) {
199
- return createBuildDiffPromiseChain(buildArguments);
200
- };
201
- function runBrowserInstrumentation(log, instrumentationConfig, callback, slMapper) {
202
- log.info("Running browser instrumentation.");
203
- instrumentationConfig.extensionsToInstrument = dvr.getFileExtensions();
204
- var bi = new BrowserInstrumenter(instrumentationConfig, log, slMapper);
205
- bi.instrument(callback);
206
- }
207
- function loadBranchHistory(handlerParams, scmInstance) {
208
- return scmInstance.getBranchHistory(handlerParams, log).then(function (gitLog) {
209
- if (gitLog && gitLog.commitHistory && gitLog.commitHistory.length && gitLog.commitLog && gitLog.commitLog.length) {
210
- log.info('Branch history loaded (' + gitLog.commitHistory.length + ' commits)');
211
- handlerParams.finalOutput.meta.history = gitLog.commitHistory;
212
- handlerParams.finalOutput.meta.commitLog = gitLog.commitLog;
213
- }
214
- else {
215
- logBranchHistoryNotFound(gitLog, log);
216
- }
217
- return loadCommitIndexMap(gitLog, handlerParams, log);
218
- });
219
- }
220
- function getRepositoryUrl(handlerParams, scmInstance) {
221
- return scmInstance.getRepositoryUrl(handlerParams, log).then(function (repositoryUrl) {
222
- if (repositoryUrl) {
223
- log.info('Repository Url loaded (' + repositoryUrl + ')');
224
- handlerParams.finalOutput.meta.repositoryUrl = repositoryUrl;
225
- }
226
- return repositoryUrl;
227
- });
228
- }
229
- function getContributors(handlerParams, scmInstance) {
230
- return scmInstance.getContributors(handlerParams, log).then(function (contributorsLog) {
231
- if (contributorsLog && contributorsLog.contributors && contributorsLog.emailToIndexMap) {
232
- log.info('Contributors list loaded (' + contributorsLog.contributors.length + ' contributors)');
233
- handlerParams.finalOutput.meta.contributors = contributorsLog.contributors;
234
- handlerParams.emailToIndexMap = contributorsLog.emailToIndexMap;
235
- }
236
- else {
237
- logContributorsNotFound(contributorsLog, log);
238
- }
239
- return contributorsLog;
240
- });
241
- }
242
- function getCommitsPerFile(handlerParams, scmInstance) {
243
- return scmInstance.getCommitsPerFile(handlerParams, log).then(function (fileToCommitsMap) {
244
- if (fileToCommitsMap != null) {
245
- log.info('File commit map loaded (' + Object.keys(fileToCommitsMap).length + ' records)');
246
- handlerParams.fileToCommitsMap = fileToCommitsMap;
247
- }
248
- else {
249
- log.error("Commits map is null or undefined.");
250
- }
251
- return fileToCommitsMap;
252
- });
253
- }
254
- }
255
- function logContributorsNotFound(contributorsLog, log) {
256
- var fieldsMap = {
257
- contributorsLog: !contributorsLog,
258
- contributors: contributorsLog && !contributorsLog.contributors,
259
- emailToIndexMap: contributorsLog && !contributorsLog.emailToIndexMap
260
- };
261
- var missing = utils.getMissingProperties(fieldsMap);
262
- log.error("Contributors list not loaded, missing fields: " + missing);
263
- }
264
- function logBranchHistoryNotFound(gitLog, log) {
265
- var fieldsMap = {
266
- gitLog: !gitLog,
267
- commitHistory: gitLog && !gitLog.commitHistory,
268
- commitHistoryLength: gitLog && gitLog.commitHistory && !gitLog.commitHistory.length,
269
- commitLog: gitLog && !gitLog.commitLog,
270
- commitLogLength: gitLog && gitLog.commitLog && !gitLog.commitLog.length
271
- };
272
- var missing = utils.getMissingProperties(fieldsMap);
273
- log.error("Branch history not loaded, missing fields: " + missing);
274
- }
275
- function clone(o) {
276
- //if (!o) return o; //Unreachable
277
- return JSON.parse(JSON.stringify(o));
278
- }
279
- var getProcessedFiles = function (buildArguments, processedFiles, logger) {
280
- var folderToScan = buildArguments.workspacepath;
281
- return fileAndFolderUtils.scanDirRecursively(folderToScan, logger);
282
- };
283
- var loadCommitIndexMap = function (gitLog, handlerParams, log) {
284
- if (!handlerParams.buildArguments.sendContributors) {
285
- return gitLog;
286
- }
287
- if (gitLog && gitLog.commitToIndexMap) {
288
- handlerParams.commitToIndexMap = gitLog.commitToIndexMap;
289
- }
290
- else {
291
- log.error("Commit log index map not loaded");
292
- }
293
- return gitLog;
294
- };
295
- function createMetaTag(buildArguments) {
296
- return {
297
- "generated": new Date().valueOf(),
298
- "build": buildArguments.build,
299
- "commit": buildArguments.commit,
300
- "customerId": buildArguments.customerId,
301
- "appName": buildArguments.appname,
302
- //"technologies": "nodejs",
303
- "technology": "nodejs",
304
- "branch": buildArguments.branch,
305
- "environment": {
306
- agentVersion: version,
307
- agentType: "nodeJsBuildScanner",
308
- processArgv: process.argv,
309
- machineName: os.hostname(),
310
- platform: os.platform(),
311
- os: os.type(),
312
- osVersion: os.release(),
313
- arch: os.arch(),
314
- processId: process.pid,
315
- ipAddress: clone(os.networkInterfaces()),
316
- dependencies: clone(process.versions),
317
- runtime: process.version
318
- },
319
- "authors": buildArguments.author,
320
- "logsUrl": buildArguments.logsUrl,
321
- "jobName": buildArguments.jobName,
322
- "moduleName": buildArguments.uniqueModuleId,
323
- "uniqueModuleId": buildArguments.uniqueModuleId,
324
- "configurationData": buildArguments,
325
- "scmProvider": buildArguments.scmProvider,
326
- "scmVersion": buildArguments.scmVersion,
327
- "scmBaseUrl": buildArguments.scmBaseUrl,
328
- "buildSessionId": buildArguments.buildSessionId
329
- };
330
- }
331
- function submitSlMapping(promiseChain, slMapper, uniqueModuleId, logger) {
332
- return new Promise(function (resolve, reject) {
333
- if (!CiaEnvVars.getSlMappingPath()) {
334
- slMapper.postToServer(uniqueModuleId).then(function () {
335
- resolve();
336
- }, function (err) {
337
- reject(err);
338
- });
339
- }
340
- else {
341
- logger.info("Sl mapping path was set to '%s', skipping post to server");
342
- resolve();
343
- }
344
- });
345
- }
346
- module.exports.BuildDiffProcess = BuildDiffProcess;
1
+ var Promise = require('promise');
2
+ var FilesMapping = require("./js_diff/files-mapping");
3
+ var EnsureFilesHandlerService = require("./mappings/ensure-files-handler.service").EnsureFilesHandlerService;
4
+ var DryRunFilesMapping = require("./js_diff/dry-run-files-mapping");
5
+ // TODO: Find a way to get version number without relative path
6
+ // var version = require("../package.json").version;
7
+ var version = "1.0.0";
8
+ var utils = require('./utils.js');
9
+ var os = require("os");
10
+ var DefaultValuesResolver = require('./default-values-resolver');
11
+ var fileAndFolderUtils = require("./file-and-folder-utils");
12
+ var BrowserInstrumenter = require('./instrumentation/browser-instrumenter');
13
+ var dvr = new DefaultValuesResolver();
14
+ var SlMapper = require("./js_diff/sl-mapper").SlMapper;
15
+ var ScmFilesContainer = require("./scm/scm-files-container");
16
+ var CiaEnvVars = require("../common/constants/sl-env-vars").SlEnvVars.CIA;
17
+ var globalErrorHandler = require('./global-error-handler');
18
+ function BuildDiffProcess(buildArgs, backendProxy, scmFactory, parsedDependencies, logger) {
19
+ var log = logger.child({
20
+ className: "BuildDiffProcess"
21
+ });
22
+ function createBuildDiffPromiseChain(buildArguments) {
23
+ parsedDependencies = parsedDependencies || [];
24
+ var handlerParams = {
25
+ buildArguments: buildArguments,
26
+ cfg: buildArguments,
27
+ finalOutput: {
28
+ meta: createMetaTag(buildArguments),
29
+ version: "2.0",
30
+ files: [],
31
+ dependencies: parsedDependencies
32
+ }
33
+ };
34
+ var promiseChain = Promise.resolve();
35
+ if (parsedDependencies.length == 0) { //If there are dependencies, no need to require workspacepath, scm, commit, and no need to perform actual scanning
36
+ var scmInstance;
37
+ if (buildArguments.workspacepath) {
38
+ scmInstance = scmFactory.createScmByType(buildArguments.scm, buildArguments, buildArguments.workspacepath, globalErrorHandler);
39
+ if (scmInstance) {
40
+ handlerParams.finalOutput.meta.scm = buildArguments.scm;
41
+ log.info("Created an scmInstance of type '" + buildArguments.scm + "'. Searching for a local repository at '" + buildArguments.workspacepath + "'.");
42
+ if (!buildArguments.commit && !scmInstance.detectCommitVersion) {
43
+ return Promise.reject("'commit' command-line argument is required, since automatic detection by the " + buildArguments.scm + " SCM is not supported");
44
+ }
45
+ }
46
+ else {
47
+ log.warn("Unsupported scm type: '" + buildArguments.scm + "'.");
48
+ }
49
+ //2. If there is a mapping, get the diffs
50
+ if (scmInstance) {
51
+ promiseChain = promiseChain.then(function () { return collectScmData(buildArguments, handlerParams, scmInstance); });
52
+ }
53
+ promiseChain = promiseChain.then(function () {
54
+ log.info("Handling files and sending information in the new Build Scanner Format (with UniqueID).");
55
+ var fileMappingInstance = buildArguments.isDryRunMode ? DryRunFilesMapping : FilesMapping;
56
+ var filesMapping = new fileMappingInstance(handlerParams, log);
57
+ return filesMapping.process();
58
+ });
59
+ }
60
+ }
61
+ //4. Submit the final output to the server
62
+ var slMapper;
63
+ promiseChain = promiseChain.then(function () {
64
+ slMapper = new SlMapper(CiaEnvVars.getSlMappingPath(), backendProxy, buildArguments.buildSessionId, logger);
65
+ var fixer = new EnsureFilesHandlerService(logger, handlerParams.buildArguments, handlerParams.scmFilesContainer, handlerParams.scmRootDir, handlerParams.cfg, slMapper);
66
+ var result = fixer.ensureProcess(handlerParams.finalOutput);
67
+ handlerParams.finalOutput = result.output;
68
+ // if (buildArguments.instrumentForBrowsers) {
69
+ // promiseChain = promiseChain.then(function () {
70
+ // return submitSlMapping(promiseChain, slMapper, buildArguments.uniqueModuleId, logger)
71
+ // })
72
+ // }
73
+ if (buildArguments.instrumentationOnly) {
74
+ log.info("No need to submit the files to server as the 'instrumentationOnly' flag is on.");
75
+ return Promise.resolve();
76
+ }
77
+ else {
78
+ //TODO: [SLDEV-4708] When the call to the server fails, the agent is "silent" and not showing any error message.
79
+ return backendProxy.submitBuildMapping(handlerParams.finalOutput);
80
+ }
81
+ });
82
+ //5. Print the counters
83
+ promiseChain = promiseChain.then(function () {
84
+ var mapping = handlerParams.finalOutput;
85
+ if (!buildArguments.isDryRunMode && mapping != null && mapping.counters != null && mapping.counters.methods != null && mapping.counters.branches != null) {
86
+ console.log("Reported " + mapping.counters.methods + " methods and " + mapping.counters.branches + " branches in " + mapping.files.length + " files.");
87
+ }
88
+ });
89
+ //6. Create instrumented browser files.
90
+ if (buildArguments.instrumentForBrowsers) {
91
+ promiseChain = promiseChain.then(function () {
92
+ return submitSlMapping(promiseChain, slMapper, buildArguments.uniqueModuleId, logger);
93
+ });
94
+ promiseChain = promiseChain.then(function () {
95
+ if (handlerParams.finalOutput && handlerParams.finalOutput.files && !buildArguments.isDryRunMode) {
96
+ delete handlerParams.finalOutput.files;
97
+ }
98
+ var promise = new Promise(function (resolve, reject) {
99
+ var resolveWithoutHash = true;
100
+ var delayShutdownInSeconds = buildArguments.delayShutdownInSeconds || 30;
101
+ var downloadAgent = buildArguments.downloadAgent != null ? buildArguments.downloadAgent : true;
102
+ var instrumentationConfig = {
103
+ appName: buildArguments.appname,
104
+ build: buildArguments.build,
105
+ customerId: buildArguments.customerId,
106
+ branch: buildArguments.branch,
107
+ sourceRoot: buildArguments.workspacepath,
108
+ files: getProcessedFiles(buildArguments, handlerParams.processedFiles, logger),
109
+ outputPath: buildArguments.outputpath,
110
+ copyAllFilesToOutput: buildArguments.copyAllFilesToOutput !== false,
111
+ buildSessionId: buildArguments.buildSessionId,
112
+ esModules: buildArguments["es6Modules"],
113
+ server: buildArguments.server,
114
+ token: buildArguments.token,
115
+ instrumentationType: "browser",
116
+ resolveWithoutHash: resolveWithoutHash,
117
+ delayShutdownInSeconds: delayShutdownInSeconds,
118
+ downloadAgent: downloadAgent,
119
+ workspacepath: buildArguments.workspacepath,
120
+ slMappingPath: CiaEnvVars.getSlMappingPath(),
121
+ slMappingUrl: CiaEnvVars.getSlMappingUrl() || CiaEnvVars.getSlMappingPath(),
122
+ labId: buildArguments.labid,
123
+ babylonPlugins: buildArguments.babylonPlugins,
124
+ usebranchcoverage: buildArguments.usebranchcoverage
125
+ };
126
+ log.info("'instrumentForBrowsers' flag is on. Starting instrumentation. Instrumentation config: %s", instrumentationConfig);
127
+ var callback = function (err, processedFiles) {
128
+ if (buildArguments.isDryRunMode) {
129
+ return resolve({ err: err, processedFiles: processedFiles });
130
+ }
131
+ else if (err) {
132
+ log.info("Finished the instrumentation with an error. Error: %s", err);
133
+ reject(err);
134
+ }
135
+ else {
136
+ log.info("Finished the instrumentation successfully");
137
+ return resolve();
138
+ }
139
+ };
140
+ runBrowserInstrumentation(log, instrumentationConfig, callback, slMapper);
141
+ });
142
+ return promise;
143
+ });
144
+ }
145
+ return promiseChain;
146
+ }
147
+ function collectScmData(buildArguments, handlerParams, scmInstance) {
148
+ var promiseChain = Promise.resolve();
149
+ //2.1 Get repository url from the SCM
150
+ promiseChain = promiseChain.then(function () {
151
+ log.info("Getting repository URL.");
152
+ return getRepositoryUrl(handlerParams, scmInstance);
153
+ });
154
+ //2.2 Get all contributors from the scm
155
+ if (buildArguments.sendContributors) {
156
+ promiseChain = promiseChain.then(function () {
157
+ log.info("Getting contributors.");
158
+ return getContributors(handlerParams, scmInstance);
159
+ });
160
+ }
161
+ //2.3 Get branch history from the SCM
162
+ promiseChain = promiseChain.then(function () {
163
+ log.info("Loading branch history.");
164
+ return loadBranchHistory(handlerParams, scmInstance);
165
+ });
166
+ //2.4 Get all commits effected each file
167
+ if (buildArguments.sendContributors) {
168
+ promiseChain = promiseChain.then(function (mapping) {
169
+ log.info("Getting commits per file.");
170
+ return getCommitsPerFile(handlerParams, scmInstance);
171
+ });
172
+ }
173
+ //2.5 if commit was not specified, automatically detect it
174
+ if (!buildArguments.commit) {
175
+ promiseChain = promiseChain.then(function () {
176
+ log.info("Couldn't find a 'commit' on the 'buildArguments'. Trying to detect the commit version.");
177
+ return scmInstance.detectCommitVersion(handlerParams, log).then(function (commit) {
178
+ if (commit) {
179
+ handlerParams.finalOutput.meta.commit = commit;
180
+ }
181
+ });
182
+ });
183
+ }
184
+ //2.6 Find repository root directory
185
+ promiseChain = promiseChain.then(function () {
186
+ return scmInstance.getRootDirectory(handlerParams, log).then(function (rootDir) {
187
+ handlerParams.scmRootDir = rootDir;
188
+ });
189
+ });
190
+ //2.6 Get list of all files in git
191
+ promiseChain = promiseChain.then(function () {
192
+ return scmInstance.getFiles(handlerParams, log).then(function (scmFiles) {
193
+ if (scmFiles && Array.isArray(scmFiles)) {
194
+ var scmFilesContainer = new ScmFilesContainer(logger);
195
+ scmFiles.forEach(function (file) {
196
+ scmFilesContainer.addFile(file);
197
+ });
198
+ handlerParams.scmFilesContainer = scmFilesContainer;
199
+ }
200
+ });
201
+ });
202
+ return promiseChain;
203
+ }
204
+ this.run = function run(buildArguments) {
205
+ return createBuildDiffPromiseChain(buildArguments);
206
+ };
207
+ function runBrowserInstrumentation(log, instrumentationConfig, callback, slMapper) {
208
+ log.info("Running browser instrumentation.");
209
+ instrumentationConfig.extensionsToInstrument = dvr.getFileExtensions();
210
+ var bi = new BrowserInstrumenter(instrumentationConfig, log, slMapper);
211
+ bi.instrument(callback);
212
+ }
213
+ function loadBranchHistory(handlerParams, scmInstance) {
214
+ return scmInstance.getBranchHistory(handlerParams, log).then(function (gitLog) {
215
+ if (gitLog && gitLog.commitHistory && gitLog.commitHistory.length && gitLog.commitLog && gitLog.commitLog.length) {
216
+ log.info('Branch history loaded (' + gitLog.commitHistory.length + ' commits)');
217
+ handlerParams.finalOutput.meta.history = gitLog.commitHistory;
218
+ handlerParams.finalOutput.meta.commitLog = gitLog.commitLog;
219
+ }
220
+ else {
221
+ logBranchHistoryNotFound(gitLog, log);
222
+ }
223
+ return loadCommitIndexMap(gitLog, handlerParams, log);
224
+ });
225
+ }
226
+ function getRepositoryUrl(handlerParams, scmInstance) {
227
+ return scmInstance.getRepositoryUrl(handlerParams, log).then(function (repositoryUrl) {
228
+ if (repositoryUrl) {
229
+ log.info('Repository Url loaded (' + repositoryUrl + ')');
230
+ handlerParams.finalOutput.meta.repositoryUrl = repositoryUrl;
231
+ }
232
+ return repositoryUrl;
233
+ });
234
+ }
235
+ function getContributors(handlerParams, scmInstance) {
236
+ return scmInstance.getContributors(handlerParams, log).then(function (contributorsLog) {
237
+ if (contributorsLog && contributorsLog.contributors && contributorsLog.emailToIndexMap) {
238
+ log.info('Contributors list loaded (' + contributorsLog.contributors.length + ' contributors)');
239
+ handlerParams.finalOutput.meta.contributors = contributorsLog.contributors;
240
+ handlerParams.emailToIndexMap = contributorsLog.emailToIndexMap;
241
+ }
242
+ else {
243
+ logContributorsNotFound(contributorsLog, log);
244
+ }
245
+ return contributorsLog;
246
+ });
247
+ }
248
+ function getCommitsPerFile(handlerParams, scmInstance) {
249
+ return scmInstance.getCommitsPerFile(handlerParams, log).then(function (fileToCommitsMap) {
250
+ if (fileToCommitsMap != null) {
251
+ log.info('File commit map loaded (' + Object.keys(fileToCommitsMap).length + ' records)');
252
+ handlerParams.fileToCommitsMap = fileToCommitsMap;
253
+ }
254
+ else {
255
+ log.error("Commits map is null or undefined.");
256
+ }
257
+ return fileToCommitsMap;
258
+ });
259
+ }
260
+ }
261
+ function logContributorsNotFound(contributorsLog, log) {
262
+ var fieldsMap = {
263
+ contributorsLog: !contributorsLog,
264
+ contributors: contributorsLog && !contributorsLog.contributors,
265
+ emailToIndexMap: contributorsLog && !contributorsLog.emailToIndexMap
266
+ };
267
+ var missing = utils.getMissingProperties(fieldsMap);
268
+ log.error("Contributors list not loaded, missing fields: " + missing);
269
+ }
270
+ function logBranchHistoryNotFound(gitLog, log) {
271
+ var fieldsMap = {
272
+ gitLog: !gitLog,
273
+ commitHistory: gitLog && !gitLog.commitHistory,
274
+ commitHistoryLength: gitLog && gitLog.commitHistory && !gitLog.commitHistory.length,
275
+ commitLog: gitLog && !gitLog.commitLog,
276
+ commitLogLength: gitLog && gitLog.commitLog && !gitLog.commitLog.length
277
+ };
278
+ var missing = utils.getMissingProperties(fieldsMap);
279
+ log.error("Branch history not loaded, missing fields: " + missing);
280
+ }
281
+ function clone(o) {
282
+ //if (!o) return o; //Unreachable
283
+ return JSON.parse(JSON.stringify(o));
284
+ }
285
+ var getProcessedFiles = function (buildArguments, processedFiles, logger) {
286
+ var folderToScan = buildArguments.workspacepath;
287
+ return fileAndFolderUtils.scanDirRecursively(folderToScan, logger);
288
+ };
289
+ var loadCommitIndexMap = function (gitLog, handlerParams, log) {
290
+ if (!handlerParams.buildArguments.sendContributors) {
291
+ return gitLog;
292
+ }
293
+ if (gitLog && gitLog.commitToIndexMap) {
294
+ handlerParams.commitToIndexMap = gitLog.commitToIndexMap;
295
+ }
296
+ else {
297
+ log.error("Commit log index map not loaded");
298
+ }
299
+ return gitLog;
300
+ };
301
+ function createMetaTag(buildArguments) {
302
+ return {
303
+ "generated": new Date().valueOf(),
304
+ "build": buildArguments.build,
305
+ "commit": buildArguments.commit,
306
+ "customerId": buildArguments.customerId,
307
+ "appName": buildArguments.appname,
308
+ //"technologies": "nodejs",
309
+ "technology": "nodejs",
310
+ "branch": buildArguments.branch,
311
+ "environment": {
312
+ agentVersion: version,
313
+ agentType: "nodeJsBuildScanner",
314
+ processArgv: process.argv,
315
+ machineName: os.hostname(),
316
+ platform: os.platform(),
317
+ os: os.type(),
318
+ osVersion: os.release(),
319
+ arch: os.arch(),
320
+ processId: process.pid,
321
+ ipAddress: clone(os.networkInterfaces()),
322
+ dependencies: clone(process.versions),
323
+ runtime: process.version
324
+ },
325
+ "authors": buildArguments.author,
326
+ "logsUrl": buildArguments.logsUrl,
327
+ "jobName": buildArguments.jobName,
328
+ "moduleName": buildArguments.uniqueModuleId,
329
+ "uniqueModuleId": buildArguments.uniqueModuleId,
330
+ "configurationData": buildArguments,
331
+ "scmProvider": buildArguments.scmProvider,
332
+ "scmVersion": buildArguments.scmVersion,
333
+ "scmBaseUrl": buildArguments.scmBaseUrl,
334
+ "buildSessionId": buildArguments.buildSessionId
335
+ };
336
+ }
337
+ function submitSlMapping(promiseChain, slMapper, uniqueModuleId, logger) {
338
+ return new Promise(function (resolve, reject) {
339
+ if (!CiaEnvVars.getSlMappingPath()) {
340
+ slMapper.postToServer(uniqueModuleId).then(function () {
341
+ return resolve();
342
+ }, function (err) {
343
+ return reject(err);
344
+ });
345
+ }
346
+ else {
347
+ logger.info("Sl mapping path was set to '%s', skipping post to server");
348
+ return resolve();
349
+ }
350
+ });
351
+ }
352
+ module.exports.BuildDiffProcess = BuildDiffProcess;
347
353
  //# sourceMappingURL=build-diff-process.js.map