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,59 +1,59 @@
1
- //**********************************************************/
2
- // Bug Fix: Webpack plugin breaks JavaScript code when require.ensure() is used (Duda Mobile)
3
- // See https://sealights.atlassian.net/browse/SLDEV-2115
4
- //
5
- // Basically this is a workaround for:
6
- // https://github.com/estools/escodegen/issues/336
7
- //**********************************************************/
8
- function removeWebpackComments(input) {
9
- // This regex should capture block comment filled with stars, globally.
10
- // Good:
11
- // /**/
12
- // /***/
13
- // /*****************/
14
- // Bad:
15
- // /*/
16
- // //
17
- // /***a*/
18
- //
19
- var regex = new RegExp("\/[\*]{2,}\/", "g");
20
- while (true) {
21
- //Execute the regex, each time on a different part of the input string.
22
- var currentMatch = regex.exec(input);
23
- if (!currentMatch)
24
- break;
25
- var matchIndex = currentMatch.index;
26
- var matchLength = currentMatch[0].length;
27
- var whiteSpace = createWhiteSpace(matchLength);
28
- //Replace the matching comment with whitespace.
29
- input = replaceAt(input, matchIndex, whiteSpace);
30
- }
31
- return input;
32
- }
33
- function createWhiteSpace(length) {
34
- var arr = new Array(++length);
35
- return arr.join(" ");
36
- }
37
- function replaceAt(string, index, replacement) {
38
- return string.substr(0, index) + replacement + string.substr(index + replacement.length);
39
- }
40
- //**********************************************************/
41
- // Bug Fix: When instrumenting a 'React' based page, page loading breaks due to a missing space after a 'return' statement.
42
- //
43
- // Instead of having " return</div>" which breaks the page, we change it to
44
- // " return </div>"
45
- //**********************************************************/
46
- function fixMissingSpaceAfterReturnStatement(input) {
47
- return input.replace(/;return</g, ";return <");
48
- }
49
- function isFileInstrumentedSuccessfully(instrumentationContent, outputFile) {
50
- instrumentationContent = instrumentationContent || "";
51
- if (!instrumentationContent.match("var cov_")) {
52
- throw new Error("Instrumented content for file '" + outputFile + "' is not as expected.");
53
- }
54
- return true;
55
- }
56
- module.exports.removeWebpackComments = removeWebpackComments;
57
- module.exports.fixMissingSpaceAfterReturnStatement = fixMissingSpaceAfterReturnStatement;
58
- module.exports.isFileInstrumentedSuccessfully = isFileInstrumentedSuccessfully;
1
+ //**********************************************************/
2
+ // Bug Fix: Webpack plugin breaks JavaScript code when require.ensure() is used (Duda Mobile)
3
+ // See https://sealights.atlassian.net/browse/SLDEV-2115
4
+ //
5
+ // Basically this is a workaround for:
6
+ // https://github.com/estools/escodegen/issues/336
7
+ //**********************************************************/
8
+ function removeWebpackComments(input) {
9
+ // This regex should capture block comment filled with stars, globally.
10
+ // Good:
11
+ // /**/
12
+ // /***/
13
+ // /*****************/
14
+ // Bad:
15
+ // /*/
16
+ // //
17
+ // /***a*/
18
+ //
19
+ var regex = new RegExp("\/[\*]{2,}\/", "g");
20
+ while (true) {
21
+ //Execute the regex, each time on a different part of the input string.
22
+ var currentMatch = regex.exec(input);
23
+ if (!currentMatch)
24
+ break;
25
+ var matchIndex = currentMatch.index;
26
+ var matchLength = currentMatch[0].length;
27
+ var whiteSpace = createWhiteSpace(matchLength);
28
+ //Replace the matching comment with whitespace.
29
+ input = replaceAt(input, matchIndex, whiteSpace);
30
+ }
31
+ return input;
32
+ }
33
+ function createWhiteSpace(length) {
34
+ var arr = new Array(++length);
35
+ return arr.join(" ");
36
+ }
37
+ function replaceAt(string, index, replacement) {
38
+ return string.substr(0, index) + replacement + string.substr(index + replacement.length);
39
+ }
40
+ //**********************************************************/
41
+ // Bug Fix: When instrumenting a 'React' based page, page loading breaks due to a missing space after a 'return' statement.
42
+ //
43
+ // Instead of having " return</div>" which breaks the page, we change it to
44
+ // " return </div>"
45
+ //**********************************************************/
46
+ function fixMissingSpaceAfterReturnStatement(input) {
47
+ return input.replace(/;return</g, ";return <");
48
+ }
49
+ function isFileInstrumentedSuccessfully(instrumentationContent, outputFile) {
50
+ instrumentationContent = instrumentationContent || "";
51
+ if (!instrumentationContent.match("var cov_")) {
52
+ throw new Error("Instrumented content for file '" + outputFile + "' is not as expected.");
53
+ }
54
+ return true;
55
+ }
56
+ module.exports.removeWebpackComments = removeWebpackComments;
57
+ module.exports.fixMissingSpaceAfterReturnStatement = fixMissingSpaceAfterReturnStatement;
58
+ module.exports.isFileInstrumentedSuccessfully = isFileInstrumentedSuccessfully;
59
59
  //# sourceMappingURL=instrumentation-utils.js.map
