@azure/microsoft-playwright-testing 1.0.0-alpha.20250318.1 → 1.0.0-alpha.20250319.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 (597) hide show
  1. package/dist/{common → browser/common}/constants.d.ts +1 -1
  2. package/dist/browser/common/constants.d.ts.map +1 -0
  3. package/dist/browser/common/constants.js +226 -0
  4. package/dist/browser/common/constants.js.map +1 -0
  5. package/dist/browser/common/customerConfig.d.ts.map +1 -0
  6. package/dist/browser/common/customerConfig.js +13 -0
  7. package/dist/{common → browser/common}/customerConfig.js.map +1 -1
  8. package/dist/{common → browser/common}/entraIdAccessToken.d.ts +2 -2
  9. package/dist/browser/common/entraIdAccessToken.d.ts.map +1 -0
  10. package/dist/browser/common/entraIdAccessToken.js +71 -0
  11. package/dist/browser/common/entraIdAccessToken.js.map +1 -0
  12. package/dist/browser/common/environmentVariables.d.ts.map +1 -0
  13. package/dist/browser/common/environmentVariables.js +15 -0
  14. package/dist/browser/common/environmentVariables.js.map +1 -0
  15. package/dist/browser/common/executor.d.ts.map +1 -0
  16. package/dist/browser/common/executor.js +74 -0
  17. package/dist/browser/common/executor.js.map +1 -0
  18. package/dist/browser/common/httpService.d.ts.map +1 -0
  19. package/dist/browser/common/httpService.js +33 -0
  20. package/dist/browser/common/httpService.js.map +1 -0
  21. package/dist/browser/common/logger.d.ts.map +1 -0
  22. package/dist/browser/common/logger.js +6 -0
  23. package/dist/browser/common/logger.js.map +1 -0
  24. package/dist/browser/common/messages.d.ts.map +1 -0
  25. package/dist/browser/common/messages.js +37 -0
  26. package/dist/browser/common/messages.js.map +1 -0
  27. package/dist/browser/common/multimap.d.ts.map +1 -0
  28. package/dist/browser/common/multimap.js +60 -0
  29. package/dist/browser/common/multimap.js.map +1 -0
  30. package/dist/{common → browser/common}/playwrightServiceConfig.d.ts +1 -1
  31. package/dist/browser/common/playwrightServiceConfig.d.ts.map +1 -0
  32. package/dist/browser/common/playwrightServiceConfig.js +45 -0
  33. package/dist/browser/common/playwrightServiceConfig.js.map +1 -0
  34. package/dist/{common → browser/common}/types.d.ts +1 -1
  35. package/dist/browser/common/types.d.ts.map +1 -0
  36. package/dist/browser/common/types.js +4 -0
  37. package/dist/browser/common/types.js.map +1 -0
  38. package/dist/browser/core/global/playwright-service-global-setup.d.ts.map +1 -0
  39. package/dist/browser/core/global/playwright-service-global-setup.js +19 -0
  40. package/dist/browser/core/global/playwright-service-global-setup.js.map +1 -0
  41. package/dist/browser/core/global/playwright-service-global-teardown.d.ts.map +1 -0
  42. package/dist/browser/core/global/playwright-service-global-teardown.js +19 -0
  43. package/dist/browser/core/global/playwright-service-global-teardown.js.map +1 -0
  44. package/dist/{core → browser/core}/playwrightService.d.ts +1 -1
  45. package/dist/browser/core/playwrightService.d.ts.map +1 -0
  46. package/dist/browser/core/playwrightService.js +190 -0
  47. package/dist/browser/core/playwrightService.js.map +1 -0
  48. package/dist/browser/core/playwrightServiceEntra.d.ts.map +1 -0
  49. package/dist/browser/core/playwrightServiceEntra.js +49 -0
  50. package/dist/browser/core/playwrightServiceEntra.js.map +1 -0
  51. package/dist/browser/core/playwrightServiceUtils.d.ts +3 -0
  52. package/dist/browser/core/playwrightServiceUtils.d.ts.map +1 -0
  53. package/dist/browser/core/playwrightServiceUtils.js +11 -0
  54. package/dist/browser/core/playwrightServiceUtils.js.map +1 -0
  55. package/dist/{index.d.ts → browser/index.d.ts} +3 -3
  56. package/dist/browser/index.d.ts.map +1 -0
  57. package/dist/browser/index.js +11 -0
  58. package/dist/browser/index.js.map +1 -0
  59. package/dist/browser/model/entraTokenDetails.d.ts.map +1 -0
  60. package/dist/browser/model/entraTokenDetails.js +5 -0
  61. package/dist/browser/model/entraTokenDetails.js.map +1 -0
  62. package/dist/browser/model/mptTokenDetails.d.ts.map +1 -0
  63. package/dist/browser/model/mptTokenDetails.js +10 -0
  64. package/dist/browser/model/mptTokenDetails.js.map +1 -0
  65. package/dist/browser/model/shard.d.ts.map +1 -0
  66. package/dist/browser/model/shard.js +19 -0
  67. package/dist/browser/model/shard.js.map +1 -0
  68. package/dist/browser/model/storageUri.d.ts.map +1 -0
  69. package/dist/browser/model/storageUri.js +18 -0
  70. package/dist/browser/model/storageUri.js.map +1 -0
  71. package/dist/{model → browser/model}/testResult.d.ts +1 -1
  72. package/dist/browser/model/testResult.d.ts.map +1 -0
  73. package/dist/browser/model/testResult.js +5 -0
  74. package/dist/browser/model/testResult.js.map +1 -0
  75. package/dist/{model → browser/model}/testRun.d.ts +1 -1
  76. package/dist/browser/model/testRun.d.ts.map +1 -0
  77. package/dist/browser/model/testRun.js +8 -0
  78. package/dist/browser/model/testRun.js.map +1 -0
  79. package/dist/browser/package.json +3 -0
  80. package/dist/{reporter → browser/reporter}/index.d.ts +1 -1
  81. package/dist/browser/reporter/index.d.ts.map +1 -0
  82. package/dist/browser/reporter/index.js +12 -0
  83. package/dist/browser/reporter/index.js.map +1 -0
  84. package/dist/{reporter → browser/reporter}/mptReporter.d.ts +1 -1
  85. package/dist/browser/reporter/mptReporter.d.ts.map +1 -0
  86. package/dist/browser/reporter/mptReporter.js +373 -0
  87. package/dist/browser/reporter/mptReporter.js.map +1 -0
  88. package/dist/browser/utils/cIInfoProvider.d.ts.map +1 -0
  89. package/dist/browser/utils/cIInfoProvider.js +101 -0
  90. package/dist/browser/utils/cIInfoProvider.js.map +1 -0
  91. package/dist/browser/utils/getPlaywrightVersion.d.ts +2 -0
  92. package/dist/browser/utils/getPlaywrightVersion.d.ts.map +1 -0
  93. package/dist/browser/utils/getPlaywrightVersion.js +19 -0
  94. package/dist/browser/utils/getPlaywrightVersion.js.map +1 -0
  95. package/dist/{utils → browser/utils}/packageManager.d.ts +1 -1
  96. package/dist/browser/utils/packageManager.d.ts.map +1 -0
  97. package/dist/browser/utils/packageManager.js +47 -0
  98. package/dist/browser/utils/packageManager.js.map +1 -0
  99. package/dist/browser/utils/parseJwt.d.ts +4 -0
  100. package/dist/browser/utils/parseJwt.d.ts.map +1 -0
  101. package/dist/browser/utils/parseJwt.js +16 -0
  102. package/dist/browser/utils/parseJwt.js.map +1 -0
  103. package/dist/{utils → browser/utils}/reporterUtils.d.ts +10 -10
  104. package/dist/browser/utils/reporterUtils.d.ts.map +1 -0
  105. package/dist/browser/utils/reporterUtils.js +585 -0
  106. package/dist/browser/utils/reporterUtils.js.map +1 -0
  107. package/dist/{utils → browser/utils}/serviceClient.d.ts +7 -7
  108. package/dist/browser/utils/serviceClient.d.ts.map +1 -0
  109. package/dist/browser/utils/serviceClient.js +103 -0
  110. package/dist/browser/utils/serviceClient.js.map +1 -0
  111. package/dist/browser/utils/storageClient.d.ts.map +1 -0
  112. package/dist/browser/utils/storageClient.js +37 -0
  113. package/dist/browser/utils/storageClient.js.map +1 -0
  114. package/dist/{utils → browser/utils}/utils.d.ts +3 -4
  115. package/dist/browser/utils/utils.d.ts.map +1 -0
  116. package/dist/browser/utils/utils.js +151 -0
  117. package/dist/browser/utils/utils.js.map +1 -0
  118. package/dist/commonjs/common/constants.d.ts +95 -0
  119. package/dist/commonjs/common/constants.d.ts.map +1 -0
  120. package/dist/commonjs/common/constants.js.map +1 -0
  121. package/dist/commonjs/common/customerConfig.d.ts +9 -0
  122. package/dist/commonjs/common/customerConfig.d.ts.map +1 -0
  123. package/dist/commonjs/common/customerConfig.js.map +1 -0
  124. package/dist/commonjs/common/entraIdAccessToken.d.ts +12 -0
  125. package/dist/commonjs/common/entraIdAccessToken.d.ts.map +1 -0
  126. package/dist/{common → commonjs/common}/entraIdAccessToken.js +22 -18
  127. package/dist/commonjs/common/entraIdAccessToken.js.map +1 -0
  128. package/dist/commonjs/common/environmentVariables.d.ts +13 -0
  129. package/dist/commonjs/common/environmentVariables.d.ts.map +1 -0
  130. package/dist/{common → commonjs/common}/environmentVariables.js +4 -4
  131. package/dist/commonjs/common/environmentVariables.js.map +1 -0
  132. package/dist/commonjs/common/executor.d.ts +2 -0
  133. package/dist/commonjs/common/executor.d.ts.map +1 -0
  134. package/dist/{common → commonjs/common}/executor.js +13 -13
  135. package/dist/commonjs/common/executor.js.map +1 -0
  136. package/dist/commonjs/common/httpService.d.ts +5 -0
  137. package/dist/commonjs/common/httpService.d.ts.map +1 -0
  138. package/dist/{common → commonjs/common}/httpService.js +4 -4
  139. package/dist/commonjs/common/httpService.js.map +1 -0
  140. package/dist/commonjs/common/logger.d.ts +3 -0
  141. package/dist/commonjs/common/logger.d.ts.map +1 -0
  142. package/dist/commonjs/common/logger.js.map +1 -0
  143. package/dist/commonjs/common/messages.d.ts +35 -0
  144. package/dist/commonjs/common/messages.d.ts.map +1 -0
  145. package/dist/commonjs/common/messages.js.map +1 -0
  146. package/dist/commonjs/common/multimap.d.ts +16 -0
  147. package/dist/commonjs/common/multimap.d.ts.map +1 -0
  148. package/dist/commonjs/common/multimap.js.map +1 -0
  149. package/dist/commonjs/common/playwrightServiceConfig.d.ts +13 -0
  150. package/dist/commonjs/common/playwrightServiceConfig.d.ts.map +1 -0
  151. package/dist/commonjs/common/playwrightServiceConfig.js +48 -0
  152. package/dist/commonjs/common/playwrightServiceConfig.js.map +1 -0
  153. package/{types/microsoft-playwright-testing.d.ts → dist/commonjs/common/types.d.ts} +226 -273
  154. package/dist/commonjs/common/types.d.ts.map +1 -0
  155. package/dist/commonjs/common/types.js.map +1 -0
  156. package/dist/commonjs/core/global/playwright-service-global-setup.d.ts +4 -0
  157. package/dist/commonjs/core/global/playwright-service-global-setup.d.ts.map +1 -0
  158. package/dist/commonjs/core/global/playwright-service-global-setup.js +22 -0
  159. package/dist/commonjs/core/global/playwright-service-global-setup.js.map +1 -0
  160. package/dist/commonjs/core/global/playwright-service-global-teardown.d.ts +4 -0
  161. package/dist/commonjs/core/global/playwright-service-global-teardown.d.ts.map +1 -0
  162. package/dist/commonjs/core/global/playwright-service-global-teardown.js +22 -0
  163. package/dist/commonjs/core/global/playwright-service-global-teardown.js.map +1 -0
  164. package/dist/commonjs/core/playwrightService.d.ts +64 -0
  165. package/dist/commonjs/core/playwrightService.d.ts.map +1 -0
  166. package/dist/{core → commonjs/core}/playwrightService.js +44 -43
  167. package/dist/commonjs/core/playwrightService.js.map +1 -0
  168. package/dist/commonjs/core/playwrightServiceEntra.d.ts +16 -0
  169. package/dist/commonjs/core/playwrightServiceEntra.d.ts.map +1 -0
  170. package/dist/{core → commonjs/core}/playwrightServiceEntra.js +12 -12
  171. package/dist/commonjs/core/playwrightServiceEntra.js.map +1 -0
  172. package/dist/commonjs/core/playwrightServiceUtils-cjs.cjs.map +1 -0
  173. package/dist/commonjs/core/playwrightServiceUtils-cjs.d.cts.map +1 -0
  174. package/dist/commonjs/core/playwrightServiceUtils.d.ts +3 -0
  175. package/dist/commonjs/core/playwrightServiceUtils.js +10 -0
  176. package/dist/commonjs/index.d.ts +10 -0
  177. package/dist/commonjs/index.d.ts.map +1 -0
  178. package/dist/{index.js → commonjs/index.js} +9 -10
  179. package/dist/commonjs/index.js.map +1 -0
  180. package/dist/commonjs/model/entraTokenDetails.d.ts +5 -0
  181. package/dist/commonjs/model/entraTokenDetails.d.ts.map +1 -0
  182. package/dist/commonjs/model/entraTokenDetails.js.map +1 -0
  183. package/dist/commonjs/model/mptTokenDetails.d.ts +11 -0
  184. package/dist/commonjs/model/mptTokenDetails.d.ts.map +1 -0
  185. package/dist/commonjs/model/mptTokenDetails.js.map +1 -0
  186. package/dist/commonjs/model/shard.d.ts +41 -0
  187. package/dist/commonjs/model/shard.d.ts.map +1 -0
  188. package/dist/commonjs/model/shard.js.map +1 -0
  189. package/dist/commonjs/model/storageUri.d.ts +14 -0
  190. package/dist/commonjs/model/storageUri.d.ts.map +1 -0
  191. package/dist/commonjs/model/storageUri.js.map +1 -0
  192. package/dist/commonjs/model/testResult.d.ts +40 -0
  193. package/dist/commonjs/model/testResult.d.ts.map +1 -0
  194. package/dist/commonjs/model/testResult.js.map +1 -0
  195. package/dist/commonjs/model/testRun.d.ts +36 -0
  196. package/dist/commonjs/model/testRun.d.ts.map +1 -0
  197. package/dist/commonjs/model/testRun.js.map +1 -0
  198. package/dist/commonjs/package.json +3 -0
  199. package/dist/commonjs/reporter/index.d.ts +10 -0
  200. package/dist/commonjs/reporter/index.d.ts.map +1 -0
  201. package/dist/{reporter → commonjs/reporter}/index.js +2 -2
  202. package/dist/commonjs/reporter/index.js.map +1 -0
  203. package/{types/reporter/microsoft-playwright-testing.d.ts → dist/commonjs/reporter/mptReporter.d.ts} +100 -150
  204. package/dist/commonjs/reporter/mptReporter.d.ts.map +1 -0
  205. package/dist/{reporter → commonjs/reporter}/mptReporter.js +52 -52
  206. package/dist/commonjs/reporter/mptReporter.js.map +1 -0
  207. package/dist/commonjs/utils/cIInfoProvider.d.ts +25 -0
  208. package/dist/commonjs/utils/cIInfoProvider.d.ts.map +1 -0
  209. package/dist/commonjs/utils/cIInfoProvider.js.map +1 -0
  210. package/dist/commonjs/utils/getPlaywrightVersion.d.ts +2 -0
  211. package/dist/commonjs/utils/getPlaywrightVersion.d.ts.map +1 -0
  212. package/dist/commonjs/utils/getPlaywrightVersion.js +23 -0
  213. package/dist/commonjs/utils/getPlaywrightVersion.js.map +1 -0
  214. package/dist/commonjs/utils/packageManager.d.ts +15 -0
  215. package/dist/commonjs/utils/packageManager.d.ts.map +1 -0
  216. package/dist/commonjs/utils/packageManager.js.map +1 -0
  217. package/dist/commonjs/utils/parseJwt.d.ts +4 -0
  218. package/dist/commonjs/utils/parseJwt.d.ts.map +1 -0
  219. package/dist/commonjs/utils/parseJwt.js +21 -0
  220. package/dist/commonjs/utils/parseJwt.js.map +1 -0
  221. package/dist/commonjs/utils/reporterUtils.d.ts +60 -0
  222. package/dist/commonjs/utils/reporterUtils.d.ts.map +1 -0
  223. package/dist/{utils → commonjs/utils}/reporterUtils.js +47 -47
  224. package/dist/commonjs/utils/reporterUtils.js.map +1 -0
  225. package/dist/commonjs/utils/serviceClient.d.ts +25 -0
  226. package/dist/commonjs/utils/serviceClient.d.ts.map +1 -0
  227. package/dist/{utils → commonjs/utils}/serviceClient.js +19 -19
  228. package/dist/commonjs/utils/serviceClient.js.map +1 -0
  229. package/dist/commonjs/utils/storageClient.d.ts +6 -0
  230. package/dist/commonjs/utils/storageClient.d.ts.map +1 -0
  231. package/dist/{utils → commonjs/utils}/storageClient.js +7 -7
  232. package/dist/commonjs/utils/storageClient.js.map +1 -0
  233. package/dist/commonjs/utils/utils.d.ts +28 -0
  234. package/dist/commonjs/utils/utils.d.ts.map +1 -0
  235. package/dist/{utils → commonjs/utils}/utils.js +38 -60
  236. package/dist/commonjs/utils/utils.js.map +1 -0
  237. package/dist/esm/common/constants.d.ts +95 -0
  238. package/dist/esm/common/constants.d.ts.map +1 -0
  239. package/dist/esm/common/constants.js +226 -0
  240. package/dist/esm/common/constants.js.map +1 -0
  241. package/dist/esm/common/customerConfig.d.ts +9 -0
  242. package/dist/esm/common/customerConfig.d.ts.map +1 -0
  243. package/dist/esm/common/customerConfig.js +13 -0
  244. package/dist/esm/common/customerConfig.js.map +1 -0
  245. package/dist/esm/common/entraIdAccessToken.d.ts +12 -0
  246. package/dist/esm/common/entraIdAccessToken.d.ts.map +1 -0
  247. package/dist/esm/common/entraIdAccessToken.js +71 -0
  248. package/dist/esm/common/entraIdAccessToken.js.map +1 -0
  249. package/dist/esm/common/environmentVariables.d.ts +13 -0
  250. package/dist/esm/common/environmentVariables.d.ts.map +1 -0
  251. package/dist/esm/common/environmentVariables.js +15 -0
  252. package/dist/esm/common/environmentVariables.js.map +1 -0
  253. package/dist/esm/common/executor.d.ts +2 -0
  254. package/dist/esm/common/executor.d.ts.map +1 -0
  255. package/dist/esm/common/executor.js +74 -0
  256. package/dist/esm/common/executor.js.map +1 -0
  257. package/dist/esm/common/httpService.d.ts +5 -0
  258. package/dist/esm/common/httpService.d.ts.map +1 -0
  259. package/dist/esm/common/httpService.js +33 -0
  260. package/dist/esm/common/httpService.js.map +1 -0
  261. package/dist/esm/common/logger.d.ts +3 -0
  262. package/dist/esm/common/logger.d.ts.map +1 -0
  263. package/dist/esm/common/logger.js +6 -0
  264. package/dist/esm/common/logger.js.map +1 -0
  265. package/dist/esm/common/messages.d.ts +35 -0
  266. package/dist/esm/common/messages.d.ts.map +1 -0
  267. package/dist/esm/common/messages.js +37 -0
  268. package/dist/esm/common/messages.js.map +1 -0
  269. package/dist/esm/common/multimap.d.ts +16 -0
  270. package/dist/esm/common/multimap.d.ts.map +1 -0
  271. package/dist/esm/common/multimap.js +60 -0
  272. package/dist/esm/common/multimap.js.map +1 -0
  273. package/dist/esm/common/playwrightServiceConfig.d.ts +13 -0
  274. package/dist/esm/common/playwrightServiceConfig.d.ts.map +1 -0
  275. package/dist/esm/common/playwrightServiceConfig.js +45 -0
  276. package/dist/esm/common/playwrightServiceConfig.js.map +1 -0
  277. package/dist/esm/common/types.d.ts +226 -0
  278. package/dist/esm/common/types.d.ts.map +1 -0
  279. package/dist/esm/common/types.js +4 -0
  280. package/dist/esm/common/types.js.map +1 -0
  281. package/dist/esm/core/global/playwright-service-global-setup.d.ts +4 -0
  282. package/dist/esm/core/global/playwright-service-global-setup.d.ts.map +1 -0
  283. package/dist/esm/core/global/playwright-service-global-setup.js +19 -0
  284. package/dist/esm/core/global/playwright-service-global-setup.js.map +1 -0
  285. package/dist/esm/core/global/playwright-service-global-teardown.d.ts +4 -0
  286. package/dist/esm/core/global/playwright-service-global-teardown.d.ts.map +1 -0
  287. package/dist/esm/core/global/playwright-service-global-teardown.js +19 -0
  288. package/dist/esm/core/global/playwright-service-global-teardown.js.map +1 -0
  289. package/dist/esm/core/playwrightService.d.ts +64 -0
  290. package/dist/esm/core/playwrightService.d.ts.map +1 -0
  291. package/dist/esm/core/playwrightService.js +190 -0
  292. package/dist/esm/core/playwrightService.js.map +1 -0
  293. package/dist/esm/core/playwrightServiceEntra.d.ts +16 -0
  294. package/dist/esm/core/playwrightServiceEntra.d.ts.map +1 -0
  295. package/dist/esm/core/playwrightServiceEntra.js +49 -0
  296. package/dist/esm/core/playwrightServiceEntra.js.map +1 -0
  297. package/dist/esm/core/playwrightServiceUtils.d.ts +3 -0
  298. package/dist/esm/core/playwrightServiceUtils.d.ts.map +1 -0
  299. package/dist/esm/core/playwrightServiceUtils.js +11 -0
  300. package/dist/esm/core/playwrightServiceUtils.js.map +1 -0
  301. package/dist/esm/index.d.ts +10 -0
  302. package/dist/esm/index.d.ts.map +1 -0
  303. package/dist/esm/index.js +11 -0
  304. package/dist/esm/index.js.map +1 -0
  305. package/dist/esm/model/entraTokenDetails.d.ts +5 -0
  306. package/dist/esm/model/entraTokenDetails.d.ts.map +1 -0
  307. package/dist/esm/model/entraTokenDetails.js +5 -0
  308. package/dist/esm/model/entraTokenDetails.js.map +1 -0
  309. package/dist/esm/model/mptTokenDetails.d.ts +11 -0
  310. package/dist/esm/model/mptTokenDetails.d.ts.map +1 -0
  311. package/dist/esm/model/mptTokenDetails.js +10 -0
  312. package/dist/esm/model/mptTokenDetails.js.map +1 -0
  313. package/dist/esm/model/shard.d.ts +41 -0
  314. package/dist/esm/model/shard.d.ts.map +1 -0
  315. package/dist/esm/model/shard.js +19 -0
  316. package/dist/esm/model/shard.js.map +1 -0
  317. package/dist/esm/model/storageUri.d.ts +14 -0
  318. package/dist/esm/model/storageUri.d.ts.map +1 -0
  319. package/dist/esm/model/storageUri.js +18 -0
  320. package/dist/esm/model/storageUri.js.map +1 -0
  321. package/dist/esm/model/testResult.d.ts +40 -0
  322. package/dist/esm/model/testResult.d.ts.map +1 -0
  323. package/dist/esm/model/testResult.js +5 -0
  324. package/dist/esm/model/testResult.js.map +1 -0
  325. package/dist/esm/model/testRun.d.ts +36 -0
  326. package/dist/esm/model/testRun.d.ts.map +1 -0
  327. package/dist/esm/model/testRun.js +8 -0
  328. package/dist/esm/model/testRun.js.map +1 -0
  329. package/dist/esm/package.json +3 -0
  330. package/dist/esm/reporter/index.d.ts +10 -0
  331. package/dist/esm/reporter/index.d.ts.map +1 -0
  332. package/dist/esm/reporter/index.js +12 -0
  333. package/dist/esm/reporter/index.js.map +1 -0
  334. package/dist/esm/reporter/mptReporter.d.ts +100 -0
  335. package/dist/esm/reporter/mptReporter.d.ts.map +1 -0
  336. package/dist/esm/reporter/mptReporter.js +373 -0
  337. package/dist/esm/reporter/mptReporter.js.map +1 -0
  338. package/dist/esm/utils/cIInfoProvider.d.ts +25 -0
  339. package/dist/esm/utils/cIInfoProvider.d.ts.map +1 -0
  340. package/dist/esm/utils/cIInfoProvider.js +101 -0
  341. package/dist/esm/utils/cIInfoProvider.js.map +1 -0
  342. package/dist/esm/utils/getPlaywrightVersion.d.ts +2 -0
  343. package/dist/esm/utils/getPlaywrightVersion.d.ts.map +1 -0
  344. package/dist/esm/utils/getPlaywrightVersion.js +19 -0
  345. package/dist/esm/utils/getPlaywrightVersion.js.map +1 -0
  346. package/dist/esm/utils/packageManager.d.ts +15 -0
  347. package/dist/esm/utils/packageManager.d.ts.map +1 -0
  348. package/dist/esm/utils/packageManager.js +47 -0
  349. package/dist/esm/utils/packageManager.js.map +1 -0
  350. package/dist/esm/utils/parseJwt.d.ts +4 -0
  351. package/dist/esm/utils/parseJwt.d.ts.map +1 -0
  352. package/dist/esm/utils/parseJwt.js +16 -0
  353. package/dist/esm/utils/parseJwt.js.map +1 -0
  354. package/dist/esm/utils/reporterUtils.d.ts +60 -0
  355. package/dist/esm/utils/reporterUtils.d.ts.map +1 -0
  356. package/dist/esm/utils/reporterUtils.js +585 -0
  357. package/dist/esm/utils/reporterUtils.js.map +1 -0
  358. package/dist/esm/utils/serviceClient.d.ts +25 -0
  359. package/dist/esm/utils/serviceClient.d.ts.map +1 -0
  360. package/dist/esm/utils/serviceClient.js +103 -0
  361. package/dist/esm/utils/serviceClient.js.map +1 -0
  362. package/dist/esm/utils/storageClient.d.ts +6 -0
  363. package/dist/esm/utils/storageClient.d.ts.map +1 -0
  364. package/dist/esm/utils/storageClient.js +37 -0
  365. package/dist/esm/utils/storageClient.js.map +1 -0
  366. package/dist/esm/utils/utils.d.ts +28 -0
  367. package/dist/esm/utils/utils.d.ts.map +1 -0
  368. package/dist/esm/utils/utils.js +151 -0
  369. package/dist/esm/utils/utils.js.map +1 -0
  370. package/dist/react-native/common/constants.d.ts +95 -0
  371. package/dist/react-native/common/constants.d.ts.map +1 -0
  372. package/dist/react-native/common/constants.js +226 -0
  373. package/dist/react-native/common/constants.js.map +1 -0
  374. package/dist/react-native/common/customerConfig.d.ts +9 -0
  375. package/dist/react-native/common/customerConfig.d.ts.map +1 -0
  376. package/dist/react-native/common/customerConfig.js +13 -0
  377. package/dist/react-native/common/customerConfig.js.map +1 -0
  378. package/dist/react-native/common/entraIdAccessToken.d.ts +12 -0
  379. package/dist/react-native/common/entraIdAccessToken.d.ts.map +1 -0
  380. package/dist/react-native/common/entraIdAccessToken.js +71 -0
  381. package/dist/react-native/common/entraIdAccessToken.js.map +1 -0
  382. package/dist/react-native/common/environmentVariables.d.ts +13 -0
  383. package/dist/react-native/common/environmentVariables.d.ts.map +1 -0
  384. package/dist/react-native/common/environmentVariables.js +15 -0
  385. package/dist/react-native/common/environmentVariables.js.map +1 -0
  386. package/dist/react-native/common/executor.d.ts +2 -0
  387. package/dist/react-native/common/executor.d.ts.map +1 -0
  388. package/dist/react-native/common/executor.js +74 -0
  389. package/dist/react-native/common/executor.js.map +1 -0
  390. package/dist/react-native/common/httpService.d.ts +5 -0
  391. package/dist/react-native/common/httpService.d.ts.map +1 -0
  392. package/dist/react-native/common/httpService.js +33 -0
  393. package/dist/react-native/common/httpService.js.map +1 -0
  394. package/dist/react-native/common/logger.d.ts +3 -0
  395. package/dist/react-native/common/logger.d.ts.map +1 -0
  396. package/dist/react-native/common/logger.js +6 -0
  397. package/dist/react-native/common/logger.js.map +1 -0
  398. package/dist/react-native/common/messages.d.ts +35 -0
  399. package/dist/react-native/common/messages.d.ts.map +1 -0
  400. package/dist/react-native/common/messages.js +37 -0
  401. package/dist/react-native/common/messages.js.map +1 -0
  402. package/dist/react-native/common/multimap.d.ts +16 -0
  403. package/dist/react-native/common/multimap.d.ts.map +1 -0
  404. package/dist/react-native/common/multimap.js +60 -0
  405. package/dist/react-native/common/multimap.js.map +1 -0
  406. package/dist/react-native/common/playwrightServiceConfig.d.ts +13 -0
  407. package/dist/react-native/common/playwrightServiceConfig.d.ts.map +1 -0
  408. package/dist/react-native/common/playwrightServiceConfig.js +45 -0
  409. package/dist/react-native/common/playwrightServiceConfig.js.map +1 -0
  410. package/dist/react-native/common/types.d.ts +226 -0
  411. package/dist/react-native/common/types.d.ts.map +1 -0
  412. package/dist/react-native/common/types.js +4 -0
  413. package/dist/react-native/common/types.js.map +1 -0
  414. package/dist/react-native/core/global/playwright-service-global-setup.d.ts +4 -0
  415. package/dist/react-native/core/global/playwright-service-global-setup.d.ts.map +1 -0
  416. package/dist/react-native/core/global/playwright-service-global-setup.js +19 -0
  417. package/dist/react-native/core/global/playwright-service-global-setup.js.map +1 -0
  418. package/dist/react-native/core/global/playwright-service-global-teardown.d.ts +4 -0
  419. package/dist/react-native/core/global/playwright-service-global-teardown.d.ts.map +1 -0
  420. package/dist/react-native/core/global/playwright-service-global-teardown.js +19 -0
  421. package/dist/react-native/core/global/playwright-service-global-teardown.js.map +1 -0
  422. package/dist/react-native/core/playwrightService.d.ts +64 -0
  423. package/dist/react-native/core/playwrightService.d.ts.map +1 -0
  424. package/dist/react-native/core/playwrightService.js +190 -0
  425. package/dist/react-native/core/playwrightService.js.map +1 -0
  426. package/dist/react-native/core/playwrightServiceEntra.d.ts +16 -0
  427. package/dist/react-native/core/playwrightServiceEntra.d.ts.map +1 -0
  428. package/dist/react-native/core/playwrightServiceEntra.js +49 -0
  429. package/dist/react-native/core/playwrightServiceEntra.js.map +1 -0
  430. package/dist/react-native/core/playwrightServiceUtils.d.ts +3 -0
  431. package/dist/react-native/core/playwrightServiceUtils.d.ts.map +1 -0
  432. package/dist/react-native/core/playwrightServiceUtils.js +11 -0
  433. package/dist/react-native/core/playwrightServiceUtils.js.map +1 -0
  434. package/dist/react-native/index.d.ts +10 -0
  435. package/dist/react-native/index.d.ts.map +1 -0
  436. package/dist/react-native/index.js +11 -0
  437. package/dist/react-native/index.js.map +1 -0
  438. package/dist/react-native/model/entraTokenDetails.d.ts +5 -0
  439. package/dist/react-native/model/entraTokenDetails.d.ts.map +1 -0
  440. package/dist/react-native/model/entraTokenDetails.js +5 -0
  441. package/dist/react-native/model/entraTokenDetails.js.map +1 -0
  442. package/dist/react-native/model/mptTokenDetails.d.ts +11 -0
  443. package/dist/react-native/model/mptTokenDetails.d.ts.map +1 -0
  444. package/dist/react-native/model/mptTokenDetails.js +10 -0
  445. package/dist/react-native/model/mptTokenDetails.js.map +1 -0
  446. package/dist/react-native/model/shard.d.ts +41 -0
  447. package/dist/react-native/model/shard.d.ts.map +1 -0
  448. package/dist/react-native/model/shard.js +19 -0
  449. package/dist/react-native/model/shard.js.map +1 -0
  450. package/dist/react-native/model/storageUri.d.ts +14 -0
  451. package/dist/react-native/model/storageUri.d.ts.map +1 -0
  452. package/dist/react-native/model/storageUri.js +18 -0
  453. package/dist/react-native/model/storageUri.js.map +1 -0
  454. package/dist/react-native/model/testResult.d.ts +40 -0
  455. package/dist/react-native/model/testResult.d.ts.map +1 -0
  456. package/dist/react-native/model/testResult.js +5 -0
  457. package/dist/react-native/model/testResult.js.map +1 -0
  458. package/dist/react-native/model/testRun.d.ts +36 -0
  459. package/dist/react-native/model/testRun.d.ts.map +1 -0
  460. package/dist/react-native/model/testRun.js +8 -0
  461. package/dist/react-native/model/testRun.js.map +1 -0
  462. package/dist/react-native/package.json +3 -0
  463. package/dist/react-native/reporter/index.d.ts +10 -0
  464. package/dist/react-native/reporter/index.d.ts.map +1 -0
  465. package/dist/react-native/reporter/index.js +12 -0
  466. package/dist/react-native/reporter/index.js.map +1 -0
  467. package/dist/react-native/reporter/mptReporter.d.ts +100 -0
  468. package/dist/react-native/reporter/mptReporter.d.ts.map +1 -0
  469. package/dist/react-native/reporter/mptReporter.js +373 -0
  470. package/dist/react-native/reporter/mptReporter.js.map +1 -0
  471. package/dist/react-native/utils/cIInfoProvider.d.ts +25 -0
  472. package/dist/react-native/utils/cIInfoProvider.d.ts.map +1 -0
  473. package/dist/react-native/utils/cIInfoProvider.js +101 -0
  474. package/dist/react-native/utils/cIInfoProvider.js.map +1 -0
  475. package/dist/react-native/utils/getPlaywrightVersion.d.ts +2 -0
  476. package/dist/react-native/utils/getPlaywrightVersion.d.ts.map +1 -0
  477. package/dist/react-native/utils/getPlaywrightVersion.js +19 -0
  478. package/dist/react-native/utils/getPlaywrightVersion.js.map +1 -0
  479. package/dist/react-native/utils/packageManager.d.ts +15 -0
  480. package/dist/react-native/utils/packageManager.d.ts.map +1 -0
  481. package/dist/react-native/utils/packageManager.js +47 -0
  482. package/dist/react-native/utils/packageManager.js.map +1 -0
  483. package/dist/react-native/utils/parseJwt.d.ts +4 -0
  484. package/dist/react-native/utils/parseJwt.d.ts.map +1 -0
  485. package/dist/react-native/utils/parseJwt.js +16 -0
  486. package/dist/react-native/utils/parseJwt.js.map +1 -0
  487. package/dist/react-native/utils/reporterUtils.d.ts +60 -0
  488. package/dist/react-native/utils/reporterUtils.d.ts.map +1 -0
  489. package/dist/react-native/utils/reporterUtils.js +585 -0
  490. package/dist/react-native/utils/reporterUtils.js.map +1 -0
  491. package/dist/react-native/utils/serviceClient.d.ts +25 -0
  492. package/dist/react-native/utils/serviceClient.d.ts.map +1 -0
  493. package/dist/react-native/utils/serviceClient.js +103 -0
  494. package/dist/react-native/utils/serviceClient.js.map +1 -0
  495. package/dist/react-native/utils/storageClient.d.ts +6 -0
  496. package/dist/react-native/utils/storageClient.d.ts.map +1 -0
  497. package/dist/react-native/utils/storageClient.js +37 -0
  498. package/dist/react-native/utils/storageClient.js.map +1 -0
  499. package/dist/react-native/utils/utils.d.ts +28 -0
  500. package/dist/react-native/utils/utils.d.ts.map +1 -0
  501. package/dist/react-native/utils/utils.js +151 -0
  502. package/dist/react-native/utils/utils.js.map +1 -0
  503. package/package.json +73 -28
  504. package/CHANGELOG.md +0 -88
  505. package/dist/common/constants.d.ts.map +0 -1
  506. package/dist/common/constants.js.map +0 -1
  507. package/dist/common/customerConfig.d.ts.map +0 -1
  508. package/dist/common/entraIdAccessToken.d.ts.map +0 -1
  509. package/dist/common/entraIdAccessToken.js.map +0 -1
  510. package/dist/common/environmentVariables.d.ts.map +0 -1
  511. package/dist/common/environmentVariables.js.map +0 -1
  512. package/dist/common/executor.d.ts.map +0 -1
  513. package/dist/common/executor.js.map +0 -1
  514. package/dist/common/httpService.d.ts.map +0 -1
  515. package/dist/common/httpService.js.map +0 -1
  516. package/dist/common/logger.d.ts.map +0 -1
  517. package/dist/common/logger.js.map +0 -1
  518. package/dist/common/messages.d.ts.map +0 -1
  519. package/dist/common/messages.js.map +0 -1
  520. package/dist/common/multimap.d.ts.map +0 -1
  521. package/dist/common/multimap.js.map +0 -1
  522. package/dist/common/playwrightServiceConfig.d.ts.map +0 -1
  523. package/dist/common/playwrightServiceConfig.js +0 -48
  524. package/dist/common/playwrightServiceConfig.js.map +0 -1
  525. package/dist/common/types.d.ts.map +0 -1
  526. package/dist/common/types.js.map +0 -1
  527. package/dist/core/global/playwright-service-global-setup.d.ts.map +0 -1
  528. package/dist/core/global/playwright-service-global-setup.js +0 -22
  529. package/dist/core/global/playwright-service-global-setup.js.map +0 -1
  530. package/dist/core/global/playwright-service-global-teardown.d.ts.map +0 -1
  531. package/dist/core/global/playwright-service-global-teardown.js +0 -22
  532. package/dist/core/global/playwright-service-global-teardown.js.map +0 -1
  533. package/dist/core/playwrightService.d.ts.map +0 -1
  534. package/dist/core/playwrightService.js.map +0 -1
  535. package/dist/core/playwrightServiceEntra.d.ts.map +0 -1
  536. package/dist/core/playwrightServiceEntra.js.map +0 -1
  537. package/dist/index.d.ts.map +0 -1
  538. package/dist/index.js.map +0 -1
  539. package/dist/model/entraTokenDetails.d.ts.map +0 -1
  540. package/dist/model/entraTokenDetails.js.map +0 -1
  541. package/dist/model/mptTokenDetails.d.ts.map +0 -1
  542. package/dist/model/mptTokenDetails.js.map +0 -1
  543. package/dist/model/shard.d.ts.map +0 -1
  544. package/dist/model/shard.js.map +0 -1
  545. package/dist/model/storageUri.d.ts.map +0 -1
  546. package/dist/model/storageUri.js.map +0 -1
  547. package/dist/model/testResult.d.ts.map +0 -1
  548. package/dist/model/testResult.js.map +0 -1
  549. package/dist/model/testRun.d.ts.map +0 -1
  550. package/dist/model/testRun.js.map +0 -1
  551. package/dist/reporter/index.d.ts.map +0 -1
  552. package/dist/reporter/index.js.map +0 -1
  553. package/dist/reporter/mptReporter.d.ts.map +0 -1
  554. package/dist/reporter/mptReporter.js.map +0 -1
  555. package/dist/utils/cIInfoProvider.d.ts.map +0 -1
  556. package/dist/utils/cIInfoProvider.js.map +0 -1
  557. package/dist/utils/packageManager.d.ts.map +0 -1
  558. package/dist/utils/packageManager.js.map +0 -1
  559. package/dist/utils/reporterUtils.d.ts.map +0 -1
  560. package/dist/utils/reporterUtils.js.map +0 -1
  561. package/dist/utils/serviceClient.d.ts.map +0 -1
  562. package/dist/utils/serviceClient.js.map +0 -1
  563. package/dist/utils/storageClient.d.ts.map +0 -1
  564. package/dist/utils/storageClient.js.map +0 -1
  565. package/dist/utils/utils.d.ts.map +0 -1
  566. package/dist/utils/utils.js.map +0 -1
  567. /package/dist/{common → browser/common}/customerConfig.d.ts +0 -0
  568. /package/dist/{common → browser/common}/environmentVariables.d.ts +0 -0
  569. /package/dist/{common → browser/common}/executor.d.ts +0 -0
  570. /package/dist/{common → browser/common}/httpService.d.ts +0 -0
  571. /package/dist/{common → browser/common}/logger.d.ts +0 -0
  572. /package/dist/{common → browser/common}/messages.d.ts +0 -0
  573. /package/dist/{common → browser/common}/multimap.d.ts +0 -0
  574. /package/dist/{core → browser/core}/global/playwright-service-global-setup.d.ts +0 -0
  575. /package/dist/{core → browser/core}/global/playwright-service-global-teardown.d.ts +0 -0
  576. /package/dist/{core → browser/core}/playwrightServiceEntra.d.ts +0 -0
  577. /package/dist/{model → browser/model}/entraTokenDetails.d.ts +0 -0
  578. /package/dist/{model → browser/model}/mptTokenDetails.d.ts +0 -0
  579. /package/dist/{model → browser/model}/shard.d.ts +0 -0
  580. /package/dist/{model → browser/model}/storageUri.d.ts +0 -0
  581. /package/dist/{utils → browser/utils}/cIInfoProvider.d.ts +0 -0
  582. /package/dist/{utils → browser/utils}/storageClient.d.ts +0 -0
  583. /package/dist/{common → commonjs/common}/constants.js +0 -0
  584. /package/dist/{common → commonjs/common}/customerConfig.js +0 -0
  585. /package/dist/{common → commonjs/common}/logger.js +0 -0
  586. /package/dist/{common → commonjs/common}/messages.js +0 -0
  587. /package/dist/{common → commonjs/common}/multimap.js +0 -0
  588. /package/dist/{common → commonjs/common}/types.js +0 -0
  589. /package/dist/{model → commonjs/model}/entraTokenDetails.js +0 -0
  590. /package/dist/{model → commonjs/model}/mptTokenDetails.js +0 -0
  591. /package/dist/{model → commonjs/model}/shard.js +0 -0
  592. /package/dist/{model → commonjs/model}/storageUri.js +0 -0
  593. /package/dist/{model → commonjs/model}/testResult.js +0 -0
  594. /package/dist/{model → commonjs/model}/testRun.js +0 -0
  595. /package/dist/{tsdoc-metadata.json → commonjs/tsdoc-metadata.json} +0 -0
  596. /package/dist/{utils → commonjs/utils}/cIInfoProvider.js +0 -0
  597. /package/dist/{utils → commonjs/utils}/packageManager.js +0 -0
