@azure/playwright 1.1.5 → 1.1.6

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 (318) hide show
  1. package/README.md +10 -18
  2. package/dist/commonjs/common/constants.d.ts +6 -1
  3. package/dist/commonjs/common/constants.d.ts.map +1 -1
  4. package/dist/commonjs/common/constants.js +10 -1
  5. package/dist/commonjs/common/constants.js.map +1 -1
  6. package/dist/commonjs/common/messages.d.ts +4 -0
  7. package/dist/commonjs/common/messages.d.ts.map +1 -1
  8. package/dist/commonjs/common/messages.js +6 -0
  9. package/dist/commonjs/common/messages.js.map +1 -1
  10. package/dist/commonjs/common/playwrightServiceConfig.d.ts +2 -1
  11. package/dist/commonjs/common/playwrightServiceConfig.d.ts.map +1 -1
  12. package/dist/commonjs/common/playwrightServiceConfig.js +5 -0
  13. package/dist/commonjs/common/playwrightServiceConfig.js.map +1 -1
  14. package/dist/commonjs/common/types.d.ts +15 -0
  15. package/dist/commonjs/common/types.d.ts.map +1 -1
  16. package/dist/commonjs/common/types.js.map +1 -1
  17. package/dist/commonjs/core/playwrightService.d.ts.map +1 -1
  18. package/dist/commonjs/core/playwrightService.js +7 -7
  19. package/dist/commonjs/core/playwrightService.js.map +1 -1
  20. package/dist/{browser/core/playwrightServiceUtils.d.ts → commonjs/core/playwrightServiceUtils-cjs.d.ts} +1 -1
  21. package/dist/commonjs/core/playwrightServiceUtils-cjs.d.ts.map +1 -0
  22. package/dist/commonjs/core/playwrightServiceUtils-cjs.js +14 -0
  23. package/dist/commonjs/core/playwrightServiceUtils-cjs.js.map +1 -0
  24. package/dist/commonjs/index.d.ts +2 -2
  25. package/dist/commonjs/index.d.ts.map +1 -1
  26. package/dist/commonjs/index.js.map +1 -1
  27. package/dist/commonjs/reporter/playwrightReporter.d.ts.map +1 -1
  28. package/dist/commonjs/reporter/playwrightReporter.js +12 -11
  29. package/dist/commonjs/reporter/playwrightReporter.js.map +1 -1
  30. package/dist/commonjs/tsdoc-metadata.json +1 -1
  31. package/dist/{browser/utils/getPackageVersion.d.ts → commonjs/utils/getPackageVersion-cjs.d.ts} +1 -1
  32. package/dist/commonjs/utils/getPackageVersion-cjs.d.ts.map +1 -0
  33. package/dist/commonjs/utils/{getPackageVersion.js → getPackageVersion-cjs.js} +1 -1
  34. package/dist/commonjs/utils/getPackageVersion-cjs.js.map +1 -0
  35. package/dist/commonjs/utils/parseJwt.d.ts.map +1 -1
  36. package/dist/commonjs/utils/parseJwt.js +2 -3
  37. package/dist/commonjs/utils/parseJwt.js.map +1 -1
  38. package/dist/commonjs/utils/utils.d.ts +3 -2
  39. package/dist/commonjs/utils/utils.d.ts.map +1 -1
  40. package/dist/commonjs/utils/utils.js +33 -6
  41. package/dist/commonjs/utils/utils.js.map +1 -1
  42. package/dist/esm/common/constants.d.ts +6 -1
  43. package/dist/esm/common/constants.d.ts.map +1 -1
  44. package/dist/esm/common/constants.js +9 -0
  45. package/dist/esm/common/constants.js.map +1 -1
  46. package/dist/esm/common/messages.d.ts +4 -0
  47. package/dist/esm/common/messages.d.ts.map +1 -1
  48. package/dist/esm/common/messages.js +6 -0
  49. package/dist/esm/common/messages.js.map +1 -1
  50. package/dist/esm/common/playwrightServiceConfig.d.ts +2 -1
  51. package/dist/esm/common/playwrightServiceConfig.d.ts.map +1 -1
  52. package/dist/esm/common/playwrightServiceConfig.js +6 -1
  53. package/dist/esm/common/playwrightServiceConfig.js.map +1 -1
  54. package/dist/esm/common/types.d.ts +15 -0
  55. package/dist/esm/common/types.d.ts.map +1 -1
  56. package/dist/esm/common/types.js.map +1 -1
  57. package/dist/esm/core/playwrightService.d.ts.map +1 -1
  58. package/dist/esm/core/playwrightService.js +2 -2
  59. package/dist/esm/core/playwrightService.js.map +1 -1
  60. package/dist/esm/core/playwrightServiceUtils.d.ts.map +1 -1
  61. package/dist/esm/core/playwrightServiceUtils.js +4 -2
  62. package/dist/esm/core/playwrightServiceUtils.js.map +1 -1
  63. package/dist/esm/index.d.ts +2 -2
  64. package/dist/esm/index.d.ts.map +1 -1
  65. package/dist/esm/index.js.map +1 -1
  66. package/dist/esm/reporter/playwrightReporter.d.ts.map +1 -1
  67. package/dist/esm/reporter/playwrightReporter.js +13 -12
  68. package/dist/esm/reporter/playwrightReporter.js.map +1 -1
  69. package/dist/esm/utils/getPackageVersion.d.ts.map +1 -1
  70. package/dist/esm/utils/getPackageVersion.js +2 -2
  71. package/dist/esm/utils/getPackageVersion.js.map +1 -1
  72. package/dist/esm/utils/parseJwt.d.ts.map +1 -1
  73. package/dist/esm/utils/parseJwt.js +2 -3
  74. package/dist/esm/utils/parseJwt.js.map +1 -1
  75. package/dist/esm/utils/utils.d.ts +3 -2
  76. package/dist/esm/utils/utils.d.ts.map +1 -1
  77. package/dist/esm/utils/utils.js +29 -3
  78. package/dist/esm/utils/utils.js.map +1 -1
  79. package/package.json +18 -26
  80. package/dist/browser/common/constants.d.ts +0 -104
  81. package/dist/browser/common/constants.d.ts.map +0 -1
  82. package/dist/browser/common/constants.js +0 -106
  83. package/dist/browser/common/constants.js.map +0 -1
  84. package/dist/browser/common/customerConfig.d.ts +0 -8
  85. package/dist/browser/common/customerConfig.d.ts.map +0 -1
  86. package/dist/browser/common/customerConfig.js +0 -16
  87. package/dist/browser/common/customerConfig.js.map +0 -1
  88. package/dist/browser/common/entraIdAccessToken.d.ts +0 -19
  89. package/dist/browser/common/entraIdAccessToken.d.ts.map +0 -1
  90. package/dist/browser/common/entraIdAccessToken.js +0 -108
  91. package/dist/browser/common/entraIdAccessToken.js.map +0 -1
  92. package/dist/browser/common/environmentVariables.d.ts +0 -12
  93. package/dist/browser/common/environmentVariables.d.ts.map +0 -1
  94. package/dist/browser/common/environmentVariables.js +0 -22
  95. package/dist/browser/common/environmentVariables.js.map +0 -1
  96. package/dist/browser/common/executor.d.ts +0 -2
  97. package/dist/browser/common/executor.d.ts.map +0 -1
  98. package/dist/browser/common/executor.js +0 -73
  99. package/dist/browser/common/executor.js.map +0 -1
  100. package/dist/browser/common/httpService.d.ts +0 -5
  101. package/dist/browser/common/httpService.d.ts.map +0 -1
  102. package/dist/browser/common/httpService.js +0 -34
  103. package/dist/browser/common/httpService.js.map +0 -1
  104. package/dist/browser/common/logger.d.ts +0 -2
  105. package/dist/browser/common/logger.d.ts.map +0 -1
  106. package/dist/browser/common/logger.js +0 -5
  107. package/dist/browser/common/logger.js.map +0 -1
  108. package/dist/browser/common/messages.d.ts +0 -165
  109. package/dist/browser/common/messages.d.ts.map +0 -1
  110. package/dist/browser/common/messages.js +0 -167
  111. package/dist/browser/common/messages.js.map +0 -1
  112. package/dist/browser/common/playwrightServiceConfig.d.ts +0 -22
  113. package/dist/browser/common/playwrightServiceConfig.d.ts.map +0 -1
  114. package/dist/browser/common/playwrightServiceConfig.js +0 -102
  115. package/dist/browser/common/playwrightServiceConfig.js.map +0 -1
  116. package/dist/browser/common/state.d.ts +0 -2
  117. package/dist/browser/common/state.d.ts.map +0 -1
  118. package/dist/browser/common/state.js +0 -9
  119. package/dist/browser/common/state.js.map +0 -1
  120. package/dist/browser/common/types.d.ts +0 -207
  121. package/dist/browser/common/types.d.ts.map +0 -1
  122. package/dist/browser/common/types.js +0 -4
  123. package/dist/browser/common/types.js.map +0 -1
  124. package/dist/browser/core/global/playwright-service-global-setup.d.ts +0 -4
  125. package/dist/browser/core/global/playwright-service-global-setup.d.ts.map +0 -1
  126. package/dist/browser/core/global/playwright-service-global-setup.js +0 -25
  127. package/dist/browser/core/global/playwright-service-global-setup.js.map +0 -1
  128. package/dist/browser/core/global/playwright-service-global-teardown.d.ts +0 -4
  129. package/dist/browser/core/global/playwright-service-global-teardown.d.ts.map +0 -1
  130. package/dist/browser/core/global/playwright-service-global-teardown.js +0 -19
  131. package/dist/browser/core/global/playwright-service-global-teardown.js.map +0 -1
  132. package/dist/browser/core/initializePlaywrightServiceTestRun.d.ts +0 -9
  133. package/dist/browser/core/initializePlaywrightServiceTestRun.d.ts.map +0 -1
  134. package/dist/browser/core/initializePlaywrightServiceTestRun.js +0 -26
  135. package/dist/browser/core/initializePlaywrightServiceTestRun.js.map +0 -1
  136. package/dist/browser/core/playwrightService.d.ts +0 -66
  137. package/dist/browser/core/playwrightService.d.ts.map +0 -1
  138. package/dist/browser/core/playwrightService.js +0 -219
  139. package/dist/browser/core/playwrightService.js.map +0 -1
  140. package/dist/browser/core/playwrightServiceEntra.d.ts +0 -15
  141. package/dist/browser/core/playwrightServiceEntra.d.ts.map +0 -1
  142. package/dist/browser/core/playwrightServiceEntra.js +0 -53
  143. package/dist/browser/core/playwrightServiceEntra.js.map +0 -1
  144. package/dist/browser/core/playwrightServiceUtils.d.ts.map +0 -1
  145. package/dist/browser/core/playwrightServiceUtils.js +0 -13
  146. package/dist/browser/core/playwrightServiceUtils.js.map +0 -1
  147. package/dist/browser/index.d.ts +0 -10
  148. package/dist/browser/index.d.ts.map +0 -1
  149. package/dist/browser/index.js +0 -11
  150. package/dist/browser/index.js.map +0 -1
  151. package/dist/browser/package.json +0 -3
  152. package/dist/browser/reporter/index.d.ts +0 -10
  153. package/dist/browser/reporter/index.d.ts.map +0 -1
  154. package/dist/browser/reporter/index.js +0 -12
  155. package/dist/browser/reporter/index.js.map +0 -1
  156. package/dist/browser/reporter/playwrightReporter.d.ts +0 -28
  157. package/dist/browser/reporter/playwrightReporter.d.ts.map +0 -1
  158. package/dist/browser/reporter/playwrightReporter.js +0 -210
  159. package/dist/browser/reporter/playwrightReporter.js.map +0 -1
  160. package/dist/browser/utils/PlaywrightServiceClient.d.ts +0 -9
  161. package/dist/browser/utils/PlaywrightServiceClient.d.ts.map +0 -1
  162. package/dist/browser/utils/PlaywrightServiceClient.js +0 -67
  163. package/dist/browser/utils/PlaywrightServiceClient.js.map +0 -1
  164. package/dist/browser/utils/cIInfoProvider.d.ts +0 -20
  165. package/dist/browser/utils/cIInfoProvider.d.ts.map +0 -1
  166. package/dist/browser/utils/cIInfoProvider.js +0 -75
  167. package/dist/browser/utils/cIInfoProvider.js.map +0 -1
  168. package/dist/browser/utils/getPackageVersion.d.ts.map +0 -1
  169. package/dist/browser/utils/getPackageVersion.js +0 -23
  170. package/dist/browser/utils/getPackageVersion.js.map +0 -1
  171. package/dist/browser/utils/getPlaywrightVersion.d.ts +0 -2
  172. package/dist/browser/utils/getPlaywrightVersion.d.ts.map +0 -1
  173. package/dist/browser/utils/getPlaywrightVersion.js +0 -19
  174. package/dist/browser/utils/getPlaywrightVersion.js.map +0 -1
  175. package/dist/browser/utils/packageManager.d.ts +0 -15
  176. package/dist/browser/utils/packageManager.d.ts.map +0 -1
  177. package/dist/browser/utils/packageManager.js +0 -41
  178. package/dist/browser/utils/packageManager.js.map +0 -1
  179. package/dist/browser/utils/parseJwt.d.ts +0 -4
  180. package/dist/browser/utils/parseJwt.d.ts.map +0 -1
  181. package/dist/browser/utils/parseJwt.js +0 -16
  182. package/dist/browser/utils/parseJwt.js.map +0 -1
  183. package/dist/browser/utils/playwrightReporterStorageManager.d.ts +0 -13
  184. package/dist/browser/utils/playwrightReporterStorageManager.d.ts.map +0 -1
  185. package/dist/browser/utils/playwrightReporterStorageManager.js +0 -452
  186. package/dist/browser/utils/playwrightReporterStorageManager.js.map +0 -1
  187. package/dist/browser/utils/utils.d.ts +0 -57
  188. package/dist/browser/utils/utils.d.ts.map +0 -1
  189. package/dist/browser/utils/utils.js +0 -392
  190. package/dist/browser/utils/utils.js.map +0 -1
  191. package/dist/commonjs/common/environmentVariables.d.ts +0 -12
  192. package/dist/commonjs/common/environmentVariables.d.ts.map +0 -1
  193. package/dist/commonjs/common/environmentVariables.js +0 -26
  194. package/dist/commonjs/common/environmentVariables.js.map +0 -1
  195. package/dist/commonjs/core/playwrightServiceUtils.d.ts +0 -5
  196. package/dist/commonjs/core/playwrightServiceUtils.d.ts.map +0 -1
  197. package/dist/commonjs/core/playwrightServiceUtils.js +0 -12
  198. package/dist/commonjs/core/playwrightServiceUtils.js.map +0 -1
  199. package/dist/commonjs/utils/getPackageVersion.d.ts +0 -2
  200. package/dist/commonjs/utils/getPackageVersion.d.ts.map +0 -1
  201. package/dist/commonjs/utils/getPackageVersion.js.map +0 -1
  202. package/dist/esm/common/environmentVariables.d.ts +0 -12
  203. package/dist/esm/common/environmentVariables.d.ts.map +0 -1
  204. package/dist/esm/common/environmentVariables.js +0 -22
  205. package/dist/esm/common/environmentVariables.js.map +0 -1
  206. package/dist/react-native/common/constants.d.ts +0 -104
  207. package/dist/react-native/common/constants.d.ts.map +0 -1
  208. package/dist/react-native/common/constants.js +0 -106
  209. package/dist/react-native/common/constants.js.map +0 -1
  210. package/dist/react-native/common/customerConfig.d.ts +0 -8
  211. package/dist/react-native/common/customerConfig.d.ts.map +0 -1
  212. package/dist/react-native/common/customerConfig.js +0 -16
  213. package/dist/react-native/common/customerConfig.js.map +0 -1
  214. package/dist/react-native/common/entraIdAccessToken.d.ts +0 -19
  215. package/dist/react-native/common/entraIdAccessToken.d.ts.map +0 -1
  216. package/dist/react-native/common/entraIdAccessToken.js +0 -108
  217. package/dist/react-native/common/entraIdAccessToken.js.map +0 -1
  218. package/dist/react-native/common/environmentVariables.d.ts +0 -12
  219. package/dist/react-native/common/environmentVariables.d.ts.map +0 -1
  220. package/dist/react-native/common/environmentVariables.js +0 -22
  221. package/dist/react-native/common/environmentVariables.js.map +0 -1
  222. package/dist/react-native/common/executor.d.ts +0 -2
  223. package/dist/react-native/common/executor.d.ts.map +0 -1
  224. package/dist/react-native/common/executor.js +0 -73
  225. package/dist/react-native/common/executor.js.map +0 -1
  226. package/dist/react-native/common/httpService.d.ts +0 -5
  227. package/dist/react-native/common/httpService.d.ts.map +0 -1
  228. package/dist/react-native/common/httpService.js +0 -34
  229. package/dist/react-native/common/httpService.js.map +0 -1
  230. package/dist/react-native/common/logger.d.ts +0 -2
  231. package/dist/react-native/common/logger.d.ts.map +0 -1
  232. package/dist/react-native/common/logger.js +0 -5
  233. package/dist/react-native/common/logger.js.map +0 -1
  234. package/dist/react-native/common/messages.d.ts +0 -165
  235. package/dist/react-native/common/messages.d.ts.map +0 -1
  236. package/dist/react-native/common/messages.js +0 -167
  237. package/dist/react-native/common/messages.js.map +0 -1
  238. package/dist/react-native/common/playwrightServiceConfig.d.ts +0 -22
  239. package/dist/react-native/common/playwrightServiceConfig.d.ts.map +0 -1
  240. package/dist/react-native/common/playwrightServiceConfig.js +0 -102
  241. package/dist/react-native/common/playwrightServiceConfig.js.map +0 -1
  242. package/dist/react-native/common/state.d.ts +0 -2
  243. package/dist/react-native/common/state.d.ts.map +0 -1
  244. package/dist/react-native/common/state.js +0 -9
  245. package/dist/react-native/common/state.js.map +0 -1
  246. package/dist/react-native/common/types.d.ts +0 -207
  247. package/dist/react-native/common/types.d.ts.map +0 -1
  248. package/dist/react-native/common/types.js +0 -4
  249. package/dist/react-native/common/types.js.map +0 -1
  250. package/dist/react-native/core/global/playwright-service-global-setup.d.ts +0 -4
  251. package/dist/react-native/core/global/playwright-service-global-setup.d.ts.map +0 -1
  252. package/dist/react-native/core/global/playwright-service-global-setup.js +0 -25
  253. package/dist/react-native/core/global/playwright-service-global-setup.js.map +0 -1
  254. package/dist/react-native/core/global/playwright-service-global-teardown.d.ts +0 -4
  255. package/dist/react-native/core/global/playwright-service-global-teardown.d.ts.map +0 -1
  256. package/dist/react-native/core/global/playwright-service-global-teardown.js +0 -19
  257. package/dist/react-native/core/global/playwright-service-global-teardown.js.map +0 -1
  258. package/dist/react-native/core/initializePlaywrightServiceTestRun.d.ts +0 -9
  259. package/dist/react-native/core/initializePlaywrightServiceTestRun.d.ts.map +0 -1
  260. package/dist/react-native/core/initializePlaywrightServiceTestRun.js +0 -26
  261. package/dist/react-native/core/initializePlaywrightServiceTestRun.js.map +0 -1
  262. package/dist/react-native/core/playwrightService.d.ts +0 -66
  263. package/dist/react-native/core/playwrightService.d.ts.map +0 -1
  264. package/dist/react-native/core/playwrightService.js +0 -219
  265. package/dist/react-native/core/playwrightService.js.map +0 -1
  266. package/dist/react-native/core/playwrightServiceEntra.d.ts +0 -15
  267. package/dist/react-native/core/playwrightServiceEntra.d.ts.map +0 -1
  268. package/dist/react-native/core/playwrightServiceEntra.js +0 -53
  269. package/dist/react-native/core/playwrightServiceEntra.js.map +0 -1
  270. package/dist/react-native/core/playwrightServiceUtils.d.ts +0 -5
  271. package/dist/react-native/core/playwrightServiceUtils.d.ts.map +0 -1
  272. package/dist/react-native/core/playwrightServiceUtils.js +0 -13
  273. package/dist/react-native/core/playwrightServiceUtils.js.map +0 -1
  274. package/dist/react-native/index.d.ts +0 -10
  275. package/dist/react-native/index.d.ts.map +0 -1
  276. package/dist/react-native/index.js +0 -11
  277. package/dist/react-native/index.js.map +0 -1
  278. package/dist/react-native/package.json +0 -3
  279. package/dist/react-native/reporter/index.d.ts +0 -10
  280. package/dist/react-native/reporter/index.d.ts.map +0 -1
  281. package/dist/react-native/reporter/index.js +0 -12
  282. package/dist/react-native/reporter/index.js.map +0 -1
  283. package/dist/react-native/reporter/playwrightReporter.d.ts +0 -28
  284. package/dist/react-native/reporter/playwrightReporter.d.ts.map +0 -1
  285. package/dist/react-native/reporter/playwrightReporter.js +0 -210
  286. package/dist/react-native/reporter/playwrightReporter.js.map +0 -1
  287. package/dist/react-native/utils/PlaywrightServiceClient.d.ts +0 -9
  288. package/dist/react-native/utils/PlaywrightServiceClient.d.ts.map +0 -1
  289. package/dist/react-native/utils/PlaywrightServiceClient.js +0 -67
  290. package/dist/react-native/utils/PlaywrightServiceClient.js.map +0 -1
  291. package/dist/react-native/utils/cIInfoProvider.d.ts +0 -20
  292. package/dist/react-native/utils/cIInfoProvider.d.ts.map +0 -1
  293. package/dist/react-native/utils/cIInfoProvider.js +0 -75
  294. package/dist/react-native/utils/cIInfoProvider.js.map +0 -1
  295. package/dist/react-native/utils/getPackageVersion.d.ts +0 -2
  296. package/dist/react-native/utils/getPackageVersion.d.ts.map +0 -1
  297. package/dist/react-native/utils/getPackageVersion.js +0 -23
  298. package/dist/react-native/utils/getPackageVersion.js.map +0 -1
  299. package/dist/react-native/utils/getPlaywrightVersion.d.ts +0 -2
  300. package/dist/react-native/utils/getPlaywrightVersion.d.ts.map +0 -1
  301. package/dist/react-native/utils/getPlaywrightVersion.js +0 -19
  302. package/dist/react-native/utils/getPlaywrightVersion.js.map +0 -1
  303. package/dist/react-native/utils/packageManager.d.ts +0 -15
  304. package/dist/react-native/utils/packageManager.d.ts.map +0 -1
  305. package/dist/react-native/utils/packageManager.js +0 -41
  306. package/dist/react-native/utils/packageManager.js.map +0 -1
  307. package/dist/react-native/utils/parseJwt.d.ts +0 -4
  308. package/dist/react-native/utils/parseJwt.d.ts.map +0 -1
  309. package/dist/react-native/utils/parseJwt.js +0 -16
  310. package/dist/react-native/utils/parseJwt.js.map +0 -1
  311. package/dist/react-native/utils/playwrightReporterStorageManager.d.ts +0 -13
  312. package/dist/react-native/utils/playwrightReporterStorageManager.d.ts.map +0 -1
  313. package/dist/react-native/utils/playwrightReporterStorageManager.js +0 -452
  314. package/dist/react-native/utils/playwrightReporterStorageManager.js.map +0 -1
  315. package/dist/react-native/utils/utils.d.ts +0 -57
  316. package/dist/react-native/utils/utils.d.ts.map +0 -1
  317. package/dist/react-native/utils/utils.js +0 -392
  318. package/dist/react-native/utils/utils.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/common/messages.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport const ServiceErrorMessageConstants = {\n NO_SERVICE_URL_ERROR: {\n key: \"NoServiceUrlError\",\n message:\n \"The value for the PLAYWRIGHT_SERVICE_URL variable is not set correctly. Please verify the URL and try again.\",\n },\n INVALID_GLOBAL_FUNCTION: {\n key: \"InvalidGlobalFunction\",\n message: \"File must export a single function.\",\n },\n INVALID_PLAYWRIGHT_VERSION_ERROR: {\n key: \"InvalidPlaywrightVersionError\",\n message:\n \"The Playwright version you are using is not supported. See the list of supported versions at https://aka.ms/pww/docs/supported-versions.\",\n },\n PLAYWRIGHT_VERSION_TOO_OLD_FOR_REPORTING: {\n key: \"PlaywrightVersionTooOldForReporting\",\n message:\n \"To use the Playwright Workspaces reporting feature, you need Playwright version 1.57 or later installed. Update the Playwright package to a supported version and try again.\",\n },\n MULTIPLE_SETUP_FILE_PLAYWRIGHT_VERSION_ERROR: {\n key: \"MultipleSetupFilePlaywrightVersionError\",\n message:\n \"The Playwright version you are using does not support multiple setup/teardown files. Please update to Playwright version 1.49.0 or higher.\",\n },\n WORKSPACE_MISMATCH_ERROR: {\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 },\n NO_AUTH_ERROR_PAT_TOKEN: {\n key: \"NoAuthErrorPatToken\",\n message:\n \"Please set PLAYWRIGHT_SERVICE_ACCESS_TOKEN env variable when using ACCESS_TOKEN authentication. For more information, see https://aka.ms/pww/docs/authentication\",\n },\n NO_AUTH_ERROR_ENTRA_TOKEN: {\n key: \"NoAuthErrorEntraToken\",\n message:\n \"Could not authenticate with the service. For more information, see https://aka.ms/pww/docs/authentication\",\n },\n INVALID_MPT_PAT_ERROR: {\n key: \"InvalidMptPatError\",\n message:\n \"The PLAYWRIGHT_SERVICE_ACCESS_TOKEN provided is invalid. Please make sure to set a valid token.\",\n },\n EXPIRED_MPT_PAT_ERROR: {\n key: \"ExpiredMptPatError\",\n message: \"The PLAYWRIGHT_SERVICE_ACCESS_TOKEN provided has expired. Create a new token.\",\n },\n NO_CRED_ENTRA_AUTH_ERROR: {\n key: \"NoCredEntraAuthError\",\n message:\n \"Missing 'credential' parameter which is required when using ENTRA_ID authentication, Azure credential not provided. See https://aka.ms/pww/docs/authentication for more information.\",\n },\n FAILED_TO_CREATE_TEST_RUN: {\n key: \"FailedToCreateTestRun\",\n message:\n \"Failed to create the test run in the Playwright workspaces. For more information, see https://aka.ms/pww/docs/troubleshooting\",\n formatWithErrorDetails: (errorDetails: string): string =>\n `Failed to create the test run in the Playwright workspaces. Error: ${errorDetails}. For more information, see https://aka.ms/pww/docs/troubleshooting`,\n },\n INVALID_PARAM_WITH_SERVICE_CONFIG: {\n key: \"InvalidParamWithServiceConfig\",\n message: `Remove serviceAuth, runId, and runName from getConnectOptions when using createAzurePlaywrightConfig. Configure these options through createAzurePlaywrightConfig instead.`,\n },\n INVALID_RUN_ID_FORMAT: {\n key: \"InvalidRunIdFormat\",\n message: \"The Run ID must be a valid GUID format. Please provide a valid GUID for the Run ID.\",\n },\n INVALID_AUTH_TYPE_ERROR: {\n key: \"InvalidAuthTypeError\",\n message: \"Invalid authentication type specified. Please use either ENTRA_ID or ACCESS_TOKEN.\",\n },\n FAILED_TO_GET_WORKSPACE_DETAILS: {\n key: \"FailedToGetWorkspaceDetails\",\n message: \"Failed to retrieve workspace details from the Playwright service.\",\n formatWithErrorDetails: (errorDetails: string): string =>\n `Failed to retrieve workspace details from the Playwright service. Error: ${errorDetails}. Please verify your service URL and authentication credentials.`,\n },\n STORAGE_URI_NOT_FOUND: {\n key: \"StorageUriNotFound\",\n message: \"Storage Account is not linked with this Playwright Workspace.\",\n },\n STORAGE_AUTHORIZATION_FAILED: {\n key: \"StorageAuthorizationFailed\",\n message:\n \"The user is not authorized to perform this operation. Please make sure you have the Storage Blob Data Contributor role assigned to the storage account. For more information, see https://aka.ms/pww-reporting\",\n formatWithStorageAccount: (storageAccountName: string): string =>\n `The user is not authorized to perform this operation. Please make sure you have the Storage Blob Data Contributor role assigned to the storage account - ${storageAccountName}. For more information, see https://aka.ms/pww-reporting`,\n },\n UNABLE_TO_EXTRACT_WORKSPACE_ID: {\n key: \"UnableToExtractWorkspaceId\",\n message: \"Unable to extract workspace ID from service URL\",\n },\n STORAGE_ACCOUNT_DELETED: {\n key: \"StorageAccountDeleted\",\n message:\n \"The storage account linked to your Playwright Workspace may have been deleted. Please link a different storage account to your Playwright Workspace before trying again. To learn more on how to link a new storage account, refer to https://aka.ms/pww-reporting-migration\",\n formatWithStorageAccount: (storageAccountName: string): string =>\n `The storage account linked to your Playwright Workspace (${storageAccountName}) may have been deleted. Please link a different storage account to your Playwright Workspace before trying again. To learn more on how to link a new storage account, refer to https://aka.ms/pww-reporting-migration`,\n },\n REPORTER_REQUIRES_ENTRA_AUTH: {\n key: \"ReporterRequiresEntraAuth\",\n message:\n \"Playwright Workspaces Reporter can only be used with ENTRA_ID authentication. For more information, see https://aka.ms/pww/docs/authentication\",\n },\n HTML_REPORTER_REQUIRED: {\n key: \"HtmlReporterRequired\",\n message:\n \"Playwright Workspaces Reporter requires the 'html' reporter to be configured in your Playwright configuration. Please add the 'html' reporter before playwright workspace reporter to generate test reports that can be uploaded to Azure Storage. Example: reporter: [['html'], ['@azure/playwright/reporter']]. For more information, see https://aka.ms/pww-reporting\",\n },\n WORKSPACE_METADATA_FETCH_FAILED: {\n key: \"WorkspaceMetadataFetchFailed\",\n message:\n \"Failed to retrieve workspace configuration. Reporting will be disabled for this run. Please check your authentication credentials and service URL.\",\n },\n WORKSPACE_REPORTING_DISABLED: {\n key: \"WorkspaceReportingDisabled\",\n message:\n \"Playwright Workspaces reporting: DISABLED. Reporting is not enabled for the Playwright Workspace. To learn more about how to enable reporting and link a storage account, see https://aka.ms/pww-reporting\",\n },\n WORKSPACE_REPORTING_STORAGE_NOT_LINKED: {\n key: \"WorkspaceReportingStorageNotLinked\",\n message:\n \"Playwright Workspaces reporting: DISABLED. Reporting is enabled for the Playwright Workspace, but no storage account is linked. Please link a storage account to enable reporting. For more information, see https://aka.ms/pww-reporting\",\n },\n UPLOAD_FAILED_FILES: {\n key: \"UploadFailedFiles\",\n message: \"Upload failed: files could not be uploaded\",\n formatWithCount: (failed: number): string =>\n `Upload failed: ${failed} files could not be uploaded`,\n },\n PLAYWRIGHT_TEST_REPORT_NOT_FOUND: {\n key: \"PlaywrightTestReportNotFound\",\n message: \"Playwright test report not found\",\n formatWithFolder: (folderName: string): string =>\n `Playwright test report not found: ${folderName}. For more information, see https://aka.ms/pww-reporting`,\n },\n REPORTING_ENABLED: {\n key: \"ReportingEnabled\",\n message: \"Playwright Workspaces reporting: ENABLED\",\n },\n COLLECTING_ARTIFACTS: {\n key: \"CollectingArtifacts\",\n message: \"Collecting artifacts: screenshots, videos, traces.\",\n },\n REPORTING_STATUS_SUCCESS: {\n key: \"ReportingStatusSuccess\",\n message: \"Reporting upload status: SUCCESS\",\n },\n REPORTING_STATUS_PARTIAL: {\n key: \"ReportingStatusPartial\",\n message: \"Reporting upload status: Partially Uploaded\",\n },\n REPORTING_STATUS_FAILED: {\n key: \"ReportingStatusFailed\",\n message: \"Reporting upload status: FAILED\",\n },\n TEST_REPORT_VIEW_URL: {\n key: \"TestReportViewUrl\",\n message: \"Published report URL: \",\n formatWithUrl: (url: string): string => `Published report URL: ${url}`,\n },\n UPLOADING_ARTIFACTS: {\n key: \"UploadingArtifacts\",\n message: \"Uploading artifacts to storage\",\n formatWithDetails: (storageAccount: string, container: string, folder: string): string =>\n `Uploading artifacts to: storage account= ${storageAccount}, storage container= ${container}, folder= ${folder}`,\n },\n FAILED_TO_GET_WORKSPACE_METADATA: {\n key: \"FailedToGetWorkspaceMetadata\",\n message: \"Failed to get workspace metadata\",\n formatWithError: (error: string): string => error,\n },\n TEST_RUN_CREATION_FAILED: {\n key: \"TestRunCreationFailed\",\n message: \"Failed to create test run. Test execution will continue.\",\n formatWithErrorDetails: (errorDetails: string): string =>\n `Failed to create test run. Error: ${errorDetails}. Test execution will continue.`,\n },\n REPORTING_TEST_RUN_FAILED: {\n key: \"ReportingTestRunFailed\",\n message: \"Test run creation failed during setup.\",\n },\n REPORTER_REQUIRES_SERVICE_CONFIG: {\n key: \"ReporterRequiresServiceConfig\",\n message:\n \"Playwright Workspaces Reporter requires the use of service configuration via createAzurePlaywrightConfig. For more information, see https://aka.ms/pww-reporting.\",\n },\n};\n"]}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/common/messages.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport const ServiceErrorMessageConstants = {\n NO_SERVICE_URL_ERROR: {\n key: \"NoServiceUrlError\",\n message:\n \"The value for the PLAYWRIGHT_SERVICE_URL variable is not set correctly. Please verify the URL and try again.\",\n },\n INVALID_GLOBAL_FUNCTION: {\n key: \"InvalidGlobalFunction\",\n message: \"File must export a single function.\",\n },\n INVALID_PLAYWRIGHT_VERSION_ERROR: {\n key: \"InvalidPlaywrightVersionError\",\n message:\n \"The Playwright version you are using is not supported. See the list of supported versions at https://aka.ms/pww/docs/supported-versions.\",\n },\n PLAYWRIGHT_VERSION_TOO_OLD_FOR_REPORTING: {\n key: \"PlaywrightVersionTooOldForReporting\",\n message:\n \"To use the Playwright Workspaces reporting feature, you need Playwright version 1.57 or later installed. Update the Playwright package to a supported version and try again.\",\n },\n MULTIPLE_SETUP_FILE_PLAYWRIGHT_VERSION_ERROR: {\n key: \"MultipleSetupFilePlaywrightVersionError\",\n message:\n \"The Playwright version you are using does not support multiple setup/teardown files. Please update to Playwright version 1.49.0 or higher.\",\n },\n WORKSPACE_MISMATCH_ERROR: {\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 },\n NO_AUTH_ERROR_PAT_TOKEN: {\n key: \"NoAuthErrorPatToken\",\n message:\n \"Please set PLAYWRIGHT_SERVICE_ACCESS_TOKEN env variable when using ACCESS_TOKEN authentication. For more information, see https://aka.ms/pww/docs/authentication\",\n },\n NO_AUTH_ERROR_ENTRA_TOKEN: {\n key: \"NoAuthErrorEntraToken\",\n message:\n \"Could not authenticate with the service. For more information, see https://aka.ms/pww/docs/authentication\",\n },\n INVALID_MPT_PAT_ERROR: {\n key: \"InvalidMptPatError\",\n message:\n \"The PLAYWRIGHT_SERVICE_ACCESS_TOKEN provided is invalid. Please make sure to set a valid token.\",\n },\n EXPIRED_MPT_PAT_ERROR: {\n key: \"ExpiredMptPatError\",\n message: \"The PLAYWRIGHT_SERVICE_ACCESS_TOKEN provided has expired. Create a new token.\",\n },\n NO_CRED_ENTRA_AUTH_ERROR: {\n key: \"NoCredEntraAuthError\",\n message:\n \"Missing 'credential' parameter which is required when using ENTRA_ID authentication, Azure credential not provided. See https://aka.ms/pww/docs/authentication for more information.\",\n },\n FAILED_TO_CREATE_TEST_RUN: {\n key: \"FailedToCreateTestRun\",\n message:\n \"Failed to create the test run in the Playwright workspaces. For more information, see https://aka.ms/pww/docs/troubleshooting\",\n formatWithErrorDetails: (errorDetails: string): string =>\n `Failed to create the test run in the Playwright workspaces. Error: ${errorDetails}. For more information, see https://aka.ms/pww/docs/troubleshooting`,\n },\n INVALID_PARAM_WITH_SERVICE_CONFIG: {\n key: \"InvalidParamWithServiceConfig\",\n message: `Remove serviceAuth, runId, and runName from getConnectOptions when using createAzurePlaywrightConfig. Configure these options through createAzurePlaywrightConfig instead.`,\n },\n INVALID_RUN_ID_FORMAT: {\n key: \"InvalidRunIdFormat\",\n message: \"The Run ID must be a valid GUID format. Please provide a valid GUID for the Run ID.\",\n },\n INVALID_AUTH_TYPE_ERROR: {\n key: \"InvalidAuthTypeError\",\n message: \"Invalid authentication type specified. Please use either ENTRA_ID or ACCESS_TOKEN.\",\n },\n FAILED_TO_GET_WORKSPACE_DETAILS: {\n key: \"FailedToGetWorkspaceDetails\",\n message: \"Failed to retrieve workspace details from the Playwright service.\",\n formatWithErrorDetails: (errorDetails: string): string =>\n `Failed to retrieve workspace details from the Playwright service. Error: ${errorDetails}. Please verify your service URL and authentication credentials.`,\n },\n STORAGE_URI_NOT_FOUND: {\n key: \"StorageUriNotFound\",\n message: \"Storage Account is not linked with this Playwright Workspace.\",\n },\n INVALID_STORAGE_URI: {\n key: \"InvalidStorageUri\",\n message:\n \"The storage URI configured on this Playwright Workspace is not a valid Azure Storage Blob endpoint. \" +\n \"Please ask a workspace administrator to relink a valid Azure Storage Blob account. \" +\n \"For more information, see https://aka.ms/pww-reporting\",\n },\n STORAGE_AUTHORIZATION_FAILED: {\n key: \"StorageAuthorizationFailed\",\n message:\n \"The user is not authorized to perform this operation. Please make sure you have the Storage Blob Data Contributor role assigned to the storage account. For more information, see https://aka.ms/pww-reporting\",\n formatWithStorageAccount: (storageAccountName: string): string =>\n `The user is not authorized to perform this operation. Please make sure you have the Storage Blob Data Contributor role assigned to the storage account - ${storageAccountName}. For more information, see https://aka.ms/pww-reporting`,\n },\n UNABLE_TO_EXTRACT_WORKSPACE_ID: {\n key: \"UnableToExtractWorkspaceId\",\n message: \"Unable to extract workspace ID from service URL\",\n },\n STORAGE_ACCOUNT_DELETED: {\n key: \"StorageAccountDeleted\",\n message:\n \"The storage account linked to your Playwright Workspace may have been deleted. Please link a different storage account to your Playwright Workspace before trying again. To learn more on how to link a new storage account, refer to https://aka.ms/pww-reporting-migration\",\n formatWithStorageAccount: (storageAccountName: string): string =>\n `The storage account linked to your Playwright Workspace (${storageAccountName}) may have been deleted. Please link a different storage account to your Playwright Workspace before trying again. To learn more on how to link a new storage account, refer to https://aka.ms/pww-reporting-migration`,\n },\n REPORTER_REQUIRES_ENTRA_AUTH: {\n key: \"ReporterRequiresEntraAuth\",\n message:\n \"Playwright Workspaces Reporter can only be used with ENTRA_ID authentication. For more information, see https://aka.ms/pww/docs/authentication\",\n },\n HTML_REPORTER_REQUIRED: {\n key: \"HtmlReporterRequired\",\n message:\n \"Playwright Workspaces Reporter requires the 'html' reporter to be configured in your Playwright configuration. Please add the 'html' reporter before playwright workspace reporter to generate test reports that can be uploaded to Azure Storage. Example: reporter: [['html'], ['@azure/playwright/reporter']]. For more information, see https://aka.ms/pww-reporting\",\n },\n WORKSPACE_METADATA_FETCH_FAILED: {\n key: \"WorkspaceMetadataFetchFailed\",\n message:\n \"Failed to retrieve workspace configuration. Reporting will be disabled for this run. Please check your authentication credentials and service URL.\",\n },\n WORKSPACE_REPORTING_DISABLED: {\n key: \"WorkspaceReportingDisabled\",\n message:\n \"Playwright Workspaces reporting: DISABLED. Reporting is not enabled for the Playwright Workspace. To learn more about how to enable reporting and link a storage account, see https://aka.ms/pww-reporting\",\n },\n WORKSPACE_REPORTING_STORAGE_NOT_LINKED: {\n key: \"WorkspaceReportingStorageNotLinked\",\n message:\n \"Playwright Workspaces reporting: DISABLED. Reporting is enabled for the Playwright Workspace, but no storage account is linked. Please link a storage account to enable reporting. For more information, see https://aka.ms/pww-reporting\",\n },\n UPLOAD_FAILED_FILES: {\n key: \"UploadFailedFiles\",\n message: \"Upload failed: files could not be uploaded\",\n formatWithCount: (failed: number): string =>\n `Upload failed: ${failed} files could not be uploaded`,\n },\n PLAYWRIGHT_TEST_REPORT_NOT_FOUND: {\n key: \"PlaywrightTestReportNotFound\",\n message: \"Playwright test report not found\",\n formatWithFolder: (folderName: string): string =>\n `Playwright test report not found: ${folderName}. For more information, see https://aka.ms/pww-reporting`,\n },\n REPORTING_ENABLED: {\n key: \"ReportingEnabled\",\n message: \"Playwright Workspaces reporting: ENABLED\",\n },\n COLLECTING_ARTIFACTS: {\n key: \"CollectingArtifacts\",\n message: \"Collecting artifacts: screenshots, videos, traces.\",\n },\n REPORTING_STATUS_SUCCESS: {\n key: \"ReportingStatusSuccess\",\n message: \"Reporting upload status: SUCCESS\",\n },\n REPORTING_STATUS_PARTIAL: {\n key: \"ReportingStatusPartial\",\n message: \"Reporting upload status: Partially Uploaded\",\n },\n REPORTING_STATUS_FAILED: {\n key: \"ReportingStatusFailed\",\n message: \"Reporting upload status: FAILED\",\n },\n TEST_REPORT_VIEW_URL: {\n key: \"TestReportViewUrl\",\n message: \"Published report URL: \",\n formatWithUrl: (url: string): string => `Published report URL: ${url}`,\n },\n UPLOADING_ARTIFACTS: {\n key: \"UploadingArtifacts\",\n message: \"Uploading artifacts to storage\",\n formatWithDetails: (storageAccount: string, container: string, folder: string): string =>\n `Uploading artifacts to: storage account= ${storageAccount}, storage container= ${container}, folder= ${folder}`,\n },\n FAILED_TO_GET_WORKSPACE_METADATA: {\n key: \"FailedToGetWorkspaceMetadata\",\n message: \"Failed to get workspace metadata\",\n formatWithError: (error: string): string => error,\n },\n TEST_RUN_CREATION_FAILED: {\n key: \"TestRunCreationFailed\",\n message: \"Failed to create test run. Test execution will continue.\",\n formatWithErrorDetails: (errorDetails: string): string =>\n `Failed to create test run. Error: ${errorDetails}. Test execution will continue.`,\n },\n REPORTING_TEST_RUN_FAILED: {\n key: \"ReportingTestRunFailed\",\n message: \"Test run creation failed during setup.\",\n },\n REPORTER_REQUIRES_SERVICE_CONFIG: {\n key: \"ReporterRequiresServiceConfig\",\n message:\n \"Playwright Workspaces Reporter requires the use of service configuration via createAzurePlaywrightConfig. For more information, see https://aka.ms/pww-reporting.\",\n },\n};\n"]}