@@ -1,160 +1,160 @@
1
- var babelGenerator = require("@babel/generator");
2
- var babelParser = require("@babel/parser");
3
- var CockpitNotifier = require("../../common/agent-events/cockpit-notifier").CockpitNotifier;
4
- var astTypes = require("ast-types");
5
- var plugins = ["*", ["decorators", { decoratorsBeforeExport: true }]];
6
- var updateStatementCoverageCommand = ".s\\[\\d+\\]\\++";
7
- var updateBranchCoverageCommand = ".b\\[\\d+\\]\\[\\d+\\]\\++";
8
- var propNameToShort = {
9
- start: "st",
10
- end: "e",
11
- line: "l",
12
- column: "c",
13
- name: "n",
14
- decl: "d",
15
- loc: "lc",
16
- type: "t",
17
- locations: "lcs"
18
- };
19
- function reduceContentSize(filename, instrumentedCode, babylonPlugins, shouldRemoveBranchCoverage, shouldMinifyOutput, logger) {
20
- try {
21
- var ast = createAST(instrumentedCode, babylonPlugins);
22
- var coverageObjectNode = getCoverageObjectNode(ast);
23
- var coverageObjectName = coverageObjectNode.id.name;
24
- reduceCoverageObjectSize(coverageObjectNode, shouldRemoveBranchCoverage);
25
- var updateStatementCoverageRegEx = new RegExp(coverageObjectName + updateStatementCoverageCommand);
26
- var updateBranchCoverageRegEx = new RegExp(coverageObjectName + updateBranchCoverageCommand);
27
- removeRedundantUpdateCommands(ast, shouldRemoveBranchCoverage, updateStatementCoverageRegEx, updateBranchCoverageRegEx);
28
- var finalContent = parseASTToCode(ast, shouldMinifyOutput);
29
- validateFinalContent(finalContent, shouldRemoveBranchCoverage, updateStatementCoverageRegEx, updateBranchCoverageRegEx);
30
- return finalContent;
31
- }
32
- catch (e) {
33
- var message = "Error while removing statement coverage from '" + filename + "' Error: '" + e + "'";
34
- CockpitNotifier.sendError(message);
35
- logger.warn(message + " Using file with statement coverage data");
36
- return instrumentedCode;
37
- }
38
- }
39
- function verifyUpdateCoverageRemoved(finalContent, updateStatementCoverageRegEx, coverageElement) {
40
- var match = finalContent.match(updateStatementCoverageRegEx);
41
- if (match != null) {
42
- throw new Error("Expected all " + coverageElement + " related expression to be removed");
43
- }
44
- }
45
- function validateFinalContent(finalContent, shouldRemoveBranchCoverage, updateStatementCoverageRegEx, updateBranchCoverageRegEx) {
46
- verifyUpdateCoverageRemoved(finalContent, updateStatementCoverageRegEx, "statement");
47
- if (shouldRemoveBranchCoverage) {
48
- verifyUpdateCoverageRemoved(finalContent, updateBranchCoverageRegEx, "branch");
49
- }
50
- }
51
- function shouldConvertToEmptyObject(path, shouldRemoveBranchCoverage) {
52
- return isStatementCoverageRelatedObject(path.value) || (shouldRemoveBranchCoverage && isBranchCoverageRelatedObject(path.value));
53
- }
54
- function shouldUseShortPropNames(path, shouldRemoveBranchCoverage) {
55
- if (path && path.key && path.key.name) {
56
- return path.key.name == "fnMap" || (!shouldRemoveBranchCoverage && path.key.name == "branchMap");
57
- }
58
- return isStatementCoverageRelatedObject(path.value) || (shouldRemoveBranchCoverage && isBranchCoverageRelatedObject(path.value));
59
- }
60
- function nodeShouldBeDeleted(path, updateStatementCoverageRegEx, shouldRemoveBranchCoverage, updateBranchCoverageRegEx) {
61
- return isStatementCoverageUpdateExpresion(path.node, updateStatementCoverageRegEx) || (shouldRemoveBranchCoverage && isBranchCoverageUpdateExpresion(path.node, updateBranchCoverageRegEx));
62
- }
63
- /**
64
- * Traverse over the ast and deletes statement (and branch) coverage update commands (cov_1234.s[1]++)
65
- * @param ast
66
- * @param shouldRemoveBranchCoverage
67
- * @param updateStatementCoverageRegEx
68
- * @param updateBranchCoverageRegEx
69
- */
70
- function removeRedundantUpdateCommands(ast, shouldRemoveBranchCoverage, updateStatementCoverageRegEx, updateBranchCoverageRegEx) {
71
- astTypes.visit(ast, {
72
- visitUpdateExpression: function (path) {
73
- if (nodeShouldBeDeleted(path, updateStatementCoverageRegEx, shouldRemoveBranchCoverage, updateBranchCoverageRegEx)) {
74
- path.prune();
75
- }
76
- this.traverse(path);
77
- }
78
- });
79
- }
80
- /**
81
- * Traverse over the ast of the coverage object and do the followings:
82
- * 1. Set 'statementMap' and 's' to empty objects
83
- * 2. If user not use branchCoverage, remove also set also 'branchMap' and 'b' to empty projects
84
- * 3. Convert elements metadata (start, end, name, etc...) to short names based on 'propNameToShort'
85
- * @param ast
86
- * @param shouldRemoveBranchCoverage
87
- */
88
- function reduceCoverageObjectSize(ast, shouldRemoveBranchCoverage) {
89
- astTypes.visit(ast, {
90
- visitObjectProperty: function (path) {
91
- if (shouldConvertToEmptyObject(path, shouldRemoveBranchCoverage)) {
92
- path.value.value.properties = [];
93
- }
94
- else if (shouldUseShortPropNames(path.value, shouldRemoveBranchCoverage)) {
95
- convertToShortPropNames(path.value);
96
- }
97
- this.traverse(path);
98
- }
99
- });
100
- }
101
- function convertToShortPropNames(path) {
102
- astTypes.visit(path, {
103
- visitObjectProperty: function (path) {
104
- if (path && path.value && path.value.key && path.value.key.name) {
105
- path.value.key.name = propNameToShort[path.value.key.name] || path.value.key.name;
106
- }
107
- this.traverse(path);
108
- }
109
- });
110
- }
111
- function getCoverageObjectNode(ast) {
112
- var coverageObject;
113
- astTypes.visit(ast, {
114
- visitVariableDeclarator: function (path) {
115
- if (path.value && path.value.id && path.value.id.name && path.value.id.name.startsWith("cov_")) {
116
- coverageObject = path.value;
117
- this.abort();
118
- }
119
- this.traverse(path);
120
- }
121
- });
122
- if (!coverageObject) {
123
- throw new Error("Could find coverage object");
124
- }
125
- return coverageObject;
126
- }
127
- function parseASTToCode(ast, minified) {
128
- try {
129
- return babelGenerator.default(ast, {
130
- comments: false,
131
- compact: true,
132
- minified: minified
133
- }, '').code;
134
- }
135
- catch (e) {
136
- throw e;
137
- }
138
- }
139
- function createAST(instrumentedCode, babylonPlugins) {
140
- return babelParser.parse(instrumentedCode, {
141
- sourceType: "unambiguous",
142
- plugins: plugins.concat(babylonPlugins)
143
- });
144
- }
145
- function isStatementCoverageRelatedObject(node) {
146
- return node && node.key && (node.key.name === "statementMap" || node.key.name === "s") && node.value;
147
- }
148
- function isBranchCoverageRelatedObject(node) {
149
- return node && node.key && (node.key.name === "branchMap" || node.key.name === "b") && node.value;
150
- }
151
- function isStatementCoverageUpdateExpresion(node, updateStatementCoverageRegEx) {
152
- var expressionCode = parseASTToCode(node, false);
153
- return updateStatementCoverageRegEx.test(expressionCode);
154
- }
155
- function isBranchCoverageUpdateExpresion(node, updateBranchCoverageRegEx) {
156
- var expressionCode = parseASTToCode(node, false);
157
- return updateBranchCoverageRegEx.test(expressionCode);
158
- }
159
- module.exports.reduceContentSize = reduceContentSize;
1
+ var babelGenerator = require("@babel/generator");
2
+ var babelParser = require("@babel/parser");
3
+ var CockpitNotifier = require("../../common/agent-events/cockpit-notifier").CockpitNotifier;
4
+ var astTypes = require("ast-types");
5
+ var plugins = ["*", ["decorators", { decoratorsBeforeExport: true }]];
6
+ var updateStatementCoverageCommand = ".s\\[\\d+\\]\\++";
7
+ var updateBranchCoverageCommand = ".b\\[\\d+\\]\\[\\d+\\]\\++";
8
+ var propNameToShort = {
9
+ start: "st",
10
+ end: "e",
11
+ line: "l",
12
+ column: "c",
13
+ name: "n",
14
+ decl: "d",
15
+ loc: "lc",
16
+ type: "t",
17
+ locations: "lcs"
18
+ };
19
+ function reduceContentSize(filename, instrumentedCode, babylonPlugins, shouldRemoveBranchCoverage, shouldMinifyOutput, logger) {
20
+ try {
21
+ var ast = createAST(instrumentedCode, babylonPlugins);
22
+ var coverageObjectNode = getCoverageObjectNode(ast);
23
+ var coverageObjectName = coverageObjectNode.id.name;
24
+ reduceCoverageObjectSize(coverageObjectNode, shouldRemoveBranchCoverage);
25
+ var updateStatementCoverageRegEx = new RegExp(coverageObjectName + updateStatementCoverageCommand);
26
+ var updateBranchCoverageRegEx = new RegExp(coverageObjectName + updateBranchCoverageCommand);
27
+ removeRedundantUpdateCommands(ast, shouldRemoveBranchCoverage, updateStatementCoverageRegEx, updateBranchCoverageRegEx);
28
+ var finalContent = parseASTToCode(ast, shouldMinifyOutput);
29
+ validateFinalContent(finalContent, shouldRemoveBranchCoverage, updateStatementCoverageRegEx, updateBranchCoverageRegEx);
30
+ return finalContent;
31
+ }
32
+ catch (e) {
33
+ var message = "Error while removing statement coverage from '" + filename + "' Error: '" + e + "'";
34
+ CockpitNotifier.sendError(message);
35
+ logger.warn(message + " Using file with statement coverage data");
36
+ return instrumentedCode;
37
+ }
38
+ }
39
+ function verifyUpdateCoverageRemoved(finalContent, updateStatementCoverageRegEx, coverageElement) {
40
+ var match = finalContent.match(updateStatementCoverageRegEx);
41
+ if (match != null) {
42
+ throw new Error("Expected all " + coverageElement + " related expression to be removed");
43
+ }
44
+ }
45
+ function validateFinalContent(finalContent, shouldRemoveBranchCoverage, updateStatementCoverageRegEx, updateBranchCoverageRegEx) {
46
+ verifyUpdateCoverageRemoved(finalContent, updateStatementCoverageRegEx, "statement");
47
+ if (shouldRemoveBranchCoverage) {
48
+ verifyUpdateCoverageRemoved(finalContent, updateBranchCoverageRegEx, "branch");
49
+ }
50
+ }
51
+ function shouldConvertToEmptyObject(path, shouldRemoveBranchCoverage) {
52
+ return isStatementCoverageRelatedObject(path.value) || (shouldRemoveBranchCoverage && isBranchCoverageRelatedObject(path.value));
53
+ }
54
+ function shouldUseShortPropNames(path, shouldRemoveBranchCoverage) {
55
+ if (path && path.key && path.key.name) {
56
+ return path.key.name == "fnMap" || (!shouldRemoveBranchCoverage && path.key.name == "branchMap");
57
+ }
58
+ return isStatementCoverageRelatedObject(path.value) || (shouldRemoveBranchCoverage && isBranchCoverageRelatedObject(path.value));
59
+ }
60
+ function nodeShouldBeDeleted(path, updateStatementCoverageRegEx, shouldRemoveBranchCoverage, updateBranchCoverageRegEx) {
61
+ return isStatementCoverageUpdateExpresion(path.node, updateStatementCoverageRegEx) || (shouldRemoveBranchCoverage && isBranchCoverageUpdateExpresion(path.node, updateBranchCoverageRegEx));
62
+ }
63
+ /**
64
+ * Traverse over the ast and deletes statement (and branch) coverage update commands (cov_1234.s[1]++)
65
+ * @param ast
66
+ * @param shouldRemoveBranchCoverage
67
+ * @param updateStatementCoverageRegEx
68
+ * @param updateBranchCoverageRegEx
69
+ */
70
+ function removeRedundantUpdateCommands(ast, shouldRemoveBranchCoverage, updateStatementCoverageRegEx, updateBranchCoverageRegEx) {
71
+ astTypes.visit(ast, {
72
+ visitUpdateExpression: function (path) {
73
+ if (nodeShouldBeDeleted(path, updateStatementCoverageRegEx, shouldRemoveBranchCoverage, updateBranchCoverageRegEx)) {
74
+ path.prune();
75
+ }
76
+ this.traverse(path);
77
+ }
78
+ });
79
+ }
80
+ /**
81
+ * Traverse over the ast of the coverage object and do the followings:
82
+ * 1. Set 'statementMap' and 's' to empty objects
83
+ * 2. If user not use branchCoverage, remove also set also 'branchMap' and 'b' to empty projects
84
+ * 3. Convert elements metadata (start, end, name, etc...) to short names based on 'propNameToShort'
85
+ * @param ast
86
+ * @param shouldRemoveBranchCoverage
87
+ */
88
+ function reduceCoverageObjectSize(ast, shouldRemoveBranchCoverage) {
89
+ astTypes.visit(ast, {
90
+ visitObjectProperty: function (path) {
91
+ if (shouldConvertToEmptyObject(path, shouldRemoveBranchCoverage)) {
92
+ path.value.value.properties = [];
93
+ }
94
+ else if (shouldUseShortPropNames(path.value, shouldRemoveBranchCoverage)) {
95
+ convertToShortPropNames(path.value);
96
+ }
97
+ this.traverse(path);
98
+ }
99
+ });
100
+ }
101
+ function convertToShortPropNames(path) {
102
+ astTypes.visit(path, {
103
+ visitObjectProperty: function (path) {
104
+ if (path && path.value && path.value.key && path.value.key.name) {
105
+ path.value.key.name = propNameToShort[path.value.key.name] || path.value.key.name;
106
+ }
107
+ this.traverse(path);
108
+ }
109
+ });
110
+ }
111
+ function getCoverageObjectNode(ast) {
112
+ var coverageObject;
113
+ astTypes.visit(ast, {
114
+ visitVariableDeclarator: function (path) {
115
+ if (path.value && path.value.id && path.value.id.name && path.value.id.name.startsWith("cov_")) {
116
+ coverageObject = path.value;
117
+ this.abort();
118
+ }
119
+ this.traverse(path);
120
+ }
121
+ });
122
+ if (!coverageObject) {
123
+ throw new Error("Could find coverage object");
124
+ }
125
+ return coverageObject;
126
+ }
127
+ function parseASTToCode(ast, minified) {
128
+ try {
129
+ return babelGenerator.default(ast, {
130
+ comments: false,
131
+ compact: true,
132
+ minified: minified
133
+ }, '').code;
134
+ }
135
+ catch (e) {
136
+ throw e;
137
+ }
138
+ }
139
+ function createAST(instrumentedCode, babylonPlugins) {
140
+ return babelParser.parse(instrumentedCode, {
141
+ sourceType: "unambiguous",
142
+ plugins: plugins.concat(babylonPlugins)
143
+ });
144
+ }
145
+ function isStatementCoverageRelatedObject(node) {
146
+ return node && node.key && (node.key.name === "statementMap" || node.key.name === "s") && node.value;
147
+ }
148
+ function isBranchCoverageRelatedObject(node) {
149
+ return node && node.key && (node.key.name === "branchMap" || node.key.name === "b") && node.value;
150
+ }
151
+ function isStatementCoverageUpdateExpresion(node, updateStatementCoverageRegEx) {
152
+ var expressionCode = parseASTToCode(node, false);
153
+ return updateStatementCoverageRegEx.test(expressionCode);
154
+ }
155
+ function isBranchCoverageUpdateExpresion(node, updateBranchCoverageRegEx) {
156
+ var expressionCode = parseASTToCode(node, false);
157
+ return updateBranchCoverageRegEx.test(expressionCode);
158
+ }
159
+ module.exports.reduceContentSize = reduceContentSize;
160
160
  //# sourceMappingURL=instrumented-file-size-reducer.js.map