@@ -3,19 +3,19 @@
3
3
  // Licensed under the MIT License.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  const tslib_1 = require("tslib");
6
- const child_process_1 = require("child_process");
7
- const logger_1 = require("../common/logger");
8
- const crypto_1 = require("crypto");
9
- const fs_1 = tslib_1.__importDefault(require("fs"));
10
- const path_1 = tslib_1.__importDefault(require("path"));
11
- const constants_1 = require("../common/constants");
12
- const mptTokenDetails_1 = require("../model/mptTokenDetails");
13
- const shard_1 = require("../model/shard");
14
- const testResult_1 = require("../model/testResult");
15
- const testRun_1 = require("../model/testRun");
16
- const cIInfoProvider_1 = require("./cIInfoProvider");
17
- const cIInfoProvider_2 = require("./cIInfoProvider");
18
- const utils_1 = require("./utils");
6
+ const node_child_process_1 = require("node:child_process");
7
+ const logger_js_1 = require("../common/logger.js");
8
+ const node_crypto_1 = require("node:crypto");
9
+ const node_fs_1 = tslib_1.__importDefault(require("node:fs"));
10
+ const node_path_1 = tslib_1.__importDefault(require("node:path"));
11
+ const constants_js_1 = require("../common/constants.js");
12
+ const mptTokenDetails_js_1 = require("../model/mptTokenDetails.js");
13
+ const shard_js_1 = require("../model/shard.js");
14
+ const testResult_js_1 = require("../model/testResult.js");
15
+ const testRun_js_1 = require("../model/testRun.js");
16
+ const cIInfoProvider_js_1 = require("./cIInfoProvider.js");
17
+ const cIInfoProvider_js_2 = require("./cIInfoProvider.js");
18
+ const utils_js_1 = require("./utils.js");
19
19
  class ReporterUtils {
20
20
  // eslint-disable-next-line @azure/azure-sdk/ts-use-interface-parameters
21
21
  constructor(envVariables, config, _) {
@@ -29,7 +29,7 @@ class ReporterUtils {
29
29
  this.flakyTests = 0;
30
30
  }
31
31
  async getTestRunObject(ciInfo) {
32
- const testRun = new testRun_1.TestRun();
32
+ const testRun = new testRun_js_1.TestRun();
33
33
  const runName = this.envVariables.runName || (await this.getRunName(ciInfo));
34
34
  testRun.testRunId = this.envVariables.runId;
35
35
  testRun.displayName = ReporterUtils.isNullOrEmpty(runName) ? this.envVariables.runId : runName;
@@ -48,7 +48,7 @@ class ReporterUtils {
48
48
  return testRun;
49
49
  }
50
50
  getTestRunShardStartObject() {
51
- const shard = new shard_1.Shard();
51
+ const shard = new shard_js_1.Shard();
52
52
  if (this.config.shard !== null && this.config.shard !== undefined) {
53
53
  this.envVariables.shardId = this.config.shard.current.toString();
54
54
  }
@@ -69,7 +69,7 @@ class ReporterUtils {
69
69
  shard.shardId = (_a = this.envVariables.shardId) !== null && _a !== void 0 ? _a : "1";
70
70
  shard.summary.totalTime = result.duration;
71
71
  shard.summary.endTime = ReporterUtils.timestampToRFC3339(Date.now());
72
- shard.summary.status = shard_1.TestRunStatus.CLIENT_COMPLETE;
72
+ shard.summary.status = shard_js_1.TestRunStatus.CLIENT_COMPLETE;
73
73
  shard.summary.errorMessages = errorMessages;
74
74
  shard.summary.uploadMetadata = attachmentMetadata;
75
75
  shard.uploadCompleted = true;
@@ -88,7 +88,7 @@ class ReporterUtils {
88
88
  }
89
89
  }
90
90
  catch (error) {
91
- logger_1.reporterLogger.error(`Error in fetching OS - ${error}`);
91
+ logger_js_1.reporterLogger.error(`Error in fetching OS - ${error}`);
92
92
  }
93
93
  return "";
94
94
  }
@@ -116,14 +116,14 @@ class ReporterUtils {
116
116
  default:
117
117
  break;
118
118
  }
119
- const testResult = new testResult_1.TestResult();
119
+ const testResult = new testResult_js_1.TestResult();
120
120
  testResult.runId = this.envVariables.runId;
121
121
  testResult.shardId = this.envVariables.runId + "_" + this.envVariables.shardId;
122
122
  testResult.accountId = this.envVariables.accountId;
123
123
  testResult.suiteId = ReporterUtils.calculateSha1(`${test.parent.title}-${test.location.file}`);
124
124
  testResult.testId = testResult.suiteId.concat(`-${ReporterUtils.calculateSha1(test.title)}`);
125
125
  testResult.testCombinationId = test.id;
126
- testResult.testExecutionId = (0, crypto_1.randomUUID)();
126
+ testResult.testExecutionId = (0, node_crypto_1.randomUUID)();
127
127
  testResult.testTitle = test.title;
128
128
  testResult.suiteTitle = this.extractRootParentTitle(test.parent);
129
129
  testResult.fileName = test.location.file;
@@ -138,7 +138,7 @@ class ReporterUtils {
138
138
  jobName: jobName,
139
139
  projectName: test.parent.project().name,
140
140
  browserType: browserName ? browserName.toUpperCase() : "",
141
- os: this.getOSName(result, constants_1.Constants.OS),
141
+ os: this.getOSName(result, constants_js_1.Constants.OS),
142
142
  };
143
143
  testResult.annotations = this.extractTestAnnotations(test.annotations);
144
144
  testResult.tags = this.extractTestTags(test);
@@ -155,7 +155,7 @@ class ReporterUtils {
155
155
  }
156
156
  generateMarkdownSummary(testRunUrl) {
157
157
  try {
158
- if (cIInfoProvider_2.CIInfoProvider.getCIProvider() === cIInfoProvider_1.CI_PROVIDERS.GITHUB) {
158
+ if (cIInfoProvider_js_2.CIInfoProvider.getCIProvider() === cIInfoProvider_js_1.CI_PROVIDERS.GITHUB) {
159
159
  const markdownContent = `
160
160
  #### Microsoft Playwright Testing run summary
161
161
 
@@ -171,11 +171,11 @@ class ReporterUtils {
171
171
 
172
172
  #### For more details, visit the [service dashboard](${testRunUrl}).
173
173
  `;
174
- fs_1.default.writeFileSync(process.env["GITHUB_STEP_SUMMARY"], markdownContent);
174
+ node_fs_1.default.writeFileSync(process.env["GITHUB_STEP_SUMMARY"], markdownContent);
175
175
  }
176
176
  }
177
177
  catch (err) {
178
- logger_1.reporterLogger.error(`\nCould not generate markdown summary - ${err}`);
178
+ logger_js_1.reporterLogger.error(`\nCould not generate markdown summary - ${err}`);
179
179
  }
180
180
  }
181
181
  getRawTestResultObject(result) {
@@ -188,15 +188,15 @@ class ReporterUtils {
188
188
  return rawTestResult;
189
189
  }
190
190
  static getRunId(cIInfo) {
191
- if (cIInfo === null || cIInfo.provider === cIInfoProvider_1.CI_PROVIDERS.DEFAULT) {
192
- return (0, crypto_1.randomUUID)();
191
+ if (cIInfo === null || cIInfo.provider === cIInfoProvider_js_1.CI_PROVIDERS.DEFAULT) {
192
+ return (0, node_crypto_1.randomUUID)();
193
193
  }
194
194
  const concatString = `${cIInfo.provider}-${cIInfo.repo}-${cIInfo.runId}-${cIInfo.runAttempt}`;
195
195
  const runId = ReporterUtils.calculateSha1(concatString);
196
196
  return runId;
197
197
  }
198
198
  static calculateSha1(buffer) {
199
- const hash = (0, crypto_1.createHash)("sha1");
199
+ const hash = (0, node_crypto_1.createHash)("sha1");
200
200
  hash.update(buffer);
201
201
  return hash.digest("hex");
202
202
  }
@@ -218,9 +218,9 @@ class ReporterUtils {
218
218
  const _token = Buffer.from(token, "base64");
219
219
  const tokenDetails = JSON.parse(_token.toString());
220
220
  switch (tokenType) {
221
- case mptTokenDetails_1.TokenType.MPT:
221
+ case mptTokenDetails_js_1.TokenType.MPT:
222
222
  return tokenDetails;
223
- case mptTokenDetails_1.TokenType.ENTRA:
223
+ case mptTokenDetails_js_1.TokenType.ENTRA:
224
224
  return tokenDetails;
225
225
  default:
226
226
  throw new Error("Unsupported token type");
@@ -274,21 +274,21 @@ class ReporterUtils {
274
274
  const currentTimestampPlus10Minutes = Date.now() + 10 * 60 * 1000;
275
275
  const isSasValidityGreaterThanCurrentTimePlus10Minutes = timestampFromIsoString > currentTimestampPlus10Minutes;
276
276
  if (!isSasValidityGreaterThanCurrentTimePlus10Minutes) {
277
- logger_1.reporterLogger.info(`Sas rotation required because close to expiry, SasUriValidTillTime: ${timestampFromIsoString}, CurrentTime: ${currentTimestampPlus10Minutes}`);
277
+ logger_js_1.reporterLogger.info(`Sas rotation required because close to expiry, SasUriValidTillTime: ${timestampFromIsoString}, CurrentTime: ${currentTimestampPlus10Minutes}`);
278
278
  }
279
279
  return isSasValidityGreaterThanCurrentTimePlus10Minutes;
280
280
  }
281
- logger_1.reporterLogger.error(`Sas rotation required because expiry param not found.`);
281
+ logger_js_1.reporterLogger.error(`Sas rotation required because expiry param not found.`);
282
282
  return false;
283
283
  }
284
284
  catch (error) {
285
- logger_1.reporterLogger.error(`Sas rotation required because of ${error}.`);
285
+ logger_js_1.reporterLogger.error(`Sas rotation required because of ${error}.`);
286
286
  return false;
287
287
  }
288
288
  }
289
289
  static getFileSize(attachmentPath) {
290
290
  try {
291
- const stats = fs_1.default.statSync(attachmentPath);
291
+ const stats = node_fs_1.default.statSync(attachmentPath);
292
292
  return stats.size;
293
293
  }
294
294
  catch (error) {
@@ -309,7 +309,7 @@ class ReporterUtils {
309
309
  return "";
310
310
  }
311
311
  const accessTokenRegex = new RegExp(this.envVariables.accessToken, "g");
312
- return info.replace(accessTokenRegex, constants_1.Constants.DEFAULT_REDACTED_MESSAGE);
312
+ return info.replace(accessTokenRegex, constants_js_1.Constants.DEFAULT_REDACTED_MESSAGE);
313
313
  }
314
314
  static getRegionFromAccountID(accountId) {
315
315
  if (accountId.includes("_")) {
@@ -338,13 +338,13 @@ class ReporterUtils {
338
338
  retries: this.config.projects[0].retries,
339
339
  shards: this.config.shard ? this.config.shard : { total: 1 },
340
340
  testFramework: {
341
- name: constants_1.Constants.TEST_FRAMEWORK_NAME,
341
+ name: constants_js_1.Constants.TEST_FRAMEWORK_NAME,
342
342
  version: this.config.version,
343
- runnerName: constants_1.Constants.TEST_FRAMEWORK_RUNNERNAME,
343
+ runnerName: constants_js_1.Constants.TEST_FRAMEWORK_RUNNERNAME,
344
344
  },
345
- testType: constants_1.Constants.TEST_TYPE,
346
- testSdkLanguage: constants_1.Constants.TEST_SDK_LANGUAGE,
347
- reporterPackageVersion: (0, utils_1.getPackageVersion)(),
345
+ testType: constants_js_1.Constants.TEST_TYPE,
346
+ testSdkLanguage: constants_js_1.Constants.TEST_SDK_LANGUAGE,
347
+ reporterPackageVersion: (0, utils_js_1.getPackageVersion)(),
348
348
  };
349
349
  return testRunConfig;
350
350
  }
@@ -352,7 +352,7 @@ class ReporterUtils {
352
352
  if (!location) {
353
353
  return undefined;
354
354
  }
355
- const file = this.toPosixPath(path_1.default.relative(this.config.rootDir, location.file));
355
+ const file = this.toPosixPath(node_path_1.default.relative(this.config.rootDir, location.file));
356
356
  return {
357
357
  file,
358
358
  line: location.line,
@@ -393,7 +393,7 @@ class ReporterUtils {
393
393
  return result;
394
394
  }
395
395
  toPosixPath(aPath) {
396
- return aPath.split(path_1.default.sep).join(path_1.default.posix.sep);
396
+ return aPath.split(node_path_1.default.sep).join(node_path_1.default.posix.sep);
397
397
  }
398
398
  getAttachmentStatus(testResult) {
399
399
  let attachmentStatus = "";
@@ -500,7 +500,7 @@ class ReporterUtils {
500
500
  }
501
501
  async getRunName(ciInfo) {
502
502
  var _a;
503
- if (ciInfo.provider === cIInfoProvider_1.CI_PROVIDERS.GITHUB &&
503
+ if (ciInfo.provider === cIInfoProvider_js_1.CI_PROVIDERS.GITHUB &&
504
504
  process.env["GITHUB_EVENT_NAME"] === "pull_request") {
505
505
  const prNumber = `${(_a = process.env["GITHUB_REF_NAME"]) === null || _a === void 0 ? void 0 : _a.split("/")[0]}`;
506
506
  const prLink = `${process.env["GITHUB_REPOSITORY"]}/pull/${prNumber}`;
@@ -508,25 +508,25 @@ class ReporterUtils {
508
508
  }
509
509
  let gitCommitMessage = null;
510
510
  try {
511
- const gitVersion = await this.runCommand(constants_1.Constants.GIT_VERSION_COMMAND);
511
+ const gitVersion = await this.runCommand(constants_js_1.Constants.GIT_VERSION_COMMAND);
512
512
  if (ReporterUtils.isNullOrEmpty(gitVersion)) {
513
513
  throw new Error("Git is not installed on the machine");
514
514
  }
515
- const isInsideWorkTree = await this.runCommand(constants_1.Constants.GIT_REV_PARSE);
515
+ const isInsideWorkTree = await this.runCommand(constants_js_1.Constants.GIT_REV_PARSE);
516
516
  if (isInsideWorkTree !== "true") {
517
517
  throw new Error("Not inside a git repository");
518
518
  }
519
- gitCommitMessage = await this.runCommand(constants_1.Constants.GIT_COMMIT_MESSAGE_COMMAND);
519
+ gitCommitMessage = await this.runCommand(constants_js_1.Constants.GIT_COMMIT_MESSAGE_COMMAND);
520
520
  return gitCommitMessage;
521
521
  }
522
522
  catch (err) {
523
- logger_1.reporterLogger.error(`\nError in getting git commit message: ${err}.`);
523
+ logger_js_1.reporterLogger.error(`\nError in getting git commit message: ${err}.`);
524
524
  return "";
525
525
  }
526
526
  }
527
527
  async runCommand(command) {
528
528
  return new Promise((resolve, reject) => {
529
- (0, child_process_1.exec)(command, (error, stdout, stderr) => {
529
+ (0, node_child_process_1.exec)(command, (error, stdout, stderr) => {
530
530
  if (error) {
531
531
  reject(error);
532
532
  return;
@@ -577,7 +577,7 @@ ReporterUtils.getReporterBackOffOptions = {
577
577
  retry: (error) => {
578
578
  if (error.response) {
579
579
  const status = error.response.status;
580
- if (constants_1.Constants.NON_RETRYABLE_STATUS_CODES.includes(status)) {
580
+ if (constants_js_1.Constants.NON_RETRYABLE_STATUS_CODES.includes(status)) {
581
581
  return false;
582
582
  }
583
583
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporterUtils.js","sourceRoot":"","sources":["../../../src/utils/reporterUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n FullResult,\n Location,\n TestCase,\n TestResult,\n TestStep,\n FullConfig,\n Suite,\n} from \"@playwright/test/reporter\";\nimport { exec } from \"node:child_process\";\nimport { reporterLogger } from \"../common/logger.js\";\nimport { createHash, randomUUID } from \"node:crypto\";\nimport type { IBackOffOptions } from \"../common/types.js\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { Constants } from \"../common/constants.js\";\nimport type { EnvironmentVariables } from \"../common/environmentVariables.js\";\nimport type { DedupedStep, RawTestStep } from \"../common/types.js\";\nimport { TokenType } from \"../model/mptTokenDetails.js\";\nimport type { UploadMetadata } from \"../model/shard.js\";\nimport { Shard, TestRunStatus } from \"../model/shard.js\";\nimport type { RawTestResult } from \"../model/testResult.js\";\nimport { TestResult as MPTTestResult } from \"../model/testResult.js\";\nimport type { TestRunConfig } from \"../model/testRun.js\";\nimport { TestRun } from \"../model/testRun.js\";\nimport type { CIInfo } from \"./cIInfoProvider.js\";\nimport { CI_PROVIDERS } from \"./cIInfoProvider.js\";\nimport { CIInfoProvider } from \"./cIInfoProvider.js\";\nimport type { StorageUri } from \"../model/storageUri.js\";\nimport { getPackageVersion } from \"./utils.js\";\nclass ReporterUtils {\n private envVariables: EnvironmentVariables;\n\n private config: FullConfig;\n totalTests: number;\n failedTests: number;\n skippedTests: number;\n passedTests: number;\n flakyTests: number;\n startTime: number;\n\n // eslint-disable-next-line @azure/azure-sdk/ts-use-interface-parameters\n constructor(envVariables: EnvironmentVariables, config: FullConfig, _: Suite) {\n this.config = config;\n this.envVariables = envVariables;\n this.startTime = Date.now();\n\n this.totalTests = 0;\n this.failedTests = 0;\n this.skippedTests = 0;\n this.passedTests = 0;\n this.flakyTests = 0;\n }\n\n public async getTestRunObject(ciInfo: CIInfo): Promise<TestRun> {\n const testRun = new TestRun();\n const runName = this.envVariables.runName || (await this.getRunName(ciInfo));\n testRun.testRunId = this.envVariables.runId;\n testRun.displayName = ReporterUtils.isNullOrEmpty(runName) ? this.envVariables.runId : runName;\n testRun.creatorName = this.envVariables.userName;\n testRun.creatorId = this.envVariables.userId!;\n testRun.startTime = ReporterUtils.timestampToRFC3339(this.startTime);\n testRun.ciConfig = {\n ciProviderName: ciInfo.provider!,\n branch: ciInfo.branch!,\n author: ciInfo.author!,\n commitId: ciInfo.commitId!,\n revisionUrl: ciInfo.revisionUrl!,\n };\n testRun.testRunConfig = this.getTestRunConfig();\n testRun.cloudReportingEnabled = \"true\";\n return testRun;\n }\n\n public getTestRunShardStartObject(): Shard {\n const shard = new Shard();\n if (this.config.shard !== null && this.config.shard !== undefined) {\n this.envVariables.shardId = this.config.shard.current.toString();\n } else {\n this.envVariables.shardId = \"1\";\n }\n shard.shardId = this.envVariables.shardId;\n shard.summary = {\n startTime: ReporterUtils.timestampToRFC3339(this.startTime),\n };\n shard.uploadCompleted = false;\n return shard;\n }\n\n public getTestRunShardEndObject(\n result: FullResult,\n // eslint-disable-next-line @azure/azure-sdk/ts-use-interface-parameters\n shard: Shard,\n errorMessages: string[],\n attachmentMetadata: UploadMetadata,\n workers: number,\n ): Shard {\n shard.shardId = this.envVariables.shardId ?? \"1\";\n shard.summary.totalTime = result.duration;\n shard.summary.endTime = ReporterUtils.timestampToRFC3339(Date.now());\n shard.summary.status = TestRunStatus.CLIENT_COMPLETE;\n shard.summary.errorMessages = errorMessages;\n shard.summary.uploadMetadata = attachmentMetadata;\n shard.uploadCompleted = true;\n shard.workers = workers;\n return shard;\n }\n\n public getOSName(result: TestResult, data: string): string {\n try {\n for (const attachment of result.attachments) {\n if (attachment.name === data) {\n const match = attachment?.contentType?.match(/charset=(.*)/);\n const charset = match && match.length > 1 ? match[1] : \"utf-8\";\n return attachment.body?.toString((charset as any) || \"utf-8\").toUpperCase() || \"\";\n }\n }\n } catch (error) {\n reporterLogger.error(`Error in fetching OS - ${error}`);\n }\n return \"\";\n }\n\n public getTestResultObject(test: TestCase, result: TestResult, jobName: string): MPTTestResult {\n switch (test.outcome()) {\n case \"skipped\":\n this.skippedTests++;\n this.totalTests++;\n break;\n case \"expected\":\n this.passedTests++;\n this.totalTests++;\n break;\n case \"unexpected\":\n if (result.retry === test.retries) {\n this.failedTests++;\n this.totalTests++;\n }\n break;\n case \"flaky\":\n this.totalTests++;\n this.flakyTests++;\n break;\n default:\n break;\n }\n\n const testResult = new MPTTestResult();\n testResult.runId = this.envVariables.runId;\n testResult.shardId = this.envVariables.runId + \"_\" + this.envVariables.shardId;\n testResult.accountId = this.envVariables.accountId!;\n testResult.suiteId = ReporterUtils.calculateSha1(`${test.parent.title}-${test.location.file}`);\n testResult.testId = testResult.suiteId.concat(`-${ReporterUtils.calculateSha1(test.title)}`);\n testResult.testCombinationId = test.id;\n testResult.testExecutionId = randomUUID();\n testResult.testTitle = test.title;\n testResult.suiteTitle = this.extractRootParentTitle(test.parent)!;\n testResult.fileName = test.location.file;\n testResult.status = this.getTestStatus(test, result);\n testResult.lineNumber = test.location.line;\n testResult.retry = result.retry ? result.retry : 0;\n let browserName = test.parent.project()?.use.browserName?.toLowerCase();\n if (!browserName) {\n browserName = test.parent.project()?.use.defaultBrowserType?.toLowerCase();\n }\n testResult.webTestConfig = {\n jobName: jobName,\n projectName: test.parent.project()!.name,\n browserType: browserName ? browserName.toUpperCase() : \"\",\n os: this.getOSName(result, Constants.OS),\n };\n testResult.annotations = this.extractTestAnnotations(test.annotations);\n testResult.tags = this.extractTestTags(test);\n testResult.resultsSummary = {\n status: result.status.toUpperCase(),\n duration: result.duration,\n startTime: result.startTime.toISOString().replace(/\\.\\d+Z$/, \"Z\"),\n attachmentsMetadata: this.getAttachmentStatus(result),\n };\n testResult.artifactsPath = result.attachments\n .filter((attachment) => attachment?.path !== null && attachment?.path !== undefined) // Filter attachments with defined and non-null path property\n .map(\n (attachment) =>\n `${testResult.testExecutionId}/${ReporterUtils.getFileRelativePath(attachment.path!)}`,\n );\n return testResult;\n }\n\n public generateMarkdownSummary(testRunUrl: string): void {\n try {\n if (CIInfoProvider.getCIProvider() === CI_PROVIDERS.GITHUB) {\n const markdownContent = `\n#### Microsoft Playwright Testing run summary\n\n#### Results:\n \n![pass](https://img.shields.io/badge/status-passed-brightgreen) **Passed:** ${this.passedTests}\n \n![fail](https://img.shields.io/badge/status-failed-red) **Failed:** ${this.failedTests}\n \n![flaky](https://img.shields.io/badge/status-flaky-yellow) **Flaky:** ${this.flakyTests}\n \n![skipped](https://img.shields.io/badge/status-skipped-lightgrey) **Skipped:** ${this.skippedTests}\n \n#### For more details, visit the [service dashboard](${testRunUrl}).\n `;\n fs.writeFileSync(process.env[\"GITHUB_STEP_SUMMARY\"]!, markdownContent);\n }\n } catch (err) {\n reporterLogger.error(`\\nCould not generate markdown summary - ${err}`);\n }\n }\n\n public getRawTestResultObject(result: TestResult): RawTestResult {\n const rawTestResult: RawTestResult = {\n steps: this.dedupeSteps(result.steps).map((step) => this.serializeTestStep(step)),\n errors: this.getTestError(result),\n stdErr: result.stderr ? JSON.stringify(result.stderr, null, 2) : \"\",\n stdOut: result.stdout ? JSON.stringify(result.stdout, null, 2) : \"\",\n };\n return rawTestResult;\n }\n\n public static getRunId(cIInfo: CIInfo): string {\n if (cIInfo === null || cIInfo.provider === CI_PROVIDERS.DEFAULT) {\n return randomUUID();\n }\n\n const concatString = `${cIInfo.provider}-${cIInfo.repo}-${cIInfo.runId}-${cIInfo.runAttempt}`;\n const runId = ReporterUtils.calculateSha1(concatString);\n return runId;\n }\n\n public static calculateSha1(buffer: Buffer | string): string {\n const hash = createHash(\"sha1\");\n hash.update(buffer);\n return hash.digest(\"hex\");\n }\n\n /*\n public static getTokenDetails(accessToken: string) {\n let tokenDetails = new MPTTokenDetails();\n try {\n const token = accessToken.split('.')[1];\n const _token = Buffer.from(token, 'base64');\n tokenDetails = JSON.parse(_token.toString());\n } catch (err) {\n throw err;\n }\n return tokenDetails;\n }\n */\n\n public static getTokenDetails<T>(accessToken: string, tokenType: TokenType): T {\n const token = accessToken.split(\".\")[1]!;\n const _token = Buffer.from(token, \"base64\");\n const tokenDetails = JSON.parse(_token.toString());\n\n switch (tokenType) {\n case TokenType.MPT:\n return tokenDetails as T;\n case TokenType.ENTRA:\n return tokenDetails as T;\n default:\n throw new Error(\"Unsupported token type\");\n }\n }\n\n public static hasAudienceClaim(token: string): boolean {\n try {\n // Split the token into its three parts\n const parts = token.split(\".\");\n if (parts.length !== 3) {\n throw new Error(\"Invalid token format\");\n }\n\n // Base64 decode the payload\n const payload = parts[1]!;\n const decodedPayload = Buffer.from(payload, \"base64\");\n\n // Parse the decoded payload as JSON\n const payloadObject = JSON.parse(decodedPayload.toString());\n\n // Check if the payload has an 'aud' claim\n return \"aud\" in payloadObject;\n } catch (error) {\n return false;\n }\n }\n\n public static timestampToRFC3339(timestamp: number): string {\n const date = new Date(timestamp);\n const dateString = date.toISOString().replace(/\\.\\d+Z$/, \"Z\");\n return dateString;\n }\n\n public static getFileRelativePath(filePath: string): string {\n if (filePath) {\n let parts = filePath.split(\"/\");\n\n if (parts.length > 1) {\n return parts[parts.length - 1]!;\n }\n\n parts = filePath.split(\"\\\\\");\n\n if (parts.length > 1) {\n return parts[parts.length - 1]!;\n }\n }\n\n return filePath;\n }\n\n public static getReporterBackOffOptions: Partial<IBackOffOptions> = {\n numOfAttempts: 3,\n jitter: \"full\",\n retry: (error) => {\n if (error.response) {\n const status = error.response.status;\n if (Constants.NON_RETRYABLE_STATUS_CODES.includes(status)) {\n return false;\n }\n }\n return true;\n },\n };\n\n // eslint-disable-next-line @azure/azure-sdk/ts-use-interface-parameters\n public static isTimeGreaterThanCurrentPlus10Minutes(sasUri: StorageUri): boolean {\n try {\n const url = new URL(sasUri.uri);\n const params = new URLSearchParams(url.search);\n const expiryTime = params.get(\"se\"); // 'se' is the query parameter for the expiry time\n if (expiryTime) {\n const timestampFromIsoString = new Date(expiryTime).getTime();\n const currentTimestampPlus10Minutes = Date.now() + 10 * 60 * 1000;\n const isSasValidityGreaterThanCurrentTimePlus10Minutes =\n timestampFromIsoString > currentTimestampPlus10Minutes;\n if (!isSasValidityGreaterThanCurrentTimePlus10Minutes) {\n reporterLogger.info(\n `Sas rotation required because close to expiry, SasUriValidTillTime: ${timestampFromIsoString}, CurrentTime: ${currentTimestampPlus10Minutes}`,\n );\n }\n return isSasValidityGreaterThanCurrentTimePlus10Minutes;\n }\n reporterLogger.error(`Sas rotation required because expiry param not found.`);\n return false;\n } catch (error) {\n reporterLogger.error(`Sas rotation required because of ${error}.`);\n return false;\n }\n }\n\n public static getFileSize(attachmentPath: string): number {\n try {\n const stats = fs.statSync(attachmentPath);\n return stats.size;\n } catch (error) {\n return 0;\n }\n }\n\n public static getBufferSize(attachmentBody: Buffer): number {\n try {\n const fileSizeInBytes = attachmentBody.length;\n return fileSizeInBytes;\n } catch (error) {\n return 0;\n }\n }\n\n public redactAccessToken(info: string | undefined): string {\n if (!info || ReporterUtils.isNullOrEmpty(this.envVariables.accessToken)) {\n return \"\";\n }\n const accessTokenRegex = new RegExp(this.envVariables.accessToken, \"g\");\n return info.replace(accessTokenRegex, Constants.DEFAULT_REDACTED_MESSAGE);\n }\n public static getRegionFromAccountID(accountId: string): string | undefined {\n if (accountId.includes(\"_\")) {\n return accountId.split(\"_\")[0]!;\n } else {\n return;\n } // Handling for older workspaces without region in id\n }\n\n public progressBar(current: number, total: number): void {\n const width = 40;\n const percent = current / total;\n const completed = Math.round(width * percent);\n const remaining = width - completed;\n\n if (current % Math.round(total / 5) === 0 || current === total) {\n process.stdout.write(\"\\r\");\n process.stdout.write(\n `[${\"=\".repeat(completed)}${\" \".repeat(remaining)}] ${Math.round(percent * 100)}%`,\n );\n }\n }\n\n private getTestRunConfig(): TestRunConfig {\n const testRunConfig: TestRunConfig = {\n workers: this.getWorkers(),\n pwVersion: this.config.version,\n timeout: this.config.globalTimeout,\n repeatEach: this.config.projects[0].repeatEach,\n retries: this.config.projects[0].retries,\n shards: this.config.shard ? this.config.shard : { total: 1 },\n testFramework: {\n name: Constants.TEST_FRAMEWORK_NAME,\n version: this.config.version,\n runnerName: Constants.TEST_FRAMEWORK_RUNNERNAME,\n },\n testType: Constants.TEST_TYPE,\n testSdkLanguage: Constants.TEST_SDK_LANGUAGE,\n reporterPackageVersion: getPackageVersion(),\n };\n return testRunConfig;\n }\n\n private relativeLocation(location: Location | undefined): Location | undefined {\n if (!location) {\n return undefined;\n }\n const file = this.toPosixPath(path.relative(this.config.rootDir, location.file));\n return {\n file,\n line: location.line,\n column: location.column,\n };\n }\n\n private extractTestTags(input: TestCase): string[] {\n let tags: string[] = [];\n if (\"tags\" in input && Array.isArray(input.tags) && input.tags.length > 0) {\n tags = input.tags.map((tag) => tag.slice(1));\n return tags;\n }\n\n // Check if the input string contains tags directly\n const regex = /@(\\w+)/g;\n const matches = input.title.match(regex);\n if (matches) {\n tags = tags.concat(matches.map((match) => match.slice(1)));\n }\n\n // Try parsing the input string as a JavaScript object\n try {\n const obj = JSON.parse(`{${input}}`);\n if (obj.tag && Array.isArray(obj.tag)) {\n tags = tags.concat(obj.tag);\n }\n } catch (error) {\n // Ignore parsing errors\n }\n return tags;\n }\n\n private extractTestAnnotations(annotations: TestCase[\"annotations\"]): string[] {\n const result = annotations.map((annotation) => {\n if (annotation.type && annotation.description) {\n return `${annotation.type}: ${annotation.description}`;\n }\n return annotation.type;\n });\n return result;\n }\n\n private toPosixPath(aPath: string): string {\n return aPath.split(path.sep).join(path.posix.sep);\n }\n\n private getAttachmentStatus(testResult: TestResult): string {\n let attachmentStatus: string = \"\";\n for (const attachment of testResult.attachments) {\n if (attachment.contentType.includes(\"image\")) {\n if (attachmentStatus !== \"\") {\n attachmentStatus += \",\";\n }\n attachmentStatus += \"image\";\n } else if (attachment.contentType.includes(\"video\")) {\n if (attachmentStatus !== \"\") {\n attachmentStatus += \",\";\n }\n attachmentStatus += \"video\";\n } else if (attachment.contentType === \"application/zip\") {\n if (attachmentStatus !== \"\") {\n attachmentStatus += \",\";\n }\n attachmentStatus += \"trace\";\n } else if (attachment.contentType === \"text/plain\") {\n if (attachmentStatus !== \"\") {\n attachmentStatus += \",\";\n }\n attachmentStatus += \"txt\";\n }\n }\n return attachmentStatus;\n }\n\n private dedupeSteps(steps: TestStep[]): DedupedStep[] {\n const result: DedupedStep[] = [];\n let lastResult = undefined;\n for (const step of steps) {\n const canDedupe =\n !step.error && step.duration >= 0 && step.location?.file && !step.steps.length;\n const lastStep = lastResult?.step;\n if (\n canDedupe &&\n lastResult &&\n lastStep &&\n step.category === lastStep.category &&\n step.title === lastStep.title &&\n step.location?.file === lastStep.location?.file &&\n step.location?.line === lastStep.location?.line &&\n step.location?.column === lastStep.location?.column\n ) {\n ++lastResult.count;\n lastResult.duration += step.duration;\n continue;\n }\n lastResult = { step, count: 1, duration: step.duration };\n result.push(lastResult);\n if (!canDedupe) {\n lastResult = undefined;\n }\n }\n return result;\n }\n\n private serializeTestStep(dedupedStep: DedupedStep): RawTestStep {\n const { step, duration, count } = dedupedStep;\n const result: RawTestStep = {\n title: step.title,\n category: step.category,\n startTime: step.startTime.toISOString(),\n duration,\n error: step.error ? step.error.message : undefined,\n location: this.relativeLocation(step.location),\n steps: this.dedupeSteps(step.steps).map((subStep) => this.serializeTestStep(subStep)),\n count: count,\n };\n return result;\n }\n\n private getTestStatus(test: TestCase, result: TestResult): string {\n if (test.expectedStatus === result.status) {\n if (result.status === \"skipped\") {\n return \"SKIPPED\";\n } else {\n return \"PASSED\";\n }\n } else if (result.status === \"interrupted\") {\n return \"SKIPPED\";\n } else {\n return \"FAILED\";\n }\n }\n\n private extractRootParentTitle(suite: Suite): string | undefined {\n // Traverse through the parent properties until reaching the root parent\n let currentSuite: Suite | undefined = suite;\n let depthCount: number = 0;\n let suiteTitle: string = currentSuite.title;\n const projectName = currentSuite.project()!.name;\n while (currentSuite?.parent && !ReporterUtils.isNullOrEmpty(currentSuite.parent.title)) {\n if (depthCount > 10 || currentSuite.parent.title === projectName) {\n break;\n }\n suiteTitle = suiteTitle + \" > \" + currentSuite.parent.title;\n currentSuite = currentSuite.parent;\n depthCount++;\n }\n return suiteTitle;\n }\n\n private async getRunName(ciInfo: CIInfo): Promise<string> {\n if (\n ciInfo.provider === CI_PROVIDERS.GITHUB &&\n process.env[\"GITHUB_EVENT_NAME\"] === \"pull_request\"\n ) {\n const prNumber: string = `${process.env[\"GITHUB_REF_NAME\"]?.split(\"/\")[0]}`;\n const prLink: string = `${process.env[\"GITHUB_REPOSITORY\"]}/pull/${prNumber}`;\n return `PR# ${prNumber} on Repo: ${process.env[\"GITHUB_REPOSITORY\"]} (${prLink})`;\n }\n\n let gitCommitMessage: string | null = null;\n try {\n const gitVersion = await this.runCommand(Constants.GIT_VERSION_COMMAND);\n if (ReporterUtils.isNullOrEmpty(gitVersion)) {\n throw new Error(\"Git is not installed on the machine\");\n }\n const isInsideWorkTree = await this.runCommand(Constants.GIT_REV_PARSE);\n if (isInsideWorkTree !== \"true\") {\n throw new Error(\"Not inside a git repository\");\n }\n gitCommitMessage = await this.runCommand(Constants.GIT_COMMIT_MESSAGE_COMMAND);\n return gitCommitMessage;\n } catch (err) {\n reporterLogger.error(`\\nError in getting git commit message: ${err}.`);\n return \"\";\n }\n }\n\n private async runCommand(command: string): Promise<string> {\n return new Promise((resolve, reject) => {\n exec(command, (error, stdout, stderr) => {\n if (error) {\n reject(error);\n return;\n }\n if (stderr) {\n reject(new Error(stderr));\n return;\n }\n resolve(stdout.trim());\n });\n });\n }\n\n public static isNullOrEmpty(str: string | null | undefined): boolean {\n return !str || str.trim() === \"\";\n }\n\n private getTestError(result: TestResult): string {\n if (!result.errors || result.errors.length === 0) return \"\";\n const errorMessages: { message: string }[] = [];\n result.errors.forEach((error) => {\n if (error.message) errorMessages.push({ message: error.message });\n if (error.snippet && error.location) {\n errorMessages.push({\n message: error.snippet + \"\\n\\n\" + this.getReadableLineLocation(error.location),\n });\n } else if (error.snippet) errorMessages.push({ message: error.snippet });\n });\n return JSON.stringify(errorMessages, null, 2);\n }\n\n private getReadableLineLocation(location: Location): string {\n return `at ${location.file}:${location.line}:${location.column}`;\n }\n\n private getWorkers(): number {\n if (\n this.config.metadata &&\n \"actualWorkers\" in this.config.metadata &&\n typeof this.config.metadata.actualWorkers === \"number\"\n ) {\n return this.config.metadata.actualWorkers;\n }\n return this.config.workers;\n }\n}\n\nexport default ReporterUtils;\n"]}
@@ -0,0 +1,25 @@
1
+ import type { FullResult } from "@playwright/test/reporter";
2
+ import type { EnvironmentVariables } from "../common/environmentVariables.js";
3
+ import type { Shard, UploadMetadata } from "../model/shard.js";
4
+ import type { StorageUri } from "../model/storageUri.js";
5
+ import type { TestResult } from "../model/testResult.js";
6
+ import type { TestRun } from "../model/testRun.js";
7
+ import type { CIInfo } from "./cIInfoProvider.js";
8
+ import type ReporterUtils from "./reporterUtils.js";
9
+ export declare class ServiceClient {
10
+ private httpService;
11
+ private readonly envVariables;
12
+ private readonly reporterUtils;
13
+ private readonly addInformationalMessage;
14
+ private isInformationMessagePresent;
15
+ private addKeyToInformationMessage;
16
+ constructor(envVariables: EnvironmentVariables, reporterUtils: ReporterUtils, addErrorInformation: (errorMessage: string) => void, isInformationMessagePresent: (key: string) => boolean, addKeyToInformationMessage: (key: string) => void);
17
+ patchTestRun(ciInfo: CIInfo): Promise<TestRun>;
18
+ postTestRunShardStart(): Promise<Shard>;
19
+ postTestRunShardEnd(result: FullResult, shard: Shard, errorMessages: string[], attachmentMetadata: UploadMetadata, workers: number): Promise<TestRun>;
20
+ postTestResults(testResults: TestResult[]): Promise<void>;
21
+ createStorageUri(): Promise<StorageUri>;
22
+ private getServiceEndpoint;
23
+ private handleErrorResponse;
24
+ }
25
+ //# sourceMappingURL=serviceClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serviceClient.d.ts","sourceRoot":"","sources":["../../../src/utils/serviceClient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AAIpD,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuB;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAiC;IACzE,OAAO,CAAC,2BAA2B,CAA2B;IAC9D,OAAO,CAAC,0BAA0B,CAAwB;gBAGxD,YAAY,EAAE,oBAAoB,EAClC,aAAa,EAAE,aAAa,EAE5B,mBAAmB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,EACnD,2BAA2B,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,EACrD,0BAA0B,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI;IAU7C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmC9C,qBAAqB,IAAI,OAAO,CAAC,KAAK,CAAC;IAqBvC,mBAAmB,CACvB,MAAM,EAAE,UAAU,EAElB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,MAAM,EAAE,EACvB,kBAAkB,EAAE,cAAc,EAClC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC;IA4Bb,eAAe,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBzD,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC;IAkB7C,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,mBAAmB;CAS5B"}
@@ -3,16 +3,16 @@
3
3
  // Licensed under the MIT License.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.ServiceClient = void 0;
6
- const constants_1 = require("../common/constants");
7
- const httpService_1 = require("../common/httpService");
8
- const logger_1 = require("../common/logger");
6
+ const constants_js_1 = require("../common/constants.js");
7
+ const httpService_js_1 = require("../common/httpService.js");
8
+ const logger_js_1 = require("../common/logger.js");
9
9
  class ServiceClient {
10
10
  constructor(
11
11
  /* eslint-disable @azure/azure-sdk/ts-use-interface-parameters */
12
12
  envVariables, reporterUtils,
13
13
  /* eslint-enable @azure/azure-sdk/ts-use-interface-parameters */
14
14
  addErrorInformation, isInformationMessagePresent, addKeyToInformationMessage) {
15
- this.httpService = new httpService_1.HttpService();
15
+ this.httpService = new httpService_js_1.HttpService();
16
16
  this.envVariables = envVariables;
17
17
  this.reporterUtils = reporterUtils;
18
18
  this.addInformationalMessage = addErrorInformation;
@@ -23,33 +23,33 @@ class ServiceClient {
23
23
  const testRun = await this.reporterUtils.getTestRunObject(ciInfo);
24
24
  // Escape the runId to avoid issues with special characters
25
25
  const escapedRunId = encodeURIComponent(this.envVariables.runId);
26
- const response = await this.httpService.callAPI("PATCH", `${this.getServiceEndpoint()}/${constants_1.Constants.testRunsEndpoint.replace("{workspaceId}", this.envVariables.accountId)}/${escapedRunId}?api-version=${constants_1.Constants.API_VERSION}`, JSON.stringify(testRun), this.envVariables.accessToken, "application/merge-patch+json", this.envVariables.correlationId);
26
+ const response = await this.httpService.callAPI("PATCH", `${this.getServiceEndpoint()}/${constants_js_1.Constants.testRunsEndpoint.replace("{workspaceId}", this.envVariables.accountId)}/${escapedRunId}?api-version=${constants_js_1.Constants.API_VERSION}`, JSON.stringify(testRun), this.envVariables.accessToken, "application/merge-patch+json", this.envVariables.correlationId);
27
27
  if (response.status === 200) {
28
28
  return JSON.parse(response.bodyAsText);
29
29
  }
30
30
  else if (response.status === 409) {
31
- const errorMessage = constants_1.Constants.CONFLICT_409_ERROR_MESSAGE.replace("{runId}", this.envVariables.runId);
31
+ const errorMessage = constants_js_1.Constants.CONFLICT_409_ERROR_MESSAGE.replace("{runId}", this.envVariables.runId);
32
32
  this.addInformationalMessage(errorMessage);
33
33
  process.stdout.write(`\n${errorMessage}`);
34
34
  }
35
35
  else if (response.status === 403) {
36
- const errorMessage = constants_1.Constants.FORBIDDEN_403_ERROR_MESSAGE.replace(new RegExp("{workspaceId}", "g"), this.envVariables.accountId);
36
+ const errorMessage = constants_js_1.Constants.FORBIDDEN_403_ERROR_MESSAGE.replace(new RegExp("{workspaceId}", "g"), this.envVariables.accountId);
37
37
  this.addInformationalMessage(errorMessage);
38
38
  process.stdout.write(`\n${errorMessage}`);
39
39
  }
40
40
  else {
41
- this.handleErrorResponse(response, constants_1.Constants.patchTestRun);
41
+ this.handleErrorResponse(response, constants_js_1.Constants.patchTestRun);
42
42
  }
43
43
  throw new Error(`Received status ${response.status} from service from PATCH TestRun call.`);
44
44
  }
45
45
  async postTestRunShardStart() {
46
46
  const postTestRunShardObject = this.reporterUtils.getTestRunShardStartObject();
47
47
  const escapedRunId = encodeURIComponent(this.envVariables.runId);
48
- const response = await this.httpService.callAPI("POST", `${this.getServiceEndpoint()}/${constants_1.Constants.testRunsShardEndpoint.replace("{workspaceId}", this.envVariables.accountId).replace("{testRunId}", escapedRunId)}/?api-version=${constants_1.Constants.API_VERSION}`, JSON.stringify(postTestRunShardObject), this.envVariables.accessToken, "application/json", this.envVariables.correlationId);
48
+ const response = await this.httpService.callAPI("POST", `${this.getServiceEndpoint()}/${constants_js_1.Constants.testRunsShardEndpoint.replace("{workspaceId}", this.envVariables.accountId).replace("{testRunId}", escapedRunId)}/?api-version=${constants_js_1.Constants.API_VERSION}`, JSON.stringify(postTestRunShardObject), this.envVariables.accessToken, "application/json", this.envVariables.correlationId);
49
49
  if (response.status === 200) {
50
50
  return JSON.parse(response.bodyAsText);
51
51
  }
52
- this.handleErrorResponse(response, constants_1.Constants.patchTestRunShardStart);
52
+ this.handleErrorResponse(response, constants_js_1.Constants.patchTestRunShardStart);
53
53
  throw new Error(`Received status ${response.status} from service from PATCH TestRun Shard Start call.`);
54
54
  }
55
55
  async postTestRunShardEnd(result,
@@ -57,11 +57,11 @@ class ServiceClient {
57
57
  shard, errorMessages, attachmentMetadata, workers) {
58
58
  const postTestRunShardObject = this.reporterUtils.getTestRunShardEndObject(result, shard, errorMessages, attachmentMetadata, workers);
59
59
  const escapedRunId = encodeURIComponent(this.envVariables.runId);
60
- const response = await this.httpService.callAPI("POST", `${this.getServiceEndpoint()}/${constants_1.Constants.testRunsShardEndpoint.replace("{workspaceId}", this.envVariables.accountId).replace("{testRunId}", escapedRunId)}/?api-version=${constants_1.Constants.API_VERSION}`, JSON.stringify(postTestRunShardObject), this.envVariables.accessToken, "application/json", this.envVariables.correlationId);
60
+ const response = await this.httpService.callAPI("POST", `${this.getServiceEndpoint()}/${constants_js_1.Constants.testRunsShardEndpoint.replace("{workspaceId}", this.envVariables.accountId).replace("{testRunId}", escapedRunId)}/?api-version=${constants_js_1.Constants.API_VERSION}`, JSON.stringify(postTestRunShardObject), this.envVariables.accessToken, "application/json", this.envVariables.correlationId);
61
61
  if (response.status === 200) {
62
62
  return JSON.parse(response.bodyAsText);
63
63
  }
64
- this.handleErrorResponse(response, constants_1.Constants.patchTestRunShardEnd);
64
+ this.handleErrorResponse(response, constants_js_1.Constants.patchTestRunShardEnd);
65
65
  throw new Error(`Received status ${response.status} from service from PATCH TestRun Shard End call.`);
66
66
  }
67
67
  // eslint-disable-next-line @azure/azure-sdk/ts-use-interface-parameters
@@ -70,32 +70,32 @@ class ServiceClient {
70
70
  const payload = {
71
71
  value: testResults,
72
72
  };
73
- const response = await this.httpService.callAPI("POST", `${this.getServiceEndpoint()}/${constants_1.Constants.testResultsEndpoint.replace("{workspaceId}", this.envVariables.accountId)}?api-version=${constants_1.Constants.API_VERSION}`, JSON.stringify(payload), this.envVariables.accessToken, "application/json", this.envVariables.correlationId);
73
+ const response = await this.httpService.callAPI("POST", `${this.getServiceEndpoint()}/${constants_js_1.Constants.testResultsEndpoint.replace("{workspaceId}", this.envVariables.accountId)}?api-version=${constants_js_1.Constants.API_VERSION}`, JSON.stringify(payload), this.envVariables.accessToken, "application/json", this.envVariables.correlationId);
74
74
  if (response.status === 200) {
75
75
  return;
76
76
  }
77
- this.handleErrorResponse(response, constants_1.Constants.postTestResults);
77
+ this.handleErrorResponse(response, constants_js_1.Constants.postTestResults);
78
78
  }
79
79
  catch (error) {
80
- logger_1.reporterLogger.error(`Error occurred while posting test results: ${error}`);
80
+ logger_js_1.reporterLogger.error(`Error occurred while posting test results: ${error}`);
81
81
  }
82
82
  }
83
83
  async createStorageUri() {
84
84
  const escapedRunId = encodeURIComponent(this.envVariables.runId);
85
- const response = await this.httpService.callAPI("POST", `${this.getServiceEndpoint()}/${constants_1.Constants.storageUriEndpoint.replace("{workspaceId}", this.envVariables.accountId).replace("{testRunId}", escapedRunId)}?api-version=${constants_1.Constants.API_VERSION}`, null, this.envVariables.accessToken, "application/json", this.envVariables.correlationId);
85
+ const response = await this.httpService.callAPI("POST", `${this.getServiceEndpoint()}/${constants_js_1.Constants.storageUriEndpoint.replace("{workspaceId}", this.envVariables.accountId).replace("{testRunId}", escapedRunId)}?api-version=${constants_js_1.Constants.API_VERSION}`, null, this.envVariables.accessToken, "application/json", this.envVariables.correlationId);
86
86
  if (response.status === 200) {
87
87
  return JSON.parse(response.bodyAsText);
88
88
  }
89
- this.handleErrorResponse(response, constants_1.Constants.getStorageUri);
89
+ this.handleErrorResponse(response, constants_js_1.Constants.getStorageUri);
90
90
  throw new Error(`Received status ${response.status} from service from GET StorageUri call.`);
91
91
  }
92
92
  getServiceEndpoint() {
93
- return process.env[constants_1.InternalEnvironmentVariables.MPT_SERVICE_REPORTING_URL];
93
+ return process.env[constants_js_1.InternalEnvironmentVariables.MPT_SERVICE_REPORTING_URL];
94
94
  }
95
95
  handleErrorResponse(response, action) {
96
96
  var _a, _b;
97
97
  const statusCode = response.status;
98
- const errorMessage = (_b = (_a = constants_1.Constants.ERROR_MESSAGE[action]) === null || _a === void 0 ? void 0 : _a[statusCode]) !== null && _b !== void 0 ? _b : "Unknown error occured.";
98
+ const errorMessage = (_b = (_a = constants_js_1.Constants.ERROR_MESSAGE[action]) === null || _a === void 0 ? void 0 : _a[statusCode]) !== null && _b !== void 0 ? _b : "Unknown error occured.";
99
99
  if (!this.isInformationMessagePresent(statusCode.toString())) {
100
100
  this.addKeyToInformationMessage(statusCode.toString());
101
101
  this.addInformationalMessage(errorMessage);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serviceClient.js","sourceRoot":"","sources":["../../../src/utils/serviceClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { FullResult } from \"@playwright/test/reporter\";\nimport { Constants, InternalEnvironmentVariables } from \"../common/constants.js\";\nimport type { EnvironmentVariables } from \"../common/environmentVariables.js\";\nimport { HttpService } from \"../common/httpService.js\";\nimport type { Shard, UploadMetadata } from \"../model/shard.js\";\nimport type { StorageUri } from \"../model/storageUri.js\";\nimport type { TestResult } from \"../model/testResult.js\";\nimport type { TestRun } from \"../model/testRun.js\";\nimport type { CIInfo } from \"./cIInfoProvider.js\";\nimport type ReporterUtils from \"./reporterUtils.js\";\nimport type { PipelineResponse } from \"@azure/core-rest-pipeline\";\nimport { reporterLogger } from \"../common/logger.js\";\n\nexport class ServiceClient {\n private httpService: HttpService;\n private readonly envVariables: EnvironmentVariables;\n private readonly reporterUtils: ReporterUtils;\n private readonly addInformationalMessage: (errorMessage: string) => void;\n private isInformationMessagePresent: (key: string) => boolean;\n private addKeyToInformationMessage: (key: string) => void;\n constructor(\n /* eslint-disable @azure/azure-sdk/ts-use-interface-parameters */\n envVariables: EnvironmentVariables,\n reporterUtils: ReporterUtils,\n /* eslint-enable @azure/azure-sdk/ts-use-interface-parameters */\n addErrorInformation: (errorMessage: string) => void,\n isInformationMessagePresent: (key: string) => boolean,\n addKeyToInformationMessage: (key: string) => void,\n ) {\n this.httpService = new HttpService();\n this.envVariables = envVariables;\n this.reporterUtils = reporterUtils;\n this.addInformationalMessage = addErrorInformation;\n this.isInformationMessagePresent = isInformationMessagePresent;\n this.addKeyToInformationMessage = addKeyToInformationMessage;\n }\n\n async patchTestRun(ciInfo: CIInfo): Promise<TestRun> {\n const testRun = await this.reporterUtils.getTestRunObject(ciInfo);\n\n // Escape the runId to avoid issues with special characters\n const escapedRunId = encodeURIComponent(this.envVariables.runId!);\n const response: PipelineResponse = await this.httpService.callAPI(\n \"PATCH\",\n `${this.getServiceEndpoint()}/${Constants.testRunsEndpoint.replace(\"{workspaceId}\", this.envVariables.accountId!)}/${escapedRunId}?api-version=${Constants.API_VERSION}`,\n JSON.stringify(testRun),\n this.envVariables.accessToken,\n \"application/merge-patch+json\",\n this.envVariables.correlationId!,\n );\n if (response.status === 200) {\n return JSON.parse(response.bodyAsText!) as TestRun;\n } else if (response.status === 409) {\n const errorMessage = Constants.CONFLICT_409_ERROR_MESSAGE.replace(\n \"{runId}\",\n this.envVariables.runId,\n );\n this.addInformationalMessage(errorMessage);\n process.stdout.write(`\\n${errorMessage}`);\n } else if (response.status === 403) {\n const errorMessage = Constants.FORBIDDEN_403_ERROR_MESSAGE.replace(\n new RegExp(\"{workspaceId}\", \"g\"),\n this.envVariables.accountId!,\n );\n this.addInformationalMessage(errorMessage);\n process.stdout.write(`\\n${errorMessage}`);\n } else {\n this.handleErrorResponse(response, Constants.patchTestRun);\n }\n throw new Error(`Received status ${response.status} from service from PATCH TestRun call.`);\n }\n\n async postTestRunShardStart(): Promise<Shard> {\n const postTestRunShardObject = this.reporterUtils.getTestRunShardStartObject();\n const escapedRunId = encodeURIComponent(this.envVariables.runId!);\n const response: PipelineResponse = await this.httpService.callAPI(\n \"POST\",\n `${this.getServiceEndpoint()}/${Constants.testRunsShardEndpoint.replace(\"{workspaceId}\", this.envVariables.accountId!).replace(\"{testRunId}\", escapedRunId)}/?api-version=${Constants.API_VERSION}`,\n JSON.stringify(postTestRunShardObject),\n this.envVariables.accessToken,\n \"application/json\",\n this.envVariables.correlationId!,\n );\n if (response.status === 200) {\n return JSON.parse(response.bodyAsText!) as Shard;\n }\n this.handleErrorResponse(response, Constants.patchTestRunShardStart);\n\n throw new Error(\n `Received status ${response.status} from service from PATCH TestRun Shard Start call.`,\n );\n }\n\n async postTestRunShardEnd(\n result: FullResult,\n // eslint-disable-next-line @azure/azure-sdk/ts-use-interface-parameters\n shard: Shard,\n errorMessages: string[],\n attachmentMetadata: UploadMetadata,\n workers: number,\n ): Promise<TestRun> {\n const postTestRunShardObject = this.reporterUtils.getTestRunShardEndObject(\n result,\n shard,\n errorMessages,\n attachmentMetadata,\n workers,\n );\n const escapedRunId = encodeURIComponent(this.envVariables.runId!);\n const response: PipelineResponse = await this.httpService.callAPI(\n \"POST\",\n `${this.getServiceEndpoint()}/${Constants.testRunsShardEndpoint.replace(\"{workspaceId}\", this.envVariables.accountId!).replace(\"{testRunId}\", escapedRunId)}/?api-version=${Constants.API_VERSION}`,\n JSON.stringify(postTestRunShardObject),\n this.envVariables.accessToken,\n \"application/json\",\n this.envVariables.correlationId!,\n );\n if (response.status === 200) {\n return JSON.parse(response.bodyAsText!) as TestRun;\n }\n this.handleErrorResponse(response, Constants.patchTestRunShardEnd);\n\n throw new Error(\n `Received status ${response.status} from service from PATCH TestRun Shard End call.`,\n );\n }\n\n // eslint-disable-next-line @azure/azure-sdk/ts-use-interface-parameters\n async postTestResults(testResults: TestResult[]): Promise<void> {\n try {\n const payload: any = {\n value: testResults,\n };\n const response: PipelineResponse = await this.httpService.callAPI(\n \"POST\",\n `${this.getServiceEndpoint()}/${Constants.testResultsEndpoint.replace(\"{workspaceId}\", this.envVariables.accountId!)}?api-version=${Constants.API_VERSION}`,\n JSON.stringify(payload),\n this.envVariables.accessToken,\n \"application/json\",\n this.envVariables.correlationId!,\n );\n if (response.status === 200) {\n return;\n }\n this.handleErrorResponse(response, Constants.postTestResults);\n } catch (error) {\n reporterLogger.error(`Error occurred while posting test results: ${error}`);\n }\n }\n\n async createStorageUri(): Promise<StorageUri> {\n const escapedRunId = encodeURIComponent(this.envVariables.runId!);\n const response: PipelineResponse = await this.httpService.callAPI(\n \"POST\",\n `${this.getServiceEndpoint()}/${Constants.storageUriEndpoint.replace(\"{workspaceId}\", this.envVariables.accountId!).replace(\"{testRunId}\", escapedRunId)}?api-version=${Constants.API_VERSION}`,\n null,\n this.envVariables.accessToken,\n \"application/json\",\n this.envVariables.correlationId!,\n );\n if (response.status === 200) {\n return JSON.parse(response.bodyAsText!) as StorageUri;\n }\n this.handleErrorResponse(response, Constants.getStorageUri);\n\n throw new Error(`Received status ${response.status} from service from GET StorageUri call.`);\n }\n\n private getServiceEndpoint(): string {\n return process.env[InternalEnvironmentVariables.MPT_SERVICE_REPORTING_URL]!;\n }\n\n private handleErrorResponse(response: PipelineResponse, action: string): void {\n const statusCode = response.status;\n const errorMessage = Constants.ERROR_MESSAGE[action]?.[statusCode] ?? \"Unknown error occured.\";\n if (!this.isInformationMessagePresent(statusCode.toString())) {\n this.addKeyToInformationMessage(statusCode.toString());\n this.addInformationalMessage(errorMessage);\n }\n process.stdout.write(`${errorMessage}\\n`);\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ export declare class StorageClient {
2
+ uploadFile(uri: string, filePath: string, fileRelativePath: string): Promise<void>;
3
+ uploadBuffer(uri: string, buffer: string, fileRelativePath: string): Promise<void>;
4
+ private getCloudFilepath;
5
+ }
6
+ //# sourceMappingURL=storageClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storageClient.d.ts","sourceRoot":"","sources":["../../../src/utils/storageClient.ts"],"names":[],"mappings":"AAOA,qBAAa,aAAa;IACX,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAalF,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa/F,OAAO,CAAC,gBAAgB;CAOzB"}
@@ -4,18 +4,18 @@
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.StorageClient = void 0;
6
6
  const storage_blob_1 = require("@azure/storage-blob");
7
- const logger_1 = require("../common/logger");
8
- const constants_1 = require("../common/constants");
7
+ const logger_js_1 = require("../common/logger.js");
8
+ const constants_js_1 = require("../common/constants.js");
9
9
  class StorageClient {
10
10
  async uploadFile(uri, filePath, fileRelativePath) {
11
11
  try {
12
12
  const cloudFilepath = this.getCloudFilepath(uri, fileRelativePath);
13
13
  const blobClient = new storage_blob_1.BlockBlobClient(cloudFilepath);
14
14
  await blobClient.uploadFile(filePath, { concurrency: 10 });
15
- logger_1.reporterLogger.info(`\nUploaded file ${filePath}.`);
15
+ logger_js_1.reporterLogger.info(`\nUploaded file ${filePath}.`);
16
16
  }
17
17
  catch (err) {
18
- logger_1.reporterLogger.error(`\nUnable to upload file ${filePath}, Name: ${err.name}, Message: ${err.message}, Stack: ${err.stack}`);
18
+ logger_js_1.reporterLogger.error(`\nUnable to upload file ${filePath}, Name: ${err.name}, Message: ${err.message}, Stack: ${err.stack}`);
19
19
  }
20
20
  }
21
21
  async uploadBuffer(uri, buffer, fileRelativePath) {
@@ -23,15 +23,15 @@ class StorageClient {
23
23
  const cloudFilepath = this.getCloudFilepath(uri, fileRelativePath);
24
24
  const blobClient = new storage_blob_1.BlockBlobClient(cloudFilepath);
25
25
  await blobClient.upload(buffer, buffer.length);
26
- logger_1.reporterLogger.verbose(`\nUploaded buffer to ${fileRelativePath}.`);
26
+ logger_js_1.reporterLogger.verbose(`\nUploaded buffer to ${fileRelativePath}.`);
27
27
  }
28
28
  catch (err) {
29
- logger_1.reporterLogger.error(`\nUnable to upload buffer ${fileRelativePath}, Name: ${err.name}, Message: ${err.message}, Stack: ${err.stack}`);
29
+ logger_js_1.reporterLogger.error(`\nUnable to upload buffer ${fileRelativePath}, Name: ${err.name}, Message: ${err.message}, Stack: ${err.stack}`);
30
30
  }
31
31
  }
32
32
  getCloudFilepath(uri, fileRelativePath) {
33
33
  // Split the uri on "?" to get the container uri and sas token
34
- const parts = uri.split(constants_1.Constants.SAS_URI_SEPARATOR);
34
+ const parts = uri.split(constants_js_1.Constants.SAS_URI_SEPARATOR);
35
35
  const containerUri = parts[0];
36
36
  const sasToken = parts[1];
37
37
  return containerUri + "/" + fileRelativePath + "?" + sasToken;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storageClient.js","sourceRoot":"","sources":["../../../src/utils/storageClient.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,sDAAsD;AACtD,mDAAqD;AACrD,yDAAmD;AAEnD,MAAa,aAAa;IACjB,KAAK,CAAC,UAAU,CAAC,GAAW,EAAE,QAAgB,EAAE,gBAAwB;QAC7E,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;YACnE,MAAM,UAAU,GAAG,IAAI,8BAAe,CAAC,aAAa,CAAC,CAAC;YACtD,MAAM,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3D,0BAAc,CAAC,IAAI,CAAC,mBAAmB,QAAQ,GAAG,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,0BAAc,CAAC,KAAK,CAClB,2BAA2B,QAAQ,WAAW,GAAG,CAAC,IAAI,cAAc,GAAG,CAAC,OAAO,YAAY,GAAG,CAAC,KAAK,EAAE,CACvG,CAAC;QACJ,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,MAAc,EAAE,gBAAwB;QAC7E,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;YACnE,MAAM,UAAU,GAAG,IAAI,8BAAe,CAAC,aAAa,CAAC,CAAC;YACtD,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/C,0BAAc,CAAC,OAAO,CAAC,wBAAwB,gBAAgB,GAAG,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,0BAAc,CAAC,KAAK,CAClB,6BAA6B,gBAAgB,WAAW,GAAG,CAAC,IAAI,cAAc,GAAG,CAAC,OAAO,YAAY,GAAG,CAAC,KAAK,EAAE,CACjH,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,GAAW,EAAE,gBAAwB;QAC5D,8DAA8D;QAC9D,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,wBAAS,CAAC,iBAAiB,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,OAAO,YAAY,GAAG,GAAG,GAAG,gBAAgB,GAAG,GAAG,GAAG,QAAQ,CAAC;IAChE,CAAC;CACF;AAlCD,sCAkCC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { BlockBlobClient } from \"@azure/storage-blob\";\nimport { reporterLogger } from \"../common/logger.js\";\nimport { Constants } from \"../common/constants.js\";\n\nexport class StorageClient {\n public async uploadFile(uri: string, filePath: string, fileRelativePath: string): Promise<void> {\n try {\n const cloudFilepath = this.getCloudFilepath(uri, fileRelativePath);\n const blobClient = new BlockBlobClient(cloudFilepath);\n await blobClient.uploadFile(filePath, { concurrency: 10 });\n reporterLogger.info(`\\nUploaded file ${filePath}.`);\n } catch (err: any) {\n reporterLogger.error(\n `\\nUnable to upload file ${filePath}, Name: ${err.name}, Message: ${err.message}, Stack: ${err.stack}`,\n );\n }\n }\n\n public async uploadBuffer(uri: string, buffer: string, fileRelativePath: string): Promise<void> {\n try {\n const cloudFilepath = this.getCloudFilepath(uri, fileRelativePath);\n const blobClient = new BlockBlobClient(cloudFilepath);\n await blobClient.upload(buffer, buffer.length);\n reporterLogger.verbose(`\\nUploaded buffer to ${fileRelativePath}.`);\n } catch (err: any) {\n reporterLogger.error(\n `\\nUnable to upload buffer ${fileRelativePath}, Name: ${err.name}, Message: ${err.message}, Stack: ${err.stack}`,\n );\n }\n }\n\n private getCloudFilepath(uri: string, fileRelativePath: string): string {\n // Split the uri on \"?\" to get the container uri and sas token\n const parts = uri.split(Constants.SAS_URI_SEPARATOR);\n const containerUri = parts[0];\n const sasToken = parts[1];\n return containerUri + \"/\" + fileRelativePath + \"?\" + sasToken;\n }\n}\n"]}