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,21 +1,21 @@
1
- var GlobalErrorHandler = function () {
2
- var lastError = null;
3
- var errorPrefix = "[SeaLights Build Scanner] - Finished with errors. Last error: ";
4
- return {
5
- setLastError: function (e, message) {
6
- if (!e) {
7
- return;
8
- }
9
- e.message = message ? message + e.message : e.message;
10
- lastError = e;
11
- },
12
- hasErrors: function () {
13
- return lastError !== null;
14
- },
15
- printLastError: function () {
16
- console.log(errorPrefix, lastError);
17
- }
18
- };
19
- };
20
- module.exports = GlobalErrorHandler();
1
+ var GlobalErrorHandler = function () {
2
+ var lastError = null;
3
+ var errorPrefix = "[SeaLights Build Scanner] - Finished with errors. Last error: ";
4
+ return {
5
+ setLastError: function (e, message) {
6
+ if (!e) {
7
+ return;
8
+ }
9
+ e.message = message ? message + e.message : e.message;
10
+ lastError = e;
11
+ },
12
+ hasErrors: function () {
13
+ return lastError !== null;
14
+ },
15
+ printLastError: function () {
16
+ console.log(errorPrefix, lastError);
17
+ }
18
+ };
19
+ };
20
+ module.exports = GlobalErrorHandler();
21
21
  //# sourceMappingURL=global-error-handler.js.map