@@ -1,4 +1,4 @@
1
- import type { PlaywrightServiceAdditionalOptions, OsType } from "./types.js";
1
+ import type { BrowserSessionSourceTypeValue, PlaywrightServiceAdditionalOptions, OsType } from "./types.js";
2
2
  import type { TokenCredential } from "@azure/identity";
3
3
  declare class PlaywrightServiceConfig {
4
4
  serviceOs: OsType;
@@ -8,6 +8,7 @@ declare class PlaywrightServiceConfig {
8
8
  exposeNetwork: string;
9
9
  runName: string;
10
10
  apiVersion: string;
11
+ sourceType: BrowserSessionSourceTypeValue;
11
12
  private _serviceAuthType;
12
13
  credential?: TokenCredential;
13
14
  constructor();
@@ -1 +1 @@
1
- {"version":3,"file":"playwrightServiceConfig.d.ts","sourceRoot":"","sources":["../../../src/common/playwrightServiceConfig.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAMvD,cAAM,uBAAuB;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,gBAAgB,CAAgC;IACjD,UAAU,CAAC,EAAE,eAAe,CAAC;;IAcpC,WAAkB,QAAQ,IAAI,uBAAuB,CAKpD;IAED,IAAW,eAAe,IAAI,MAAM,CAEnC;IAED,IAAW,eAAe,CAAC,KAAK,EAAE,MAAM,EAEvC;IAEY,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxC,eAAe,GAAI,UAAU,kCAAkC,KAAG,IAAI,CAYpE;IAEF,UAAU,GACR,UAAU,kCAAkC,EAC5C,sBAAqB,OAAe,KACnC,IAAI,CAwCL;CACH;AAED,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
1
+ {"version":3,"file":"playwrightServiceConfig.d.ts","sourceRoot":"","sources":["../../../src/common/playwrightServiceConfig.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,6BAA6B,EAC7B,kCAAkC,EAClC,MAAM,EACP,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAMvD,cAAM,uBAAuB;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,6BAA6B,CAAC;IACjD,OAAO,CAAC,gBAAgB,CAAgC;IACjD,UAAU,CAAC,EAAE,eAAe,CAAC;;IAepC,WAAkB,QAAQ,IAAI,uBAAuB,CAKpD;IAED,IAAW,eAAe,IAAI,MAAM,CAEnC;IAED,IAAW,eAAe,CAAC,KAAK,EAAE,MAAM,EAEvC;IAEY,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxC,eAAe,GAAI,UAAU,kCAAkC,KAAG,IAAI,CAYpE;IAEF,UAAU,GACR,UAAU,kCAAkC,EAC5C,sBAAqB,OAAe,KACnC,IAAI,CA2CL;CACH;AAED,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
- import { Constants, DefaultConnectOptionsConstants, InternalEnvironmentVariables, ServiceAuth, } from "./constants.js";
3
+ import { BrowserSessionSourceType, Constants, DefaultConnectOptionsConstants, InternalEnvironmentVariables, ServiceAuth, } from "./constants.js";
4
4
  import { getAndSetRunId, getRunName, ValidateRunID } from "../utils/utils.js";
5
5
  import { CIInfoProvider } from "../utils/cIInfoProvider.js";
6
6
  import { state } from "./state.js";
@@ -13,6 +13,7 @@ class PlaywrightServiceConfig {
13
13
  exposeNetwork;
14
14
  runName;
15
15
  apiVersion;
16
+ sourceType;
16
17
  _serviceAuthType = ServiceAuth.ENTRA_ID;
17
18
  credential;
18
19
  constructor() {
@@ -25,6 +26,7 @@ class PlaywrightServiceConfig {
25
26
  this.exposeNetwork = DefaultConnectOptionsConstants.DEFAULT_EXPOSE_NETWORK;
26
27
  this.apiVersion =
27
28
  process.env[InternalEnvironmentVariables.MPT_API_VERSION] || Constants.LatestAPIVersion;
29
+ this.sourceType = BrowserSessionSourceType.PLAYWRIGHT_WORKSPACES_TEST_RUN;
28
30
  }
29
31
  static get instance() {
30
32
  if (!state.playwrightServiceConfig) {
@@ -96,6 +98,9 @@ class PlaywrightServiceConfig {
96
98
  if (options?.credential) {
97
99
  this.credential = options.credential;
98
100
  }
101
+ if (options?.sourceType) {
102
+ this.sourceType = options.sourceType;
103
+ }
99
104
  };
100
105
  }
101
106
  export { PlaywrightServiceConfig };
@@ -1 +1 @@
1
- {"version":3,"file":"playwrightServiceConfig.js","sourceRoot":"","sources":["../../../src/common/playwrightServiceConfig.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n Constants,\n DefaultConnectOptionsConstants,\n InternalEnvironmentVariables,\n ServiceAuth,\n} from \"./constants.js\";\nimport type { PlaywrightServiceAdditionalOptions, OsType } from \"./types.js\";\nimport type { TokenCredential } from \"@azure/identity\";\nimport { getAndSetRunId, getRunName, ValidateRunID } from \"../utils/utils.js\";\nimport { CIInfoProvider } from \"../utils/cIInfoProvider.js\";\nimport { state } from \"./state.js\";\nimport { ServiceErrorMessageConstants } from \"./messages.js\";\n\nclass PlaywrightServiceConfig {\n public serviceOs: OsType;\n public runId: string;\n public connectTimeout: number;\n public slowMo: number;\n public exposeNetwork: string;\n public runName: string;\n public apiVersion: string;\n private _serviceAuthType: string = ServiceAuth.ENTRA_ID;\n public credential?: TokenCredential;\n\n constructor() {\n this.serviceOs = (process.env[InternalEnvironmentVariables.MPT_SERVICE_OS] ||\n DefaultConnectOptionsConstants.DEFAULT_SERVICE_OS) as OsType;\n this.runName = process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_NAME] || \"\";\n this.runId = process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_ID] || \"\";\n this.connectTimeout = DefaultConnectOptionsConstants.DEFAULT_TIMEOUT;\n this.slowMo = DefaultConnectOptionsConstants.DEFAULT_SLOW_MO;\n this.exposeNetwork = DefaultConnectOptionsConstants.DEFAULT_EXPOSE_NETWORK;\n this.apiVersion =\n process.env[InternalEnvironmentVariables.MPT_API_VERSION] || Constants.LatestAPIVersion;\n }\n\n public static get instance(): PlaywrightServiceConfig {\n if (!state.playwrightServiceConfig) {\n state.playwrightServiceConfig = new PlaywrightServiceConfig();\n }\n return state.playwrightServiceConfig;\n }\n\n public get serviceAuthType(): string {\n return this._serviceAuthType;\n }\n\n public set serviceAuthType(value: string) {\n this._serviceAuthType = value;\n }\n\n public async initialize(): Promise<void> {\n if (!this.runName) {\n const ciConfigInfo = CIInfoProvider.getCIInfo();\n this.runName = await getRunName(ciConfigInfo);\n }\n }\n\n validateOptions = (options?: PlaywrightServiceAdditionalOptions): void => {\n if (!options) return;\n\n const isUsingServiceConfig =\n process.env[InternalEnvironmentVariables.USING_SERVICE_CONFIG] === \"true\";\n if (isUsingServiceConfig) {\n if (options.serviceAuthType || options.runId || options.runName) {\n const errorMessage = ServiceErrorMessageConstants.INVALID_PARAM_WITH_SERVICE_CONFIG.message;\n throw new Error(errorMessage);\n }\n return;\n }\n };\n\n setOptions = (\n options?: PlaywrightServiceAdditionalOptions,\n isGetConnectOptions: boolean = false,\n ): void => {\n if (isGetConnectOptions) {\n this.validateOptions(options);\n }\n\n if (options?.exposeNetwork) {\n this.exposeNetwork = options.exposeNetwork;\n }\n if (options?.apiVersion) {\n if (!process.env[InternalEnvironmentVariables.MPT_API_VERSION]) {\n process.env[InternalEnvironmentVariables.MPT_API_VERSION] = options.apiVersion;\n }\n this.apiVersion = options.apiVersion;\n }\n if (!process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_ID]) {\n if (options?.runId) {\n ValidateRunID(options.runId);\n this.runId = options.runId;\n process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_ID] = this.runId;\n } else {\n this.runId = getAndSetRunId();\n }\n }\n if (!process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_NAME] && options?.runName) {\n this.runName = options.runName;\n process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_NAME] = this.runName;\n }\n if (options?.os) {\n this.serviceOs = options.os;\n process.env[InternalEnvironmentVariables.MPT_SERVICE_OS] = this.serviceOs;\n }\n if (options?.slowMo) {\n this.slowMo = options.slowMo;\n }\n if (options?.connectTimeout) {\n this.connectTimeout = options.connectTimeout;\n }\n if (options?.credential) {\n this.credential = options.credential;\n }\n };\n}\n\nexport { PlaywrightServiceConfig };\n"]}
1
+ {"version":3,"file":"playwrightServiceConfig.js","sourceRoot":"","sources":["../../../src/common/playwrightServiceConfig.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n BrowserSessionSourceType,\n Constants,\n DefaultConnectOptionsConstants,\n InternalEnvironmentVariables,\n ServiceAuth,\n} from \"./constants.js\";\nimport type {\n BrowserSessionSourceTypeValue,\n PlaywrightServiceAdditionalOptions,\n OsType,\n} from \"./types.js\";\nimport type { TokenCredential } from \"@azure/identity\";\nimport { getAndSetRunId, getRunName, ValidateRunID } from \"../utils/utils.js\";\nimport { CIInfoProvider } from \"../utils/cIInfoProvider.js\";\nimport { state } from \"./state.js\";\nimport { ServiceErrorMessageConstants } from \"./messages.js\";\n\nclass PlaywrightServiceConfig {\n public serviceOs: OsType;\n public runId: string;\n public connectTimeout: number;\n public slowMo: number;\n public exposeNetwork: string;\n public runName: string;\n public apiVersion: string;\n public sourceType: BrowserSessionSourceTypeValue;\n private _serviceAuthType: string = ServiceAuth.ENTRA_ID;\n public credential?: TokenCredential;\n\n constructor() {\n this.serviceOs = (process.env[InternalEnvironmentVariables.MPT_SERVICE_OS] ||\n DefaultConnectOptionsConstants.DEFAULT_SERVICE_OS) as OsType;\n this.runName = process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_NAME] || \"\";\n this.runId = process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_ID] || \"\";\n this.connectTimeout = DefaultConnectOptionsConstants.DEFAULT_TIMEOUT;\n this.slowMo = DefaultConnectOptionsConstants.DEFAULT_SLOW_MO;\n this.exposeNetwork = DefaultConnectOptionsConstants.DEFAULT_EXPOSE_NETWORK;\n this.apiVersion =\n process.env[InternalEnvironmentVariables.MPT_API_VERSION] || Constants.LatestAPIVersion;\n this.sourceType = BrowserSessionSourceType.PLAYWRIGHT_WORKSPACES_TEST_RUN;\n }\n\n public static get instance(): PlaywrightServiceConfig {\n if (!state.playwrightServiceConfig) {\n state.playwrightServiceConfig = new PlaywrightServiceConfig();\n }\n return state.playwrightServiceConfig;\n }\n\n public get serviceAuthType(): string {\n return this._serviceAuthType;\n }\n\n public set serviceAuthType(value: string) {\n this._serviceAuthType = value;\n }\n\n public async initialize(): Promise<void> {\n if (!this.runName) {\n const ciConfigInfo = CIInfoProvider.getCIInfo();\n this.runName = await getRunName(ciConfigInfo);\n }\n }\n\n validateOptions = (options?: PlaywrightServiceAdditionalOptions): void => {\n if (!options) return;\n\n const isUsingServiceConfig =\n process.env[InternalEnvironmentVariables.USING_SERVICE_CONFIG] === \"true\";\n if (isUsingServiceConfig) {\n if (options.serviceAuthType || options.runId || options.runName) {\n const errorMessage = ServiceErrorMessageConstants.INVALID_PARAM_WITH_SERVICE_CONFIG.message;\n throw new Error(errorMessage);\n }\n return;\n }\n };\n\n setOptions = (\n options?: PlaywrightServiceAdditionalOptions,\n isGetConnectOptions: boolean = false,\n ): void => {\n if (isGetConnectOptions) {\n this.validateOptions(options);\n }\n\n if (options?.exposeNetwork) {\n this.exposeNetwork = options.exposeNetwork;\n }\n if (options?.apiVersion) {\n if (!process.env[InternalEnvironmentVariables.MPT_API_VERSION]) {\n process.env[InternalEnvironmentVariables.MPT_API_VERSION] = options.apiVersion;\n }\n this.apiVersion = options.apiVersion;\n }\n if (!process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_ID]) {\n if (options?.runId) {\n ValidateRunID(options.runId);\n this.runId = options.runId;\n process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_ID] = this.runId;\n } else {\n this.runId = getAndSetRunId();\n }\n }\n if (!process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_NAME] && options?.runName) {\n this.runName = options.runName;\n process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_NAME] = this.runName;\n }\n if (options?.os) {\n this.serviceOs = options.os;\n process.env[InternalEnvironmentVariables.MPT_SERVICE_OS] = this.serviceOs;\n }\n if (options?.slowMo) {\n this.slowMo = options.slowMo;\n }\n if (options?.connectTimeout) {\n this.connectTimeout = options.connectTimeout;\n }\n if (options?.credential) {\n this.credential = options.credential;\n }\n if (options?.sourceType) {\n this.sourceType = options.sourceType;\n }\n };\n}\n\nexport { PlaywrightServiceConfig };\n"]}
@@ -129,7 +129,22 @@ export type PlaywrightServiceAdditionalOptions = {
129
129
  * @defaultValue `2025-09-01`
130
130
  */
131
131
  apiVersion?: "2025-09-01";
132
+ /**
133
+ * @public
134
+ *
135
+ * Identifies the tool that initiated remote browser sessions, sent to the
136
+ * service as the `sourceType` query parameter on the WebSocket endpoint.
137
+ *
138
+ * @defaultValue `PlaywrightWorkspacesTestRun`
139
+ */
140
+ sourceType?: BrowserSessionSourceTypeValue;
132
141
  };
142
+ /**
143
+ * @public
144
+ *
145
+ * Source identifier values accepted by Azure Playwright for the `sourceType` option.
146
+ */
147
+ export type BrowserSessionSourceTypeValue = "PlaywrightWorkspacesTestRun" | "Others";
133
148
  /**
134
149
  * @public
135
150
  *
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { ConnectOptions } from \"@playwright/test\";\nimport type { ServiceAuth, ServiceOS, SDKLanguage } from \"./constants.js\";\nimport type { TokenCredential } from \"@azure/identity\";\nimport type { CIInfo } from \"../utils/cIInfoProvider.js\";\n\n// Public APIs\n\n/**\n * @public\n *\n * Endpoint options for the service.\n */\nexport type EndpointOptions = {\n /**\n * @public\n *\n * A browser websocket endpoint to connect to.\n */\n wsEndpoint: string;\n};\n\n/**\n * @public\n *\n * Browser connect options for the service. This includes endpoint options and connect options.\n *\n * @example\n * ```\n * import playwright, { test, expect, BrowserType } from \"@playwright/test\";\n * import { getConnectOptions, BrowserConnectOptions } from \"@azure/playwright\";\n *\n * test(\"has title\", async ({ browserName }) => {\n * const { wsEndpoint, options } : BrowserConnectOptions = await getConnectOptions();\n * const browser = await (playwright[browserName] as BrowserType).connect(wsEndpoint, options);\n * const context = await browser.newContext();\n * const page = await context.newPage();\n *\n * await page.goto(\"https://playwright.dev/\");\n * await expect(page).toHaveTitle(/Playwright/);\n *\n * await page.close();\n * await context.close();\n * await browser.close();\n * });\n * ```\n */\nexport type BrowserConnectOptions = EndpointOptions & {\n options: ConnectOptions;\n};\n\n/**\n * @public\n *\n * Additional options for the service.\n */\nexport type PlaywrightServiceAdditionalOptions = {\n /**\n * @public\n *\n * Authentication types supported by Azure Playwright.\n *\n * @defaultValue `ENTRA_ID`\n */\n serviceAuthType?: AuthenticationType;\n\n /**\n * @public\n *\n * Operating system types supported by Azure Playwright.\n *\n * @defaultValue `linux`\n */\n os?: OsType;\n\n /**\n * @public\n *\n * Run id for the test run.\n *\n * @defaultValue `current datetime as ISO string`\n */\n runId?: string;\n\n /**\n * @public\n *\n * Maximum time in milliseconds to wait for the connection to be established.\n *\n * @defaultValue `30000`\n */\n connectTimeout?: number;\n\n /**\n * @public\n *\n * Slows down Playwright operations by the specified amount of milliseconds.\n *\n * @defaultValue `0`\n */\n slowMo?: number;\n\n /**\n * @public\n *\n * Exposes network available on the connecting client to the browser being connected to.\n *\n * @defaultValue `<loopback>`\n */\n exposeNetwork?: string;\n\n /**\n * @public\n *\n * Use cloud hosted browsers.\n *\n * @defaultValue `true`\n */\n useCloudHostedBrowsers?: boolean;\n\n /**\n * @public\n *\n * Custom token credential for Entra ID authentication. Learn more at {@link https://github.com/Azure/azure-sdk-for-js/blob/main/documentation/using-azure-identity.md | Using Azure Identity}.\n *\n * @defaultValue `DefaultAzureCredential`\n */\n credential?: TokenCredential;\n /**\n * @public\n *\n * Run name for the test run.\n *\n * @defaultValue `guid`\n */\n runName?: string;\n\n /**\n * @public\n *\n * API Version\n *\n * @defaultValue `2025-09-01`\n */\n apiVersion?: \"2025-09-01\";\n};\n\n/**\n * @public\n *\n * OS Types supported by Azure Playwright.\n */\nexport type OsType = (typeof ServiceOS)[keyof typeof ServiceOS];\n\n/**\n * @public\n *\n * Authentication types supported by Azure Playwright.\n */\nexport type AuthenticationType = (typeof ServiceAuth)[keyof typeof ServiceAuth];\n\n// Internal APIs\n\nexport type JwtPayload = {\n iss?: string;\n sub?: string;\n aud?: string[] | string;\n exp?: number;\n nbf?: number;\n iat?: number;\n jti?: string;\n};\n\nexport type AccessTokenClaims = JwtPayload & {\n pwid?: string;\n};\n\nexport type VersionInfo = {\n major: number;\n minor: number;\n patch: number;\n};\n\nexport type PackageManager = {\n runCommand: (command: string, args: string) => string;\n getVersionFromStdout: (stdout: string) => string;\n};\n\nexport type RunConfig = {\n framework?: RunFramework;\n sdkLanguage?: (typeof SDKLanguage)[keyof typeof SDKLanguage];\n maxWorkers?: number;\n};\n\nexport type RunFramework = {\n name?: string;\n version?: string;\n runnerName?: string;\n};\n\nexport type TestRunCreatePayload = {\n displayName: string;\n config?: RunConfig;\n ciConfig?: CIInfo;\n};\n\nexport type WorkspaceMetaData = {\n id?: string;\n resourceId?: string;\n name?: string;\n state?: string;\n subscriptionId?: string;\n subscriptionState?: string;\n tenantId?: string;\n location?: string;\n regionalAffinity?: string;\n localAuth?: string;\n storageUri?: string;\n reporting?: string;\n};\n\nexport interface UploadResult {\n success: boolean;\n errorMessage?: string;\n failedFileCount?: number;\n totalFiles?: number;\n failedFiles?: string[];\n failedFileDetails?: Array<{ fileName: string; error: string }>;\n partialSuccess?: boolean;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { ConnectOptions } from \"@playwright/test\";\nimport type { ServiceAuth, ServiceOS, SDKLanguage } from \"./constants.js\";\nimport type { TokenCredential } from \"@azure/identity\";\nimport type { CIInfo } from \"../utils/cIInfoProvider.js\";\n\n// Public APIs\n\n/**\n * @public\n *\n * Endpoint options for the service.\n */\nexport type EndpointOptions = {\n /**\n * @public\n *\n * A browser websocket endpoint to connect to.\n */\n wsEndpoint: string;\n};\n\n/**\n * @public\n *\n * Browser connect options for the service. This includes endpoint options and connect options.\n *\n * @example\n * ```\n * import playwright, { test, expect, BrowserType } from \"@playwright/test\";\n * import { getConnectOptions, BrowserConnectOptions } from \"@azure/playwright\";\n *\n * test(\"has title\", async ({ browserName }) => {\n * const { wsEndpoint, options } : BrowserConnectOptions = await getConnectOptions();\n * const browser = await (playwright[browserName] as BrowserType).connect(wsEndpoint, options);\n * const context = await browser.newContext();\n * const page = await context.newPage();\n *\n * await page.goto(\"https://playwright.dev/\");\n * await expect(page).toHaveTitle(/Playwright/);\n *\n * await page.close();\n * await context.close();\n * await browser.close();\n * });\n * ```\n */\nexport type BrowserConnectOptions = EndpointOptions & {\n options: ConnectOptions;\n};\n\n/**\n * @public\n *\n * Additional options for the service.\n */\nexport type PlaywrightServiceAdditionalOptions = {\n /**\n * @public\n *\n * Authentication types supported by Azure Playwright.\n *\n * @defaultValue `ENTRA_ID`\n */\n serviceAuthType?: AuthenticationType;\n\n /**\n * @public\n *\n * Operating system types supported by Azure Playwright.\n *\n * @defaultValue `linux`\n */\n os?: OsType;\n\n /**\n * @public\n *\n * Run id for the test run.\n *\n * @defaultValue `current datetime as ISO string`\n */\n runId?: string;\n\n /**\n * @public\n *\n * Maximum time in milliseconds to wait for the connection to be established.\n *\n * @defaultValue `30000`\n */\n connectTimeout?: number;\n\n /**\n * @public\n *\n * Slows down Playwright operations by the specified amount of milliseconds.\n *\n * @defaultValue `0`\n */\n slowMo?: number;\n\n /**\n * @public\n *\n * Exposes network available on the connecting client to the browser being connected to.\n *\n * @defaultValue `<loopback>`\n */\n exposeNetwork?: string;\n\n /**\n * @public\n *\n * Use cloud hosted browsers.\n *\n * @defaultValue `true`\n */\n useCloudHostedBrowsers?: boolean;\n\n /**\n * @public\n *\n * Custom token credential for Entra ID authentication. Learn more at {@link https://github.com/Azure/azure-sdk-for-js/blob/main/documentation/using-azure-identity.md | Using Azure Identity}.\n *\n * @defaultValue `DefaultAzureCredential`\n */\n credential?: TokenCredential;\n /**\n * @public\n *\n * Run name for the test run.\n *\n * @defaultValue `guid`\n */\n runName?: string;\n\n /**\n * @public\n *\n * API Version\n *\n * @defaultValue `2025-09-01`\n */\n apiVersion?: \"2025-09-01\";\n\n /**\n * @public\n *\n * Identifies the tool that initiated remote browser sessions, sent to the\n * service as the `sourceType` query parameter on the WebSocket endpoint.\n *\n * @defaultValue `PlaywrightWorkspacesTestRun`\n */\n sourceType?: BrowserSessionSourceTypeValue;\n};\n\n/**\n * @public\n *\n * Source identifier values accepted by Azure Playwright for the `sourceType` option.\n */\nexport type BrowserSessionSourceTypeValue = \"PlaywrightWorkspacesTestRun\" | \"Others\";\n\n/**\n * @public\n *\n * OS Types supported by Azure Playwright.\n */\nexport type OsType = (typeof ServiceOS)[keyof typeof ServiceOS];\n\n/**\n * @public\n *\n * Authentication types supported by Azure Playwright.\n */\nexport type AuthenticationType = (typeof ServiceAuth)[keyof typeof ServiceAuth];\n\n// Internal APIs\n\nexport type JwtPayload = {\n iss?: string;\n sub?: string;\n aud?: string[] | string;\n exp?: number;\n nbf?: number;\n iat?: number;\n jti?: string;\n};\n\nexport type AccessTokenClaims = JwtPayload & {\n pwid?: string;\n};\n\nexport type VersionInfo = {\n major: number;\n minor: number;\n patch: number;\n};\n\nexport type PackageManager = {\n runCommand: (command: string, args: string) => string;\n getVersionFromStdout: (stdout: string) => string;\n};\n\nexport type RunConfig = {\n framework?: RunFramework;\n sdkLanguage?: (typeof SDKLanguage)[keyof typeof SDKLanguage];\n maxWorkers?: number;\n};\n\nexport type RunFramework = {\n name?: string;\n version?: string;\n runnerName?: string;\n};\n\nexport type TestRunCreatePayload = {\n displayName: string;\n config?: RunConfig;\n ciConfig?: CIInfo;\n};\n\nexport type WorkspaceMetaData = {\n id?: string;\n resourceId?: string;\n name?: string;\n state?: string;\n subscriptionId?: string;\n subscriptionState?: string;\n tenantId?: string;\n location?: string;\n regionalAffinity?: string;\n localAuth?: string;\n storageUri?: string;\n reporting?: string;\n};\n\nexport interface UploadResult {\n success: boolean;\n errorMessage?: string;\n failedFileCount?: number;\n totalFiles?: number;\n failedFiles?: string[];\n failedFileDetails?: Array<{ fileName: string; error: string }>;\n partialSuccess?: boolean;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"playwrightService.d.ts","sourceRoot":"","sources":["../../../src/core/playwrightService.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,kCAAkC,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAgBpG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAa7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,QAAA,MAAM,2BAA2B,GAC/B,YAAY,oBAAoB,EAChC,UAAU,kCAAkC,KAC3C,oBAiHF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,QAAA,MAAM,iBAAiB,GACrB,UAAU,kCAAkC,KAC3C,OAAO,CAAC,qBAAqB,CA0C/B,CAAC;AAEF,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"playwrightService.d.ts","sourceRoot":"","sources":["../../../src/core/playwrightService.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,kCAAkC,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAgBpG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAa7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,QAAA,MAAM,2BAA2B,GAC/B,YAAY,oBAAoB,EAChC,UAAU,kCAAkC,KAC3C,oBAkHF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,QAAA,MAAM,iBAAiB,GACrB,UAAU,kCAAkC,KAC3C,OAAO,CAAC,qBAAqB,CA2C/B,CAAC;AAEF,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,CAAC"}
@@ -137,7 +137,7 @@ const createAzurePlaywrightConfig = (baseConfig, options) => {
137
137
  return {
138
138
  use: {
139
139
  connectOptions: {
140
- wsEndpoint: getServiceWSEndpoint(playwrightServiceConfig.runId, playwrightServiceConfig.serviceOs, playwrightServiceConfig.apiVersion),
140
+ wsEndpoint: getServiceWSEndpoint(playwrightServiceConfig.runId, playwrightServiceConfig.serviceOs, playwrightServiceConfig.apiVersion, playwrightServiceConfig.sourceType),
141
141
  headers: {
142
142
  Authorization: `Bearer ${getAccessToken()}`,
143
143
  "x-ms-package-version": `@azure/playwright/${getPackageVersion()}`,
@@ -203,7 +203,7 @@ const getConnectOptions = async (options) => {
203
203
  throw new Error(ServiceErrorMessageConstants.NO_AUTH_ERROR_PAT_TOKEN.message);
204
204
  }
205
205
  return {
206
- wsEndpoint: getServiceWSEndpoint(playwrightServiceConfig.runId, playwrightServiceConfig.serviceOs, playwrightServiceConfig.apiVersion),
206
+ wsEndpoint: getServiceWSEndpoint(playwrightServiceConfig.runId, playwrightServiceConfig.serviceOs, playwrightServiceConfig.apiVersion, playwrightServiceConfig.sourceType),
207
207
  options: {
208
208
  headers: {
209
209
  Authorization: `Bearer ${token}`,
@@ -1 +1 @@
1
- {"version":3,"file":"playwrightService.js","sourceRoot":"","sources":["../../../src/core/playwrightService.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n DefaultConnectOptionsConstants,\n InternalEnvironmentVariables,\n ServiceAuth,\n} from \"../common/constants.js\";\nimport customerConfig from \"../common/customerConfig.js\";\nimport { PlaywrightServiceConfig } from \"../common/playwrightServiceConfig.js\";\nimport playwrightServiceEntra from \"./playwrightServiceEntra.js\";\nimport type { PlaywrightServiceAdditionalOptions, BrowserConnectOptions } from \"../common/types.js\";\nimport {\n fetchOrValidateAccessToken,\n getAccessToken,\n getServiceWSEndpoint,\n validateMptPAT,\n validatePlaywrightVersion,\n validateServiceUrl,\n exitWithFailureMessage,\n getPlaywrightVersion,\n getVersionInfo,\n throwErrorWithFailureMessage,\n getPackageVersion,\n warnIfAccessTokenCloseToExpiry,\n} from \"../utils/utils.js\";\nimport { ServiceErrorMessageConstants } from \"../common/messages.js\";\nimport type { PlaywrightTestConfig } from \"@playwright/test\";\nimport { globalPaths } from \"./playwrightServiceUtils.js\";\n\nconst performOneTimeOperation = (options?: PlaywrightServiceAdditionalOptions): void => {\n const oneTimeOperationFlag =\n process.env[InternalEnvironmentVariables.ONE_TIME_OPERATION_FLAG] === \"true\";\n if (oneTimeOperationFlag) return;\n process.env[InternalEnvironmentVariables.ONE_TIME_OPERATION_FLAG] = \"true\";\n if (options?.serviceAuthType === ServiceAuth.ACCESS_TOKEN) {\n warnIfAccessTokenCloseToExpiry();\n }\n};\n\n/**\n * @public\n *\n * Generate playwright configuration integrated with Azure Playwright.\n *\n * @param baseConfig - base playwright configuration\n * @param options - additional options for the service\n * @returns PlaywrightConfig\n *\n * @example\n * ```\n * import { defineConfig } from \"playwright/test\";\n * import { createAzurePlaywrightConfig } from \"@azure/playwright\";\n * import playwrightConfig from \"./playwright.config\";\n *\n * export default defineConfig(playwrightConfig, createAzurePlaywrightConfig(playwrightConfig));\n * ```\n *\n * @example\n * ```\n * import { defineConfig } from \"playwright/test\";\n * import { createAzurePlaywrightConfig, ServiceOS, ServiceAuth } from \"@azure/playwright\";\n * import playwrightConfig from \"./playwright.config\";\n * import { DefaultAzureCredential } from '@azure/identity';\n *\n * export default defineConfig(playwrightConfig, createAzurePlaywrightConfig(playwrightConfig, {\n * credential: new DefaultAzureCredential(),\n * serviceAuthType: ServiceAuth.ENTRA_ID,\n * os: ServiceOS.WINDOWS\n * }));\n * ```\n */\nconst createAzurePlaywrightConfig = (\n baseConfig: PlaywrightTestConfig,\n options?: PlaywrightServiceAdditionalOptions,\n): PlaywrightTestConfig => {\n validatePlaywrightVersion();\n validateServiceUrl();\n\n // Set environment variable to indicate user is using service config\n process.env[InternalEnvironmentVariables.USING_SERVICE_CONFIG] = \"true\";\n const playwrightVersionInfo = getVersionInfo(getPlaywrightVersion());\n const isMultipleGlobalFileSupported =\n playwrightVersionInfo.major >= 1 && playwrightVersionInfo.minor >= 49;\n if (options?.credential) {\n playwrightServiceEntra.entraIdAccessToken = options.credential;\n }\n\n // if global setup/teardown is string -\n // 1. if multiple global file is supported, convert it to array\n // 2. wrap playwright-service global setup/teardown with customer provided global setup/teardown\n\n // if global setup/teardown is array -\n // 1. if multiple global file is not supported, throw error\n // 2. append playwright-service global setup/teardown with customer provided global setup/teardown\n if (baseConfig && baseConfig.globalSetup) {\n if (typeof baseConfig.globalSetup === \"string\") {\n if (isMultipleGlobalFileSupported) {\n customerConfig.globalSetup = [baseConfig.globalSetup];\n } else {\n customerConfig.globalSetup = baseConfig.globalSetup;\n }\n } else {\n if (!isMultipleGlobalFileSupported) {\n throw new Error(\n ServiceErrorMessageConstants.MULTIPLE_SETUP_FILE_PLAYWRIGHT_VERSION_ERROR.message,\n );\n }\n customerConfig.globalSetup = baseConfig.globalSetup;\n }\n }\n\n if (baseConfig && baseConfig.globalTeardown) {\n if (typeof baseConfig.globalTeardown === \"string\") {\n if (isMultipleGlobalFileSupported) {\n customerConfig.globalTeardown = [baseConfig.globalTeardown];\n } else {\n customerConfig.globalTeardown = baseConfig.globalTeardown;\n }\n } else {\n if (!isMultipleGlobalFileSupported) {\n throw new Error(\n ServiceErrorMessageConstants.MULTIPLE_SETUP_FILE_PLAYWRIGHT_VERSION_ERROR.message,\n );\n }\n customerConfig.globalTeardown = baseConfig.globalTeardown;\n }\n }\n\n const playwrightServiceConfig = PlaywrightServiceConfig.instance;\n playwrightServiceConfig.setOptions(options);\n playwrightServiceConfig.serviceAuthType =\n options?.serviceAuthType || DefaultConnectOptionsConstants.DEFAULT_SERVICE_AUTH_TYPE;\n\n const globalFunctions: any = {};\n\n if (options?.serviceAuthType === ServiceAuth.ACCESS_TOKEN) {\n // mpt PAT requested and set by the customer, no need to setup entra lifecycle handlers\n validateMptPAT(exitWithFailureMessage);\n }\n // If multiple global file is supported, append playwright-service global setup/teardown with customer provided global setup/teardown\n if (isMultipleGlobalFileSupported) {\n globalFunctions.globalSetup = [] as string[];\n globalFunctions.globalTeardown = [] as string[];\n if (customerConfig.globalSetup) {\n globalFunctions.globalSetup.push(...(customerConfig.globalSetup as string[]));\n }\n if (customerConfig.globalTeardown) {\n globalFunctions.globalTeardown.push(...(customerConfig.globalTeardown as string[]));\n }\n globalFunctions.globalSetup.push(globalPaths.setup);\n globalFunctions.globalTeardown.push(globalPaths.teardown);\n } else {\n // If multiple global file is not supported, wrap playwright-service global setup/teardown with customer provided global setup/teardown\n globalFunctions.globalSetup = globalPaths.setup;\n globalFunctions.globalTeardown = globalPaths.teardown;\n }\n performOneTimeOperation(options);\n if (options?.useCloudHostedBrowsers === false) {\n console.log(\"\\nRunning tests using local browsers.\");\n return {\n ...globalFunctions,\n };\n }\n if (!process.env[InternalEnvironmentVariables.MPT_CLOUD_HOSTED_BROWSER_USED]) {\n process.env[InternalEnvironmentVariables.MPT_CLOUD_HOSTED_BROWSER_USED] = \"true\";\n console.log(\"\\nRunning tests using Playwright workspaces.\");\n }\n\n return {\n use: {\n connectOptions: {\n wsEndpoint: getServiceWSEndpoint(\n playwrightServiceConfig.runId,\n playwrightServiceConfig.serviceOs,\n playwrightServiceConfig.apiVersion,\n ),\n headers: {\n Authorization: `Bearer ${getAccessToken()}`,\n \"x-ms-package-version\": `@azure/playwright/${getPackageVersion()}`,\n },\n timeout: playwrightServiceConfig.connectTimeout,\n exposeNetwork: playwrightServiceConfig.exposeNetwork,\n slowMo: playwrightServiceConfig.slowMo,\n },\n },\n ...globalFunctions,\n };\n};\n\n/**\n * @public\n *\n * Get connect options required to connect to Azure Playwright's cloud hosted browsers.\n *\n * @param options - additional options for the service\n * @returns BrowserConnectOptions\n *\n * @example\n * ```\n * import playwright, { test, expect, BrowserType } from \"@playwright/test\";\n * import { getConnectOptions } from \"@azure/playwright\";\n *\n * test('has title', async ({ browserName }) => {\n * const { wsEndpoint, options } = await getConnectOptions();\n * const browser = await (playwright[browserName] as BrowserType).connect(wsEndpoint, options);\n * const context = await browser.newContext();\n * const page = await context.newPage();\n *\n * await page.goto('https://playwright.dev/');\n * await expect(page).toHaveTitle(/Playwright/);\n *\n * await page.close();\n * await context.close();\n * await browser.close();\n * });\n * ```\n */\nconst getConnectOptions = async (\n options?: PlaywrightServiceAdditionalOptions,\n): Promise<BrowserConnectOptions> => {\n const playwrightServiceConfig = PlaywrightServiceConfig.instance;\n\n playwrightServiceConfig.setOptions(options, true);\n performOneTimeOperation(options);\n playwrightServiceConfig.serviceAuthType =\n options?.serviceAuthType || DefaultConnectOptionsConstants.DEFAULT_SERVICE_AUTH_TYPE;\n\n let token: string | undefined;\n if (playwrightServiceConfig.serviceAuthType === ServiceAuth.ENTRA_ID) {\n if (!options?.credential) {\n throw new Error(ServiceErrorMessageConstants.NO_CRED_ENTRA_AUTH_ERROR.message);\n }\n playwrightServiceEntra.entraIdAccessToken = options.credential;\n token = await fetchOrValidateAccessToken(options.credential);\n } else if (playwrightServiceConfig.serviceAuthType === ServiceAuth.ACCESS_TOKEN) {\n validateMptPAT(throwErrorWithFailureMessage);\n token = getAccessToken();\n } else {\n throw new Error(ServiceErrorMessageConstants.INVALID_AUTH_TYPE_ERROR.message);\n }\n\n if (!token) {\n throw new Error(ServiceErrorMessageConstants.NO_AUTH_ERROR_PAT_TOKEN.message);\n }\n\n return {\n wsEndpoint: getServiceWSEndpoint(\n playwrightServiceConfig.runId,\n playwrightServiceConfig.serviceOs,\n playwrightServiceConfig.apiVersion,\n ),\n options: {\n headers: {\n Authorization: `Bearer ${token}`,\n \"x-ms-package-version\": `@azure/playwright/${getPackageVersion()}`,\n },\n timeout: playwrightServiceConfig.connectTimeout,\n exposeNetwork: playwrightServiceConfig.exposeNetwork,\n slowMo: playwrightServiceConfig.slowMo,\n },\n };\n};\n\nexport { createAzurePlaywrightConfig, getConnectOptions };\n"]}
1
+ {"version":3,"file":"playwrightService.js","sourceRoot":"","sources":["../../../src/core/playwrightService.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n DefaultConnectOptionsConstants,\n InternalEnvironmentVariables,\n ServiceAuth,\n} from \"../common/constants.js\";\nimport customerConfig from \"../common/customerConfig.js\";\nimport { PlaywrightServiceConfig } from \"../common/playwrightServiceConfig.js\";\nimport playwrightServiceEntra from \"./playwrightServiceEntra.js\";\nimport type { PlaywrightServiceAdditionalOptions, BrowserConnectOptions } from \"../common/types.js\";\nimport {\n fetchOrValidateAccessToken,\n getAccessToken,\n getServiceWSEndpoint,\n validateMptPAT,\n validatePlaywrightVersion,\n validateServiceUrl,\n exitWithFailureMessage,\n getPlaywrightVersion,\n getVersionInfo,\n throwErrorWithFailureMessage,\n getPackageVersion,\n warnIfAccessTokenCloseToExpiry,\n} from \"../utils/utils.js\";\nimport { ServiceErrorMessageConstants } from \"../common/messages.js\";\nimport type { PlaywrightTestConfig } from \"@playwright/test\";\nimport { globalPaths } from \"#platform/core/playwrightServiceUtils\";\n\nconst performOneTimeOperation = (options?: PlaywrightServiceAdditionalOptions): void => {\n const oneTimeOperationFlag =\n process.env[InternalEnvironmentVariables.ONE_TIME_OPERATION_FLAG] === \"true\";\n if (oneTimeOperationFlag) return;\n process.env[InternalEnvironmentVariables.ONE_TIME_OPERATION_FLAG] = \"true\";\n if (options?.serviceAuthType === ServiceAuth.ACCESS_TOKEN) {\n warnIfAccessTokenCloseToExpiry();\n }\n};\n\n/**\n * @public\n *\n * Generate playwright configuration integrated with Azure Playwright.\n *\n * @param baseConfig - base playwright configuration\n * @param options - additional options for the service\n * @returns PlaywrightConfig\n *\n * @example\n * ```\n * import { defineConfig } from \"playwright/test\";\n * import { createAzurePlaywrightConfig } from \"@azure/playwright\";\n * import playwrightConfig from \"./playwright.config\";\n *\n * export default defineConfig(playwrightConfig, createAzurePlaywrightConfig(playwrightConfig));\n * ```\n *\n * @example\n * ```\n * import { defineConfig } from \"playwright/test\";\n * import { createAzurePlaywrightConfig, ServiceOS, ServiceAuth } from \"@azure/playwright\";\n * import playwrightConfig from \"./playwright.config\";\n * import { DefaultAzureCredential } from '@azure/identity';\n *\n * export default defineConfig(playwrightConfig, createAzurePlaywrightConfig(playwrightConfig, {\n * credential: new DefaultAzureCredential(),\n * serviceAuthType: ServiceAuth.ENTRA_ID,\n * os: ServiceOS.WINDOWS\n * }));\n * ```\n */\nconst createAzurePlaywrightConfig = (\n baseConfig: PlaywrightTestConfig,\n options?: PlaywrightServiceAdditionalOptions,\n): PlaywrightTestConfig => {\n validatePlaywrightVersion();\n validateServiceUrl();\n\n // Set environment variable to indicate user is using service config\n process.env[InternalEnvironmentVariables.USING_SERVICE_CONFIG] = \"true\";\n const playwrightVersionInfo = getVersionInfo(getPlaywrightVersion());\n const isMultipleGlobalFileSupported =\n playwrightVersionInfo.major >= 1 && playwrightVersionInfo.minor >= 49;\n if (options?.credential) {\n playwrightServiceEntra.entraIdAccessToken = options.credential;\n }\n\n // if global setup/teardown is string -\n // 1. if multiple global file is supported, convert it to array\n // 2. wrap playwright-service global setup/teardown with customer provided global setup/teardown\n\n // if global setup/teardown is array -\n // 1. if multiple global file is not supported, throw error\n // 2. append playwright-service global setup/teardown with customer provided global setup/teardown\n if (baseConfig && baseConfig.globalSetup) {\n if (typeof baseConfig.globalSetup === \"string\") {\n if (isMultipleGlobalFileSupported) {\n customerConfig.globalSetup = [baseConfig.globalSetup];\n } else {\n customerConfig.globalSetup = baseConfig.globalSetup;\n }\n } else {\n if (!isMultipleGlobalFileSupported) {\n throw new Error(\n ServiceErrorMessageConstants.MULTIPLE_SETUP_FILE_PLAYWRIGHT_VERSION_ERROR.message,\n );\n }\n customerConfig.globalSetup = baseConfig.globalSetup;\n }\n }\n\n if (baseConfig && baseConfig.globalTeardown) {\n if (typeof baseConfig.globalTeardown === \"string\") {\n if (isMultipleGlobalFileSupported) {\n customerConfig.globalTeardown = [baseConfig.globalTeardown];\n } else {\n customerConfig.globalTeardown = baseConfig.globalTeardown;\n }\n } else {\n if (!isMultipleGlobalFileSupported) {\n throw new Error(\n ServiceErrorMessageConstants.MULTIPLE_SETUP_FILE_PLAYWRIGHT_VERSION_ERROR.message,\n );\n }\n customerConfig.globalTeardown = baseConfig.globalTeardown;\n }\n }\n\n const playwrightServiceConfig = PlaywrightServiceConfig.instance;\n playwrightServiceConfig.setOptions(options);\n playwrightServiceConfig.serviceAuthType =\n options?.serviceAuthType || DefaultConnectOptionsConstants.DEFAULT_SERVICE_AUTH_TYPE;\n\n const globalFunctions: any = {};\n\n if (options?.serviceAuthType === ServiceAuth.ACCESS_TOKEN) {\n // mpt PAT requested and set by the customer, no need to setup entra lifecycle handlers\n validateMptPAT(exitWithFailureMessage);\n }\n // If multiple global file is supported, append playwright-service global setup/teardown with customer provided global setup/teardown\n if (isMultipleGlobalFileSupported) {\n globalFunctions.globalSetup = [] as string[];\n globalFunctions.globalTeardown = [] as string[];\n if (customerConfig.globalSetup) {\n globalFunctions.globalSetup.push(...(customerConfig.globalSetup as string[]));\n }\n if (customerConfig.globalTeardown) {\n globalFunctions.globalTeardown.push(...(customerConfig.globalTeardown as string[]));\n }\n globalFunctions.globalSetup.push(globalPaths.setup);\n globalFunctions.globalTeardown.push(globalPaths.teardown);\n } else {\n // If multiple global file is not supported, wrap playwright-service global setup/teardown with customer provided global setup/teardown\n globalFunctions.globalSetup = globalPaths.setup;\n globalFunctions.globalTeardown = globalPaths.teardown;\n }\n performOneTimeOperation(options);\n if (options?.useCloudHostedBrowsers === false) {\n console.log(\"\\nRunning tests using local browsers.\");\n return {\n ...globalFunctions,\n };\n }\n if (!process.env[InternalEnvironmentVariables.MPT_CLOUD_HOSTED_BROWSER_USED]) {\n process.env[InternalEnvironmentVariables.MPT_CLOUD_HOSTED_BROWSER_USED] = \"true\";\n console.log(\"\\nRunning tests using Playwright workspaces.\");\n }\n\n return {\n use: {\n connectOptions: {\n wsEndpoint: getServiceWSEndpoint(\n playwrightServiceConfig.runId,\n playwrightServiceConfig.serviceOs,\n playwrightServiceConfig.apiVersion,\n playwrightServiceConfig.sourceType,\n ),\n headers: {\n Authorization: `Bearer ${getAccessToken()}`,\n \"x-ms-package-version\": `@azure/playwright/${getPackageVersion()}`,\n },\n timeout: playwrightServiceConfig.connectTimeout,\n exposeNetwork: playwrightServiceConfig.exposeNetwork,\n slowMo: playwrightServiceConfig.slowMo,\n },\n },\n ...globalFunctions,\n };\n};\n\n/**\n * @public\n *\n * Get connect options required to connect to Azure Playwright's cloud hosted browsers.\n *\n * @param options - additional options for the service\n * @returns BrowserConnectOptions\n *\n * @example\n * ```\n * import playwright, { test, expect, BrowserType } from \"@playwright/test\";\n * import { getConnectOptions } from \"@azure/playwright\";\n *\n * test('has title', async ({ browserName }) => {\n * const { wsEndpoint, options } = await getConnectOptions();\n * const browser = await (playwright[browserName] as BrowserType).connect(wsEndpoint, options);\n * const context = await browser.newContext();\n * const page = await context.newPage();\n *\n * await page.goto('https://playwright.dev/');\n * await expect(page).toHaveTitle(/Playwright/);\n *\n * await page.close();\n * await context.close();\n * await browser.close();\n * });\n * ```\n */\nconst getConnectOptions = async (\n options?: PlaywrightServiceAdditionalOptions,\n): Promise<BrowserConnectOptions> => {\n const playwrightServiceConfig = PlaywrightServiceConfig.instance;\n\n playwrightServiceConfig.setOptions(options, true);\n performOneTimeOperation(options);\n playwrightServiceConfig.serviceAuthType =\n options?.serviceAuthType || DefaultConnectOptionsConstants.DEFAULT_SERVICE_AUTH_TYPE;\n\n let token: string | undefined;\n if (playwrightServiceConfig.serviceAuthType === ServiceAuth.ENTRA_ID) {\n if (!options?.credential) {\n throw new Error(ServiceErrorMessageConstants.NO_CRED_ENTRA_AUTH_ERROR.message);\n }\n playwrightServiceEntra.entraIdAccessToken = options.credential;\n token = await fetchOrValidateAccessToken(options.credential);\n } else if (playwrightServiceConfig.serviceAuthType === ServiceAuth.ACCESS_TOKEN) {\n validateMptPAT(throwErrorWithFailureMessage);\n token = getAccessToken();\n } else {\n throw new Error(ServiceErrorMessageConstants.INVALID_AUTH_TYPE_ERROR.message);\n }\n\n if (!token) {\n throw new Error(ServiceErrorMessageConstants.NO_AUTH_ERROR_PAT_TOKEN.message);\n }\n\n return {\n wsEndpoint: getServiceWSEndpoint(\n playwrightServiceConfig.runId,\n playwrightServiceConfig.serviceOs,\n playwrightServiceConfig.apiVersion,\n playwrightServiceConfig.sourceType,\n ),\n options: {\n headers: {\n Authorization: `Bearer ${token}`,\n \"x-ms-package-version\": `@azure/playwright/${getPackageVersion()}`,\n },\n timeout: playwrightServiceConfig.connectTimeout,\n exposeNetwork: playwrightServiceConfig.exposeNetwork,\n slowMo: playwrightServiceConfig.slowMo,\n },\n };\n};\n\nexport { createAzurePlaywrightConfig, getConnectOptions };\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"playwrightServiceUtils.d.ts","sourceRoot":"","sources":["../../../src/core/playwrightServiceUtils.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,WAAW;;;CAGvB,CAAC"}
1
+ {"version":3,"file":"playwrightServiceUtils.d.ts","sourceRoot":"","sources":["../../../src/core/playwrightServiceUtils.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,WAAW;;;CAGvB,CAAC"}
@@ -6,8 +6,10 @@ import { fileURLToPath } from "node:url";
6
6
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
7
7
  // @ts-ignore ESM only output
8
8
  const currentDir = dirname(fileURLToPath(import.meta.url));
9
+ // Use .ts extension when running directly from source, .js when running from compiled dist
10
+ const ext = currentDir.replace(/\\/g, "/").includes("/src/") ? ".ts" : ".js";
9
11
  export const globalPaths = {
10
- setup: path.join(currentDir, "./global/playwright-service-global-setup.js"),
11
- teardown: path.join(currentDir, "./global/playwright-service-global-teardown.js"),
12
+ setup: path.join(currentDir, `./global/playwright-service-global-setup${ext}`),
13
+ teardown: path.join(currentDir, `./global/playwright-service-global-teardown${ext}`),
12
14
  };
13
15
  //# sourceMappingURL=playwrightServiceUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"playwrightServiceUtils.js","sourceRoot":"","sources":["../../../src/core/playwrightServiceUtils.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,6DAA6D;AAC7D,6BAA6B;AAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,6CAA6C,CAAC;IAC3E,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gDAAgD,CAAC;CAClF,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport path from \"node:path\";\nimport { dirname } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore ESM only output\nconst currentDir = dirname(fileURLToPath(import.meta.url));\n\nexport const globalPaths = {\n setup: path.join(currentDir, \"./global/playwright-service-global-setup.js\"),\n teardown: path.join(currentDir, \"./global/playwright-service-global-teardown.js\"),\n};\n"]}
1
+ {"version":3,"file":"playwrightServiceUtils.js","sourceRoot":"","sources":["../../../src/core/playwrightServiceUtils.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,6DAA6D;AAC7D,6BAA6B;AAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3D,2FAA2F;AAC3F,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AAE7E,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,2CAA2C,GAAG,EAAE,CAAC;IAC9E,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,8CAA8C,GAAG,EAAE,CAAC;CACrF,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport path from \"node:path\";\nimport { dirname } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore ESM only output\nconst currentDir = dirname(fileURLToPath(import.meta.url));\n// Use .ts extension when running directly from source, .js when running from compiled dist\nconst ext = currentDir.replace(/\\\\/g, \"/\").includes(\"/src/\") ? \".ts\" : \".js\";\n\nexport const globalPaths = {\n setup: path.join(currentDir, `./global/playwright-service-global-setup${ext}`),\n teardown: path.join(currentDir, `./global/playwright-service-global-teardown${ext}`),\n};\n"]}
@@ -4,7 +4,7 @@
4
4
  * @packageDocumentation
5
5
  */
6
6
  import { ServiceAuth, ServiceOS, ServiceEnvironmentVariable } from "./common/constants.js";
7
- import type { OsType, AuthenticationType, BrowserConnectOptions, EndpointOptions, PlaywrightServiceAdditionalOptions } from "./common/types.js";
7
+ import type { OsType, AuthenticationType, BrowserConnectOptions, BrowserSessionSourceTypeValue, EndpointOptions, PlaywrightServiceAdditionalOptions } from "./common/types.js";
8
8
  import { createAzurePlaywrightConfig, getConnectOptions } from "./core/playwrightService.js";
9
- export { createAzurePlaywrightConfig, getConnectOptions, ServiceOS, ServiceAuth, ServiceEnvironmentVariable, type OsType, type AuthenticationType, type BrowserConnectOptions, type EndpointOptions, type PlaywrightServiceAdditionalOptions, };
9
+ export { createAzurePlaywrightConfig, getConnectOptions, ServiceOS, ServiceAuth, ServiceEnvironmentVariable, type OsType, type AuthenticationType, type BrowserConnectOptions, type BrowserSessionSourceTypeValue, type EndpointOptions, type PlaywrightServiceAdditionalOptions, };
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,KAAK,EACV,MAAM,EACN,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,kCAAkC,EACnC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAE7F,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,0BAA0B,EAC1B,KAAK,MAAM,EACX,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,kCAAkC,GACxC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,KAAK,EACV,MAAM,EACN,kBAAkB,EAClB,qBAAqB,EACrB,6BAA6B,EAC7B,eAAe,EACf,kCAAkC,EACnC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAE7F,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,0BAA0B,EAC1B,KAAK,MAAM,EACX,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,EAClC,KAAK,eAAe,EACpB,KAAK,kCAAkC,GACxC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAQ3F,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAE7F,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,0BAA0B,GAM3B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Library for integrating Azure Playwright with existing playwright projects.\n *\n * @packageDocumentation\n */\n\nimport { ServiceAuth, ServiceOS, ServiceEnvironmentVariable } from \"./common/constants.js\";\nimport type {\n OsType,\n AuthenticationType,\n BrowserConnectOptions,\n EndpointOptions,\n PlaywrightServiceAdditionalOptions,\n} from \"./common/types.js\";\nimport { createAzurePlaywrightConfig, getConnectOptions } from \"./core/playwrightService.js\";\n\nexport {\n createAzurePlaywrightConfig,\n getConnectOptions,\n ServiceOS,\n ServiceAuth,\n ServiceEnvironmentVariable,\n type OsType,\n type AuthenticationType,\n type BrowserConnectOptions,\n type EndpointOptions,\n type PlaywrightServiceAdditionalOptions,\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAS3F,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAE7F,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,0BAA0B,GAO3B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Library for integrating Azure Playwright with existing playwright projects.\n *\n * @packageDocumentation\n */\n\nimport { ServiceAuth, ServiceOS, ServiceEnvironmentVariable } from \"./common/constants.js\";\nimport type {\n OsType,\n AuthenticationType,\n BrowserConnectOptions,\n BrowserSessionSourceTypeValue,\n EndpointOptions,\n PlaywrightServiceAdditionalOptions,\n} from \"./common/types.js\";\nimport { createAzurePlaywrightConfig, getConnectOptions } from \"./core/playwrightService.js\";\n\nexport {\n createAzurePlaywrightConfig,\n getConnectOptions,\n ServiceOS,\n ServiceAuth,\n ServiceEnvironmentVariable,\n type OsType,\n type AuthenticationType,\n type BrowserConnectOptions,\n type BrowserSessionSourceTypeValue,\n type EndpointOptions,\n type PlaywrightServiceAdditionalOptions,\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"playwrightReporter.d.ts","sourceRoot":"","sources":["../../../src/reporter/playwrightReporter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAetE;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,kBAAmB,YAAW,QAAQ;IACzD,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,kBAAkB,CAAS;IAEnC;;;;OAIG;IAEG,OAAO,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAuFhD;;OAEG;IAEG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAiCd,gBAAgB;IAsB9B,OAAO,CAAC,iCAAiC;IAsCzC;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;CA+C3B"}
1
+ {"version":3,"file":"playwrightReporter.d.ts","sourceRoot":"","sources":["../../../src/reporter/playwrightReporter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAgBtE;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,kBAAmB,YAAW,QAAQ;IACzD,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,kBAAkB,CAAS;IAEnC;;;;OAIG;IAEG,OAAO,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAuFhD;;OAEG;IAEG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAiCd,gBAAgB;IAsB9B,OAAO,CAAC,iCAAiC;IAsCzC;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;CA+C3B"}
@@ -1,5 +1,5 @@
1
1
  import { PlaywrightReporterStorageManager } from "../utils/playwrightReporterStorageManager.js";
2
- import { getHtmlReporterOutputFolder, getPortalTestRunUrl, getVersionInfo, } from "../utils/utils.js";
2
+ import { getHtmlReporterOutputFolder, getPortalTestRunUrl, getVersionInfo, isValidAzureStorageBlobUri, } from "../utils/utils.js";
3
3
  import { coreLogger } from "../common/logger.js";
4
4
  import { PlaywrightServiceConfig } from "../common/playwrightServiceConfig.js";
5
5
  import { ServiceAuth, InternalEnvironmentVariables } from "../common/constants.js";
@@ -185,24 +185,25 @@ export default class PlaywrightReporter {
185
185
  coreLogger.info("Reporting disabled via workspace metadata configuration");
186
186
  return false;
187
187
  }
188
- if (normalizedReporting === "enabled") {
189
- if (!storageUri) {
190
- console.error(ServiceErrorMessageConstants.WORKSPACE_REPORTING_STORAGE_NOT_LINKED.message);
191
- coreLogger.info("Reporting enabled in metadata but storage URI not configured");
192
- return false;
193
- }
194
- coreLogger.info("Reporting enabled via workspace metadata configuration");
195
- return true;
188
+ if (normalizedReporting === "enabled" && !storageUri) {
189
+ console.error(ServiceErrorMessageConstants.WORKSPACE_REPORTING_STORAGE_NOT_LINKED.message);
190
+ coreLogger.info("Reporting enabled in metadata but storage URI not configured");
191
+ return false;
192
+ }
193
+ if (normalizedReporting !== "enabled") {
194
+ coreLogger.info(`Unexpected reporting value in workspace metadata: ${reporting}. Falling back to storage URI check.`);
196
195
  }
197
- // If reporting has an unexpected value, log warning and fall back to storageUri check
198
- coreLogger.info(`Unexpected reporting value in workspace metadata: ${reporting}. Falling back to storage URI check.`);
199
196
  }
200
- // Fallback to current logic: check only storageUri (when reporting field is not present or has unexpected value)
201
197
  if (!storageUri) {
202
198
  console.error(ServiceErrorMessageConstants.WORKSPACE_REPORTING_DISABLED.message);
203
199
  coreLogger.info("Storage URI not configured in workspace metadata");
204
200
  return false;
205
201
  }
202
+ if (!isValidAzureStorageBlobUri(storageUri)) {
203
+ console.error(ServiceErrorMessageConstants.INVALID_STORAGE_URI.message);
204
+ coreLogger.error("Reporting disabled: storageUri is not a valid Azure Storage endpoint.");
205
+ return false;
206
+ }
206
207
  coreLogger.info("Reporting enabled based on storage URI configuration");
207
208
  return true;
208
209
  }
@@ -1 +1 @@
1
- {"version":3,"file":"playwrightReporter.js","sourceRoot":"","sources":["../../../src/reporter/playwrightReporter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gCAAgC,EAAE,MAAM,8CAA8C,CAAC;AAChG,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAGxE;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAC7B,MAAM,CAAyB;IAC/B,iBAAiB,GAA6B,IAAI,CAAC;IACnD,kBAAkB,GAAG,KAAK,CAAC;IAEnC;;;;OAIG;IAEH,KAAK,CAAC,OAAO,CAAC,MAAkB;QAC9B,UAAU,CAAC,IAAI,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAEvF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,+DAA+D;QAC/D,IAAI,CAAC;YACH,MAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;YACjD,MAAM,qBAAqB,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;YAEhE,6BAA6B;YAC7B,MAAM,2BAA2B,GAC/B,qBAAqB,CAAC,KAAK,GAAG,CAAC;gBAC/B,CAAC,qBAAqB,CAAC,KAAK,KAAK,CAAC,IAAI,qBAAqB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YAE3E,IAAI,CAAC,2BAA2B,EAAE,CAAC;gBACjC,OAAO,CAAC,KAAK,CACX,4BAA4B,CAAC,wCAAwC,CAAC,OAAO,CAC9E,CAAC;gBACF,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;gBAChC,OAAO;YACT,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,KAAK,CAAC,qCAAqC,KAAK,EAAE,CAAC,CAAC;YAC/D,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,wCAAwC,CAAC,OAAO,CAAC,CAAC;YAC7F,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,OAAO;QACT,CAAC;QAED,gCAAgC;QAChC,MAAM,kBAAkB,GACtB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,KAAK,MAAM,CAAC;QAC5E,UAAU,CAAC,IAAI,CAAC,yBAAyB,kBAAkB,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAC;YACrF,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,OAAO;QACT,CAAC;QAED,4CAA4C;QAC5C,MAAM,sBAAsB,GAC1B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,yBAAyB,CAAC,KAAK,MAAM,CAAC;QACjF,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAC5E,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;YAC9E,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,OAAO;QACT,CAAC;QAED,uBAAuB;QACvB,MAAM,uBAAuB,GAAG,uBAAuB,CAAC,QAAQ,CAAC;QACjE,UAAU,CAAC,IAAI,CAAC,gCAAgC,uBAAuB,CAAC,eAAe,EAAE,CAAC,CAAC;QAC3F,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,eAAe,KAAK,WAAW,CAAC,YAAY,CAAC;QAChG,IAAI,kBAAkB,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;YACjF,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,OAAO;QACT,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QAErE,uCAAuC;QACvC,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,OAAO;QACT,CAAC;QAED,uCAAuC;QACvC,IAAI,CAAC;YACH,MAAM,0BAA0B,GAAG,IAAI,uBAAuB,EAAE,CAAC;YACjE,IAAI,CAAC,iBAAiB,GAAG,MAAM,0BAA0B,CAAC,oBAAoB,EAAE,CAAC;YACjF,UAAU,CAAC,IAAI,CACb,+BAA+B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CACjF,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACrD,OAAO;YACT,CAAC;YAED,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,OAAO,CAAC,KAAK,CACX,GAAG,4BAA4B,CAAC,+BAA+B,CAAC,OAAO,UAAU,YAAY,GAAG,CACjG,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IAEH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACvE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAEnD,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBACzB,IACE,YAAY,CAAC,cAAc;oBAC3B,YAAY,CAAC,iBAAiB;oBAC9B,YAAY,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EACzC,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;oBAC9D,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;wBACpD,OAAO,CAAC,GAAG,CAAC,OAAO,UAAU,CAAC,QAAQ,YAAY,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;oBACxE,CAAC,CAAC,CAAC;oBACH,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;gBAC7E,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;gBAC7E,CAAC;gBACD,uDAAuD;gBACvD,IAAI,IAAI,CAAC,iBAAiB,EAAE,UAAU,EAAE,CAAC;oBACvC,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;oBACzE,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC1F,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;gBAC5E,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;oBAC9B,OAAO,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9D,UAAU,CAAC,IAAI,CAAC,kDAAkD,YAAY,EAAE,CAAC,CAAC;YAClF,MAAM,cAAc,GAAG,IAAI,gCAAgC,EAAE,CAAC;YAC9D,UAAU,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;YAClE,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,oCAAoC,CAC5E,YAAY,EACZ,IAAI,CAAC,iBAAiB,CACvB,CAAC;YAEF,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBACzB,UAAU,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;YACpF,CAAC;YACD,OAAO,YAAY,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,UAAU,CAAC,KAAK,CAAC,kBAAkB,YAAY,EAAE,CAAC,CAAC;YACnD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QAC1C,CAAC;IACH,CAAC;IAEO,iCAAiC,CAAC,MAAkB;QAC1D,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxD,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;YAC3E,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC/D,MAAM,YAAY,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7E,OAAO,YAAY,KAAK,MAAM,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;YAChE,MAAM,YAAY,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7E,OAAO,CACL,OAAO,YAAY,KAAK,QAAQ;gBAChC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC;gBACnC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAClC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,gCAAgC;QAChC,IAAI,iBAAiB,KAAK,CAAC,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;YAC3E,OAAO,KAAK,CAAC;QACf,CAAC;QAED,gFAAgF;QAChF,IAAI,kBAAkB,KAAK,CAAC,CAAC,IAAI,iBAAiB,GAAG,kBAAkB,EAAE,CAAC;YACxE,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;YAC3E,OAAO,KAAK,CAAC;QACf,CAAC;QAED,UAAU,CAAC,IAAI,CACb,oFAAoF,CACrF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACK,kBAAkB,CAAC,iBAA2C;QACpE,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAC;YACrF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,iBAAiB,CAAC;QAEpD,6DAA6D;QAC7D,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,mBAAmB,GACvB,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAEtE,IAAI,mBAAmB,KAAK,UAAU,EAAE,CAAC;gBACvC,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;gBACjF,UAAU,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;gBAC3E,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;gBACtC,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,OAAO,CAAC,KAAK,CACX,4BAA4B,CAAC,sCAAsC,CAAC,OAAO,CAC5E,CAAC;oBACF,UAAU,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;oBAChF,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,UAAU,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;gBAC1E,OAAO,IAAI,CAAC;YACd,CAAC;YAED,sFAAsF;YACtF,UAAU,CAAC,IAAI,CACb,qDAAqD,SAAS,sCAAsC,CACrG,CAAC;QACJ,CAAC;QAED,iHAAiH;QACjH,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;YACjF,UAAU,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;YACpE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { FullConfig, Reporter } from \"@playwright/test/reporter\";\nimport { PlaywrightReporterStorageManager } from \"../utils/playwrightReporterStorageManager.js\";\nimport {\n getHtmlReporterOutputFolder,\n getPortalTestRunUrl,\n getVersionInfo,\n} from \"../utils/utils.js\";\nimport { coreLogger } from \"../common/logger.js\";\nimport { PlaywrightServiceConfig } from \"../common/playwrightServiceConfig.js\";\nimport { ServiceAuth, InternalEnvironmentVariables } from \"../common/constants.js\";\nimport { ServiceErrorMessageConstants } from \"../common/messages.js\";\nimport { PlaywrightServiceClient } from \"../utils/PlaywrightServiceClient.js\";\nimport { getPlaywrightVersion } from \"../utils/getPlaywrightVersion.js\";\nimport type { WorkspaceMetaData, UploadResult } from \"../common/types.js\";\n\n/**\n * Azure Playwright Reporter - Uploads generated Playwright test report folder to Azure Storage.\n */\n\nexport default class PlaywrightReporter implements Reporter {\n private config: FullConfig | undefined;\n private workspaceMetadata: WorkspaceMetaData | null = null;\n private isReportingEnabled = false;\n\n /**\n * Called when test run begins. Stores configuration for later use and validates serviceAuthType and\n * retrieves workspace metadata.\n * @param config - Playwright test configuration\n */\n\n async onBegin(config: FullConfig): Promise<void> {\n coreLogger.info(`Reporter configuration: ${JSON.stringify(config.reporter, null, 2)}`);\n\n this.config = config;\n\n // Check Playwright version for reporting feature compatibility\n try {\n const playwrightVersion = getPlaywrightVersion();\n const playwrightVersionInfo = getVersionInfo(playwrightVersion);\n\n // Check if version is < 1.57\n const isReportingSupportedVersion =\n playwrightVersionInfo.major > 1 ||\n (playwrightVersionInfo.major === 1 && playwrightVersionInfo.minor >= 57);\n\n if (!isReportingSupportedVersion) {\n console.error(\n ServiceErrorMessageConstants.PLAYWRIGHT_VERSION_TOO_OLD_FOR_REPORTING.message,\n );\n this.isReportingEnabled = false;\n return;\n }\n } catch (error) {\n coreLogger.error(`Failed to get Playwright version: ${error}`);\n console.error(ServiceErrorMessageConstants.PLAYWRIGHT_VERSION_TOO_OLD_FOR_REPORTING.message);\n this.isReportingEnabled = false;\n return;\n }\n\n // Check if using service config\n const usingServiceConfig =\n process.env[InternalEnvironmentVariables.USING_SERVICE_CONFIG] === \"true\";\n coreLogger.info(`Using service config: ${usingServiceConfig}`);\n if (!usingServiceConfig) {\n console.error(ServiceErrorMessageConstants.REPORTER_REQUIRES_SERVICE_CONFIG.message);\n this.isReportingEnabled = false;\n return;\n }\n\n // Check if test run creation was successful\n const testRunCreationSuccess =\n process.env[InternalEnvironmentVariables.TEST_RUN_CREATION_SUCCESS] === \"true\";\n if (!testRunCreationSuccess) {\n console.error(ServiceErrorMessageConstants.REPORTING_STATUS_FAILED.message);\n console.error(ServiceErrorMessageConstants.REPORTING_TEST_RUN_FAILED.message);\n this.isReportingEnabled = false;\n return;\n }\n\n // Check authentication\n const playwrightServiceConfig = PlaywrightServiceConfig.instance;\n coreLogger.info(`Current authentication type: ${playwrightServiceConfig.serviceAuthType}`);\n const isUsingAccessToken = playwrightServiceConfig.serviceAuthType === ServiceAuth.ACCESS_TOKEN;\n if (isUsingAccessToken) {\n console.error(ServiceErrorMessageConstants.REPORTER_REQUIRES_ENTRA_AUTH.message);\n this.isReportingEnabled = false;\n return;\n }\n coreLogger.info(\"Authentication validation passed - using ENTRA_ID\");\n\n // Validate HTML reporter configuration\n if (!this.validateHtmlReporterConfiguration(config)) {\n return;\n }\n\n // Get workspace metadata for later use\n try {\n const playwrightServiceApiClient = new PlaywrightServiceClient();\n this.workspaceMetadata = await playwrightServiceApiClient.getWorkspaceMetadata();\n coreLogger.info(\n `Received workspace details: ${JSON.stringify(this.workspaceMetadata, null, 2)}`,\n );\n\n if (!this.isReportingAllowed(this.workspaceMetadata)) {\n return;\n }\n\n this.isReportingEnabled = true;\n console.log(ServiceErrorMessageConstants.REPORTING_ENABLED.message);\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n console.error(\n `${ServiceErrorMessageConstants.WORKSPACE_METADATA_FETCH_FAILED.message}Error: ${errorMessage} `,\n );\n }\n }\n\n /**\n * Called when test run ends. Uploads Playwright test report to Azure Storage if reporting is enabled.\n */\n\n async onEnd(): Promise<void> {\n if (this.isReportingEnabled) {\n console.log(ServiceErrorMessageConstants.COLLECTING_ARTIFACTS.message);\n const uploadResult = await this.uploadHtmlReport();\n\n if (uploadResult.success) {\n if (\n uploadResult.partialSuccess &&\n uploadResult.failedFileDetails &&\n uploadResult.failedFileDetails.length > 0\n ) {\n console.log(\"Warning: Failed to upload the following files:\");\n uploadResult.failedFileDetails.forEach((fileDetail) => {\n console.log(` - ${fileDetail.fileName}, ERROR: ${fileDetail.error}`);\n });\n console.log(ServiceErrorMessageConstants.REPORTING_STATUS_PARTIAL.message);\n } else {\n console.log(ServiceErrorMessageConstants.REPORTING_STATUS_SUCCESS.message);\n }\n // Display portal URL for both full and partial success\n if (this.workspaceMetadata?.resourceId) {\n const portalUrl = getPortalTestRunUrl(this.workspaceMetadata.resourceId);\n console.log(ServiceErrorMessageConstants.TEST_REPORT_VIEW_URL.formatWithUrl(portalUrl));\n }\n } else {\n console.error(ServiceErrorMessageConstants.REPORTING_STATUS_FAILED.message);\n if (uploadResult.errorMessage) {\n console.error(`Error: ${uploadResult.errorMessage}`);\n }\n }\n }\n }\n\n private async uploadHtmlReport(): Promise<UploadResult> {\n try {\n const outputFolder = getHtmlReporterOutputFolder(this.config);\n coreLogger.info(`Resolved Playwright test report output folder: ${outputFolder}`);\n const storageManager = new PlaywrightReporterStorageManager();\n coreLogger.info(\"Starting Playwright test report upload process\");\n const uploadResult = await storageManager.uploadPlaywrightHtmlReportAfterTests(\n outputFolder,\n this.workspaceMetadata,\n );\n\n if (uploadResult.success) {\n coreLogger.info(`Playwright Test report uploaded successfully to Azure Storage.`);\n }\n return uploadResult;\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : \"Unknown error\";\n coreLogger.error(`Upload failed: ${errorMessage}`);\n return { success: false, errorMessage };\n }\n }\n\n private validateHtmlReporterConfiguration(config: FullConfig): boolean {\n if (!config.reporter || !Array.isArray(config.reporter)) {\n console.error(ServiceErrorMessageConstants.HTML_REPORTER_REQUIRED.message);\n return false;\n }\n\n const htmlReporterIndex = config.reporter.findIndex((reporter) => {\n const reporterName = typeof reporter === \"string\" ? reporter : reporter?.[0];\n return reporterName === \"html\";\n });\n\n const azureReporterIndex = config.reporter.findIndex((reporter) => {\n const reporterName = typeof reporter === \"string\" ? reporter : reporter?.[0];\n return (\n typeof reporterName === \"string\" &&\n reporterName.includes(\"playwright\") &&\n reporterName.includes(\"reporter\")\n );\n });\n\n // Validate HTML reporter exists\n if (htmlReporterIndex === -1) {\n console.error(ServiceErrorMessageConstants.HTML_REPORTER_REQUIRED.message);\n return false;\n }\n\n // Validate HTML reporter comes before Azure reporter (if Azure reporter exists)\n if (azureReporterIndex !== -1 && htmlReporterIndex > azureReporterIndex) {\n console.error(ServiceErrorMessageConstants.HTML_REPORTER_REQUIRED.message);\n return false;\n }\n\n coreLogger.info(\n \"HTML reporter validation passed - HTML reporter is configured and properly ordered\",\n );\n return true;\n }\n\n /**\n * Determines if reporting should be enabled based on workspace metadata.\n * @param workspaceMetadata - The workspace metadata containing reporting and storageUri information\n * @returns true if reporting should be enabled, false otherwise\n */\n private isReportingAllowed(workspaceMetadata: WorkspaceMetaData | null): boolean {\n if (!workspaceMetadata) {\n console.error(ServiceErrorMessageConstants.FAILED_TO_GET_WORKSPACE_METADATA.message);\n return false;\n }\n\n const { reporting, storageUri } = workspaceMetadata;\n\n // If reporting field is present in metadata, check its value\n if (reporting !== undefined) {\n const normalizedReporting =\n typeof reporting === \"string\" ? reporting.toLowerCase() : reporting;\n\n if (normalizedReporting === \"disabled\") {\n console.error(ServiceErrorMessageConstants.WORKSPACE_REPORTING_DISABLED.message);\n coreLogger.info(\"Reporting disabled via workspace metadata configuration\");\n return false;\n }\n\n if (normalizedReporting === \"enabled\") {\n if (!storageUri) {\n console.error(\n ServiceErrorMessageConstants.WORKSPACE_REPORTING_STORAGE_NOT_LINKED.message,\n );\n coreLogger.info(\"Reporting enabled in metadata but storage URI not configured\");\n return false;\n }\n coreLogger.info(\"Reporting enabled via workspace metadata configuration\");\n return true;\n }\n\n // If reporting has an unexpected value, log warning and fall back to storageUri check\n coreLogger.info(\n `Unexpected reporting value in workspace metadata: ${reporting}. Falling back to storage URI check.`,\n );\n }\n\n // Fallback to current logic: check only storageUri (when reporting field is not present or has unexpected value)\n if (!storageUri) {\n console.error(ServiceErrorMessageConstants.WORKSPACE_REPORTING_DISABLED.message);\n coreLogger.info(\"Storage URI not configured in workspace metadata\");\n return false;\n }\n\n coreLogger.info(\"Reporting enabled based on storage URI configuration\");\n return true;\n }\n}\n"]}
1
+ {"version":3,"file":"playwrightReporter.js","sourceRoot":"","sources":["../../../src/reporter/playwrightReporter.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { FullConfig, Reporter } from \"@playwright/test/reporter\";\nimport { PlaywrightReporterStorageManager } from \"../utils/playwrightReporterStorageManager.js\";\nimport {\n getHtmlReporterOutputFolder,\n getPortalTestRunUrl,\n getVersionInfo,\n isValidAzureStorageBlobUri,\n} from \"../utils/utils.js\";\nimport { coreLogger } from \"../common/logger.js\";\nimport { PlaywrightServiceConfig } from \"../common/playwrightServiceConfig.js\";\nimport { ServiceAuth, InternalEnvironmentVariables } from \"../common/constants.js\";\nimport { ServiceErrorMessageConstants } from \"../common/messages.js\";\nimport { PlaywrightServiceClient } from \"../utils/PlaywrightServiceClient.js\";\nimport { getPlaywrightVersion } from \"../utils/getPlaywrightVersion.js\";\nimport type { WorkspaceMetaData, UploadResult } from \"../common/types.js\";\n\n/**\n * Azure Playwright Reporter - Uploads generated Playwright test report folder to Azure Storage.\n */\n\nexport default class PlaywrightReporter implements Reporter {\n private config: FullConfig | undefined;\n private workspaceMetadata: WorkspaceMetaData | null = null;\n private isReportingEnabled = false;\n\n /**\n * Called when test run begins. Stores configuration for later use and validates serviceAuthType and\n * retrieves workspace metadata.\n * @param config - Playwright test configuration\n */\n\n async onBegin(config: FullConfig): Promise<void> {\n coreLogger.info(`Reporter configuration: ${JSON.stringify(config.reporter, null, 2)}`);\n\n this.config = config;\n\n // Check Playwright version for reporting feature compatibility\n try {\n const playwrightVersion = getPlaywrightVersion();\n const playwrightVersionInfo = getVersionInfo(playwrightVersion);\n\n // Check if version is < 1.57\n const isReportingSupportedVersion =\n playwrightVersionInfo.major > 1 ||\n (playwrightVersionInfo.major === 1 && playwrightVersionInfo.minor >= 57);\n\n if (!isReportingSupportedVersion) {\n console.error(\n ServiceErrorMessageConstants.PLAYWRIGHT_VERSION_TOO_OLD_FOR_REPORTING.message,\n );\n this.isReportingEnabled = false;\n return;\n }\n } catch (error) {\n coreLogger.error(`Failed to get Playwright version: ${error}`);\n console.error(ServiceErrorMessageConstants.PLAYWRIGHT_VERSION_TOO_OLD_FOR_REPORTING.message);\n this.isReportingEnabled = false;\n return;\n }\n\n // Check if using service config\n const usingServiceConfig =\n process.env[InternalEnvironmentVariables.USING_SERVICE_CONFIG] === \"true\";\n coreLogger.info(`Using service config: ${usingServiceConfig}`);\n if (!usingServiceConfig) {\n console.error(ServiceErrorMessageConstants.REPORTER_REQUIRES_SERVICE_CONFIG.message);\n this.isReportingEnabled = false;\n return;\n }\n\n // Check if test run creation was successful\n const testRunCreationSuccess =\n process.env[InternalEnvironmentVariables.TEST_RUN_CREATION_SUCCESS] === \"true\";\n if (!testRunCreationSuccess) {\n console.error(ServiceErrorMessageConstants.REPORTING_STATUS_FAILED.message);\n console.error(ServiceErrorMessageConstants.REPORTING_TEST_RUN_FAILED.message);\n this.isReportingEnabled = false;\n return;\n }\n\n // Check authentication\n const playwrightServiceConfig = PlaywrightServiceConfig.instance;\n coreLogger.info(`Current authentication type: ${playwrightServiceConfig.serviceAuthType}`);\n const isUsingAccessToken = playwrightServiceConfig.serviceAuthType === ServiceAuth.ACCESS_TOKEN;\n if (isUsingAccessToken) {\n console.error(ServiceErrorMessageConstants.REPORTER_REQUIRES_ENTRA_AUTH.message);\n this.isReportingEnabled = false;\n return;\n }\n coreLogger.info(\"Authentication validation passed - using ENTRA_ID\");\n\n // Validate HTML reporter configuration\n if (!this.validateHtmlReporterConfiguration(config)) {\n return;\n }\n\n // Get workspace metadata for later use\n try {\n const playwrightServiceApiClient = new PlaywrightServiceClient();\n this.workspaceMetadata = await playwrightServiceApiClient.getWorkspaceMetadata();\n coreLogger.info(\n `Received workspace details: ${JSON.stringify(this.workspaceMetadata, null, 2)}`,\n );\n\n if (!this.isReportingAllowed(this.workspaceMetadata)) {\n return;\n }\n\n this.isReportingEnabled = true;\n console.log(ServiceErrorMessageConstants.REPORTING_ENABLED.message);\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n console.error(\n `${ServiceErrorMessageConstants.WORKSPACE_METADATA_FETCH_FAILED.message}Error: ${errorMessage} `,\n );\n }\n }\n\n /**\n * Called when test run ends. Uploads Playwright test report to Azure Storage if reporting is enabled.\n */\n\n async onEnd(): Promise<void> {\n if (this.isReportingEnabled) {\n console.log(ServiceErrorMessageConstants.COLLECTING_ARTIFACTS.message);\n const uploadResult = await this.uploadHtmlReport();\n\n if (uploadResult.success) {\n if (\n uploadResult.partialSuccess &&\n uploadResult.failedFileDetails &&\n uploadResult.failedFileDetails.length > 0\n ) {\n console.log(\"Warning: Failed to upload the following files:\");\n uploadResult.failedFileDetails.forEach((fileDetail) => {\n console.log(` - ${fileDetail.fileName}, ERROR: ${fileDetail.error}`);\n });\n console.log(ServiceErrorMessageConstants.REPORTING_STATUS_PARTIAL.message);\n } else {\n console.log(ServiceErrorMessageConstants.REPORTING_STATUS_SUCCESS.message);\n }\n // Display portal URL for both full and partial success\n if (this.workspaceMetadata?.resourceId) {\n const portalUrl = getPortalTestRunUrl(this.workspaceMetadata.resourceId);\n console.log(ServiceErrorMessageConstants.TEST_REPORT_VIEW_URL.formatWithUrl(portalUrl));\n }\n } else {\n console.error(ServiceErrorMessageConstants.REPORTING_STATUS_FAILED.message);\n if (uploadResult.errorMessage) {\n console.error(`Error: ${uploadResult.errorMessage}`);\n }\n }\n }\n }\n\n private async uploadHtmlReport(): Promise<UploadResult> {\n try {\n const outputFolder = getHtmlReporterOutputFolder(this.config);\n coreLogger.info(`Resolved Playwright test report output folder: ${outputFolder}`);\n const storageManager = new PlaywrightReporterStorageManager();\n coreLogger.info(\"Starting Playwright test report upload process\");\n const uploadResult = await storageManager.uploadPlaywrightHtmlReportAfterTests(\n outputFolder,\n this.workspaceMetadata,\n );\n\n if (uploadResult.success) {\n coreLogger.info(`Playwright Test report uploaded successfully to Azure Storage.`);\n }\n return uploadResult;\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : \"Unknown error\";\n coreLogger.error(`Upload failed: ${errorMessage}`);\n return { success: false, errorMessage };\n }\n }\n\n private validateHtmlReporterConfiguration(config: FullConfig): boolean {\n if (!config.reporter || !Array.isArray(config.reporter)) {\n console.error(ServiceErrorMessageConstants.HTML_REPORTER_REQUIRED.message);\n return false;\n }\n\n const htmlReporterIndex = config.reporter.findIndex((reporter) => {\n const reporterName = typeof reporter === \"string\" ? reporter : reporter?.[0];\n return reporterName === \"html\";\n });\n\n const azureReporterIndex = config.reporter.findIndex((reporter) => {\n const reporterName = typeof reporter === \"string\" ? reporter : reporter?.[0];\n return (\n typeof reporterName === \"string\" &&\n reporterName.includes(\"playwright\") &&\n reporterName.includes(\"reporter\")\n );\n });\n\n // Validate HTML reporter exists\n if (htmlReporterIndex === -1) {\n console.error(ServiceErrorMessageConstants.HTML_REPORTER_REQUIRED.message);\n return false;\n }\n\n // Validate HTML reporter comes before Azure reporter (if Azure reporter exists)\n if (azureReporterIndex !== -1 && htmlReporterIndex > azureReporterIndex) {\n console.error(ServiceErrorMessageConstants.HTML_REPORTER_REQUIRED.message);\n return false;\n }\n\n coreLogger.info(\n \"HTML reporter validation passed - HTML reporter is configured and properly ordered\",\n );\n return true;\n }\n\n /**\n * Determines if reporting should be enabled based on workspace metadata.\n * @param workspaceMetadata - The workspace metadata containing reporting and storageUri information\n * @returns true if reporting should be enabled, false otherwise\n */\n private isReportingAllowed(workspaceMetadata: WorkspaceMetaData | null): boolean {\n if (!workspaceMetadata) {\n console.error(ServiceErrorMessageConstants.FAILED_TO_GET_WORKSPACE_METADATA.message);\n return false;\n }\n\n const { reporting, storageUri } = workspaceMetadata;\n\n // If reporting field is present in metadata, check its value\n if (reporting !== undefined) {\n const normalizedReporting =\n typeof reporting === \"string\" ? reporting.toLowerCase() : reporting;\n\n if (normalizedReporting === \"disabled\") {\n console.error(ServiceErrorMessageConstants.WORKSPACE_REPORTING_DISABLED.message);\n coreLogger.info(\"Reporting disabled via workspace metadata configuration\");\n return false;\n }\n\n if (normalizedReporting === \"enabled\" && !storageUri) {\n console.error(ServiceErrorMessageConstants.WORKSPACE_REPORTING_STORAGE_NOT_LINKED.message);\n coreLogger.info(\"Reporting enabled in metadata but storage URI not configured\");\n return false;\n }\n\n if (normalizedReporting !== \"enabled\") {\n coreLogger.info(\n `Unexpected reporting value in workspace metadata: ${reporting}. Falling back to storage URI check.`,\n );\n }\n }\n\n if (!storageUri) {\n console.error(ServiceErrorMessageConstants.WORKSPACE_REPORTING_DISABLED.message);\n coreLogger.info(\"Storage URI not configured in workspace metadata\");\n return false;\n }\n\n if (!isValidAzureStorageBlobUri(storageUri)) {\n console.error(ServiceErrorMessageConstants.INVALID_STORAGE_URI.message);\n coreLogger.error(\"Reporting disabled: storageUri is not a valid Azure Storage endpoint.\");\n return false;\n }\n\n coreLogger.info(\"Reporting enabled based on storage URI configuration\");\n return true;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getPackageVersion.d.ts","sourceRoot":"","sources":["../../../src/utils/getPackageVersion.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,2BAA2B,GAAI,QAAQ,MAAM,KAAG,MAQ5D,CAAC"}
1
+ {"version":3,"file":"getPackageVersion.d.ts","sourceRoot":"","sources":["../../../src/utils/getPackageVersion.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,2BAA2B,GAAI,QAAQ,MAAM,KAAG,MAU5D,CAAC"}
@@ -15,8 +15,8 @@ export const getPackageVersionFromFolder = (folder) => {
15
15
  const version = require(path.join(currentDir, folder, "package.json")).version;
16
16
  return version;
17
17
  }
18
- catch (error) {
19
- coreLogger.error("Error fetching package version:", error);
18
+ catch {
19
+ coreLogger.verbose(`package.json not found at ${path.join(currentDir, folder)}, trying next path`);
20
20
  return "";
21
21
  }
22
22
  };
@@ -1 +1 @@
1
- {"version":3,"file":"getPackageVersion.js","sourceRoot":"","sources":["../../../src/utils/getPackageVersion.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,6DAA6D;AAC7D,6BAA6B;AAC7B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,6DAA6D;AAC7D,6BAA6B;AAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,MAAc,EAAU,EAAE;IACpE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/E,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;QAC3D,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport path, { dirname } from \"node:path\";\nimport { coreLogger } from \"../common/logger.js\";\nimport { fileURLToPath } from \"node:url\";\nimport { createRequire } from \"node:module\";\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore ESM only output\nconst require = createRequire(import.meta.url);\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore ESM only output\nconst currentDir = dirname(fileURLToPath(import.meta.url));\n\nexport const getPackageVersionFromFolder = (folder: string): string => {\n try {\n const version = require(path.join(currentDir, folder, \"package.json\")).version;\n return version;\n } catch (error) {\n coreLogger.error(\"Error fetching package version:\", error);\n return \"\";\n }\n};\n"]}
1
+ {"version":3,"file":"getPackageVersion.js","sourceRoot":"","sources":["../../../src/utils/getPackageVersion.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,6DAA6D;AAC7D,6BAA6B;AAC7B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,6DAA6D;AAC7D,6BAA6B;AAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,MAAc,EAAU,EAAE;IACpE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/E,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,MAAM,CAAC;QACP,UAAU,CAAC,OAAO,CAChB,6BAA6B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,oBAAoB,CAC/E,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport path, { dirname } from \"node:path\";\nimport { coreLogger } from \"../common/logger.js\";\nimport { fileURLToPath } from \"node:url\";\nimport { createRequire } from \"node:module\";\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore ESM only output\nconst require = createRequire(import.meta.url);\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore ESM only output\nconst currentDir = dirname(fileURLToPath(import.meta.url));\n\nexport const getPackageVersionFromFolder = (folder: string): string => {\n try {\n const version = require(path.join(currentDir, folder, \"package.json\")).version;\n return version;\n } catch {\n coreLogger.verbose(\n `package.json not found at ${path.join(currentDir, folder)}, trying next path`,\n );\n return \"\";\n }\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"parseJwt.d.ts","sourceRoot":"","sources":["../../../src/utils/parseJwt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,eAAO,MAAM,eAAe,GAAI,WAAW,MAAM,KAAG,MAInD,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,CAAC,GAAG,UAAU,EAAE,OAAO,MAAM,KAAG,CAOxD,CAAC"}
1
+ {"version":3,"file":"parseJwt.d.ts","sourceRoot":"","sources":["../../../src/utils/parseJwt.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,eAAO,MAAM,eAAe,GAAI,WAAW,MAAM,KAAG,MAEnD,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,CAAC,GAAG,UAAU,EAAE,OAAO,MAAM,KAAG,CAOxD,CAAC"}