slnodejs 6.0.29 → 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 (413) hide show
  1. package/lib/cli.js +1 -1
  2. package/package.json +124 -123
  3. package/tsOutputs/api.d.ts +12 -10
  4. package/tsOutputs/api.js +116 -115
  5. package/tsOutputs/build-scanner/ast-utils.js +39 -0
  6. package/tsOutputs/build-scanner/ast-utils.js.map +1 -0
  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/browser-instrumenter.js.map +1 -1
  23. package/tsOutputs/build-scanner/instrumentation/file-instrumenter.js +271 -180
  24. package/tsOutputs/build-scanner/instrumentation/file-instrumenter.js.map +1 -1
  25. package/tsOutputs/build-scanner/instrumentation/instrumentation-utils.js +58 -58
  26. package/tsOutputs/build-scanner/instrumentation/instrumented-file-size-reducer.js +159 -159
  27. package/tsOutputs/build-scanner/instrumentation/markup-file-instrumenter.js +185 -137
  28. package/tsOutputs/build-scanner/instrumentation/markup-file-instrumenter.js.map +1 -1
  29. package/tsOutputs/build-scanner/instrumentation/sync-instrumenter.js +39 -39
  30. package/tsOutputs/build-scanner/js_diff/ast-node-types.js +44 -44
  31. package/tsOutputs/build-scanner/js_diff/branch-key.js +10 -10
  32. package/tsOutputs/build-scanner/js_diff/branch-signature.js +156 -156
  33. package/tsOutputs/build-scanner/js_diff/code-metrics-spec.js +1 -0
  34. package/tsOutputs/build-scanner/js_diff/code-metrics-spec.js.map +1 -0
  35. package/tsOutputs/build-scanner/js_diff/code-metrics.js +1 -0
  36. package/tsOutputs/build-scanner/js_diff/code-metrics.js.map +1 -0
  37. package/tsOutputs/build-scanner/js_diff/create-node-key.js +7 -7
  38. package/tsOutputs/build-scanner/js_diff/dry-run-files-mapping.js +23 -23
  39. package/tsOutputs/build-scanner/js_diff/dry-run-files-mapping.js.map +1 -1
  40. package/tsOutputs/build-scanner/js_diff/file-signature.js +234 -244
  41. package/tsOutputs/build-scanner/js_diff/file-signature.js.map +1 -1
  42. package/tsOutputs/build-scanner/js_diff/files-mapping.js +460 -473
  43. package/tsOutputs/build-scanner/js_diff/files-mapping.js.map +1 -1
  44. package/tsOutputs/build-scanner/js_diff/generated-file-signature.js +143 -143
  45. package/tsOutputs/build-scanner/js_diff/generated-file-signature.js.map +1 -1
  46. package/tsOutputs/build-scanner/js_diff/globalMethodIndexer.js +26 -26
  47. package/tsOutputs/build-scanner/js_diff/guess-method-location.js +100 -97
  48. package/tsOutputs/build-scanner/js_diff/guess-method-location.js.map +1 -1
  49. package/tsOutputs/build-scanner/js_diff/guess-method-name.js +54 -54
  50. package/tsOutputs/build-scanner/js_diff/method-signature.js +142 -140
  51. package/tsOutputs/build-scanner/js_diff/method-signature.js.map +1 -1
  52. package/tsOutputs/build-scanner/js_diff/sl-mapper.js +136 -75
  53. package/tsOutputs/build-scanner/js_diff/sl-mapper.js.map +1 -1
  54. package/tsOutputs/build-scanner/js_diff/source-data-enricher.js +89 -89
  55. package/tsOutputs/build-scanner/js_diff/source-data-enricher.js.map +1 -1
  56. package/tsOutputs/build-scanner/js_diff/source-files-notifier.js +31 -31
  57. package/tsOutputs/build-scanner/js_diff/source-position-mapper.js +29 -29
  58. package/tsOutputs/build-scanner/mappings/contracts.js +3 -0
  59. package/tsOutputs/build-scanner/mappings/contracts.js.map +1 -0
  60. package/tsOutputs/build-scanner/mappings/ensure-files-handler.service.js +214 -0
  61. package/tsOutputs/build-scanner/mappings/ensure-files-handler.service.js.map +1 -0
  62. package/tsOutputs/build-scanner/mappings/file-element-utils.js +47 -0
  63. package/tsOutputs/build-scanner/mappings/file-element-utils.js.map +1 -0
  64. package/tsOutputs/build-scanner/mappings/file-enricher.js +205 -0
  65. package/tsOutputs/build-scanner/mappings/file-enricher.js.map +1 -0
  66. package/tsOutputs/build-scanner/mappings/files-data-container.js +52 -0
  67. package/tsOutputs/build-scanner/mappings/files-data-container.js.map +1 -0
  68. package/tsOutputs/build-scanner/mappings/scm-file-fixer.js +78 -0
  69. package/tsOutputs/build-scanner/mappings/scm-file-fixer.js.map +1 -0
  70. package/tsOutputs/build-scanner/markup-files-parser.js +71 -71
  71. package/tsOutputs/build-scanner/nopt-types.js +19 -19
  72. package/tsOutputs/build-scanner/nopt-usage-2.js +56 -56
  73. package/tsOutputs/build-scanner/polyfills.js +6 -6
  74. package/tsOutputs/build-scanner/scm/parse-log.js +5 -5
  75. package/tsOutputs/build-scanner/scm/scm-files-container.js +49 -49
  76. package/tsOutputs/build-scanner/sl-config-cia-cli.js +175 -175
  77. package/tsOutputs/build-scanner/utils.js +91 -91
  78. package/tsOutputs/cli-parse/agent-instance-data.d.ts +2 -2
  79. package/tsOutputs/cli-parse/agent-instance-data.js +6 -6
  80. package/tsOutputs/cli-parse/child-process-wrapper.js +82 -82
  81. package/tsOutputs/cli-parse/cli.js +509 -506
  82. package/tsOutputs/cli-parse/cli.js.map +1 -1
  83. package/tsOutputs/cli-parse/constants/constants.js +55 -56
  84. package/tsOutputs/cli-parse/constants/constants.js.map +1 -1
  85. package/tsOutputs/cli-parse/constants/third-parties.js +10 -10
  86. package/tsOutputs/cli-parse/contracts.js +2 -2
  87. package/tsOutputs/cli-parse/custom-commander.js +44 -31
  88. package/tsOutputs/cli-parse/custom-commander.js.map +1 -1
  89. package/tsOutputs/cli-parse/executors/base-executor.js +263 -254
  90. package/tsOutputs/cli-parse/executors/base-executor.js.map +1 -1
  91. package/tsOutputs/cli-parse/executors/build-args-dto.js +55 -55
  92. package/tsOutputs/cli-parse/executors/build-end-executor.js +115 -117
  93. package/tsOutputs/cli-parse/executors/build-end-executor.js.map +1 -1
  94. package/tsOutputs/cli-parse/executors/build-executor.js +147 -149
  95. package/tsOutputs/cli-parse/executors/build-executor.js.map +1 -1
  96. package/tsOutputs/cli-parse/executors/config-executor.js +112 -111
  97. package/tsOutputs/cli-parse/executors/config-executor.js.map +1 -1
  98. package/tsOutputs/cli-parse/executors/dry-run/base-data.js +55 -55
  99. package/tsOutputs/cli-parse/executors/dry-run/base-data.js.map +1 -1
  100. package/tsOutputs/cli-parse/executors/dry-run/build-mapping-data.js +228 -230
  101. package/tsOutputs/cli-parse/executors/dry-run/build-mapping-data.js.map +1 -1
  102. package/tsOutputs/cli-parse/executors/dry-run/dry-run-executor.js +277 -277
  103. package/tsOutputs/cli-parse/executors/dry-run/dry-run-executor.js.map +1 -1
  104. package/tsOutputs/cli-parse/executors/dry-run/dry-run-validation.js +120 -122
  105. package/tsOutputs/cli-parse/executors/dry-run/dry-run-validation.js.map +1 -1
  106. package/tsOutputs/cli-parse/executors/dry-run/footprints-data.js +130 -72
  107. package/tsOutputs/cli-parse/executors/dry-run/footprints-data.js.map +1 -1
  108. package/tsOutputs/cli-parse/executors/dry-run/helper-methods.js +104 -99
  109. package/tsOutputs/cli-parse/executors/dry-run/helper-methods.js.map +1 -1
  110. package/tsOutputs/cli-parse/executors/end-execution-executor.js +88 -90
  111. package/tsOutputs/cli-parse/executors/end-execution-executor.js.map +1 -1
  112. package/tsOutputs/cli-parse/executors/integration-build-components-executor.js +132 -134
  113. package/tsOutputs/cli-parse/executors/integration-build-components-executor.js.map +1 -1
  114. package/tsOutputs/cli-parse/executors/integration-build-delete-components-executor.js +73 -75
  115. package/tsOutputs/cli-parse/executors/integration-build-delete-components-executor.js.map +1 -1
  116. package/tsOutputs/cli-parse/executors/integration-build-update-components-executor.js +71 -73
  117. package/tsOutputs/cli-parse/executors/integration-build-update-components-executor.js.map +1 -1
  118. package/tsOutputs/cli-parse/executors/mocha-executor.js +122 -124
  119. package/tsOutputs/cli-parse/executors/mocha-executor.js.map +1 -1
  120. package/tsOutputs/cli-parse/executors/nyc-report-executor.js +104 -106
  121. package/tsOutputs/cli-parse/executors/nyc-report-executor.js.map +1 -1
  122. package/tsOutputs/cli-parse/executors/pr-config-executor.js +83 -85
  123. package/tsOutputs/cli-parse/executors/pr-config-executor.js.map +1 -1
  124. package/tsOutputs/cli-parse/executors/run-executor.js +93 -95
  125. package/tsOutputs/cli-parse/executors/run-executor.js.map +1 -1
  126. package/tsOutputs/cli-parse/executors/start-execution-executor.js +91 -93
  127. package/tsOutputs/cli-parse/executors/start-execution-executor.js.map +1 -1
  128. package/tsOutputs/cli-parse/executors/test-executions-executor.js +75 -77
  129. package/tsOutputs/cli-parse/executors/test-executions-executor.js.map +1 -1
  130. package/tsOutputs/cli-parse/executors/test-listener-executor.js +149 -151
  131. package/tsOutputs/cli-parse/executors/test-listener-executor.js.map +1 -1
  132. package/tsOutputs/cli-parse/executors/test-runner-build-session-data-builder.js +75 -77
  133. package/tsOutputs/cli-parse/executors/test-runner-build-session-data-builder.js.map +1 -1
  134. package/tsOutputs/cli-parse/executors/upload-report-executor.js +116 -118
  135. package/tsOutputs/cli-parse/executors/upload-report-executor.js.map +1 -1
  136. package/tsOutputs/cli-parse/utils.js +32 -32
  137. package/tsOutputs/common/agent-events/agent-events-conracts.d.ts +123 -123
  138. package/tsOutputs/common/agent-events/agent-events-conracts.js +56 -56
  139. package/tsOutputs/common/agent-events/agent-events-controller.d.ts +45 -45
  140. package/tsOutputs/common/agent-events/agent-events-controller.js +301 -301
  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-start-info-builder.d.ts +14 -14
  144. package/tsOutputs/common/agent-events/agent-start-info-builder.js +23 -23
  145. package/tsOutputs/common/agent-events/ci-info-builder.d.ts +7 -7
  146. package/tsOutputs/common/agent-events/ci-info-builder.js +30 -30
  147. package/tsOutputs/common/agent-events/cockpit-notifier.d.ts +26 -26
  148. package/tsOutputs/common/agent-events/cockpit-notifier.js +119 -119
  149. package/tsOutputs/common/agent-events/dry-run-agent-events-controller.d.ts +7 -7
  150. package/tsOutputs/common/agent-events/dry-run-agent-events-controller.js +31 -33
  151. package/tsOutputs/common/agent-events/dry-run-agent-events-controller.js.map +1 -1
  152. package/tsOutputs/common/agent-events/machine-info-builder.d.ts +7 -7
  153. package/tsOutputs/common/agent-events/machine-info-builder.js +35 -35
  154. package/tsOutputs/common/agent-events/nodejs-env-info-builder.d.ts +8 -8
  155. package/tsOutputs/common/agent-events/nodejs-env-info-builder.js +19 -19
  156. package/tsOutputs/common/agent-events/sensitive-data-filter.d.ts +2 -2
  157. package/tsOutputs/common/agent-events/sensitive-data-filter.js +54 -54
  158. package/tsOutputs/common/agent-instance-data.d.ts +10 -10
  159. package/tsOutputs/common/agent-instance-data.js +39 -39
  160. package/tsOutputs/common/config-process/config-loader.d.ts +8 -8
  161. package/tsOutputs/common/config-process/config-loader.js +86 -86
  162. package/tsOutputs/common/config-process/config-system.d.ts +88 -88
  163. package/tsOutputs/common/config-process/config-system.js +293 -293
  164. package/tsOutputs/common/config-process/config.d.ts +60 -60
  165. package/tsOutputs/common/config-process/config.js +90 -92
  166. package/tsOutputs/common/config-process/config.js.map +1 -1
  167. package/tsOutputs/common/config-process/index.d.ts +21 -21
  168. package/tsOutputs/common/config-process/index.js +125 -127
  169. package/tsOutputs/common/config-process/index.js.map +1 -1
  170. package/tsOutputs/common/constants/constants.d.ts +18 -18
  171. package/tsOutputs/common/constants/constants.js +29 -29
  172. package/tsOutputs/common/constants/sl-env-vars.d.ts +52 -52
  173. package/tsOutputs/common/constants/sl-env-vars.js +122 -122
  174. package/tsOutputs/common/contracts.d.ts +123 -122
  175. package/tsOutputs/common/contracts.js +2 -2
  176. package/tsOutputs/common/coverage-elements/contracts.d.ts +25 -25
  177. package/tsOutputs/common/coverage-elements/contracts.js +8 -8
  178. package/tsOutputs/common/coverage-elements/file-element.d.ts +35 -35
  179. package/tsOutputs/common/coverage-elements/file-element.js +158 -158
  180. package/tsOutputs/common/coverage-elements/istanbul-unique-id-converter.d.ts +12 -12
  181. package/tsOutputs/common/coverage-elements/istanbul-unique-id-converter.js +95 -97
  182. package/tsOutputs/common/coverage-elements/istanbul-unique-id-converter.js.map +1 -1
  183. package/tsOutputs/common/coverage-elements/new-id-resolver.d.ts +3 -3
  184. package/tsOutputs/common/coverage-elements/new-id-resolver.js +45 -45
  185. package/tsOutputs/common/coverage-elements/original-module-loader.d.ts +41 -41
  186. package/tsOutputs/common/coverage-elements/original-module-loader.js +189 -189
  187. package/tsOutputs/common/coverage-elements/unique-id-converter.d.ts +32 -32
  188. package/tsOutputs/common/coverage-elements/unique-id-converter.js +234 -234
  189. package/tsOutputs/common/environment-data-service.d.ts +15 -15
  190. package/tsOutputs/common/environment-data-service.js +60 -60
  191. package/tsOutputs/common/events-process/events-contracts.d.ts +52 -52
  192. package/tsOutputs/common/events-process/events-contracts.js +19 -19
  193. package/tsOutputs/common/events-process/events-creator.js +42 -40
  194. package/tsOutputs/common/events-process/events-creator.js.map +1 -1
  195. package/tsOutputs/common/events-process/index.d.ts +42 -42
  196. package/tsOutputs/common/events-process/index.js +265 -266
  197. package/tsOutputs/common/events-process/index.js.map +1 -1
  198. package/tsOutputs/common/footprints-process/collection-interval.d.ts +10 -10
  199. package/tsOutputs/common/footprints-process/collection-interval.js +27 -27
  200. package/tsOutputs/common/footprints-process/footprints-service-proxy.d.ts +12 -12
  201. package/tsOutputs/common/footprints-process/footprints-service-proxy.js +51 -51
  202. package/tsOutputs/common/footprints-process/index.d.ts +71 -71
  203. package/tsOutputs/common/footprints-process/index.js +264 -264
  204. package/tsOutputs/common/footprints-process/istanbul-to-footprints-contract.d.ts +98 -98
  205. package/tsOutputs/common/footprints-process/istanbul-to-footprints-contract.js +9 -9
  206. package/tsOutputs/common/footprints-process/istanbul-to-footprints.d.ts +47 -47
  207. package/tsOutputs/common/footprints-process/istanbul-to-footprints.js +421 -421
  208. package/tsOutputs/common/footprints-process/production-footprints-handler.d.ts +54 -54
  209. package/tsOutputs/common/footprints-process/production-footprints-handler.js +308 -308
  210. package/tsOutputs/common/footprints-process-v6/base-browser-hits-converter.d.ts +20 -20
  211. package/tsOutputs/common/footprints-process-v6/base-browser-hits-converter.js +63 -65
  212. package/tsOutputs/common/footprints-process-v6/base-browser-hits-converter.js.map +1 -1
  213. package/tsOutputs/common/footprints-process-v6/buffer-size-helper.d.ts +15 -15
  214. package/tsOutputs/common/footprints-process-v6/buffer-size-helper.js +40 -40
  215. package/tsOutputs/common/footprints-process-v6/contracts.d.ts +184 -181
  216. package/tsOutputs/common/footprints-process-v6/contracts.js +9 -9
  217. package/tsOutputs/common/footprints-process-v6/footprints-buffer.d.ts +36 -34
  218. package/tsOutputs/common/footprints-process-v6/footprints-buffer.js +147 -135
  219. package/tsOutputs/common/footprints-process-v6/footprints-buffer.js.map +1 -1
  220. package/tsOutputs/common/footprints-process-v6/hits-collector.d.ts +24 -24
  221. package/tsOutputs/common/footprints-process-v6/hits-collector.js +168 -168
  222. package/tsOutputs/common/footprints-process-v6/hits-converter.d.ts +30 -28
  223. package/tsOutputs/common/footprints-process-v6/hits-converter.js +135 -105
  224. package/tsOutputs/common/footprints-process-v6/hits-converter.js.map +1 -1
  225. package/tsOutputs/common/footprints-process-v6/index.d.ts +41 -40
  226. package/tsOutputs/common/footprints-process-v6/index.js +304 -258
  227. package/tsOutputs/common/footprints-process-v6/index.js.map +1 -1
  228. package/tsOutputs/common/footprints-process-v6/location-formatter.d.ts +6 -6
  229. package/tsOutputs/common/footprints-process-v6/location-formatter.js +25 -25
  230. package/tsOutputs/common/footprints-process-v6/relative-path-resolver.d.ts +8 -8
  231. package/tsOutputs/common/footprints-process-v6/relative-path-resolver.js +28 -28
  232. package/tsOutputs/common/footprints-process-v6/remote-browser-hits-converter.d.ts +9 -9
  233. package/tsOutputs/common/footprints-process-v6/remote-browser-hits-converter.js +38 -40
  234. package/tsOutputs/common/footprints-process-v6/remote-browser-hits-converter.js.map +1 -1
  235. package/tsOutputs/common/footprints-process-v6/remote-footprints-process.d.ts +8 -8
  236. package/tsOutputs/common/footprints-process-v6/remote-footprints-process.js +32 -34
  237. package/tsOutputs/common/footprints-process-v6/remote-footprints-process.js.map +1 -1
  238. package/tsOutputs/common/footprints-process-v6/remote-hits-collector.d.ts +14 -14
  239. package/tsOutputs/common/footprints-process-v6/remote-hits-collector.js +39 -41
  240. package/tsOutputs/common/footprints-process-v6/remote-hits-collector.js.map +1 -1
  241. package/tsOutputs/common/footprints-process-v6/source-map-data.d.ts +9 -9
  242. package/tsOutputs/common/footprints-process-v6/source-map-data.js +32 -32
  243. package/tsOutputs/common/footprints-process-v6/source-map-data.js.map +1 -1
  244. package/tsOutputs/common/http/backend-proxy-interface.d.ts +33 -33
  245. package/tsOutputs/common/http/backend-proxy-interface.js +2 -2
  246. package/tsOutputs/common/http/backend-proxy.d.ts +54 -53
  247. package/tsOutputs/common/http/backend-proxy.js +408 -398
  248. package/tsOutputs/common/http/backend-proxy.js.map +1 -1
  249. package/tsOutputs/common/http/contracts.d.ts +280 -203
  250. package/tsOutputs/common/http/contracts.js +156 -158
  251. package/tsOutputs/common/http/contracts.js.map +1 -1
  252. package/tsOutputs/common/http/dry-run-proxy.js +106 -106
  253. package/tsOutputs/common/http/entities-mapper.d.ts +4 -4
  254. package/tsOutputs/common/http/entities-mapper.js +17 -17
  255. package/tsOutputs/common/http/http-client.d.ts +21 -21
  256. package/tsOutputs/common/http/http-client.js +195 -191
  257. package/tsOutputs/common/http/http-client.js.map +1 -1
  258. package/tsOutputs/common/http/http-verb.d.ts +6 -6
  259. package/tsOutputs/common/http/http-verb.js +10 -10
  260. package/tsOutputs/common/http/sl-routes.d.ts +70 -70
  261. package/tsOutputs/common/http/sl-routes.js +218 -218
  262. package/tsOutputs/common/ignored-files-handler.js +122 -122
  263. package/tsOutputs/common/logger.d.ts +40 -40
  264. package/tsOutputs/common/logger.js +188 -190
  265. package/tsOutputs/common/logger.js.map +1 -1
  266. package/tsOutputs/common/messages-formatter.d.ts +6 -6
  267. package/tsOutputs/common/messages-formatter.js +21 -21
  268. package/tsOutputs/common/queue.d.ts +19 -19
  269. package/tsOutputs/common/queue.js +55 -57
  270. package/tsOutputs/common/queue.js.map +1 -1
  271. package/tsOutputs/common/scm/contracts.js +2 -2
  272. package/tsOutputs/common/scm/git-cloner.js +138 -0
  273. package/tsOutputs/common/scm/git-cloner.js.map +1 -0
  274. package/tsOutputs/common/scm/git-format-builder.js +72 -72
  275. package/tsOutputs/common/scm/git.js +411 -411
  276. package/tsOutputs/common/scm/none.js +115 -115
  277. package/tsOutputs/common/scm/scm-factory.js +21 -21
  278. package/tsOutputs/common/short-name-to-file-mapper.js +79 -79
  279. package/tsOutputs/common/source-map-handler.d.ts +58 -58
  280. package/tsOutputs/common/source-map-handler.js +197 -197
  281. package/tsOutputs/common/source-map-reader.js +84 -84
  282. package/tsOutputs/common/source-maps-utils.d.ts +3 -3
  283. package/tsOutputs/common/source-maps-utils.js +39 -39
  284. package/tsOutputs/common/state-tracker-fpv6.d.ts +6 -6
  285. package/tsOutputs/common/state-tracker-fpv6.js +42 -44
  286. package/tsOutputs/common/state-tracker-fpv6.js.map +1 -1
  287. package/tsOutputs/common/state-tracker.d.ts +49 -49
  288. package/tsOutputs/common/state-tracker.js +299 -304
  289. package/tsOutputs/common/state-tracker.js.map +1 -1
  290. package/tsOutputs/common/system-date.d.ts +2 -2
  291. package/tsOutputs/common/system-date.js +21 -21
  292. package/tsOutputs/common/utils/abstract-data-builder.d.ts +10 -10
  293. package/tsOutputs/common/utils/abstract-data-builder.js +24 -24
  294. package/tsOutputs/common/utils/build-session-data-builder.d.ts +18 -18
  295. package/tsOutputs/common/utils/build-session-data-builder.js +135 -137
  296. package/tsOutputs/common/utils/build-session-data-builder.js.map +1 -1
  297. package/tsOutputs/common/utils/dependency-utils.js +69 -69
  298. package/tsOutputs/common/utils/files-utils.d.ts +6 -5
  299. package/tsOutputs/common/utils/files-utils.js +45 -36
  300. package/tsOutputs/common/utils/files-utils.js.map +1 -1
  301. package/tsOutputs/common/utils/parsing-utils.d.ts +4 -4
  302. package/tsOutputs/common/utils/parsing-utils.js +29 -29
  303. package/tsOutputs/common/utils/test-utils/mock-server-utils/contracts.js +10 -10
  304. package/tsOutputs/common/utils/test-utils/mock-server-utils/mock-server-proxy.js +248 -248
  305. package/tsOutputs/common/utils/timer-utils.d.ts +3 -3
  306. package/tsOutputs/common/utils/timer-utils.js +12 -12
  307. package/tsOutputs/common/utils/token-data-builder.d.ts +21 -21
  308. package/tsOutputs/common/utils/token-data-builder.js +95 -97
  309. package/tsOutputs/common/utils/token-data-builder.js.map +1 -1
  310. package/tsOutputs/common/utils/validation-utils.d.ts +3 -3
  311. package/tsOutputs/common/utils/validation-utils.js +18 -18
  312. package/tsOutputs/common/uuid.js +23 -23
  313. package/tsOutputs/common/watchdog.d.ts +96 -96
  314. package/tsOutputs/common/watchdog.js +149 -151
  315. package/tsOutputs/common/watchdog.js.map +1 -1
  316. package/tsOutputs/mocha-reporter/constants.js +27 -27
  317. package/tsOutputs/mocha-reporter/end-execution.js +22 -22
  318. package/tsOutputs/mocha-reporter/index.js +323 -323
  319. package/tsOutputs/test-listener/IConsoleLogger.js +5 -5
  320. package/tsOutputs/test-listener/SlNodeJsProxy.js +96 -96
  321. package/tsOutputs/test-listener/UserMessageHelper.js +47 -47
  322. package/tsOutputs/test-listener/agent-loader.js +58 -58
  323. package/tsOutputs/test-listener/agent.d.ts +53 -53
  324. package/tsOutputs/test-listener/agent.js +273 -273
  325. package/tsOutputs/test-listener/api.js +157 -157
  326. package/tsOutputs/test-listener/base-proxy.d.ts +15 -15
  327. package/tsOutputs/test-listener/base-proxy.js +133 -133
  328. package/tsOutputs/test-listener/bootstrap.js +16 -16
  329. package/tsOutputs/test-listener/child-process-patcher.js +136 -136
  330. package/tsOutputs/test-listener/cli.js +64 -64
  331. package/tsOutputs/test-listener/coloring/http-coloring.d.ts +15 -15
  332. package/tsOutputs/test-listener/coloring/http-coloring.js +188 -188
  333. package/tsOutputs/test-listener/coloring/icoloring-provider.d.ts +10 -10
  334. package/tsOutputs/test-listener/coloring/icoloring-provider.js +2 -2
  335. package/tsOutputs/test-listener/coloring/listening-port.d.ts +20 -20
  336. package/tsOutputs/test-listener/coloring/listening-port.js +48 -48
  337. package/tsOutputs/test-listener/command-line-arg-parser.js +91 -91
  338. package/tsOutputs/test-listener/config-process/config-loader.js +104 -104
  339. package/tsOutputs/test-listener/config-process/config-system.d.ts +88 -88
  340. package/tsOutputs/test-listener/config-process/config-system.js +285 -285
  341. package/tsOutputs/test-listener/config-process/index.js +126 -128
  342. package/tsOutputs/test-listener/config-process/index.js.map +1 -1
  343. package/tsOutputs/test-listener/config.d.ts +50 -50
  344. package/tsOutputs/test-listener/config.js +80 -82
  345. package/tsOutputs/test-listener/config.js.map +1 -1
  346. package/tsOutputs/test-listener/contracts.d.ts +72 -72
  347. package/tsOutputs/test-listener/contracts.js +2 -2
  348. package/tsOutputs/test-listener/entities/BasicConfigurationData.js +72 -72
  349. package/tsOutputs/test-listener/entities/build-scanner/ConfigModeData.js +48 -50
  350. package/tsOutputs/test-listener/entities/build-scanner/ConfigModeData.js.map +1 -1
  351. package/tsOutputs/test-listener/entities/build-scanner/ScanModeData.js +51 -53
  352. package/tsOutputs/test-listener/entities/build-scanner/ScanModeData.js.map +1 -1
  353. package/tsOutputs/test-listener/environment-data-service.d.ts +11 -11
  354. package/tsOutputs/test-listener/environment-data-service.js +60 -60
  355. package/tsOutputs/test-listener/execution-process/contracts.js +5 -5
  356. package/tsOutputs/test-listener/execution-process/entities-mapper.js +49 -49
  357. package/tsOutputs/test-listener/execution-process/execution-service-proxy.js +205 -207
  358. package/tsOutputs/test-listener/execution-process/execution-service-proxy.js.map +1 -1
  359. package/tsOutputs/test-listener/execution-process/index.js +163 -163
  360. package/tsOutputs/test-listener/factory.d.ts +87 -87
  361. package/tsOutputs/test-listener/factory.js +285 -285
  362. package/tsOutputs/test-listener/footprints-process/footprints-service-proxy.js +50 -52
  363. package/tsOutputs/test-listener/footprints-process/footprints-service-proxy.js.map +1 -1
  364. package/tsOutputs/test-listener/footprints-process/index.js +230 -230
  365. package/tsOutputs/test-listener/footprints-process/istanbul-to-footprints-base.js +130 -130
  366. package/tsOutputs/test-listener/footprints-process/istanbul-to-footprints-contract.js +2 -2
  367. package/tsOutputs/test-listener/footprints-process/istanbul-to-footprints-v3.js +288 -290
  368. package/tsOutputs/test-listener/footprints-process/istanbul-to-footprints-v3.js.map +1 -1
  369. package/tsOutputs/test-listener/integrations/SlGulp.js +104 -104
  370. package/tsOutputs/test-listener/logs-process/index.d.ts +48 -48
  371. package/tsOutputs/test-listener/logs-process/index.js +142 -142
  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 +29 -31
  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 -136
  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/queue.js +55 -57
  379. package/tsOutputs/test-listener/queue.js.map +1 -1
  380. package/tsOutputs/test-listener/remote-agent.d.ts +42 -42
  381. package/tsOutputs/test-listener/remote-agent.js +200 -200
  382. package/tsOutputs/test-listener/resolvers/AppNameResolver.js +32 -34
  383. package/tsOutputs/test-listener/resolvers/AppNameResolver.js.map +1 -1
  384. package/tsOutputs/test-listener/resolvers/ArgumentResolver.js +64 -64
  385. package/tsOutputs/test-listener/resolvers/BuildResolver.js +31 -33
  386. package/tsOutputs/test-listener/resolvers/BuildResolver.js.map +1 -1
  387. package/tsOutputs/test-listener/resolvers/BuildSessionIdFileResolver.js +31 -33
  388. package/tsOutputs/test-listener/resolvers/BuildSessionIdFileResolver.js.map +1 -1
  389. package/tsOutputs/test-listener/resolvers/BuildSessionIdResolver.js +34 -36
  390. package/tsOutputs/test-listener/resolvers/BuildSessionIdResolver.js.map +1 -1
  391. package/tsOutputs/test-listener/resolvers/ProxyResolver.js +31 -33
  392. package/tsOutputs/test-listener/resolvers/ProxyResolver.js.map +1 -1
  393. package/tsOutputs/test-listener/resolvers/TokenResolver.js +31 -33
  394. package/tsOutputs/test-listener/resolvers/TokenResolver.js.map +1 -1
  395. package/tsOutputs/test-listener/state-tracker-process/index.js +160 -162
  396. package/tsOutputs/test-listener/state-tracker-process/index.js.map +1 -1
  397. package/tsOutputs/test-listener/state-tracker-process/state-tracker-proxy.d.ts +8 -8
  398. package/tsOutputs/test-listener/state-tracker-process/state-tracker-proxy.js +69 -71
  399. package/tsOutputs/test-listener/state-tracker-process/state-tracker-proxy.js.map +1 -1
  400. package/tsOutputs/test-listener/test-recommendation-handler.d.ts +29 -29
  401. package/tsOutputs/test-listener/test-recommendation-handler.js +161 -161
  402. package/tsOutputs/test-listener/upload-report-handler.js +96 -96
  403. package/tsOutputs/test-listener/utils.js +68 -68
  404. package/tsOutputs/test-listener/uuid.d.ts +3 -3
  405. package/tsOutputs/test-listener/uuid.js +23 -23
  406. package/tsOutputs/test-listener/wait-for-multiple-callbacks.d.ts +22 -22
  407. package/tsOutputs/test-listener/wait-for-multiple-callbacks.js +60 -60
  408. package/tsOutputs/test-listener/watchdog.d.ts +89 -89
  409. package/tsOutputs/test-listener/watchdog.js +144 -146
  410. package/tsOutputs/test-listener/watchdog.js.map +1 -1
  411. package/browser-agent/dist/browser-agent-all.js +0 -100989
  412. package/browser-agent/dist/browser-agent-all.min.js +0 -57
  413. package/browser-agent/package.json +0 -44
