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,353 +1,353 @@
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;
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;
353
353
  //# sourceMappingURL=build-diff-process.js.map