@@ -1,300 +1,300 @@
1
- var path = require('path');
2
- var mkdirp = require('mkdirp');
3
- var async = require('async');
4
- var fs = require('fs');
5
- var libInstrument = require('istanbul-lib-instrument');
6
- var fileAndFolderUtils = require('../file-and-folder-utils');
7
- var utils = require('../utils');
8
- var ValidationUtils = require("../../common/utils/validation-utils").ValidationUtils;
9
- var FileInstrumenter = require("./file-instrumenter").FileInstrumenter;
10
- var MarkupFileInstrumenter = require("./markup-file-instrumenter").MarkupFileInstrumenter;
11
- var IgnoreFilesHandler = require("../../common/ignored-files-handler").IgnoredFilesHandler;
12
- var MessagesFormatter = require("../../common/messages-formatter").MessagesFormatter;
13
- var ConfigLoader = require("../../common/config-process/config-loader").ConfigLoader;
14
- var SlEnvVars = require("../../common/constants/sl-env-vars").SlEnvVars;
15
- var Constants = require("../../common/constants/constants").Constants;
16
- var CiaEnvVars = SlEnvVars.CIA;
17
- /**
18
- * * This class responsible to instrument a set of files with Sealights information.
19
- * @param {* Instrumentation options} opts
20
- * @param {* A logger} logger
21
- */
22
- function BrowserInstrumenter(opts, logger, slMapper) {
23
- ValidationUtils.verifyNotNullOrEmpty(opts, "opts");
24
- ValidationUtils.verifyNotNullOrEmpty(logger, "logger");
25
- ValidationUtils.verifyNotNullOrEmpty(slMapper, "slMapper");
26
- this.opts = opts;
27
- this.logger = logger;
28
- this.slMapper = slMapper;
29
- this.files = {
30
- instrumented: [],
31
- notInstrumented: [],
32
- withInstrumentationErrors: [],
33
- withCopyErrors: []
34
- };
35
- }
36
- BrowserInstrumenter.prototype.instrument = function (callback) {
37
- ValidationUtils.verifyNotNullOrEmpty(callback, "callback");
38
- try {
39
- var err = this._validate(callback);
40
- if (err) {
41
- this.logger.error("Instrumentation failed due to invalid input. Error: %s", err);
42
- return callback(err);
43
- }
44
- var hasPhysicalFiles = this.opts.files && this.opts.files.length > 0;
45
- if (!hasPhysicalFiles) {
46
- this.logger.warn("Didn't find any files which require instrumentation. Skipping browser instrumentation.");
47
- return callback();
48
- }
49
- this.logger.info("Starting instrumentation process.");
50
- var _this = this;
51
- this._processFiles(function () {
52
- _this._onComplete(callback);
53
- });
54
- }
55
- catch (e) {
56
- this.logger.error("Failed during instrumentation. Error: %s", e);
57
- return callback(e);
58
- }
59
- };
60
- BrowserInstrumenter.prototype._printSummaries = function () {
61
- var summary = "Instrumentation summary:" +
62
- "\n\tInstrumented files: " + this.files.instrumented.length +
63
- "\n\tFiles copied as is (not instrumented): " + this.files.notInstrumented.length +
64
- "\n\tFiles with instrumentation errors: " + this.files.withInstrumentationErrors.length +
65
- "\n\tFiles with copy errors: " + this.files.withCopyErrors.length;
66
- this.logger.info(summary);
67
- };
68
- BrowserInstrumenter.prototype._onComplete = function (callback) {
69
- var _this = this;
70
- if (this.opts.copyAllFilesToOutput) {
71
- fileAndFolderUtils.copyDir(this.opts.sourceRoot, this.opts.outputPath, this.opts.files, function (err) {
72
- _this.logger.info("Finished copying all files to output. Error: %s", err);
73
- _this._printSummaries();
74
- return callback(err, _this.files);
75
- });
76
- }
77
- else {
78
- _this._printSummaries();
79
- return callback(null, _this.files);
80
- }
81
- };
82
- BrowserInstrumenter.prototype._onFileCopied = function (inputFile) {
83
- this.files.notInstrumented.push(inputFile);
84
- };
85
- BrowserInstrumenter.prototype._onFileCopyError = function (inputFile, errorMsg) {
86
- this.files.withCopyErrors.push({
87
- file: inputFile,
88
- error: errorMsg
89
- });
90
- };
91
- BrowserInstrumenter.prototype._onFileWithInstrumentationError = function (inputFile, errorMsg) {
92
- this.files.withInstrumentationErrors.push({
93
- file: inputFile,
94
- error: errorMsg
95
- });
96
- };
97
- BrowserInstrumenter.prototype._onFileInstrumented = function (inputFile) {
98
- this.files.instrumented.push(inputFile);
99
- };
100
- BrowserInstrumenter.prototype._validate = function (callback) {
101
- var opts = this.opts;
102
- if (opts.instrumentationType != "browser") {
103
- return new Error("instrumentationType must be 'browser'");
104
- }
105
- if (!opts.extensionsToInstrument || opts.extensionsToInstrument.length === 0) {
106
- return new Error("'extensionsToInstrument' must specified");
107
- }
108
- var hasPhysicalFiles = opts.files && opts.files.length > 0;
109
- if (hasPhysicalFiles) {
110
- if (!opts.outputPath) {
111
- return new Error("outputPath was not specified");
112
- }
113
- if (!opts.sourceRoot) {
114
- return new Error("sourceRoot was not specified");
115
- }
116
- }
117
- if (!opts.server) {
118
- return new Error("server was not specified");
119
- }
120
- if (!opts.token) {
121
- return new Error("token was not specified");
122
- }
123
- if (!opts.customerId) {
124
- return new Error("customerId was not specified");
125
- }
126
- if (!opts.workspacepath) {
127
- return new Error("workspacepath was not specified");
128
- }
129
- //All good.
130
- return null;
131
- };
132
- function addHtmlTag(preambleHeader, sourceUrl, loadedFlag) {
133
- preambleHeader.push("if(!window.$Sealights." + loadedFlag + " && !" + Constants.SKIP_BROWSER_AGENT + ") {", " var script = document.createElement(\"script\");", " script.type = \"text/javascript\";", " script.src = \"" + sourceUrl + "\";", " var head = document.head || document.getElementsByTagName && document.getElementsByTagName('head')[0]", " if (head) { head.appendChild(script); window.$Sealights." + loadedFlag + " = true; } else { /* Unsupported/restricted browser */ }", "}");
134
- }
135
- BrowserInstrumenter.prototype._createPreamble = function () {
136
- var opts = this.opts;
137
- var agentUrl = opts.server;
138
- if (agentUrl[agentUrl.length] != '/')
139
- agentUrl += '/';
140
- agentUrl += 'v1/agents/browser/recommended?redirect=1&customerId=' + encodeURIComponent(opts.customerId);
141
- var workspacePath = opts.workspacepath;
142
- if (CiaEnvVars.getSourceRoot() != null) {
143
- workspacePath = CiaEnvVars.getSourceRoot();
144
- this.logger.info("Overriding 'workspacepath' with 'Source Root'. Old: '" + opts.workspacepath + "', New: '" + workspacePath + "'.");
145
- }
146
- var lastChar = workspacePath[workspacePath.length - 1];
147
- if (lastChar != "\\" && lastChar != "/") {
148
- workspacePath = workspacePath + "/";
149
- }
150
- var config = JSON.stringify(this.createConfigObject(opts, workspacePath), null, ' ');
151
- var preambleHeader = [
152
- "var config = " + config + ";\n" +
153
- "window.$Sealights = window.$Sealights || {};\n" +
154
- "if(window && window.$SealightsAgent){\n" +
155
- " window.$SealightsAgent.createInstance(config)\n" +
156
- "} else {\n" +
157
- " window.$Sealights.components = window.$Sealights.components || {};\n" +
158
- " window.$Sealights.components[\"" + this.opts.buildSessionId + "\"] = config;" +
159
- "}"
160
- ];
161
- if (this.slMapper && opts.slMappingUrl) {
162
- this.slMapper.writeToFile();
163
- addHtmlTag(preambleHeader, opts.slMappingUrl, "slMappingAdded");
164
- }
165
- if (opts.downloadAgent == true) {
166
- addHtmlTag(preambleHeader, agentUrl, "scriptAdded");
167
- }
168
- return preambleHeader;
169
- };
170
- BrowserInstrumenter.prototype._createInstrumenter = function () {
171
- var config = {
172
- coverageVariable: "$SealightsCoverage_" + this.opts.buildSessionId,
173
- embedSource: false,
174
- compact: true,
175
- preserveComments: true,
176
- esModules: !!this.opts.esModules
177
- };
178
- var instrumenter = libInstrument.createInstrumenter(config);
179
- return instrumenter;
180
- };
181
- BrowserInstrumenter.prototype._createFileInstrumentor = function (preambleHeader, name, slIgnoreWrapper) {
182
- var extension = path.extname(name);
183
- if (utils.isMarkupFile(extension)) {
184
- this.logger.debug("'MarkupFileInstrumenter' is active");
185
- return new MarkupFileInstrumenter(this.opts, preambleHeader, this.instrumenter, name, slIgnoreWrapper, this.logger);
186
- }
187
- this.logger.debug("'FileInstrumenter' is active");
188
- return new FileInstrumenter(this.opts, preambleHeader, this.instrumenter, name, slIgnoreWrapper, this.logger);
189
- };
190
- BrowserInstrumenter.prototype._processFiles = function (callback) {
191
- var inputDir = this.opts.sourceRoot;
192
- var outputDir = this.opts.outputPath;
193
- var relativeNames = this.opts.files;
194
- var preambleHeader = this._createPreamble();
195
- this.instrumenter = this._createInstrumenter();
196
- this.logger.info("Starting to process files. Number of files to process: " + relativeNames.length);
197
- var IgnoredFilesHandler = this._createIgnoreHandler(IgnoreFilesHandler.SCAN_IGNORE_FILE_NAME);
198
- var extensions = {};
199
- this.opts.extensionsToInstrument.map(function (ext) {
200
- extensions[ext] = true;
201
- });
202
- this.opts.extensionsToInstrument = extensions;
203
- this.opts.onFileWithInstrumentationError = this._onFileWithInstrumentationError.bind(this);
204
- this.opts.onFileCopied = this._onFileCopied.bind(this);
205
- this.opts.onFileInstrumented = this._onFileInstrumented.bind(this);
206
- this.opts.onFileCopyError = this._onFileCopyError.bind(this);
207
- var _this = this;
208
- //Verify the output folder exists
209
- if (this.opts.outputPath) {
210
- mkdirp.sync(this.opts.outputPath);
211
- }
212
- var processor = function (name, callback) {
213
- var fi = _this._createFileInstrumentor(preambleHeader, name, IgnoredFilesHandler);
214
- fi.processSingleFile(callback);
215
- }, q = async.queue(processor, 10), errors = [], count = 0, startTime = new Date().getTime();
216
- q.push(relativeNames, function (err, name) {
217
- var inputFile, outputFile;
218
- inputFile = path.resolve(inputDir, name);
219
- outputFile = path.resolve(outputDir, name);
220
- if (err) {
221
- errors.push({
222
- file: name,
223
- error: err.message || err.toString()
224
- });
225
- fs.writeFileSync(outputFile, fs.readFileSync(inputFile));
226
- _this.logger.warn("Had error while processing '" + inputFile + "'. File is copied as is. ");
227
- }
228
- else {
229
- _this.logger.debug("Processed '" + inputFile + "'.");
230
- }
231
- // WTF??
232
- var verbose = false;
233
- if (verbose) {
234
- console.log('Processed: ' + name);
235
- }
236
- else {
237
- if (count % 100 === 0) {
238
- process.stdout.write('.');
239
- }
240
- }
241
- count += 1;
242
- });
243
- q.drain = function () {
244
- _this.logger.info("Draining the Q.");
245
- var endTime = new Date().getTime();
246
- _this.logger.info('\nProcessed [' + count + '] files in ' + Math.floor((endTime - startTime) / 1000) + ' secs');
247
- if (errors.length > 0) {
248
- _this.logger.warn('The following ' + errors.length + ' file(s) had errors and were copied as-is:\n' + _this._formatErrorMessage(errors));
249
- }
250
- if (callback) {
251
- callback();
252
- }
253
- };
254
- };
255
- BrowserInstrumenter.prototype._createIgnoreHandler = function (filename) {
256
- var workspacePath = this.opts.workspacepath;
257
- var slIgnoreScanFilePath = fileAndFolderUtils.findFileRecursively(filename, workspacePath, true, this.logger);
258
- var slIgnore = new IgnoreFilesHandler(slIgnoreScanFilePath, this.opts.outputpath, filename, this.logger);
259
- return slIgnore;
260
- };
261
- BrowserInstrumenter.prototype._formatErrorMessage = function (fileWithErrors) {
262
- var messageFormatter = new MessagesFormatter();
263
- var counter = 1;
264
- fileWithErrors.forEach(function (f) {
265
- var msg = "[" + counter++ + "] '" + f.file + "'. Error: '" + f.error;
266
- messageFormatter.addContent(msg);
267
- });
268
- return messageFormatter.content;
269
- };
270
- BrowserInstrumenter.prototype.createConfigObject = function (opts, workspacePath) {
271
- // Should load all env vars starting With 'SL_'
272
- var agentConfig = new ConfigLoader().loadAgentConfiguration();
273
- return {
274
- customerId: opts.customerId,
275
- appName: opts.appName,
276
- buildName: opts.build,
277
- branchName: opts.branch,
278
- server: opts.server,
279
- token: opts.token,
280
- buildSessionId: opts.buildSessionId,
281
- labId: opts.labId,
282
- enabled: true,
283
- workspacepath: workspacePath,
284
- maxItemsInQueue: 500,
285
- registerShutdownHook: true,
286
- interval: 10,
287
- resolveWithoutHash: opts.resolveWithoutHash,
288
- delayShutdownInSeconds: opts.delayShutdownInSeconds,
289
- isUseNewUniqueId: SlEnvVars.isUseNewUniqueId(),
290
- footprintsEnableV6: agentConfig.footprintsEnableV6.value,
291
- footprintsBufferThresholdMb: agentConfig.footprintsBufferThresholdMb.value,
292
- footprintsCollectIntervalSecs: agentConfig.footprintsCollectIntervalSecs.value,
293
- footprintsSendIntervalSecs: agentConfig.executionQueryIntervalSecs.value,
294
- executionQueryIntervalSecs: agentConfig.executionQueryIntervalSecs.value,
295
- footprintsQueueSize: agentConfig.footprintsQueueSize.value,
296
- blockBrowserHttpTraffic: SlEnvVars.blockBrowserHttpTraffic()
297
- };
298
- };
299
- module.exports = BrowserInstrumenter;
1
+ var path = require('path');
2
+ var mkdirp = require('mkdirp');
3
+ var async = require('async');
4
+ var fs = require('fs');
5
+ var libInstrument = require('istanbul-lib-instrument');
6
+ var fileAndFolderUtils = require('../file-and-folder-utils');
7
+ var utils = require('../utils');
8
+ var ValidationUtils = require("../../common/utils/validation-utils").ValidationUtils;
9
+ var FileInstrumenter = require("./file-instrumenter").FileInstrumenter;
10
+ var MarkupFileInstrumenter = require("./markup-file-instrumenter").MarkupFileInstrumenter;
11
+ var IgnoreFilesHandler = require("../../common/ignored-files-handler").IgnoredFilesHandler;
12
+ var MessagesFormatter = require("../../common/messages-formatter").MessagesFormatter;
13
+ var ConfigLoader = require("../../common/config-process/config-loader").ConfigLoader;
14
+ var SlEnvVars = require("../../common/constants/sl-env-vars").SlEnvVars;
15
+ var Constants = require("../../common/constants/constants").Constants;
16
+ var CiaEnvVars = SlEnvVars.CIA;
17
+ /**
18
+ * * This class responsible to instrument a set of files with Sealights information.
19
+ * @param {* Instrumentation options} opts
20
+ * @param {* A logger} logger
21
+ */
22
+ function BrowserInstrumenter(opts, logger, slMapper) {
23
+ ValidationUtils.verifyNotNullOrEmpty(opts, "opts");
24
+ ValidationUtils.verifyNotNullOrEmpty(logger, "logger");
25
+ ValidationUtils.verifyNotNullOrEmpty(slMapper, "slMapper");
26
+ this.opts = opts;
27
+ this.logger = logger;
28
+ this.slMapper = slMapper;
29
+ this.files = {
30
+ instrumented: [],
31
+ notInstrumented: [],
32
+ withInstrumentationErrors: [],
33
+ withCopyErrors: []
34
+ };
35
+ }
36
+ BrowserInstrumenter.prototype.instrument = function (callback) {
37
+ ValidationUtils.verifyNotNullOrEmpty(callback, "callback");
38
+ try {
39
+ var err = this._validate(callback);
40
+ if (err) {
41
+ this.logger.error("Instrumentation failed due to invalid input. Error: %s", err);
42
+ return callback(err);
43
+ }
44
+ var hasPhysicalFiles = this.opts.files && this.opts.files.length > 0;
45
+ if (!hasPhysicalFiles) {
46
+ this.logger.warn("Didn't find any files which require instrumentation. Skipping browser instrumentation.");
47
+ return callback();
48
+ }
49
+ this.logger.info("Starting instrumentation process.");
50
+ var _this = this;
51
+ this._processFiles(function () {
52
+ _this._onComplete(callback);
53
+ });
54
+ }
55
+ catch (e) {
56
+ this.logger.error("Failed during instrumentation. Error: %s", e);
57
+ return callback(e);
58
+ }
59
+ };
60
+ BrowserInstrumenter.prototype._printSummaries = function () {
61
+ var summary = "Instrumentation summary:" +
62
+ "\n\tInstrumented files: " + this.files.instrumented.length +
63
+ "\n\tFiles copied as is (not instrumented): " + this.files.notInstrumented.length +
64
+ "\n\tFiles with instrumentation errors: " + this.files.withInstrumentationErrors.length +
65
+ "\n\tFiles with copy errors: " + this.files.withCopyErrors.length;
66
+ this.logger.info(summary);
67
+ };
68
+ BrowserInstrumenter.prototype._onComplete = function (callback) {
69
+ var _this = this;
70
+ if (this.opts.copyAllFilesToOutput) {
71
+ fileAndFolderUtils.copyDir(this.opts.sourceRoot, this.opts.outputPath, this.opts.files, function (err) {
72
+ _this.logger.info("Finished copying all files to output. Error: %s", err);
73
+ _this._printSummaries();
74
+ return callback(err, _this.files);
75
+ });
76
+ }
77
+ else {
78
+ _this._printSummaries();
79
+ return callback(null, _this.files);
80
+ }
81
+ };
82
+ BrowserInstrumenter.prototype._onFileCopied = function (inputFile) {
83
+ this.files.notInstrumented.push(inputFile);
84
+ };
85
+ BrowserInstrumenter.prototype._onFileCopyError = function (inputFile, errorMsg) {
86
+ this.files.withCopyErrors.push({
87
+ file: inputFile,
88
+ error: errorMsg
89
+ });
90
+ };
91
+ BrowserInstrumenter.prototype._onFileWithInstrumentationError = function (inputFile, errorMsg) {
92
+ this.files.withInstrumentationErrors.push({
93
+ file: inputFile,
94
+ error: errorMsg
95
+ });
96
+ };
97
+ BrowserInstrumenter.prototype._onFileInstrumented = function (inputFile) {
98
+ this.files.instrumented.push(inputFile);
99
+ };
100
+ BrowserInstrumenter.prototype._validate = function (callback) {
101
+ var opts = this.opts;
102
+ if (opts.instrumentationType != "browser") {
103
+ return new Error("instrumentationType must be 'browser'");
104
+ }
105
+ if (!opts.extensionsToInstrument || opts.extensionsToInstrument.length === 0) {
106
+ return new Error("'extensionsToInstrument' must specified");
107
+ }
108
+ var hasPhysicalFiles = opts.files && opts.files.length > 0;
109
+ if (hasPhysicalFiles) {
110
+ if (!opts.outputPath) {
111
+ return new Error("outputPath was not specified");
112
+ }
113
+ if (!opts.sourceRoot) {
114
+ return new Error("sourceRoot was not specified");
115
+ }
116
+ }
117
+ if (!opts.server) {
118
+ return new Error("server was not specified");
119
+ }
120
+ if (!opts.token) {
121
+ return new Error("token was not specified");
122
+ }
123
+ if (!opts.customerId) {
124
+ return new Error("customerId was not specified");
125
+ }
126
+ if (!opts.workspacepath) {
127
+ return new Error("workspacepath was not specified");
128
+ }
129
+ //All good.
130
+ return null;
131
+ };
132
+ function addHtmlTag(preambleHeader, sourceUrl, loadedFlag) {
133
+ preambleHeader.push("if(!window.$Sealights." + loadedFlag + " && !" + Constants.SKIP_BROWSER_AGENT + ") {", " var script = document.createElement(\"script\");", " script.type = \"text/javascript\";", " script.src = \"" + sourceUrl + "\";", " var head = document.head || document.getElementsByTagName && document.getElementsByTagName('head')[0]", " if (head) { head.appendChild(script); window.$Sealights." + loadedFlag + " = true; } else { /* Unsupported/restricted browser */ }", "}");
134
+ }
135
+ BrowserInstrumenter.prototype._createPreamble = function () {
136
+ var opts = this.opts;
137
+ var agentUrl = opts.server;
138
+ if (agentUrl[agentUrl.length] != '/')
139
+ agentUrl += '/';
140
+ agentUrl += 'v1/agents/browser/recommended?redirect=1&customerId=' + encodeURIComponent(opts.customerId);
141
+ var workspacePath = opts.workspacepath;
142
+ if (CiaEnvVars.getSourceRoot() != null) {
143
+ workspacePath = CiaEnvVars.getSourceRoot();
144
+ this.logger.info("Overriding 'workspacepath' with 'Source Root'. Old: '" + opts.workspacepath + "', New: '" + workspacePath + "'.");
145
+ }
146
+ var lastChar = workspacePath[workspacePath.length - 1];
147
+ if (lastChar != "\\" && lastChar != "/") {
148
+ workspacePath = workspacePath + "/";
149
+ }
150
+ var config = JSON.stringify(this.createConfigObject(opts, workspacePath), null, ' ');
151
+ var preambleHeader = [
152
+ "var config = " + config + ";\n" +
153
+ "window.$Sealights = window.$Sealights || {};\n" +
154
+ "if(window && window.$SealightsAgent){\n" +
155
+ " window.$SealightsAgent.createInstance(config)\n" +
156
+ "} else {\n" +
157
+ " window.$Sealights.components = window.$Sealights.components || {};\n" +
158
+ " window.$Sealights.components[\"" + this.opts.buildSessionId + "\"] = config;" +
159
+ "}"
160
+ ];
161
+ if (this.slMapper && opts.slMappingUrl) {
162
+ this.slMapper.writeToFile();
163
+ addHtmlTag(preambleHeader, opts.slMappingUrl, "slMappingAdded");
164
+ }
165
+ if (opts.downloadAgent == true) {
166
+ addHtmlTag(preambleHeader, agentUrl, "scriptAdded");
167
+ }
168
+ return preambleHeader;
169
+ };
170
+ BrowserInstrumenter.prototype._createInstrumenter = function () {
171
+ var config = {
172
+ coverageVariable: "$SealightsCoverage_" + this.opts.buildSessionId,
173
+ embedSource: false,
174
+ compact: true,
175
+ preserveComments: true,
176
+ esModules: !!this.opts.esModules
177
+ };
178
+ var instrumenter = libInstrument.createInstrumenter(config);
179
+ return instrumenter;
180
+ };
181
+ BrowserInstrumenter.prototype._createFileInstrumentor = function (preambleHeader, name, slIgnoreWrapper) {
182
+ var extension = path.extname(name);
183
+ if (utils.isMarkupFile(extension)) {
184
+ this.logger.debug("'MarkupFileInstrumenter' is active");
185
+ return new MarkupFileInstrumenter(this.opts, preambleHeader, this.instrumenter, name, slIgnoreWrapper, this.logger);
186
+ }
187
+ this.logger.debug("'FileInstrumenter' is active");
188
+ return new FileInstrumenter(this.opts, preambleHeader, this.instrumenter, name, slIgnoreWrapper, this.logger);
189
+ };
190
+ BrowserInstrumenter.prototype._processFiles = function (callback) {
191
+ var inputDir = this.opts.sourceRoot;
192
+ var outputDir = this.opts.outputPath;
193
+ var relativeNames = this.opts.files;
194
+ var preambleHeader = this._createPreamble();
195
+ this.instrumenter = this._createInstrumenter();
196
+ this.logger.info("Starting to process files. Number of files to process: " + relativeNames.length);
197
+ var IgnoredFilesHandler = this._createIgnoreHandler(IgnoreFilesHandler.SCAN_IGNORE_FILE_NAME);
198
+ var extensions = {};
199
+ this.opts.extensionsToInstrument.map(function (ext) {
200
+ extensions[ext] = true;
201
+ });
202
+ this.opts.extensionsToInstrument = extensions;
203
+ this.opts.onFileWithInstrumentationError = this._onFileWithInstrumentationError.bind(this);
204
+ this.opts.onFileCopied = this._onFileCopied.bind(this);
205
+ this.opts.onFileInstrumented = this._onFileInstrumented.bind(this);
206
+ this.opts.onFileCopyError = this._onFileCopyError.bind(this);
207
+ var _this = this;
208
+ //Verify the output folder exists
209
+ if (this.opts.outputPath) {
210
+ mkdirp.sync(this.opts.outputPath);
211
+ }
212
+ var processor = function (name, callback) {
213
+ var fi = _this._createFileInstrumentor(preambleHeader, name, IgnoredFilesHandler);
214
+ fi.processSingleFile(callback);
215
+ }, q = async.queue(processor, 10), errors = [], count = 0, startTime = new Date().getTime();
216
+ q.push(relativeNames, function (err, name) {
217
+ var inputFile, outputFile;
218
+ inputFile = path.resolve(inputDir, name);
219
+ outputFile = path.resolve(outputDir, name);
220
+ if (err) {
221
+ errors.push({
222
+ file: name,
223
+ error: err.message || err.toString()
224
+ });
225
+ fs.writeFileSync(outputFile, fs.readFileSync(inputFile));
226
+ _this.logger.warn("Had error while processing '" + inputFile + "'. File is copied as is. ");
227
+ }
228
+ else {
229
+ _this.logger.debug("Processed '" + inputFile + "'.");
230
+ }
231
+ // WTF??
232
+ var verbose = false;
233
+ if (verbose) {
234
+ console.log('Processed: ' + name);
235
+ }
236
+ else {
237
+ if (count % 100 === 0) {
238
+ process.stdout.write('.');
239
+ }
240
+ }
241
+ count += 1;
242
+ });
243
+ q.drain = function () {
244
+ _this.logger.info("Draining the Q.");
245
+ var endTime = new Date().getTime();
246
+ _this.logger.info('\nProcessed [' + count + '] files in ' + Math.floor((endTime - startTime) / 1000) + ' secs');
247
+ if (errors.length > 0) {
248
+ _this.logger.warn('The following ' + errors.length + ' file(s) had errors and were copied as-is:\n' + _this._formatErrorMessage(errors));
249
+ }
250
+ if (callback) {
251
+ callback();
252
+ }
253
+ };
254
+ };
255
+ BrowserInstrumenter.prototype._createIgnoreHandler = function (filename) {
256
+ var workspacePath = this.opts.workspacepath;
257
+ var slIgnoreScanFilePath = fileAndFolderUtils.findFileRecursively(filename, workspacePath, true, this.logger);
258
+ var slIgnore = new IgnoreFilesHandler(slIgnoreScanFilePath, this.opts.outputpath, filename, this.logger);
259
+ return slIgnore;
260
+ };
261
+ BrowserInstrumenter.prototype._formatErrorMessage = function (fileWithErrors) {
262
+ var messageFormatter = new MessagesFormatter();
263
+ var counter = 1;
264
+ fileWithErrors.forEach(function (f) {
265
+ var msg = "[" + counter++ + "] '" + f.file + "'. Error: '" + f.error;
266
+ messageFormatter.addContent(msg);
267
+ });
268
+ return messageFormatter.content;
269
+ };
270
+ BrowserInstrumenter.prototype.createConfigObject = function (opts, workspacePath) {
271
+ // Should load all env vars starting With 'SL_'
272
+ var agentConfig = new ConfigLoader().loadAgentConfiguration();
273
+ return {
274
+ customerId: opts.customerId,
275
+ appName: opts.appName,
276
+ buildName: opts.build,
277
+ branchName: opts.branch,
278
+ server: opts.server,
279
+ token: opts.token,
280
+ buildSessionId: opts.buildSessionId,
281
+ labId: opts.labId,
282
+ enabled: true,
283
+ workspacepath: workspacePath,
284
+ maxItemsInQueue: 500,
285
+ registerShutdownHook: true,
286
+ interval: 10,
287
+ resolveWithoutHash: opts.resolveWithoutHash,
288
+ delayShutdownInSeconds: opts.delayShutdownInSeconds,
289
+ isUseNewUniqueId: SlEnvVars.isUseNewUniqueId(),
290
+ footprintsEnableV6: agentConfig.footprintsEnableV6.value,
291
+ footprintsBufferThresholdMb: agentConfig.footprintsBufferThresholdMb.value,
292
+ footprintsCollectIntervalSecs: agentConfig.footprintsCollectIntervalSecs.value,
293
+ footprintsSendIntervalSecs: agentConfig.executionQueryIntervalSecs.value,
294
+ executionQueryIntervalSecs: agentConfig.executionQueryIntervalSecs.value,
295
+ footprintsQueueSize: agentConfig.footprintsQueueSize.value,
296
+ blockBrowserHttpTraffic: SlEnvVars.blockBrowserHttpTraffic()
297
+ };
298
+ };
299
+ module.exports = BrowserInstrumenter;
300
300
  //# sourceMappingURL=browser-instrumenter.js.map