@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
@@ -0,0 +1,95 @@
1
+ import type { ApiErrorMessage } from "./types.js";
2
+ export declare const EntraIdAccessTokenConstants: {
3
+ LIFETIME_LEFT_THRESHOLD_IN_MINUTES_FOR_ROTATION: number;
4
+ SCOPE: string;
5
+ ROTATION_INTERVAL_PERIOD_IN_MINUTES: number;
6
+ };
7
+ /** @public
8
+ *
9
+ * OS types supported on Microsoft Playwright Testing cloud hosted browsers
10
+ */
11
+ export declare const ServiceOS: {
12
+ readonly LINUX: "linux";
13
+ readonly WINDOWS: "windows";
14
+ };
15
+ /** @public
16
+ *
17
+ * Authentication types supported on Microsoft Playwright Testing
18
+ */
19
+ export declare const ServiceAuth: {
20
+ readonly ENTRA_ID: "ENTRA_ID";
21
+ readonly ACCESS_TOKEN: "ACCESS_TOKEN";
22
+ };
23
+ /** @public
24
+ *
25
+ * Environment variables used by Microsoft Playwright Testing
26
+ */
27
+ export declare const ServiceEnvironmentVariable: {
28
+ PLAYWRIGHT_SERVICE_ACCESS_TOKEN: string;
29
+ PLAYWRIGHT_SERVICE_URL: string;
30
+ };
31
+ export declare const DefaultConnectOptionsConstants: {
32
+ DEFAULT_TIMEOUT: number;
33
+ DEFAULT_SLOW_MO: number;
34
+ DEFAULT_EXPOSE_NETWORK: string;
35
+ DEFAULT_SERVICE_OS: "linux";
36
+ };
37
+ export declare const API_VERSION = "2023-10-01-preview";
38
+ export declare class Constants {
39
+ static readonly TEST_FRAMEWORK_NAME = "PLAYWRIGHT";
40
+ static readonly TEST_FRAMEWORK_RUNNERNAME = "PLAYWRIGHT";
41
+ static readonly TEST_TYPE = "WebTest";
42
+ static readonly TEST_SDK_LANGUAGE = "JAVASCRIPT";
43
+ static readonly DEFAULT_DASHBOARD_ENDPOINT = "https://playwright.microsoft.com";
44
+ static readonly DEFAULT_SERVICE_ENDPOINT = "https://{region}.reporting.api.playwright-test.io";
45
+ static readonly DEFAULT_REDACTED_MESSAGE = "***REDACTED***";
46
+ static readonly SAS_URI_SEPARATOR = "?";
47
+ static readonly DEFAULT_TEST_RUN_NAME = "MPTReporterTests";
48
+ static readonly TEST_BATCH_SIZE = 50;
49
+ static readonly UPLOAD_MODE = "sdk";
50
+ static readonly GIT_VERSION_COMMAND = "git --version";
51
+ static readonly GIT_REV_PARSE = "git rev-parse --is-inside-work-tree";
52
+ static readonly GIT_COMMIT_MESSAGE_COMMAND = "git log -1 --pretty=format:\"%s\"";
53
+ static readonly ERROR_MESSAGES_MAX_LENGTH = 100;
54
+ static readonly sevenDaysInMs: number;
55
+ static readonly oneDayInMs: number;
56
+ static readonly API_VERSION = "2024-09-01-preview";
57
+ static readonly OS = "Os";
58
+ static readonly NON_RETRYABLE_STATUS_CODES: number[];
59
+ static readonly SupportedRegions: string[];
60
+ static readonly CONFLICT_409_ERROR_MESSAGE = "Test run with id {runId} already exists. Provide a unique run id.";
61
+ static readonly FORBIDDEN_403_ERROR_MESSAGE = "You do not have the required permissions to upload test results. This could be because\n\n a. Reporting is not enabled for your workspace {workspaceId}. Enable the Reporting feature under Feature management settings using the Playwright portal: https://playwright.microsoft.com/workspaces/{workspaceId}/settings/general\n b. You do not have the required roles on the workspace. Only Owner and Contributor roles can run tests. Contact the service administrator.\n c. The workspace you are trying to run the tests on is in a different Azure tenant than what you are signed into. Check the tenant id from Azure portal (https://aka.ms/mpt/find-tenant-id) and login using the command 'az login --tenant <TENANT_ID>\n ";
62
+ static readonly testRunsEndpoint: string;
63
+ static readonly testRunsShardEndpoint: string;
64
+ static readonly storageUriEndpoint: string;
65
+ static readonly testResultsEndpoint: string;
66
+ static readonly patchTestRun: string;
67
+ static readonly getTestRun: string;
68
+ static readonly patchTestRunShardStart: string;
69
+ static readonly patchTestRunShardEnd: string;
70
+ static readonly postTestResults: string;
71
+ static readonly getStorageUri: string;
72
+ static readonly ERROR_MESSAGE: ApiErrorMessage;
73
+ }
74
+ export declare const TestErrorType: {
75
+ Scalable: string;
76
+ Reporting: string;
77
+ };
78
+ export declare const TestResultErrorConstants: {
79
+ key: string;
80
+ message: string;
81
+ pattern: RegExp;
82
+ type: string;
83
+ }[];
84
+ export declare const InternalEnvironmentVariables: {
85
+ MPT_PLAYWRIGHT_VERSION: string;
86
+ MPT_SETUP_FATAL_ERROR: string;
87
+ MPT_SERVICE_RUN_NAME: string;
88
+ MPT_SERVICE_RUN_ID: string;
89
+ MPT_CLOUD_HOSTED_BROWSER_USED: string;
90
+ MPT_SERVICE_OS: string;
91
+ MPT_SERVICE_REPORTING_URL: string;
92
+ ONE_TIME_OPERATION_FLAG: string;
93
+ };
94
+ export declare const MINIMUM_SUPPORTED_PLAYWRIGHT_VERSION = "1.47.0";
95
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/common/constants.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,2BAA2B;;;;CAIvC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS;;;CAGZ,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,WAAW;;;CAGd,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;CAGtC,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;CAK1C,CAAC;AAEF,eAAO,MAAM,WAAW,uBAAuB,CAAC;AAKhD,qBAAa,SAAS;IAEpB,gBAAuB,mBAAmB,gBAAgB;IAC1D,gBAAuB,yBAAyB,gBAAgB;IAChE,gBAAuB,SAAS,aAAa;IAC7C,gBAAuB,iBAAiB,gBAAgB;IAExD,gBAAuB,0BAA0B,sCAAsC;IACvF,gBAAuB,wBAAwB,uDACO;IACtD,gBAAuB,wBAAwB,oBAAoB;IACnE,gBAAuB,iBAAiB,OAAO;IAC/C,gBAAuB,qBAAqB,sBAAsB;IAClE,gBAAuB,eAAe,MAAM;IAC5C,gBAAuB,WAAW,SAAS;IAC3C,gBAAuB,mBAAmB,mBAAmB;IAC7D,gBAAuB,aAAa,yCAAyC;IAC7E,gBAAuB,0BAA0B,uCAAqC;IACtF,gBAAuB,yBAAyB,OAAO;IACvD,gBAAuB,aAAa,SAA2B;IAC/D,gBAAuB,UAAU,SAAuB;IACxD,gBAAuB,WAAW,wBAAwB;IAC1D,gBAAuB,EAAE,QAAQ;IACjC,gBAAuB,0BAA0B,WAA6B;IAC9E,gBAAuB,gBAAgB,EAAE,MAAM,EAAE,CAO/C;IAEF,gBAAuB,0BAA0B,uEACqB;IACtE,gBAAuB,2BAA2B,ktBAKhD;IAEF,gBAAuB,gBAAgB,EAAE,MAAM,CAAwC;IACvF,gBAAuB,qBAAqB,EAAE,MAAM,CAC0B;IAC9E,gBAAuB,kBAAkB,EAAE,MAAM,CAC+B;IAChF,gBAAuB,mBAAmB,EAAE,MAAM,CACK;IACvD,gBAAuB,YAAY,EAAE,MAAM,CAAkB;IAC7D,gBAAuB,UAAU,EAAE,MAAM,CAAgB;IACzD,gBAAuB,sBAAsB,EAAE,MAAM,CAA4B;IACjF,gBAAuB,oBAAoB,EAAE,MAAM,CAA0B;IAC7E,gBAAuB,eAAe,EAAE,MAAM,CAAqB;IACnE,gBAAuB,aAAa,EAAE,MAAM,CAAmB;IAC/D,gBAAuB,aAAa,EAAE,eAAe,CAsDnD;CACH;AAED,eAAO,MAAM,aAAa;;;CAGzB,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;GAwEpC,CAAC;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;CASxC,CAAC;AAEF,eAAO,MAAM,oCAAoC,WAAW,CAAC"}
@@ -0,0 +1,226 @@
1
+ export const EntraIdAccessTokenConstants = {
2
+ LIFETIME_LEFT_THRESHOLD_IN_MINUTES_FOR_ROTATION: 15,
3
+ SCOPE: "https://management.core.windows.net/.default",
4
+ ROTATION_INTERVAL_PERIOD_IN_MINUTES: 4,
5
+ };
6
+ /** @public
7
+ *
8
+ * OS types supported on Microsoft Playwright Testing cloud hosted browsers
9
+ */
10
+ export const ServiceOS = {
11
+ LINUX: "linux",
12
+ WINDOWS: "windows",
13
+ };
14
+ /** @public
15
+ *
16
+ * Authentication types supported on Microsoft Playwright Testing
17
+ */
18
+ export const ServiceAuth = {
19
+ ENTRA_ID: "ENTRA_ID",
20
+ ACCESS_TOKEN: "ACCESS_TOKEN",
21
+ };
22
+ /** @public
23
+ *
24
+ * Environment variables used by Microsoft Playwright Testing
25
+ */
26
+ export const ServiceEnvironmentVariable = {
27
+ PLAYWRIGHT_SERVICE_ACCESS_TOKEN: "PLAYWRIGHT_SERVICE_ACCESS_TOKEN",
28
+ PLAYWRIGHT_SERVICE_URL: "PLAYWRIGHT_SERVICE_URL",
29
+ };
30
+ export const DefaultConnectOptionsConstants = {
31
+ DEFAULT_TIMEOUT: 30000,
32
+ DEFAULT_SLOW_MO: 0,
33
+ DEFAULT_EXPOSE_NETWORK: "<loopback>",
34
+ DEFAULT_SERVICE_OS: ServiceOS.LINUX,
35
+ };
36
+ export const API_VERSION = "2023-10-01-preview";
37
+ // Do not put an ending slash for the urls,
38
+ // for example use https://www.microsoft.com/en-in and not https://www.microsoft.com/en-in/
39
+ export class Constants {
40
+ }
41
+ // Config related constants
42
+ Constants.TEST_FRAMEWORK_NAME = "PLAYWRIGHT";
43
+ Constants.TEST_FRAMEWORK_RUNNERNAME = "PLAYWRIGHT";
44
+ Constants.TEST_TYPE = "WebTest";
45
+ Constants.TEST_SDK_LANGUAGE = "JAVASCRIPT";
46
+ // Placeholder version
47
+ Constants.DEFAULT_DASHBOARD_ENDPOINT = "https://playwright.microsoft.com";
48
+ Constants.DEFAULT_SERVICE_ENDPOINT = "https://{region}.reporting.api.playwright-test.io";
49
+ Constants.DEFAULT_REDACTED_MESSAGE = "***REDACTED***";
50
+ Constants.SAS_URI_SEPARATOR = "?";
51
+ Constants.DEFAULT_TEST_RUN_NAME = "MPTReporterTests";
52
+ Constants.TEST_BATCH_SIZE = 50;
53
+ Constants.UPLOAD_MODE = "sdk";
54
+ Constants.GIT_VERSION_COMMAND = "git --version";
55
+ Constants.GIT_REV_PARSE = "git rev-parse --is-inside-work-tree";
56
+ Constants.GIT_COMMIT_MESSAGE_COMMAND = 'git log -1 --pretty=format:"%s"';
57
+ Constants.ERROR_MESSAGES_MAX_LENGTH = 100;
58
+ Constants.sevenDaysInMs = 7 * 24 * 60 * 60 * 1000;
59
+ Constants.oneDayInMs = 24 * 60 * 60 * 1000;
60
+ Constants.API_VERSION = "2024-09-01-preview";
61
+ Constants.OS = "Os";
62
+ Constants.NON_RETRYABLE_STATUS_CODES = [400, 403, 404, 405, 409];
63
+ Constants.SupportedRegions = [
64
+ "eastus",
65
+ "eastasia",
66
+ "westeurope",
67
+ "westus3",
68
+ "centraluseuap",
69
+ "eastus2euap",
70
+ ];
71
+ // Error messages
72
+ Constants.CONFLICT_409_ERROR_MESSAGE = "Test run with id {runId} already exists. Provide a unique run id.";
73
+ Constants.FORBIDDEN_403_ERROR_MESSAGE = `You do not have the required permissions to upload test results. This could be because
74
+
75
+ a. Reporting is not enabled for your workspace {workspaceId}. Enable the Reporting feature under Feature management settings using the Playwright portal: https://playwright.microsoft.com/workspaces/{workspaceId}/settings/general
76
+ b. You do not have the required roles on the workspace. Only Owner and Contributor roles can run tests. Contact the service administrator.
77
+ c. The workspace you are trying to run the tests on is in a different Azure tenant than what you are signed into. Check the tenant id from Azure portal (https://aka.ms/mpt/find-tenant-id) and login using the command 'az login --tenant <TENANT_ID>
78
+ `;
79
+ // API Endpoints
80
+ Constants.testRunsEndpoint = "workspaces/{workspaceId}/test-runs";
81
+ Constants.testRunsShardEndpoint = "workspaces/{workspaceId}/test-runs/{testRunId}:updateShardExecutionStatus";
82
+ Constants.storageUriEndpoint = "workspaces/{workspaceId}/test-runs/{testRunId}:createArtifactsUploadBaseUri";
83
+ Constants.testResultsEndpoint = "workspaces/{workspaceId}/test-results/upload-batch";
84
+ Constants.patchTestRun = "patchTestRun";
85
+ Constants.getTestRun = "getTestRun";
86
+ Constants.patchTestRunShardStart = "patchTestRunShardStart";
87
+ Constants.patchTestRunShardEnd = "patchTestRunShardEnd";
88
+ Constants.postTestResults = "postTestResults";
89
+ Constants.getStorageUri = "getStorageUri";
90
+ Constants.ERROR_MESSAGE = {
91
+ patchTestRun: {
92
+ 400: "The request made to the server is invalid. Please check the request parameters and try again.",
93
+ 401: "The authentication token provided is invalid. Please check the token and try again.",
94
+ 500: "An unexpected error occurred on our server. Our team is working to resolve the issue. Please try again later, or contact support if the problem continues.",
95
+ 429: "You have exceeded the rate limit for the API. Please wait and try again later.",
96
+ 504: "The request to the service timed out. Please try again later.",
97
+ 503: "The service is currently unavailable. Please check the service status and try again.",
98
+ },
99
+ getTestRun: {
100
+ 400: "The request made to the server is invalid. Please check the request parameters and try again.",
101
+ 401: "The authentication token provided is invalid. Please check the token and try again.",
102
+ 403: "You do not have the required permissions to run tests. Please contact your workspace administrator.",
103
+ 500: "An unexpected error occurred on our server. Our team is working to resolve the issue. Please try again later, or contact support if the problem continues.",
104
+ 429: "You have exceeded the rate limit for the API. Please wait and try again later.",
105
+ 504: "The request to the service timed out. Please try again later.",
106
+ 503: "The service is currently unavailable. Please check the service status and try again.",
107
+ },
108
+ patchTestRunShardStart: {
109
+ 400: "The request made to the server is invalid. Please check the request parameters and try again.",
110
+ 401: "The authentication token provided is invalid. Please check the token and try again.",
111
+ 403: "You do not have the required permissions to run tests. Please contact your workspace administrator.",
112
+ 500: "An unexpected error occurred on our server. Our team is working to resolve the issue. Please try again later, or contact support if the problem continues.",
113
+ 429: "You have exceeded the rate limit for the API. Please wait and try again later.",
114
+ 504: "The request to the service timed out. Please try again later.",
115
+ 503: "The service is currently unavailable. Please check the service status and try again.",
116
+ },
117
+ patchTestRunShardEnd: {
118
+ 400: "The request made to the server is invalid. Please check the request parameters and try again.",
119
+ 401: "The authentication token provided is invalid. Please check the token and try again.",
120
+ 403: "You do not have the required permissions to run tests. Please contact your workspace administrator.",
121
+ 500: "An unexpected error occurred on our server. Our team is working to resolve the issue. Please try again later, or contact support if the problem continues.",
122
+ 429: "You have exceeded the rate limit for the API. Please wait and try again later.",
123
+ 504: "The request to the service timed out. Please try again later.",
124
+ 503: "The service is currently unavailable. Please check the service status and try again.",
125
+ },
126
+ postTestResults: {
127
+ 400: "The request made to the server is invalid. Please check the request parameters and try again.",
128
+ 401: "The authentication token provided is invalid. Please check the token and try again.",
129
+ 403: "You do not have the required permissions to run tests. Please contact your workspace administrator.",
130
+ 500: "An unexpected error occurred on our server. Our team is working to resolve the issue. Please try again later, or contact support if the problem continues.",
131
+ 429: "You have exceeded the rate limit for the API. Please wait and try again later.",
132
+ 504: "The request to the service timed out. Please try again later.",
133
+ 503: "The service is currently unavailable. Please check the service status and try again.",
134
+ },
135
+ getStorageUri: {
136
+ 400: "The request made to the server is invalid. Please check the request parameters and try again.",
137
+ 401: "The authentication token provided is invalid. Please check the token and try again.",
138
+ 403: "You do not have the required permissions to run tests. Please contact your workspace administrator.",
139
+ 500: "An unexpected error occurred on our server. Our team is working to resolve the issue. Please try again later, or contact support if the problem continues.",
140
+ 429: "You have exceeded the rate limit for the API. Please wait and try again later.",
141
+ 504: "The request to the service timed out. Please try again later.",
142
+ 503: "The service is currently unavailable. Please check the service status and try again.",
143
+ },
144
+ };
145
+ export const TestErrorType = {
146
+ Scalable: "Scalable",
147
+ Reporting: "Reporting",
148
+ };
149
+ export const TestResultErrorConstants = [
150
+ {
151
+ key: "401",
152
+ message: "The authentication token provided is invalid. Please check the token and try again.",
153
+ pattern: /(?=.*browserType\.connect)(?=.*401 Unauthorized)/i,
154
+ type: TestErrorType.Scalable,
155
+ },
156
+ {
157
+ key: "NoPermissionOnWorkspace_Scalable",
158
+ message: `You do not have the required permissions to run tests. This could be because:
159
+
160
+ a. You do not have the required roles on the workspace. Only Owner and Contributor roles can run tests. Contact the service administrator.
161
+ b. The workspace you are trying to run the tests on is in a different Azure tenant than what you are signed into. Check the tenant id from Azure portal (https://aka.ms/mpt/find-tenant-id) and login using the command 'az login --tenant <TENANT_ID>'.
162
+ `,
163
+ pattern: /(?=.*browserType\.connect)(?=.*403 Forbidden)(?=[\s\S]*CheckAccess API call with non successful response)/i,
164
+ type: TestErrorType.Scalable,
165
+ },
166
+ {
167
+ key: "InvalidWorkspace_Scalable",
168
+ message: "The specified workspace does not exist. Please verify your workspace settings.",
169
+ pattern: /(?=.*browserType\.connect)(?=.*403 Forbidden)(?=[\s\S]*InvalidAccountOrSubscriptionState)/i,
170
+ type: TestErrorType.Scalable,
171
+ },
172
+ {
173
+ key: "InvalidAccessToken",
174
+ message: "The provided access token does not match the specified workspace URL. Please verify that both values are correct.",
175
+ pattern: /(?=.*browserType\.connect)(?=.*403 Forbidden)(?=[\s\S]*InvalidAccessToken)/i,
176
+ type: TestErrorType.Scalable,
177
+ },
178
+ {
179
+ key: "AccessTokenOrUserOrWorkspaceNotFound_Scalable",
180
+ message: "The data for the user, workspace or access token was not found. Please check the request or create new token and try again.",
181
+ pattern: /(?=.*browserType\.connect)(?=.*404 Not Found)(?=[\s\S]*NotFound)/i,
182
+ type: TestErrorType.Scalable,
183
+ },
184
+ {
185
+ key: "AccessKeyBasedAuthNotSupported_Scalable",
186
+ message: "Authentication through service access token is disabled for this workspace. Please use Entra ID to authenticate.",
187
+ pattern: /(?=.*browserType\.connect)(?=.*403 Forbidden)(?=[\s\S]*AccessKeyBasedAuthNotSupported)/i,
188
+ type: TestErrorType.Scalable,
189
+ },
190
+ {
191
+ key: "503",
192
+ message: "The service is currently unavailable. Please check the service status and try again.",
193
+ pattern: /(?=.*browserType\.connect)(?=.*503 Service Unavailable)/i,
194
+ type: TestErrorType.Scalable,
195
+ },
196
+ {
197
+ key: "504",
198
+ message: "The request to the service timed out. Please try again later.",
199
+ pattern: /(?=.*browserType\.connect)(?=.*504 Gateway Timeout)/i,
200
+ type: TestErrorType.Scalable,
201
+ },
202
+ {
203
+ key: "QuotaLimitError_Scalable",
204
+ message: "It is possible that the maximum number of concurrent sessions allowed for your workspace has been exceeded. Check the quota at https://aka.ms/mpt/resource-quota.",
205
+ pattern: /(?=.*browserType\.connect): (?=.*Timeout .* exceeded)/i,
206
+ type: TestErrorType.Scalable,
207
+ },
208
+ {
209
+ key: "BrowserConnectionError_Scalable",
210
+ message: "The service is currently unavailable. Please try again after some time.",
211
+ pattern: /(?=.*browserType\.connect): (?=.Target page, context or browser has been closed)/i,
212
+ type: TestErrorType.Scalable,
213
+ },
214
+ ];
215
+ export const InternalEnvironmentVariables = {
216
+ MPT_PLAYWRIGHT_VERSION: "_MPT_PLAYWRIGHT_VERSION",
217
+ MPT_SETUP_FATAL_ERROR: "_MPT_SETUP_FATAL_ERROR",
218
+ MPT_SERVICE_RUN_NAME: "_MPT_SERVICE_RUN_NAME",
219
+ MPT_SERVICE_RUN_ID: "_MPT_SERVICE_RUN_ID",
220
+ MPT_CLOUD_HOSTED_BROWSER_USED: "_MPT_CLOUD_HOSTED_BROWSER_USED",
221
+ MPT_SERVICE_OS: "_MPT_SERVICE_OS",
222
+ MPT_SERVICE_REPORTING_URL: "_MPT_SERVICE_REPORTING_URL",
223
+ ONE_TIME_OPERATION_FLAG: "_ONE_TIME_OPERATION_FLAG",
224
+ };
225
+ export const MINIMUM_SUPPORTED_PLAYWRIGHT_VERSION = "1.47.0";
226
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/common/constants.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { ApiErrorMessage } from \"./types.js\";\n\nexport const EntraIdAccessTokenConstants = {\n LIFETIME_LEFT_THRESHOLD_IN_MINUTES_FOR_ROTATION: 15,\n SCOPE: \"https://management.core.windows.net/.default\",\n ROTATION_INTERVAL_PERIOD_IN_MINUTES: 4,\n};\n\n/** @public\n *\n * OS types supported on Microsoft Playwright Testing cloud hosted browsers\n */\nexport const ServiceOS = {\n LINUX: \"linux\",\n WINDOWS: \"windows\",\n} as const;\n\n/** @public\n *\n * Authentication types supported on Microsoft Playwright Testing\n */\nexport const ServiceAuth = {\n ENTRA_ID: \"ENTRA_ID\",\n ACCESS_TOKEN: \"ACCESS_TOKEN\",\n} as const;\n\n/** @public\n *\n * Environment variables used by Microsoft Playwright Testing\n */\nexport const ServiceEnvironmentVariable = {\n PLAYWRIGHT_SERVICE_ACCESS_TOKEN: \"PLAYWRIGHT_SERVICE_ACCESS_TOKEN\",\n PLAYWRIGHT_SERVICE_URL: \"PLAYWRIGHT_SERVICE_URL\",\n};\n\nexport const DefaultConnectOptionsConstants = {\n DEFAULT_TIMEOUT: 30000,\n DEFAULT_SLOW_MO: 0,\n DEFAULT_EXPOSE_NETWORK: \"<loopback>\",\n DEFAULT_SERVICE_OS: ServiceOS.LINUX,\n};\n\nexport const API_VERSION = \"2023-10-01-preview\";\n\n// Do not put an ending slash for the urls,\n// for example use https://www.microsoft.com/en-in and not https://www.microsoft.com/en-in/\n\nexport class Constants {\n // Config related constants\n public static readonly TEST_FRAMEWORK_NAME = \"PLAYWRIGHT\";\n public static readonly TEST_FRAMEWORK_RUNNERNAME = \"PLAYWRIGHT\";\n public static readonly TEST_TYPE = \"WebTest\";\n public static readonly TEST_SDK_LANGUAGE = \"JAVASCRIPT\";\n // Placeholder version\n public static readonly DEFAULT_DASHBOARD_ENDPOINT = \"https://playwright.microsoft.com\";\n public static readonly DEFAULT_SERVICE_ENDPOINT =\n \"https://{region}.reporting.api.playwright-test.io\";\n public static readonly DEFAULT_REDACTED_MESSAGE = \"***REDACTED***\";\n public static readonly SAS_URI_SEPARATOR = \"?\";\n public static readonly DEFAULT_TEST_RUN_NAME = \"MPTReporterTests\";\n public static readonly TEST_BATCH_SIZE = 50;\n public static readonly UPLOAD_MODE = \"sdk\";\n public static readonly GIT_VERSION_COMMAND = \"git --version\";\n public static readonly GIT_REV_PARSE = \"git rev-parse --is-inside-work-tree\";\n public static readonly GIT_COMMIT_MESSAGE_COMMAND = 'git log -1 --pretty=format:\"%s\"';\n public static readonly ERROR_MESSAGES_MAX_LENGTH = 100;\n public static readonly sevenDaysInMs = 7 * 24 * 60 * 60 * 1000;\n public static readonly oneDayInMs = 24 * 60 * 60 * 1000;\n public static readonly API_VERSION = \"2024-09-01-preview\";\n public static readonly OS = \"Os\";\n public static readonly NON_RETRYABLE_STATUS_CODES = [400, 403, 404, 405, 409];\n public static readonly SupportedRegions: string[] = [\n \"eastus\",\n \"eastasia\",\n \"westeurope\",\n \"westus3\",\n \"centraluseuap\",\n \"eastus2euap\",\n ];\n // Error messages\n public static readonly CONFLICT_409_ERROR_MESSAGE =\n \"Test run with id {runId} already exists. Provide a unique run id.\";\n public static readonly FORBIDDEN_403_ERROR_MESSAGE = `You do not have the required permissions to upload test results. This could be because\n\n a. Reporting is not enabled for your workspace {workspaceId}. Enable the Reporting feature under Feature management settings using the Playwright portal: https://playwright.microsoft.com/workspaces/{workspaceId}/settings/general\n b. You do not have the required roles on the workspace. Only Owner and Contributor roles can run tests. Contact the service administrator.\n c. The workspace you are trying to run the tests on is in a different Azure tenant than what you are signed into. Check the tenant id from Azure portal (https://aka.ms/mpt/find-tenant-id) and login using the command 'az login --tenant <TENANT_ID>\n `;\n // API Endpoints\n public static readonly testRunsEndpoint: string = \"workspaces/{workspaceId}/test-runs\";\n public static readonly testRunsShardEndpoint: string =\n \"workspaces/{workspaceId}/test-runs/{testRunId}:updateShardExecutionStatus\";\n public static readonly storageUriEndpoint: string =\n \"workspaces/{workspaceId}/test-runs/{testRunId}:createArtifactsUploadBaseUri\";\n public static readonly testResultsEndpoint: string =\n \"workspaces/{workspaceId}/test-results/upload-batch\";\n public static readonly patchTestRun: string = \"patchTestRun\";\n public static readonly getTestRun: string = \"getTestRun\";\n public static readonly patchTestRunShardStart: string = \"patchTestRunShardStart\";\n public static readonly patchTestRunShardEnd: string = \"patchTestRunShardEnd\";\n public static readonly postTestResults: string = \"postTestResults\";\n public static readonly getStorageUri: string = \"getStorageUri\";\n public static readonly ERROR_MESSAGE: ApiErrorMessage = {\n patchTestRun: {\n 400: \"The request made to the server is invalid. Please check the request parameters and try again.\",\n 401: \"The authentication token provided is invalid. Please check the token and try again.\",\n 500: \"An unexpected error occurred on our server. Our team is working to resolve the issue. Please try again later, or contact support if the problem continues.\",\n 429: \"You have exceeded the rate limit for the API. Please wait and try again later.\",\n 504: \"The request to the service timed out. Please try again later.\",\n 503: \"The service is currently unavailable. Please check the service status and try again.\",\n },\n getTestRun: {\n 400: \"The request made to the server is invalid. Please check the request parameters and try again.\",\n 401: \"The authentication token provided is invalid. Please check the token and try again.\",\n 403: \"You do not have the required permissions to run tests. Please contact your workspace administrator.\",\n 500: \"An unexpected error occurred on our server. Our team is working to resolve the issue. Please try again later, or contact support if the problem continues.\",\n 429: \"You have exceeded the rate limit for the API. Please wait and try again later.\",\n 504: \"The request to the service timed out. Please try again later.\",\n 503: \"The service is currently unavailable. Please check the service status and try again.\",\n },\n patchTestRunShardStart: {\n 400: \"The request made to the server is invalid. Please check the request parameters and try again.\",\n 401: \"The authentication token provided is invalid. Please check the token and try again.\",\n 403: \"You do not have the required permissions to run tests. Please contact your workspace administrator.\",\n 500: \"An unexpected error occurred on our server. Our team is working to resolve the issue. Please try again later, or contact support if the problem continues.\",\n 429: \"You have exceeded the rate limit for the API. Please wait and try again later.\",\n 504: \"The request to the service timed out. Please try again later.\",\n 503: \"The service is currently unavailable. Please check the service status and try again.\",\n },\n patchTestRunShardEnd: {\n 400: \"The request made to the server is invalid. Please check the request parameters and try again.\",\n 401: \"The authentication token provided is invalid. Please check the token and try again.\",\n 403: \"You do not have the required permissions to run tests. Please contact your workspace administrator.\",\n 500: \"An unexpected error occurred on our server. Our team is working to resolve the issue. Please try again later, or contact support if the problem continues.\",\n 429: \"You have exceeded the rate limit for the API. Please wait and try again later.\",\n 504: \"The request to the service timed out. Please try again later.\",\n 503: \"The service is currently unavailable. Please check the service status and try again.\",\n },\n postTestResults: {\n 400: \"The request made to the server is invalid. Please check the request parameters and try again.\",\n 401: \"The authentication token provided is invalid. Please check the token and try again.\",\n 403: \"You do not have the required permissions to run tests. Please contact your workspace administrator.\",\n 500: \"An unexpected error occurred on our server. Our team is working to resolve the issue. Please try again later, or contact support if the problem continues.\",\n 429: \"You have exceeded the rate limit for the API. Please wait and try again later.\",\n 504: \"The request to the service timed out. Please try again later.\",\n 503: \"The service is currently unavailable. Please check the service status and try again.\",\n },\n getStorageUri: {\n 400: \"The request made to the server is invalid. Please check the request parameters and try again.\",\n 401: \"The authentication token provided is invalid. Please check the token and try again.\",\n 403: \"You do not have the required permissions to run tests. Please contact your workspace administrator.\",\n 500: \"An unexpected error occurred on our server. Our team is working to resolve the issue. Please try again later, or contact support if the problem continues.\",\n 429: \"You have exceeded the rate limit for the API. Please wait and try again later.\",\n 504: \"The request to the service timed out. Please try again later.\",\n 503: \"The service is currently unavailable. Please check the service status and try again.\",\n },\n };\n}\n\nexport const TestErrorType = {\n Scalable: \"Scalable\",\n Reporting: \"Reporting\",\n};\n\nexport const TestResultErrorConstants = [\n {\n key: \"401\",\n message: \"The authentication token provided is invalid. Please check the token and try again.\",\n pattern: /(?=.*browserType\\.connect)(?=.*401 Unauthorized)/i,\n type: TestErrorType.Scalable,\n },\n {\n key: \"NoPermissionOnWorkspace_Scalable\",\n message: `You do not have the required permissions to run tests. This could be because:\n\n a. You do not have the required roles on the workspace. Only Owner and Contributor roles can run tests. Contact the service administrator.\n b. The workspace you are trying to run the tests on is in a different Azure tenant than what you are signed into. Check the tenant id from Azure portal (https://aka.ms/mpt/find-tenant-id) and login using the command 'az login --tenant <TENANT_ID>'.\n `,\n pattern:\n /(?=.*browserType\\.connect)(?=.*403 Forbidden)(?=[\\s\\S]*CheckAccess API call with non successful response)/i,\n type: TestErrorType.Scalable,\n },\n {\n key: \"InvalidWorkspace_Scalable\",\n message: \"The specified workspace does not exist. Please verify your workspace settings.\",\n pattern:\n /(?=.*browserType\\.connect)(?=.*403 Forbidden)(?=[\\s\\S]*InvalidAccountOrSubscriptionState)/i,\n type: TestErrorType.Scalable,\n },\n {\n key: \"InvalidAccessToken\",\n message:\n \"The provided access token does not match the specified workspace URL. Please verify that both values are correct.\",\n pattern: /(?=.*browserType\\.connect)(?=.*403 Forbidden)(?=[\\s\\S]*InvalidAccessToken)/i,\n type: TestErrorType.Scalable,\n },\n {\n key: \"AccessTokenOrUserOrWorkspaceNotFound_Scalable\",\n message:\n \"The data for the user, workspace or access token was not found. Please check the request or create new token and try again.\",\n pattern: /(?=.*browserType\\.connect)(?=.*404 Not Found)(?=[\\s\\S]*NotFound)/i,\n type: TestErrorType.Scalable,\n },\n {\n key: \"AccessKeyBasedAuthNotSupported_Scalable\",\n message:\n \"Authentication through service access token is disabled for this workspace. Please use Entra ID to authenticate.\",\n pattern:\n /(?=.*browserType\\.connect)(?=.*403 Forbidden)(?=[\\s\\S]*AccessKeyBasedAuthNotSupported)/i,\n type: TestErrorType.Scalable,\n },\n {\n key: \"503\",\n message: \"The service is currently unavailable. Please check the service status and try again.\",\n pattern: /(?=.*browserType\\.connect)(?=.*503 Service Unavailable)/i,\n type: TestErrorType.Scalable,\n },\n {\n key: \"504\",\n message: \"The request to the service timed out. Please try again later.\",\n pattern: /(?=.*browserType\\.connect)(?=.*504 Gateway Timeout)/i,\n type: TestErrorType.Scalable,\n },\n {\n key: \"QuotaLimitError_Scalable\",\n message:\n \"It is possible that the maximum number of concurrent sessions allowed for your workspace has been exceeded. Check the quota at https://aka.ms/mpt/resource-quota.\",\n pattern: /(?=.*browserType\\.connect): (?=.*Timeout .* exceeded)/i,\n type: TestErrorType.Scalable,\n },\n {\n key: \"BrowserConnectionError_Scalable\",\n message: \"The service is currently unavailable. Please try again after some time.\",\n pattern: /(?=.*browserType\\.connect): (?=.Target page, context or browser has been closed)/i,\n type: TestErrorType.Scalable,\n },\n];\n\nexport const InternalEnvironmentVariables = {\n MPT_PLAYWRIGHT_VERSION: \"_MPT_PLAYWRIGHT_VERSION\",\n MPT_SETUP_FATAL_ERROR: \"_MPT_SETUP_FATAL_ERROR\",\n MPT_SERVICE_RUN_NAME: \"_MPT_SERVICE_RUN_NAME\",\n MPT_SERVICE_RUN_ID: \"_MPT_SERVICE_RUN_ID\",\n MPT_CLOUD_HOSTED_BROWSER_USED: \"_MPT_CLOUD_HOSTED_BROWSER_USED\",\n MPT_SERVICE_OS: \"_MPT_SERVICE_OS\",\n MPT_SERVICE_REPORTING_URL: \"_MPT_SERVICE_REPORTING_URL\",\n ONE_TIME_OPERATION_FLAG: \"_ONE_TIME_OPERATION_FLAG\",\n};\n\nexport const MINIMUM_SUPPORTED_PLAYWRIGHT_VERSION = \"1.47.0\";\n"]}
@@ -0,0 +1,9 @@
1
+ declare class CustomerConfig {
2
+ private static instance;
3
+ globalSetup?: string | string[];
4
+ globalTeardown?: string | string[];
5
+ static getInstance(): CustomerConfig;
6
+ }
7
+ declare const customerConfig: CustomerConfig;
8
+ export default customerConfig;
9
+ //# sourceMappingURL=customerConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customerConfig.d.ts","sourceRoot":"","sources":["../../../src/common/customerConfig.ts"],"names":[],"mappings":"AAGA,cAAM,cAAc;IAClB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;WAE5B,WAAW,IAAI,cAAc;CAM5C;AAED,QAAA,MAAM,cAAc,gBAA+B,CAAC;AACpD,eAAe,cAAc,CAAC"}
@@ -0,0 +1,13 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ class CustomerConfig {
4
+ static getInstance() {
5
+ if (!CustomerConfig.instance) {
6
+ CustomerConfig.instance = new CustomerConfig();
7
+ }
8
+ return CustomerConfig.instance;
9
+ }
10
+ }
11
+ const customerConfig = CustomerConfig.getInstance();
12
+ export default customerConfig;
13
+ //# sourceMappingURL=customerConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customerConfig.js","sourceRoot":"","sources":["../../../src/common/customerConfig.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,MAAM,cAAc;IAKX,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;YAC7B,cAAc,CAAC,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,cAAc,CAAC,QAAQ,CAAC;IACjC,CAAC;CACF;AAED,MAAM,cAAc,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;AACpD,eAAe,cAAc,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nclass CustomerConfig {\n private static instance: CustomerConfig;\n public globalSetup?: string | string[];\n public globalTeardown?: string | string[];\n\n public static getInstance(): CustomerConfig {\n if (!CustomerConfig.instance) {\n CustomerConfig.instance = new CustomerConfig();\n }\n return CustomerConfig.instance;\n }\n}\n\nconst customerConfig = CustomerConfig.getInstance();\nexport default customerConfig;\n"]}
@@ -0,0 +1,12 @@
1
+ import type { TokenCredential } from "@azure/identity";
2
+ export declare class EntraIdAccessToken {
3
+ token?: string;
4
+ private _expiryTimestamp?;
5
+ private _credential?;
6
+ constructor(credential?: TokenCredential);
7
+ fetchEntraIdAccessToken: () => Promise<void>;
8
+ doesEntraIdAccessTokenNeedRotation(): boolean;
9
+ private setEntraIdAccessTokenFromEnvironment;
10
+ }
11
+ export declare function createEntraIdAccessToken(credential?: TokenCredential): EntraIdAccessToken;
12
+ //# sourceMappingURL=entraIdAccessToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entraIdAccessToken.d.ts","sourceRoot":"","sources":["../../../src/common/entraIdAccessToken.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAYvD,qBAAa,kBAAkB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,WAAW,CAAC,CAAkB;gBAE1B,UAAU,CAAC,EAAE,eAAe;IAKjC,uBAAuB,QAAa,OAAO,CAAC,IAAI,CAAC,CA0BtD;IAEK,kCAAkC,IAAI,OAAO;IAgBpD,OAAO,CAAC,oCAAoC,CAgB1C;CACH;AAED,wBAAgB,wBAAwB,CAAC,UAAU,CAAC,EAAE,eAAe,GAAG,kBAAkB,CAEzF"}
@@ -0,0 +1,71 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ import { DefaultAzureCredential } from "@azure/identity";
4
+ import { coreLogger } from "./logger.js";
5
+ import { EntraIdAccessTokenConstants, InternalEnvironmentVariables, ServiceEnvironmentVariable, } from "./constants.js";
6
+ import { parseJwt } from "../utils/parseJwt.js";
7
+ import { ServiceErrorMessageConstants } from "./messages.js";
8
+ export class EntraIdAccessToken {
9
+ constructor(credential) {
10
+ this.fetchEntraIdAccessToken = async () => {
11
+ try {
12
+ coreLogger.info("Fetching entra id access token");
13
+ const accessToken = await this._credential.getToken(EntraIdAccessTokenConstants.SCOPE);
14
+ if (!accessToken) {
15
+ throw new Error("Entra id access token is null");
16
+ }
17
+ if (accessToken.token === this.token) {
18
+ // azure identity library can fetch the same token again from cache. 10 mins before expiry, it allows token refresh
19
+ coreLogger.info("Cached access token is returned, will be retried again.");
20
+ return;
21
+ }
22
+ this.token = accessToken.token;
23
+ this._expiryTimestamp = accessToken.expiresOnTimestamp;
24
+ process.env[ServiceEnvironmentVariable.PLAYWRIGHT_SERVICE_ACCESS_TOKEN] = this.token;
25
+ coreLogger.info("Entra id access token fetched and set in environment variable");
26
+ coreLogger.info("Entra id access token expiry:", new Date(this._expiryTimestamp).toISOString());
27
+ return;
28
+ }
29
+ catch (err) {
30
+ coreLogger.error(err);
31
+ process.env[InternalEnvironmentVariables.MPT_SETUP_FATAL_ERROR] = "true";
32
+ throw new Error(ServiceErrorMessageConstants.NO_AUTH_ERROR.message);
33
+ }
34
+ };
35
+ this.setEntraIdAccessTokenFromEnvironment = () => {
36
+ try {
37
+ const token = process.env[ServiceEnvironmentVariable.PLAYWRIGHT_SERVICE_ACCESS_TOKEN];
38
+ if (!token) {
39
+ return;
40
+ }
41
+ const claims = parseJwt(token);
42
+ if (claims.accountId || claims.aid) {
43
+ return;
44
+ } // mpt PAT
45
+ const expiry = new Date(claims.exp * 1000);
46
+ this.token = token;
47
+ this._expiryTimestamp = expiry.getTime();
48
+ }
49
+ catch (_) {
50
+ return;
51
+ }
52
+ };
53
+ this._credential = credential !== null && credential !== void 0 ? credential : new DefaultAzureCredential();
54
+ this.setEntraIdAccessTokenFromEnvironment();
55
+ }
56
+ doesEntraIdAccessTokenNeedRotation() {
57
+ if (!this.token) {
58
+ coreLogger.info("Entra id access token not found, needs rotation");
59
+ return true;
60
+ }
61
+ const lifetimeLeft = this._expiryTimestamp - new Date().getTime();
62
+ const doesEntraTokenRequireRotation = lifetimeLeft <
63
+ EntraIdAccessTokenConstants.LIFETIME_LEFT_THRESHOLD_IN_MINUTES_FOR_ROTATION * 60 * 1000;
64
+ coreLogger.info("Entra id access token requires rotation:", doesEntraTokenRequireRotation ? "Yes" : "No");
65
+ return doesEntraTokenRequireRotation;
66
+ }
67
+ }
68
+ export function createEntraIdAccessToken(credential) {
69
+ return new EntraIdAccessToken(credential);
70
+ }
71
+ //# sourceMappingURL=entraIdAccessToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entraIdAccessToken.js","sourceRoot":"","sources":["../../../src/common/entraIdAccessToken.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { TokenCredential } from \"@azure/identity\";\nimport { DefaultAzureCredential } from \"@azure/identity\";\nimport { coreLogger } from \"./logger.js\";\nimport {\n EntraIdAccessTokenConstants,\n InternalEnvironmentVariables,\n ServiceEnvironmentVariable,\n} from \"./constants.js\";\nimport type { AccessTokenClaims } from \"./types.js\";\nimport { parseJwt } from \"../utils/parseJwt.js\";\nimport { ServiceErrorMessageConstants } from \"./messages.js\";\n\nexport class EntraIdAccessToken {\n public token?: string;\n private _expiryTimestamp?: number; // in milliseconds\n private _credential?: TokenCredential;\n\n constructor(credential?: TokenCredential) {\n this._credential = credential ?? new DefaultAzureCredential();\n this.setEntraIdAccessTokenFromEnvironment();\n }\n\n public fetchEntraIdAccessToken = async (): Promise<void> => {\n try {\n coreLogger.info(\"Fetching entra id access token\");\n const accessToken = await this._credential!.getToken(EntraIdAccessTokenConstants.SCOPE);\n if (!accessToken) {\n throw new Error(\"Entra id access token is null\");\n }\n if (accessToken.token === this.token) {\n // azure identity library can fetch the same token again from cache. 10 mins before expiry, it allows token refresh\n coreLogger.info(\"Cached access token is returned, will be retried again.\");\n return;\n }\n this.token = accessToken.token;\n this._expiryTimestamp = accessToken.expiresOnTimestamp;\n process.env[ServiceEnvironmentVariable.PLAYWRIGHT_SERVICE_ACCESS_TOKEN] = this.token!;\n coreLogger.info(\"Entra id access token fetched and set in environment variable\");\n coreLogger.info(\n \"Entra id access token expiry:\",\n new Date(this._expiryTimestamp).toISOString(),\n );\n return;\n } catch (err) {\n coreLogger.error(err);\n process.env[InternalEnvironmentVariables.MPT_SETUP_FATAL_ERROR] = \"true\";\n throw new Error(ServiceErrorMessageConstants.NO_AUTH_ERROR.message);\n }\n };\n\n public doesEntraIdAccessTokenNeedRotation(): boolean {\n if (!this.token) {\n coreLogger.info(\"Entra id access token not found, needs rotation\");\n return true;\n }\n const lifetimeLeft = this._expiryTimestamp! - new Date().getTime();\n const doesEntraTokenRequireRotation =\n lifetimeLeft <\n EntraIdAccessTokenConstants.LIFETIME_LEFT_THRESHOLD_IN_MINUTES_FOR_ROTATION * 60 * 1000;\n coreLogger.info(\n \"Entra id access token requires rotation:\",\n doesEntraTokenRequireRotation ? \"Yes\" : \"No\",\n );\n return doesEntraTokenRequireRotation;\n }\n\n private setEntraIdAccessTokenFromEnvironment = (): void => {\n try {\n const token = process.env[ServiceEnvironmentVariable.PLAYWRIGHT_SERVICE_ACCESS_TOKEN];\n if (!token) {\n return;\n }\n const claims = parseJwt<Partial<AccessTokenClaims>>(token);\n if (claims.accountId || claims.aid) {\n return;\n } // mpt PAT\n const expiry = new Date(claims.exp! * 1000);\n this.token = token;\n this._expiryTimestamp = expiry.getTime();\n } catch (_) {\n return;\n }\n };\n}\n\nexport function createEntraIdAccessToken(credential?: TokenCredential): EntraIdAccessToken {\n return new EntraIdAccessToken(credential);\n}\n"]}
@@ -0,0 +1,13 @@
1
+ export declare class EnvironmentVariables {
2
+ get accessToken(): string;
3
+ runId: string;
4
+ accountId: string | undefined;
5
+ userId: string | undefined;
6
+ userName: string | undefined;
7
+ correlationId: string | undefined;
8
+ shardId: string | undefined;
9
+ region: string | undefined;
10
+ runName: string;
11
+ constructor();
12
+ }
13
+ //# sourceMappingURL=environmentVariables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environmentVariables.d.ts","sourceRoot":"","sources":["../../../src/common/environmentVariables.ts"],"names":[],"mappings":"AAMA,qBAAa,oBAAoB;IAC/B,IAAI,WAAW,IAAI,MAAM,CAExB;IACD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;;CAMjB"}
@@ -0,0 +1,15 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ import { randomUUID } from "node:crypto";
4
+ import { InternalEnvironmentVariables } from "./constants.js";
5
+ export class EnvironmentVariables {
6
+ get accessToken() {
7
+ return process.env["PLAYWRIGHT_SERVICE_ACCESS_TOKEN"];
8
+ }
9
+ constructor() {
10
+ this.runName = process.env["_MPT_SERVICE_RUN_NAME"];
11
+ this.runId = process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_ID];
12
+ this.correlationId = randomUUID();
13
+ }
14
+ }
15
+ //# sourceMappingURL=environmentVariables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environmentVariables.js","sourceRoot":"","sources":["../../../src/common/environmentVariables.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,OAAO,oBAAoB;IAC/B,IAAI,WAAW;QACb,OAAO,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAE,CAAC;IACzD,CAAC;IASD;QACE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAE,CAAC;QACrD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,kBAAkB,CAAE,CAAC;QAC3E,IAAI,CAAC,aAAa,GAAG,UAAU,EAAE,CAAC;IACpC,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { randomUUID } from \"node:crypto\";\nimport { InternalEnvironmentVariables } from \"./constants.js\";\n\nexport class EnvironmentVariables {\n get accessToken(): string {\n return process.env[\"PLAYWRIGHT_SERVICE_ACCESS_TOKEN\"]!;\n }\n runId: string;\n accountId: string | undefined;\n userId: string | undefined;\n userName: string | undefined;\n correlationId: string | undefined;\n shardId: string | undefined;\n region: string | undefined;\n runName: string;\n constructor() {\n this.runName = process.env[\"_MPT_SERVICE_RUN_NAME\"]!;\n this.runId = process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_ID]!;\n this.correlationId = randomUUID();\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const loadCustomerGlobalFunction: (rootDir: string, customerFunctionFileName?: string) => any;
2
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/common/executor.ts"],"names":[],"mappings":"AAuEA,eAAO,MAAM,0BAA0B,GACrC,SAAS,MAAM,EACf,2BAA2B,MAAM,KAChC,GAMF,CAAC"}
@@ -0,0 +1,74 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ import { basename } from "node:path";
4
+ import fs from "node:fs";
5
+ import url from "url";
6
+ import path from "node:path";
7
+ import { ServiceErrorMessageConstants } from "./messages.js";
8
+ const getPackageJsonPath = (folderPath) => {
9
+ const packageJsonPath = path.join(folderPath, "package.json");
10
+ if (fs.existsSync(packageJsonPath)) {
11
+ return packageJsonPath;
12
+ }
13
+ const parentFolder = path.dirname(folderPath);
14
+ if (folderPath === parentFolder) {
15
+ return "";
16
+ }
17
+ const result = getPackageJsonPath(parentFolder);
18
+ return result;
19
+ };
20
+ const folderIsModule = (folder) => {
21
+ const packageJsonPath = getPackageJsonPath(folder);
22
+ if (!packageJsonPath)
23
+ return false;
24
+ // Rely on `require` internal caching logic.
25
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
26
+ return require(packageJsonPath).type === "module";
27
+ };
28
+ const fileIsModule = (file) => {
29
+ if (file.endsWith(".mjs") || file.endsWith(".mts"))
30
+ return true;
31
+ if (file.endsWith(".cjs") || file.endsWith(".cts"))
32
+ return false;
33
+ const folder = path.dirname(file);
34
+ return folderIsModule(folder);
35
+ };
36
+ const resolveFile = (id, rootDir) => {
37
+ if (!id) {
38
+ return undefined;
39
+ }
40
+ const localPath = path.resolve(rootDir, id);
41
+ if (fs.existsSync(localPath)) {
42
+ return localPath;
43
+ }
44
+ return require.resolve(id, { paths: [rootDir] });
45
+ };
46
+ const requireOrImportDefaultFunction = async (file) => {
47
+ const fileName = basename(file);
48
+ const isModule = fileIsModule(file);
49
+ let func;
50
+ if (isModule)
51
+ func = await eval(`import(${JSON.stringify(url.pathToFileURL(file))})`);
52
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
53
+ else
54
+ func = require(file);
55
+ if (func && typeof func === "object" && "default" in func) {
56
+ func = func.default;
57
+ }
58
+ if (typeof func !== "function") {
59
+ // match playwright's error style
60
+ const error = new Error(`${fileName}: ${ServiceErrorMessageConstants.INVALID_GLOBAL_FUNCTION.message}`);
61
+ error.stack = "";
62
+ throw error;
63
+ }
64
+ return func;
65
+ };
66
+ export const loadCustomerGlobalFunction = (rootDir, customerFunctionFileName) => {
67
+ var _a;
68
+ if (!customerFunctionFileName) {
69
+ return null;
70
+ }
71
+ const file = path.resolve(rootDir, (_a = resolveFile(customerFunctionFileName, rootDir)) !== null && _a !== void 0 ? _a : "");
72
+ return requireOrImportDefaultFunction(file);
73
+ };
74
+ //# sourceMappingURL=executor.js.map