@@ -1,265 +1,265 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FootprintsProcess = void 0;
4
- var queue_1 = require("../queue");
5
- var collection_interval_1 = require("./collection-interval");
6
- var system_date_1 = require("../system-date");
7
- var state_tracker_1 = require("../state-tracker");
8
- var sl_env_vars_1 = require("../constants/sl-env-vars");
9
- var cockpit_notifier_1 = require("../agent-events/cockpit-notifier");
10
- var agent_events_conracts_1 = require("../agent-events/agent-events-conracts");
11
- var FootprintsProcess = /** @class */ (function () {
12
- function FootprintsProcess(
13
- /**
14
- * Initial configuration
15
- */
16
- cfg,
17
- /**
18
- * Background thread that tells the footprints service to send footprints from the queue to the server
19
- */
20
- sendToServerWatchdog,
21
- /**
22
- * Foreground thread that prevents the process from shutting down, and kept alive while there are items to submit to the server or items are currently being submitted
23
- */
24
- keepaliveWatchdog,
25
- /**
26
- * Proxy to the server for footprints submission
27
- */
28
- footprintsServiceProxy,
29
- /**
30
- * Environments service, used to get environmental data for submission (process id, machine data, etc.)
31
- */
32
- environmentDataService, agentInstanceData, istanbulToFootprints, stateTracker, logger) {
33
- var _this = this;
34
- this.cfg = cfg;
35
- this.sendToServerWatchdog = sendToServerWatchdog;
36
- this.keepaliveWatchdog = keepaliveWatchdog;
37
- this.footprintsServiceProxy = footprintsServiceProxy;
38
- this.environmentDataService = environmentDataService;
39
- this.agentInstanceData = agentInstanceData;
40
- this.istanbulToFootprints = istanbulToFootprints;
41
- this.stateTracker = stateTracker;
42
- this.logger = logger;
43
- this.isSubmittingFootprints = false;
44
- this.sequence = 0;
45
- this.isRunning = false;
46
- this.stopCallbacks = [];
47
- if (!cfg)
48
- throw new Error('cfg was not specified');
49
- if (!sendToServerWatchdog)
50
- throw new Error('sendToServerWatchdog was not specified');
51
- if (!keepaliveWatchdog)
52
- throw new Error('keepaliveWatchdog was not specified');
53
- if (!footprintsServiceProxy)
54
- throw new Error('footprintsServiceProxy was not specified');
55
- if (!environmentDataService)
56
- throw new Error('environmentDataService was not specified');
57
- if (!agentInstanceData)
58
- throw new Error('agentInstanceData was not specified');
59
- if (!istanbulToFootprints)
60
- throw new Error('istanbulToFootprints was not specified');
61
- if (!logger) {
62
- throw new Error('logger was not specified');
63
- }
64
- this.collectionInterval = new collection_interval_1.CollectionInterval(cfg.interval.value);
65
- this.footprintsQueue = new queue_1.Queue();
66
- sendToServerWatchdog.on('alarm', function () {
67
- _this.logger.debug('Start submitting footprints, triggered by send to server watchdog.');
68
- _this.submitQueuedFootprints();
69
- });
70
- this.footprintsQueue.on('full', function () {
71
- _this.logger.debug('Start submitting footprints, queue is full.');
72
- _this.submitQueuedFootprints();
73
- });
74
- keepaliveWatchdog.on('alarm', function () {
75
- //console.log('keepaliveWatchdog. isSubmittingFootprints:' + this.isSubmittingFootprints + ', queue size: ' + this.footprintsQueue.getQueueSize());
76
- if (!_this.isSubmittingFootprints && _this.footprintsQueue.getQueueSize() == 0) {
77
- keepaliveWatchdog.stop();
78
- }
79
- });
80
- }
81
- FootprintsProcess.prototype.enqueueCurrentFootprints = function (executionId, testName) {
82
- this.collectionInterval.next();
83
- var footprints = this.istanbulToFootprints.getCurrentFootprints();
84
- var hitModules = Object.keys(footprints);
85
- if (!hitModules || hitModules.length == 0) { //If no modules were hit at all, don't enqueue anything
86
- this.logger.info('No files were hit, not enqueuing footprints.');
87
- return;
88
- }
89
- this.logger.info('Enqueuing footprints for %s files.', hitModules.length);
90
- this.footprintsQueue.enqueue({
91
- executionId: executionId,
92
- testName: testName,
93
- footprints: footprints,
94
- localTime: system_date_1.getSystemDateValueOf(),
95
- collectionInterval: this.collectionInterval.toJson(),
96
- });
97
- if (this.isRunning && this.cfg.sendFootprints.value && this.cfg.enabled.value) {
98
- this.ensureKeepaliveThreadRunning();
99
- this.sendToServerWatchdog.start();
100
- }
101
- };
102
- FootprintsProcess.prototype.ensureKeepaliveThreadRunning = function () {
103
- this.keepaliveWatchdog.start();
104
- };
105
- FootprintsProcess.prototype.updateConfig = function (updatedCfg) {
106
- if (updatedCfg.sendFootprints.value === false || updatedCfg.enabled.value === false) {
107
- cockpit_notifier_1.CockpitNotifier.sendEvent(agent_events_conracts_1.AgentEventCode.AGENT_MUTED);
108
- this.footprintsQueue.clear();
109
- this.stop(function () { });
110
- }
111
- this.cfg = updatedCfg;
112
- this.sendToServerWatchdog.setInterval(this.cfg.interval.value);
113
- };
114
- FootprintsProcess.prototype.createFootprintsPacket = function (items) {
115
- var packet = this.istanbulToFootprints.createFootprintsPackageFromQueue(items, {
116
- customerId: this.cfg.customerId.value,
117
- environment: this.environmentDataService.getEnvDataForSubmission(),
118
- configurationData: this.cfg.toJsonObject(),
119
- meta: {
120
- sequence: ++this.sequence,
121
- generated: system_date_1.getSystemDateValueOf(),
122
- agentId: this.agentInstanceData.agentId,
123
- },
124
- tests: [],
125
- apps: []
126
- });
127
- return packet;
128
- };
129
- FootprintsProcess.prototype.submitQueuedFootprints = function () {
130
- var _this = this;
131
- if (!this.isRunning) {
132
- this.logger.info('Agent is not running, not sending footprints');
133
- return;
134
- }
135
- if (this.cfg.sendFootprints.value === false) {
136
- this.logger.info('Not sending footprints since agent is configured to not send.');
137
- return; //Can't start without server or token
138
- }
139
- if (this.isSubmittingFootprints) {
140
- this.logger.info('Not sending footprints since its already submitting.');
141
- return;
142
- }
143
- if (this.footprintsQueue.getQueueSize() == 0) {
144
- this.logger.info('Not sending footprints since queue size is 0');
145
- return;
146
- }
147
- this.logger.info('About to send footprints. Queue size:' + this.footprintsQueue.getQueueSize());
148
- var items = this.footprintsQueue.dequeue(/*this.cfg.maxFootprintsChunkSize ||*/ 1000);
149
- var packet = this.createFootprintsPacket(items);
150
- this.isSubmittingFootprints = true;
151
- this.footprintsServiceProxy.handleFootprints(packet, function (err) {
152
- _this.isSubmittingFootprints = false;
153
- _this.logger.info('Sent footprints. Queue size:' + _this.footprintsQueue.getQueueSize() + ', err:' + err);
154
- if (err) {
155
- _this.environmentDataService.setLastError(err.stack);
156
- _this.footprintsQueue.requeue(items); //Requeue items for later submission
157
- }
158
- else if (_this.footprintsQueue.getQueueSize() > 0) { //If there was an error, don't send now. Otherwise, if the queue still has items, send those now
159
- _this.submitQueuedFootprints();
160
- }
161
- else
162
- _this.fireQueueEmpty();
163
- });
164
- };
165
- FootprintsProcess.prototype.fireQueueEmpty = function () {
166
- var _this = this;
167
- if (this.stopCallbacks.length > 0) {
168
- this.stopCallbacks.forEach(function (cb) {
169
- try {
170
- cb();
171
- }
172
- catch (err) {
173
- _this.environmentDataService.setLastError(err.stack);
174
- }
175
- });
176
- }
177
- };
178
- FootprintsProcess.prototype.start = function () {
179
- if (this.isRunning)
180
- return; //Already started
181
- if (this.cfg.enabled.value == false)
182
- return; //Don't do anything if agent is completely disabled
183
- this.isRunning = true;
184
- this.sendToServerWatchdog.start();
185
- if (this.footprintsQueue.getQueueSize() > 0) {
186
- this.ensureKeepaliveThreadRunning();
187
- }
188
- };
189
- FootprintsProcess.prototype.stop = function (callback) {
190
- var _this = this;
191
- try {
192
- this.sendToServerWatchdog.stop();
193
- if (this.cfg.enabled.value === false || this.cfg.sendFootprints.value === false) { //Footprints/Agent functionality is disabled. Return immediately
194
- this.isRunning = false;
195
- return callback();
196
- }
197
- this.logger.debug('Start submitting footprints, triggered by stop event.');
198
- this.submitQueuedFootprints(); //If footprints are being submitted, this has no effect. Otherwise, it will start submitting footprints if the queue is non-empty
199
- if (this.isSubmittingFootprints) {
200
- /*
201
- Nothing to do right now, since footprints are being submitted
202
- When the submission is over (successfully or not), if the queue is empty the next batch of footprints will be sent.
203
- If after submission the queue is cleared, this callback will be called
204
- */
205
- this.stopCallbacks.push(function () {
206
- _this.isRunning = false;
207
- _this.keepaliveWatchdog.stop();
208
- return callback();
209
- });
210
- }
211
- else {
212
- /*
213
- Queue must be empty, and nothing is sent. submitQueuedFootprints() would have started sending footprints if the queue was non-empty
214
- */
215
- this.isRunning = false;
216
- this.keepaliveWatchdog.stop();
217
- return callback();
218
- }
219
- }
220
- catch (err) {
221
- this.logger.error(err);
222
- return callback();
223
- }
224
- };
225
- FootprintsProcess.prototype.handleTestIdChanged = function (newTestIdentifier, previousTestIdentifier) {
226
- if (previousTestIdentifier != null) {
227
- if (!this.stateTracker.hasMappingAtServer() && this.stateTracker.isAnonymousColor(previousTestIdentifier)) {
228
- this.logger.info('Test identifier changed, couldn\'t find active execution for anonymous footprints. Skip enqueuing footprints process.');
229
- return;
230
- }
231
- this.logger.debug('Test identifier changed, start enqueuing footprints process.');
232
- var prevTestIdentifierParts = state_tracker_1.StateTracker.splitTestIdToExecutionAndTestName(previousTestIdentifier);
233
- this.enqueueCurrentFootprints(prevTestIdentifierParts.executionId, prevTestIdentifierParts.testName);
234
- }
235
- else {
236
- this.logger.info('Test identifier changed, previous identifier wasn\'t set, meaning that we didn\'t have active test. Skip enqueuing footprints process.');
237
- }
238
- };
239
- FootprintsProcess.prototype.flushCurrentFootprints = function () {
240
- var currentTestIdentifier = this.stateTracker.getCurrentTestIdentifier();
241
- var testIdentifierParts = state_tracker_1.StateTracker.splitTestIdToExecutionAndTestName(currentTestIdentifier);
242
- if (sl_env_vars_1.SlEnvVars.inProductionListenerMode()) {
243
- this.logger.debug('Enqueue footprints for production listener');
244
- this.enqueueCurrentFootprints(testIdentifierParts.executionId, testIdentifierParts.testName);
245
- return;
246
- }
247
- if (currentTestIdentifier != null) {
248
- if (!this.stateTracker.hasMappingAtServer() && this.stateTracker.isAnonymousColor(currentTestIdentifier)) {
249
- this.logger.info('Enqueue footprints interval - couldn\'t find active execution for anonymous footprints. skip enqueue footprints process. currentTestIdentifier: \'%s\'', currentTestIdentifier);
250
- return;
251
- }
252
- this.logger.debug('Enqueue footprints interval - start enqueuing process. currentTestIdentifier: \'%s\'', currentTestIdentifier);
253
- this.enqueueCurrentFootprints(testIdentifierParts.executionId, testIdentifierParts.testName);
254
- }
255
- else {
256
- this.logger.info('Enqueue footprints interval - no test identifier. skip enqueuing process. ');
257
- }
258
- };
259
- FootprintsProcess.prototype.getQueueSize = function () {
260
- return this.footprintsQueue.getQueueSize();
261
- };
262
- return FootprintsProcess;
263
- }());
264
- exports.FootprintsProcess = FootprintsProcess;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FootprintsProcess = void 0;
4
+ var queue_1 = require("../queue");
5
+ var collection_interval_1 = require("./collection-interval");
6
+ var system_date_1 = require("../system-date");
7
+ var state_tracker_1 = require("../state-tracker");
8
+ var sl_env_vars_1 = require("../constants/sl-env-vars");
9
+ var cockpit_notifier_1 = require("../agent-events/cockpit-notifier");
10
+ var agent_events_conracts_1 = require("../agent-events/agent-events-conracts");
11
+ var FootprintsProcess = /** @class */ (function () {
12
+ function FootprintsProcess(
13
+ /**
14
+ * Initial configuration
15
+ */
16
+ cfg,
17
+ /**
18
+ * Background thread that tells the footprints service to send footprints from the queue to the server
19
+ */
20
+ sendToServerWatchdog,
21
+ /**
22
+ * Foreground thread that prevents the process from shutting down, and kept alive while there are items to submit to the server or items are currently being submitted
23
+ */
24
+ keepaliveWatchdog,
25
+ /**
26
+ * Proxy to the server for footprints submission
27
+ */
28
+ footprintsServiceProxy,
29
+ /**
30
+ * Environments service, used to get environmental data for submission (process id, machine data, etc.)
31
+ */
32
+ environmentDataService, agentInstanceData, istanbulToFootprints, stateTracker, logger) {
33
+ var _this = this;
34
+ this.cfg = cfg;
35
+ this.sendToServerWatchdog = sendToServerWatchdog;
36
+ this.keepaliveWatchdog = keepaliveWatchdog;
37
+ this.footprintsServiceProxy = footprintsServiceProxy;
38
+ this.environmentDataService = environmentDataService;
39
+ this.agentInstanceData = agentInstanceData;
40
+ this.istanbulToFootprints = istanbulToFootprints;
41
+ this.stateTracker = stateTracker;
42
+ this.logger = logger;
43
+ this.isSubmittingFootprints = false;
44
+ this.sequence = 0;
45
+ this.isRunning = false;
46
+ this.stopCallbacks = [];
47
+ if (!cfg)
48
+ throw new Error('cfg was not specified');
49
+ if (!sendToServerWatchdog)
50
+ throw new Error('sendToServerWatchdog was not specified');
51
+ if (!keepaliveWatchdog)
52
+ throw new Error('keepaliveWatchdog was not specified');
53
+ if (!footprintsServiceProxy)
54
+ throw new Error('footprintsServiceProxy was not specified');
55
+ if (!environmentDataService)
56
+ throw new Error('environmentDataService was not specified');
57
+ if (!agentInstanceData)
58
+ throw new Error('agentInstanceData was not specified');
59
+ if (!istanbulToFootprints)
60
+ throw new Error('istanbulToFootprints was not specified');
61
+ if (!logger) {
62
+ throw new Error('logger was not specified');
63
+ }
64
+ this.collectionInterval = new collection_interval_1.CollectionInterval(cfg.interval.value);
65
+ this.footprintsQueue = new queue_1.Queue();
66
+ sendToServerWatchdog.on('alarm', function () {
67
+ _this.logger.debug('Start submitting footprints, triggered by send to server watchdog.');
68
+ _this.submitQueuedFootprints();
69
+ });
70
+ this.footprintsQueue.on('full', function () {
71
+ _this.logger.debug('Start submitting footprints, queue is full.');
72
+ _this.submitQueuedFootprints();
73
+ });
74
+ keepaliveWatchdog.on('alarm', function () {
75
+ //console.log('keepaliveWatchdog. isSubmittingFootprints:' + this.isSubmittingFootprints + ', queue size: ' + this.footprintsQueue.getQueueSize());
76
+ if (!_this.isSubmittingFootprints && _this.footprintsQueue.getQueueSize() == 0) {
77
+ keepaliveWatchdog.stop();
78
+ }
79
+ });
80
+ }
81
+ FootprintsProcess.prototype.enqueueCurrentFootprints = function (executionId, testName) {
82
+ this.collectionInterval.next();
83
+ var footprints = this.istanbulToFootprints.getCurrentFootprints();
84
+ var hitModules = Object.keys(footprints);
85
+ if (!hitModules || hitModules.length == 0) { //If no modules were hit at all, don't enqueue anything
86
+ this.logger.info('No files were hit, not enqueuing footprints.');
87
+ return;
88
+ }
89
+ this.logger.info('Enqueuing footprints for %s files.', hitModules.length);
90
+ this.footprintsQueue.enqueue({
91
+ executionId: executionId,
92
+ testName: testName,
93
+ footprints: footprints,
94
+ localTime: system_date_1.getSystemDateValueOf(),
95
+ collectionInterval: this.collectionInterval.toJson(),
96
+ });
97
+ if (this.isRunning && this.cfg.sendFootprints.value && this.cfg.enabled.value) {
98
+ this.ensureKeepaliveThreadRunning();
99
+ this.sendToServerWatchdog.start();
100
+ }
101
+ };
102
+ FootprintsProcess.prototype.ensureKeepaliveThreadRunning = function () {
103
+ this.keepaliveWatchdog.start();
104
+ };
105
+ FootprintsProcess.prototype.updateConfig = function (updatedCfg) {
106
+ if (updatedCfg.sendFootprints.value === false || updatedCfg.enabled.value === false) {
107
+ cockpit_notifier_1.CockpitNotifier.sendEvent(agent_events_conracts_1.AgentEventCode.AGENT_MUTED);
108
+ this.footprintsQueue.clear();
109
+ this.stop(function () { });
110
+ }
111
+ this.cfg = updatedCfg;
112
+ this.sendToServerWatchdog.setInterval(this.cfg.interval.value);
113
+ };
114
+ FootprintsProcess.prototype.createFootprintsPacket = function (items) {
115
+ var packet = this.istanbulToFootprints.createFootprintsPackageFromQueue(items, {
116
+ customerId: this.cfg.customerId.value,
117
+ environment: this.environmentDataService.getEnvDataForSubmission(),
118
+ configurationData: this.cfg.toJsonObject(),
119
+ meta: {
120
+ sequence: ++this.sequence,
121
+ generated: system_date_1.getSystemDateValueOf(),
122
+ agentId: this.agentInstanceData.agentId,
123
+ },
124
+ tests: [],
125
+ apps: []
126
+ });
127
+ return packet;
128
+ };
129
+ FootprintsProcess.prototype.submitQueuedFootprints = function () {
130
+ var _this = this;
131
+ if (!this.isRunning) {
132
+ this.logger.info('Agent is not running, not sending footprints');
133
+ return;
134
+ }
135
+ if (this.cfg.sendFootprints.value === false) {
136
+ this.logger.info('Not sending footprints since agent is configured to not send.');
137
+ return; //Can't start without server or token
138
+ }
139
+ if (this.isSubmittingFootprints) {
140
+ this.logger.info('Not sending footprints since its already submitting.');
141
+ return;
142
+ }
143
+ if (this.footprintsQueue.getQueueSize() == 0) {
144
+ this.logger.info('Not sending footprints since queue size is 0');
145
+ return;
146
+ }
147
+ this.logger.info('About to send footprints. Queue size:' + this.footprintsQueue.getQueueSize());
148
+ var items = this.footprintsQueue.dequeue(/*this.cfg.maxFootprintsChunkSize ||*/ 1000);
149
+ var packet = this.createFootprintsPacket(items);
150
+ this.isSubmittingFootprints = true;
151
+ this.footprintsServiceProxy.handleFootprints(packet, function (err) {
152
+ _this.isSubmittingFootprints = false;
153
+ _this.logger.info('Sent footprints. Queue size:' + _this.footprintsQueue.getQueueSize() + ', err:' + err);
154
+ if (err) {
155
+ _this.environmentDataService.setLastError(err.stack);
156
+ _this.footprintsQueue.requeue(items); //Requeue items for later submission
157
+ }
158
+ else if (_this.footprintsQueue.getQueueSize() > 0) { //If there was an error, don't send now. Otherwise, if the queue still has items, send those now
159
+ _this.submitQueuedFootprints();
160
+ }
161
+ else
162
+ _this.fireQueueEmpty();
163
+ });
164
+ };
165
+ FootprintsProcess.prototype.fireQueueEmpty = function () {
166
+ var _this = this;
167
+ if (this.stopCallbacks.length > 0) {
168
+ this.stopCallbacks.forEach(function (cb) {
169
+ try {
170
+ cb();
171
+ }
172
+ catch (err) {
173
+ _this.environmentDataService.setLastError(err.stack);
174
+ }
175
+ });
176
+ }
177
+ };
178
+ FootprintsProcess.prototype.start = function () {
179
+ if (this.isRunning)
180
+ return; //Already started
181
+ if (this.cfg.enabled.value == false)
182
+ return; //Don't do anything if agent is completely disabled
183
+ this.isRunning = true;
184
+ this.sendToServerWatchdog.start();
185
+ if (this.footprintsQueue.getQueueSize() > 0) {
186
+ this.ensureKeepaliveThreadRunning();
187
+ }
188
+ };
189
+ FootprintsProcess.prototype.stop = function (callback) {
190
+ var _this = this;
191
+ try {
192
+ this.sendToServerWatchdog.stop();
193
+ if (this.cfg.enabled.value === false || this.cfg.sendFootprints.value === false) { //Footprints/Agent functionality is disabled. Return immediately
194
+ this.isRunning = false;
195
+ return callback();
196
+ }
197
+ this.logger.debug('Start submitting footprints, triggered by stop event.');
198
+ this.submitQueuedFootprints(); //If footprints are being submitted, this has no effect. Otherwise, it will start submitting footprints if the queue is non-empty
199
+ if (this.isSubmittingFootprints) {
200
+ /*
201
+ Nothing to do right now, since footprints are being submitted
202
+ When the submission is over (successfully or not), if the queue is empty the next batch of footprints will be sent.
203
+ If after submission the queue is cleared, this callback will be called
204
+ */
205
+ this.stopCallbacks.push(function () {
206
+ _this.isRunning = false;
207
+ _this.keepaliveWatchdog.stop();
208
+ return callback();
209
+ });
210
+ }
211
+ else {
212
+ /*
213
+ Queue must be empty, and nothing is sent. submitQueuedFootprints() would have started sending footprints if the queue was non-empty
214
+ */
215
+ this.isRunning = false;
216
+ this.keepaliveWatchdog.stop();
217
+ return callback();
218
+ }
219
+ }
220
+ catch (err) {
221
+ this.logger.error(err);
222
+ return callback();
223
+ }
224
+ };
225
+ FootprintsProcess.prototype.handleTestIdChanged = function (newTestIdentifier, previousTestIdentifier) {
226
+ if (previousTestIdentifier != null) {
227
+ if (!this.stateTracker.hasMappingAtServer() && this.stateTracker.isAnonymousColor(previousTestIdentifier)) {
228
+ this.logger.info('Test identifier changed, couldn\'t find active execution for anonymous footprints. Skip enqueuing footprints process.');
229
+ return;
230
+ }
231
+ this.logger.debug('Test identifier changed, start enqueuing footprints process.');
232
+ var prevTestIdentifierParts = state_tracker_1.StateTracker.splitTestIdToExecutionAndTestName(previousTestIdentifier);
233
+ this.enqueueCurrentFootprints(prevTestIdentifierParts.executionId, prevTestIdentifierParts.testName);
234
+ }
235
+ else {
236
+ this.logger.info('Test identifier changed, previous identifier wasn\'t set, meaning that we didn\'t have active test. Skip enqueuing footprints process.');
237
+ }
238
+ };
239
+ FootprintsProcess.prototype.flushCurrentFootprints = function () {
240
+ var currentTestIdentifier = this.stateTracker.getCurrentTestIdentifier();
241
+ var testIdentifierParts = state_tracker_1.StateTracker.splitTestIdToExecutionAndTestName(currentTestIdentifier);
242
+ if (sl_env_vars_1.SlEnvVars.inProductionListenerMode()) {
243
+ this.logger.debug('Enqueue footprints for production listener');
244
+ this.enqueueCurrentFootprints(testIdentifierParts.executionId, testIdentifierParts.testName);
245
+ return;
246
+ }
247
+ if (currentTestIdentifier != null) {
248
+ if (!this.stateTracker.hasMappingAtServer() && this.stateTracker.isAnonymousColor(currentTestIdentifier)) {
249
+ this.logger.info('Enqueue footprints interval - couldn\'t find active execution for anonymous footprints. skip enqueue footprints process. currentTestIdentifier: \'%s\'', currentTestIdentifier);
250
+ return;
251
+ }
252
+ this.logger.debug('Enqueue footprints interval - start enqueuing process. currentTestIdentifier: \'%s\'', currentTestIdentifier);
253
+ this.enqueueCurrentFootprints(testIdentifierParts.executionId, testIdentifierParts.testName);
254
+ }
255
+ else {
256
+ this.logger.info('Enqueue footprints interval - no test identifier. skip enqueuing process. ');
257
+ }
258
+ };
259
+ FootprintsProcess.prototype.getQueueSize = function () {
260
+ return this.footprintsQueue.getQueueSize();
261
+ };
262
+ return FootprintsProcess;
263
+ }());
264
+ exports.FootprintsProcess = FootprintsProcess;
265
265
  //# sourceMappingURL=index.js.map