plum-e2e 2.6.9 → 2.7.1

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 (899) hide show
  1. package/CLAUDE.md +17 -2
  2. package/LICENSE +21 -677
  3. package/README.md +1 -1
  4. package/backend/Dockerfile +1 -13
  5. package/backend/app.js +4 -14
  6. package/backend/config/scripts/create-step.mjs +1 -13
  7. package/backend/config/scripts/create-test.mjs +1 -13
  8. package/backend/config/scripts/generate-report.js +5 -15
  9. package/backend/config/scripts/run-tests.js +5 -16
  10. package/backend/constants/defaults.js +8 -0
  11. package/backend/constants/env.js +16 -0
  12. package/backend/constants/jobStatus.js +21 -0
  13. package/backend/constants/socketEvents.js +40 -0
  14. package/backend/constants/triggers.js +6 -14
  15. package/backend/entrypoint.sh +1 -13
  16. package/backend/lib/authHeader.js +16 -0
  17. package/backend/lib/globalRegistry.js +1 -13
  18. package/backend/lib/nodeRegister.js +1 -13
  19. package/backend/lib/reportFilename.js +1 -13
  20. package/backend/lib/retryRunner.js +1 -13
  21. package/backend/lib/runnerProcess.js +5 -16
  22. package/backend/lib/screenshotPoller.js +1 -13
  23. package/backend/lib/serverBootstrap.js +189 -0
  24. package/backend/lib/serverConfig.js +1 -13
  25. package/backend/lib/testChunker.js +1 -13
  26. package/backend/lib/testEnv.js +1 -13
  27. package/backend/mcp/server.js +5 -15
  28. package/backend/middleware/auth.js +4 -14
  29. package/backend/middleware/jwtAuth.js +5 -16
  30. package/backend/middleware/requireAdmin.js +1 -13
  31. package/backend/package.json +3 -3
  32. package/backend/playwright.config.js +1 -13
  33. package/backend/routes/active-runs.routes.js +18 -0
  34. package/backend/routes/auth.routes.js +1 -13
  35. package/backend/routes/backup.routes.js +10 -21
  36. package/backend/routes/cron.routes.js +1 -13
  37. package/backend/routes/node.routes.js +11 -148
  38. package/backend/routes/reports.routes.js +1 -13
  39. package/backend/routes/runners.routes.js +11 -21
  40. package/backend/routes/settings.routes.js +6 -17
  41. package/backend/routes/test-cases.routes.js +1 -13
  42. package/backend/routes/test-runs.routes.js +1 -13
  43. package/backend/routes/test-suites.routes.js +1 -13
  44. package/backend/routes/tests.routes.js +1 -13
  45. package/backend/routes/trigger.routes.js +23 -165
  46. package/backend/routes/users.routes.js +1 -13
  47. package/backend/scripts/manage-runners.mjs +1 -13
  48. package/backend/server.js +34 -151
  49. package/backend/services/activeRunsService.js +55 -0
  50. package/backend/services/backupCronService.js +1 -13
  51. package/backend/services/backupService.js +7 -17
  52. package/backend/services/cronService.js +57 -39
  53. package/backend/services/envService.js +1 -13
  54. package/backend/services/nodeExecutionService.js +140 -0
  55. package/backend/services/notificationService.js +7 -17
  56. package/backend/services/prisma.js +1 -13
  57. package/backend/services/reportService.js +21 -17
  58. package/backend/services/runnerService.js +46 -27
  59. package/backend/services/settingsService.js +19 -19
  60. package/backend/services/testCaseService.js +1 -13
  61. package/backend/services/testRunService.js +1 -13
  62. package/backend/services/testService.js +1 -13
  63. package/backend/services/testSuiteService.js +1 -13
  64. package/backend/services/triggerService.js +246 -0
  65. package/backend/services/userService.js +1 -13
  66. package/backend/websockets/socketHandler.js +99 -48
  67. package/bin/plum.js +1 -13
  68. package/bin/postinstall.js +1 -13
  69. package/bin/scaffold-tests.js +1 -13
  70. package/docker-compose.node.yml +1 -13
  71. package/docker-compose.yml +1 -13
  72. package/frontend/.svelte-kit/adapter-node/.vite/manifest.json +3 -3
  73. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/BackLink.CvWWuO3h.css +0 -22
  74. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/Badge.D1SV0Gv7.css +0 -22
  75. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/ConfirmModal.Dd3uP-Sk.css +0 -22
  76. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/EmptyState.DUDM4P19.css +0 -22
  77. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/Modal.BuaCfdLj.css +0 -22
  78. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/Pagination.DZmi2Po-.css +0 -22
  79. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/Toast.DENwYn3g.css +0 -22
  80. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_layout.BuhMvMUj.css +0 -22
  81. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.0Eln51hV.css +0 -22
  82. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.5IJAEAjc.css +0 -22
  83. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BR3wgXcZ.css +0 -22
  84. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BWAH0Beh.css +0 -22
  85. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BZfe6nWe.css +0 -22
  86. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.Bj_a_5lv.css +0 -22
  87. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BwgOqeMo.css +0 -22
  88. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.CBHi6pzT.css +0 -22
  89. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.CFnbmY-D.css +0 -22
  90. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.DvMkmYA-.css +1 -0
  91. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page._h2o67kg.css +0 -22
  92. package/frontend/.svelte-kit/adapter-node/chunks/BackLink.js +0 -22
  93. package/frontend/.svelte-kit/adapter-node/chunks/Badge.js +1 -23
  94. package/frontend/.svelte-kit/adapter-node/chunks/ConfirmModal.js +1 -23
  95. package/frontend/.svelte-kit/adapter-node/chunks/EmptyState.js +2 -24
  96. package/frontend/.svelte-kit/adapter-node/chunks/Modal.js +0 -22
  97. package/frontend/.svelte-kit/adapter-node/chunks/Toast.js +1 -23
  98. package/frontend/.svelte-kit/adapter-node/chunks/attributes.js +0 -22
  99. package/frontend/.svelte-kit/adapter-node/chunks/auth.js +0 -22
  100. package/frontend/.svelte-kit/adapter-node/chunks/auth2.js +0 -22
  101. package/frontend/.svelte-kit/adapter-node/chunks/client.js +0 -22
  102. package/frontend/.svelte-kit/adapter-node/chunks/common.js +9 -29
  103. package/frontend/.svelte-kit/adapter-node/chunks/constants.js +4 -23
  104. package/frontend/.svelte-kit/adapter-node/chunks/escaping.js +0 -22
  105. package/frontend/.svelte-kit/adapter-node/chunks/exports.js +0 -22
  106. package/frontend/.svelte-kit/adapter-node/chunks/format.js +0 -22
  107. package/frontend/.svelte-kit/adapter-node/chunks/index-server.js +0 -22
  108. package/frontend/.svelte-kit/adapter-node/chunks/index.js +4 -26
  109. package/frontend/.svelte-kit/adapter-node/chunks/index2.js +0 -22
  110. package/frontend/.svelte-kit/adapter-node/chunks/internal.js +1 -23
  111. package/frontend/.svelte-kit/adapter-node/chunks/reports.js +0 -22
  112. package/frontend/.svelte-kit/adapter-node/chunks/reports2.js +0 -22
  113. package/frontend/.svelte-kit/adapter-node/chunks/repository.js +10 -34
  114. package/frontend/.svelte-kit/adapter-node/chunks/runner.js +2 -25
  115. package/frontend/.svelte-kit/adapter-node/chunks/stores.js +0 -22
  116. package/frontend/.svelte-kit/adapter-node/chunks/theme.js +0 -22
  117. package/frontend/.svelte-kit/adapter-node/entries/fallbacks/error.svelte.js +0 -22
  118. package/frontend/.svelte-kit/adapter-node/entries/pages/_layout.js +0 -22
  119. package/frontend/.svelte-kit/adapter-node/entries/pages/_layout.svelte.js +0 -22
  120. package/frontend/.svelte-kit/adapter-node/entries/pages/_page.svelte.js +114 -103
  121. package/frontend/.svelte-kit/adapter-node/entries/pages/login/_page.svelte.js +1 -23
  122. package/frontend/.svelte-kit/adapter-node/entries/pages/reports/_id_/_page.svelte.js +1 -23
  123. package/frontend/.svelte-kit/adapter-node/entries/pages/reports/_page.svelte.js +1 -23
  124. package/frontend/.svelte-kit/adapter-node/entries/pages/reports/live/_page.svelte.js +1 -23
  125. package/frontend/.svelte-kit/adapter-node/entries/pages/scheduled-tests/_page.svelte.js +1 -23
  126. package/frontend/.svelte-kit/adapter-node/entries/pages/settings/_page.svelte.js +2 -24
  127. package/frontend/.svelte-kit/adapter-node/entries/pages/setup/_page.svelte.js +1 -23
  128. package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/_page.svelte.js +3 -25
  129. package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/runs/_id_/_page.svelte.js +3 -25
  130. package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/suites/_id_/_page.svelte.js +3 -25
  131. package/frontend/.svelte-kit/adapter-node/index.js +0 -22
  132. package/frontend/.svelte-kit/adapter-node/internal.js +0 -22
  133. package/frontend/.svelte-kit/adapter-node/manifest-full.js +1 -23
  134. package/frontend/.svelte-kit/adapter-node/manifest.js +1 -23
  135. package/frontend/.svelte-kit/adapter-node/nodes/0.js +1 -23
  136. package/frontend/.svelte-kit/adapter-node/nodes/1.js +1 -23
  137. package/frontend/.svelte-kit/adapter-node/nodes/10.js +1 -23
  138. package/frontend/.svelte-kit/adapter-node/nodes/11.js +1 -23
  139. package/frontend/.svelte-kit/adapter-node/nodes/12.js +1 -23
  140. package/frontend/.svelte-kit/adapter-node/nodes/2.js +2 -24
  141. package/frontend/.svelte-kit/adapter-node/nodes/3.js +1 -23
  142. package/frontend/.svelte-kit/adapter-node/nodes/4.js +1 -23
  143. package/frontend/.svelte-kit/adapter-node/nodes/5.js +1 -23
  144. package/frontend/.svelte-kit/adapter-node/nodes/6.js +1 -23
  145. package/frontend/.svelte-kit/adapter-node/nodes/7.js +1 -23
  146. package/frontend/.svelte-kit/adapter-node/nodes/8.js +1 -23
  147. package/frontend/.svelte-kit/adapter-node/nodes/9.js +1 -23
  148. package/frontend/.svelte-kit/ambient.d.ts +2 -22
  149. package/frontend/.svelte-kit/generated/client/app.js +0 -22
  150. package/frontend/.svelte-kit/generated/client/matchers.js +0 -22
  151. package/frontend/.svelte-kit/generated/client/nodes/0.js +0 -22
  152. package/frontend/.svelte-kit/generated/client/nodes/1.js +0 -22
  153. package/frontend/.svelte-kit/generated/client/nodes/10.js +0 -22
  154. package/frontend/.svelte-kit/generated/client/nodes/11.js +0 -22
  155. package/frontend/.svelte-kit/generated/client/nodes/12.js +0 -22
  156. package/frontend/.svelte-kit/generated/client/nodes/2.js +0 -22
  157. package/frontend/.svelte-kit/generated/client/nodes/3.js +0 -22
  158. package/frontend/.svelte-kit/generated/client/nodes/4.js +0 -22
  159. package/frontend/.svelte-kit/generated/client/nodes/5.js +0 -22
  160. package/frontend/.svelte-kit/generated/client/nodes/6.js +0 -22
  161. package/frontend/.svelte-kit/generated/client/nodes/7.js +0 -22
  162. package/frontend/.svelte-kit/generated/client/nodes/8.js +0 -22
  163. package/frontend/.svelte-kit/generated/client/nodes/9.js +0 -22
  164. package/frontend/.svelte-kit/generated/client-optimized/app.js +0 -22
  165. package/frontend/.svelte-kit/generated/client-optimized/matchers.js +0 -22
  166. package/frontend/.svelte-kit/generated/client-optimized/nodes/0.js +0 -22
  167. package/frontend/.svelte-kit/generated/client-optimized/nodes/1.js +0 -22
  168. package/frontend/.svelte-kit/generated/client-optimized/nodes/10.js +0 -22
  169. package/frontend/.svelte-kit/generated/client-optimized/nodes/11.js +0 -22
  170. package/frontend/.svelte-kit/generated/client-optimized/nodes/12.js +0 -22
  171. package/frontend/.svelte-kit/generated/client-optimized/nodes/2.js +0 -22
  172. package/frontend/.svelte-kit/generated/client-optimized/nodes/3.js +0 -22
  173. package/frontend/.svelte-kit/generated/client-optimized/nodes/4.js +0 -22
  174. package/frontend/.svelte-kit/generated/client-optimized/nodes/5.js +0 -22
  175. package/frontend/.svelte-kit/generated/client-optimized/nodes/6.js +0 -22
  176. package/frontend/.svelte-kit/generated/client-optimized/nodes/7.js +0 -22
  177. package/frontend/.svelte-kit/generated/client-optimized/nodes/8.js +0 -22
  178. package/frontend/.svelte-kit/generated/client-optimized/nodes/9.js +0 -22
  179. package/frontend/.svelte-kit/generated/root.js +0 -22
  180. package/frontend/.svelte-kit/generated/root.svelte +0 -22
  181. package/frontend/.svelte-kit/generated/server/internal.js +1 -23
  182. package/frontend/.svelte-kit/non-ambient.d.ts +0 -22
  183. package/frontend/.svelte-kit/output/client/.vite/manifest.json +225 -224
  184. package/frontend/.svelte-kit/output/client/_app/immutable/assets/0.BhSG-jZH.css +0 -22
  185. package/frontend/.svelte-kit/output/client/_app/immutable/assets/10.CdaQUS6U.css +0 -22
  186. package/frontend/.svelte-kit/output/client/_app/immutable/assets/11.BWAH0Beh.css +0 -22
  187. package/frontend/.svelte-kit/output/client/_app/immutable/assets/12.Bj_a_5lv.css +0 -22
  188. package/frontend/.svelte-kit/output/client/_app/immutable/assets/2.DvMkmYA-.css +1 -0
  189. package/frontend/.svelte-kit/output/client/_app/immutable/assets/3.BR3wgXcZ.css +0 -22
  190. package/frontend/.svelte-kit/output/client/_app/immutable/assets/4.0Eln51hV.css +0 -22
  191. package/frontend/.svelte-kit/output/client/_app/immutable/assets/5.DFV9OgAu.css +0 -22
  192. package/frontend/.svelte-kit/output/client/_app/immutable/assets/6.CFnbmY-D.css +0 -22
  193. package/frontend/.svelte-kit/output/client/_app/immutable/assets/7.CBHi6pzT.css +0 -22
  194. package/frontend/.svelte-kit/output/client/_app/immutable/assets/8.BwgOqeMo.css +0 -22
  195. package/frontend/.svelte-kit/output/client/_app/immutable/assets/9._h2o67kg.css +0 -22
  196. package/frontend/.svelte-kit/output/client/_app/immutable/assets/BackLink.CvWWuO3h.css +0 -22
  197. package/frontend/.svelte-kit/output/client/_app/immutable/assets/Badge.D1SV0Gv7.css +0 -22
  198. package/frontend/.svelte-kit/output/client/_app/immutable/assets/Button.FOWXxvc7.css +0 -22
  199. package/frontend/.svelte-kit/output/client/_app/immutable/assets/ConfirmModal.Dd3uP-Sk.css +0 -22
  200. package/frontend/.svelte-kit/output/client/_app/immutable/assets/EmptyState.DUDM4P19.css +0 -22
  201. package/frontend/.svelte-kit/output/client/_app/immutable/assets/Modal.BZpm0HP8.css +0 -22
  202. package/frontend/.svelte-kit/output/client/_app/immutable/assets/Modal.BuaCfdLj.css +0 -22
  203. package/frontend/.svelte-kit/output/client/_app/immutable/assets/Pagination.DZmi2Po-.css +0 -22
  204. package/frontend/.svelte-kit/output/client/_app/immutable/assets/Toast.DENwYn3g.css +0 -22
  205. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_layout.BuhMvMUj.css +0 -22
  206. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.0Eln51hV.css +0 -22
  207. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.5IJAEAjc.css +0 -22
  208. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BR3wgXcZ.css +0 -22
  209. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BWAH0Beh.css +0 -22
  210. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BZfe6nWe.css +0 -22
  211. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.Bj_a_5lv.css +0 -22
  212. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BwgOqeMo.css +0 -22
  213. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.CBHi6pzT.css +0 -22
  214. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.CFnbmY-D.css +0 -22
  215. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.DvMkmYA-.css +1 -0
  216. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page._h2o67kg.css +0 -22
  217. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/2zMvi6fR.js +0 -22
  218. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{D2cvzNT9.js → 3InFPLvE.js} +1 -23
  219. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BAACMRH5.js +0 -22
  220. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BAMUGSh7.js +1 -0
  221. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BKuh57WU.js +1 -0
  222. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{DkNBSlo2.js → BUwxRmHf.js} +1 -23
  223. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Bfc47y5P.js +0 -22
  224. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{DYlaQsvN.js → BmZ9upwL.js} +1 -23
  225. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/C1Vid6wz.js +0 -22
  226. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/C8OURRSs.js +0 -22
  227. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CGeZlCaI.js +1 -0
  228. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CKDtmZUQ.js +0 -22
  229. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CMBQQ9RZ.js +0 -22
  230. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{BjUpWNbl.js → CMEtqUfQ.js} +1 -23
  231. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CNdcuGR0.js +0 -22
  232. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CUC98kMZ.js +1 -0
  233. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CgnwuKKO.js +0 -22
  234. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{B98sHkeB.js → Co3xKhEp.js} +1 -23
  235. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CuqnZUex.js +0 -22
  236. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{DlNYZJ7K.js → CzlPaHY9.js} +1 -23
  237. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DCgHuuvs.js +0 -22
  238. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DHM6H-es.js +2 -0
  239. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{3IV-uqHa.js → DMZwI8Cj.js} +1 -23
  240. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DMyTUV-Y.js +3 -0
  241. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{D2gYTmAA.js → DSLBMEpr.js} +1 -23
  242. package/frontend/{build/client/_app/immutable/chunks/DDblTLLE.js → .svelte-kit/output/client/_app/immutable/chunks/DbgD7JLa.js} +1 -23
  243. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Dlnxgs49.js +0 -22
  244. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/TOCyHP97.js +0 -22
  245. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/nURnIknV.js +1 -0
  246. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/t-La0hgu.js +0 -22
  247. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/w0D4Uzlq.js +0 -22
  248. package/frontend/.svelte-kit/output/client/_app/immutable/entry/{app.BCWbw5zZ.js → app.BkBD0hgA.js} +2 -24
  249. package/frontend/.svelte-kit/output/client/_app/immutable/entry/start.BxeX1Uxs.js +1 -0
  250. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/0.ChjDHxSJ.js +6 -0
  251. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/1.DBSWa36f.js +1 -0
  252. package/frontend/{build/client/_app/immutable/nodes/10.Bn4Ma-MU.js → .svelte-kit/output/client/_app/immutable/nodes/10.DEbnxfND.js} +1 -23
  253. package/frontend/{build/client/_app/immutable/nodes/11.BacEu7sW.js → .svelte-kit/output/client/_app/immutable/nodes/11.O4cjXCg4.js} +1 -23
  254. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/12.BWQdeRdX.js +1 -0
  255. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/2.BnHalSCi.js +1 -0
  256. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{3.DHx0kho3.js → 3._S1vrLVF.js} +1 -23
  257. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{4.CnaMiirx.js → 4.D-YT_JJe.js} +1 -23
  258. package/frontend/{build/client/_app/immutable/nodes/5.B6m-zTVe.js → .svelte-kit/output/client/_app/immutable/nodes/5.BiFBiWcW.js} +1 -23
  259. package/frontend/{build/client/_app/immutable/nodes/6.BPDag1zv.js → .svelte-kit/output/client/_app/immutable/nodes/6.BNS-W0R_.js} +1 -23
  260. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{7.D7LwxSvT.js → 7.C-pKvVZy.js} +1 -23
  261. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{8.CCkNX20G.js → 8.BEUdazrw.js} +1 -23
  262. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{9.HDerA6JV.js → 9.CrLHYPEJ.js} +1 -23
  263. package/frontend/.svelte-kit/output/client/_app/version.json +1 -1
  264. package/frontend/.svelte-kit/output/server/.vite/manifest.json +3 -3
  265. package/frontend/.svelte-kit/output/server/_app/immutable/assets/BackLink.CvWWuO3h.css +0 -22
  266. package/frontend/.svelte-kit/output/server/_app/immutable/assets/Badge.D1SV0Gv7.css +0 -22
  267. package/frontend/.svelte-kit/output/server/_app/immutable/assets/ConfirmModal.Dd3uP-Sk.css +0 -22
  268. package/frontend/.svelte-kit/output/server/_app/immutable/assets/EmptyState.DUDM4P19.css +0 -22
  269. package/frontend/.svelte-kit/output/server/_app/immutable/assets/Modal.BuaCfdLj.css +0 -22
  270. package/frontend/.svelte-kit/output/server/_app/immutable/assets/Pagination.DZmi2Po-.css +0 -22
  271. package/frontend/.svelte-kit/output/server/_app/immutable/assets/Toast.DENwYn3g.css +0 -22
  272. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_layout.BuhMvMUj.css +0 -22
  273. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.0Eln51hV.css +0 -22
  274. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.5IJAEAjc.css +0 -22
  275. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BR3wgXcZ.css +0 -22
  276. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BWAH0Beh.css +0 -22
  277. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BZfe6nWe.css +0 -22
  278. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Bj_a_5lv.css +0 -22
  279. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BwgOqeMo.css +0 -22
  280. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CBHi6pzT.css +0 -22
  281. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CFnbmY-D.css +0 -22
  282. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.DvMkmYA-.css +1 -0
  283. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page._h2o67kg.css +0 -22
  284. package/frontend/.svelte-kit/output/server/chunks/BackLink.js +0 -22
  285. package/frontend/.svelte-kit/output/server/chunks/Badge.js +1 -23
  286. package/frontend/.svelte-kit/output/server/chunks/ConfirmModal.js +1 -23
  287. package/frontend/.svelte-kit/output/server/chunks/EmptyState.js +2 -24
  288. package/frontend/.svelte-kit/output/server/chunks/Modal.js +0 -22
  289. package/frontend/.svelte-kit/output/server/chunks/Toast.js +1 -23
  290. package/frontend/.svelte-kit/output/server/chunks/attributes.js +0 -22
  291. package/frontend/.svelte-kit/output/server/chunks/auth.js +0 -22
  292. package/frontend/.svelte-kit/output/server/chunks/auth2.js +0 -22
  293. package/frontend/.svelte-kit/output/server/chunks/client.js +0 -22
  294. package/frontend/.svelte-kit/output/server/chunks/common.js +9 -29
  295. package/frontend/.svelte-kit/output/server/chunks/constants.js +4 -23
  296. package/frontend/.svelte-kit/output/server/chunks/escaping.js +0 -22
  297. package/frontend/.svelte-kit/output/server/chunks/exports.js +0 -22
  298. package/frontend/.svelte-kit/output/server/chunks/format.js +0 -22
  299. package/frontend/.svelte-kit/output/server/chunks/index-server.js +0 -22
  300. package/frontend/.svelte-kit/output/server/chunks/index.js +4 -26
  301. package/frontend/.svelte-kit/output/server/chunks/index2.js +0 -22
  302. package/frontend/.svelte-kit/output/server/chunks/internal.js +1 -23
  303. package/frontend/.svelte-kit/output/server/chunks/reports.js +0 -22
  304. package/frontend/.svelte-kit/output/server/chunks/reports2.js +0 -22
  305. package/frontend/.svelte-kit/output/server/chunks/repository.js +10 -34
  306. package/frontend/.svelte-kit/output/server/chunks/runner.js +2 -25
  307. package/frontend/.svelte-kit/output/server/chunks/stores.js +0 -22
  308. package/frontend/.svelte-kit/output/server/chunks/theme.js +0 -22
  309. package/frontend/.svelte-kit/output/server/entries/fallbacks/error.svelte.js +0 -22
  310. package/frontend/.svelte-kit/output/server/entries/pages/_layout.js +0 -22
  311. package/frontend/.svelte-kit/output/server/entries/pages/_layout.svelte.js +0 -22
  312. package/frontend/.svelte-kit/output/server/entries/pages/_page.svelte.js +114 -103
  313. package/frontend/.svelte-kit/output/server/entries/pages/login/_page.svelte.js +1 -23
  314. package/frontend/.svelte-kit/output/server/entries/pages/reports/_id_/_page.svelte.js +1 -23
  315. package/frontend/.svelte-kit/output/server/entries/pages/reports/_page.svelte.js +1 -23
  316. package/frontend/.svelte-kit/output/server/entries/pages/reports/live/_page.svelte.js +1 -23
  317. package/frontend/.svelte-kit/output/server/entries/pages/scheduled-tests/_page.svelte.js +1 -23
  318. package/frontend/.svelte-kit/output/server/entries/pages/settings/_page.svelte.js +2 -24
  319. package/frontend/.svelte-kit/output/server/entries/pages/setup/_page.svelte.js +1 -23
  320. package/frontend/.svelte-kit/output/server/entries/pages/test-repository/_page.svelte.js +3 -25
  321. package/frontend/.svelte-kit/output/server/entries/pages/test-repository/runs/_id_/_page.svelte.js +3 -25
  322. package/frontend/.svelte-kit/output/server/entries/pages/test-repository/suites/_id_/_page.svelte.js +3 -25
  323. package/frontend/.svelte-kit/output/server/index.js +0 -22
  324. package/frontend/.svelte-kit/output/server/internal.js +0 -22
  325. package/frontend/.svelte-kit/output/server/manifest-full.js +1 -23
  326. package/frontend/.svelte-kit/output/server/manifest.js +1 -23
  327. package/frontend/.svelte-kit/output/server/nodes/0.js +1 -23
  328. package/frontend/.svelte-kit/output/server/nodes/1.js +1 -23
  329. package/frontend/.svelte-kit/output/server/nodes/10.js +1 -23
  330. package/frontend/.svelte-kit/output/server/nodes/11.js +1 -23
  331. package/frontend/.svelte-kit/output/server/nodes/12.js +1 -23
  332. package/frontend/.svelte-kit/output/server/nodes/2.js +2 -24
  333. package/frontend/.svelte-kit/output/server/nodes/3.js +1 -23
  334. package/frontend/.svelte-kit/output/server/nodes/4.js +1 -23
  335. package/frontend/.svelte-kit/output/server/nodes/5.js +1 -23
  336. package/frontend/.svelte-kit/output/server/nodes/6.js +1 -23
  337. package/frontend/.svelte-kit/output/server/nodes/7.js +1 -23
  338. package/frontend/.svelte-kit/output/server/nodes/8.js +1 -23
  339. package/frontend/.svelte-kit/output/server/nodes/9.js +1 -23
  340. package/frontend/Dockerfile +1 -13
  341. package/frontend/build/client/_app/immutable/assets/0.BhSG-jZH.css +0 -22
  342. package/frontend/build/client/_app/immutable/assets/0.BhSG-jZH.css.br +0 -0
  343. package/frontend/build/client/_app/immutable/assets/0.BhSG-jZH.css.gz +0 -0
  344. package/frontend/build/client/_app/immutable/assets/10.CdaQUS6U.css +0 -22
  345. package/frontend/build/client/_app/immutable/assets/10.CdaQUS6U.css.br +0 -0
  346. package/frontend/build/client/_app/immutable/assets/10.CdaQUS6U.css.gz +0 -0
  347. package/frontend/build/client/_app/immutable/assets/11.BWAH0Beh.css +0 -22
  348. package/frontend/build/client/_app/immutable/assets/11.BWAH0Beh.css.br +0 -0
  349. package/frontend/build/client/_app/immutable/assets/11.BWAH0Beh.css.gz +0 -0
  350. package/frontend/build/client/_app/immutable/assets/12.Bj_a_5lv.css +0 -22
  351. package/frontend/build/client/_app/immutable/assets/12.Bj_a_5lv.css.br +0 -0
  352. package/frontend/build/client/_app/immutable/assets/12.Bj_a_5lv.css.gz +0 -0
  353. package/frontend/build/client/_app/immutable/assets/2.DvMkmYA-.css +1 -0
  354. package/frontend/build/client/_app/immutable/assets/2.DvMkmYA-.css.br +0 -0
  355. package/frontend/build/client/_app/immutable/assets/2.DvMkmYA-.css.gz +0 -0
  356. package/frontend/build/client/_app/immutable/assets/3.BR3wgXcZ.css +0 -22
  357. package/frontend/build/client/_app/immutable/assets/3.BR3wgXcZ.css.br +0 -0
  358. package/frontend/build/client/_app/immutable/assets/3.BR3wgXcZ.css.gz +0 -0
  359. package/frontend/build/client/_app/immutable/assets/4.0Eln51hV.css +0 -22
  360. package/frontend/build/client/_app/immutable/assets/4.0Eln51hV.css.br +0 -0
  361. package/frontend/build/client/_app/immutable/assets/4.0Eln51hV.css.gz +0 -0
  362. package/frontend/build/client/_app/immutable/assets/5.DFV9OgAu.css +0 -22
  363. package/frontend/build/client/_app/immutable/assets/5.DFV9OgAu.css.br +0 -0
  364. package/frontend/build/client/_app/immutable/assets/5.DFV9OgAu.css.gz +0 -0
  365. package/frontend/build/client/_app/immutable/assets/6.CFnbmY-D.css +0 -22
  366. package/frontend/build/client/_app/immutable/assets/6.CFnbmY-D.css.br +0 -0
  367. package/frontend/build/client/_app/immutable/assets/6.CFnbmY-D.css.gz +0 -0
  368. package/frontend/build/client/_app/immutable/assets/7.CBHi6pzT.css +0 -22
  369. package/frontend/build/client/_app/immutable/assets/7.CBHi6pzT.css.br +0 -0
  370. package/frontend/build/client/_app/immutable/assets/7.CBHi6pzT.css.gz +0 -0
  371. package/frontend/build/client/_app/immutable/assets/8.BwgOqeMo.css +0 -22
  372. package/frontend/build/client/_app/immutable/assets/8.BwgOqeMo.css.br +0 -0
  373. package/frontend/build/client/_app/immutable/assets/8.BwgOqeMo.css.gz +0 -0
  374. package/frontend/build/client/_app/immutable/assets/9._h2o67kg.css +0 -22
  375. package/frontend/build/client/_app/immutable/assets/9._h2o67kg.css.br +0 -0
  376. package/frontend/build/client/_app/immutable/assets/9._h2o67kg.css.gz +0 -0
  377. package/frontend/build/client/_app/immutable/assets/BackLink.CvWWuO3h.css +0 -22
  378. package/frontend/build/client/_app/immutable/assets/BackLink.CvWWuO3h.css.br +0 -0
  379. package/frontend/build/client/_app/immutable/assets/BackLink.CvWWuO3h.css.gz +0 -0
  380. package/frontend/build/client/_app/immutable/assets/Badge.D1SV0Gv7.css +0 -22
  381. package/frontend/build/client/_app/immutable/assets/Badge.D1SV0Gv7.css.br +0 -0
  382. package/frontend/build/client/_app/immutable/assets/Badge.D1SV0Gv7.css.gz +0 -0
  383. package/frontend/build/client/_app/immutable/assets/Button.FOWXxvc7.css +0 -22
  384. package/frontend/build/client/_app/immutable/assets/Button.FOWXxvc7.css.br +0 -0
  385. package/frontend/build/client/_app/immutable/assets/Button.FOWXxvc7.css.gz +0 -0
  386. package/frontend/build/client/_app/immutable/assets/ConfirmModal.Dd3uP-Sk.css +0 -22
  387. package/frontend/build/client/_app/immutable/assets/ConfirmModal.Dd3uP-Sk.css.br +0 -0
  388. package/frontend/build/client/_app/immutable/assets/ConfirmModal.Dd3uP-Sk.css.gz +0 -0
  389. package/frontend/build/client/_app/immutable/assets/EmptyState.DUDM4P19.css +0 -22
  390. package/frontend/build/client/_app/immutable/assets/EmptyState.DUDM4P19.css.br +0 -0
  391. package/frontend/build/client/_app/immutable/assets/EmptyState.DUDM4P19.css.gz +0 -0
  392. package/frontend/build/client/_app/immutable/assets/Modal.BZpm0HP8.css +0 -22
  393. package/frontend/build/client/_app/immutable/assets/Modal.BZpm0HP8.css.br +0 -0
  394. package/frontend/build/client/_app/immutable/assets/Modal.BZpm0HP8.css.gz +0 -0
  395. package/frontend/build/client/_app/immutable/assets/Modal.BuaCfdLj.css +0 -22
  396. package/frontend/build/client/_app/immutable/assets/Modal.BuaCfdLj.css.br +0 -0
  397. package/frontend/build/client/_app/immutable/assets/Modal.BuaCfdLj.css.gz +0 -0
  398. package/frontend/build/client/_app/immutable/assets/Pagination.DZmi2Po-.css +0 -22
  399. package/frontend/build/client/_app/immutable/assets/Pagination.DZmi2Po-.css.br +0 -0
  400. package/frontend/build/client/_app/immutable/assets/Pagination.DZmi2Po-.css.gz +0 -0
  401. package/frontend/build/client/_app/immutable/assets/Toast.DENwYn3g.css +0 -22
  402. package/frontend/build/client/_app/immutable/assets/Toast.DENwYn3g.css.br +0 -0
  403. package/frontend/build/client/_app/immutable/assets/Toast.DENwYn3g.css.gz +0 -0
  404. package/frontend/build/client/_app/immutable/assets/_layout.BuhMvMUj.css +0 -22
  405. package/frontend/build/client/_app/immutable/assets/_layout.BuhMvMUj.css.br +0 -0
  406. package/frontend/build/client/_app/immutable/assets/_layout.BuhMvMUj.css.gz +0 -0
  407. package/frontend/build/client/_app/immutable/assets/_page.0Eln51hV.css +0 -22
  408. package/frontend/build/client/_app/immutable/assets/_page.0Eln51hV.css.br +0 -0
  409. package/frontend/build/client/_app/immutable/assets/_page.0Eln51hV.css.gz +0 -0
  410. package/frontend/build/client/_app/immutable/assets/_page.5IJAEAjc.css +0 -22
  411. package/frontend/build/client/_app/immutable/assets/_page.5IJAEAjc.css.br +0 -0
  412. package/frontend/build/client/_app/immutable/assets/_page.5IJAEAjc.css.gz +0 -0
  413. package/frontend/build/client/_app/immutable/assets/_page.BR3wgXcZ.css +0 -22
  414. package/frontend/build/client/_app/immutable/assets/_page.BR3wgXcZ.css.br +0 -0
  415. package/frontend/build/client/_app/immutable/assets/_page.BR3wgXcZ.css.gz +0 -0
  416. package/frontend/build/client/_app/immutable/assets/_page.BWAH0Beh.css +0 -22
  417. package/frontend/build/client/_app/immutable/assets/_page.BWAH0Beh.css.br +0 -0
  418. package/frontend/build/client/_app/immutable/assets/_page.BWAH0Beh.css.gz +0 -0
  419. package/frontend/build/client/_app/immutable/assets/_page.BZfe6nWe.css +0 -22
  420. package/frontend/build/client/_app/immutable/assets/_page.BZfe6nWe.css.br +0 -0
  421. package/frontend/build/client/_app/immutable/assets/_page.BZfe6nWe.css.gz +0 -0
  422. package/frontend/build/client/_app/immutable/assets/_page.Bj_a_5lv.css +0 -22
  423. package/frontend/build/client/_app/immutable/assets/_page.Bj_a_5lv.css.br +0 -0
  424. package/frontend/build/client/_app/immutable/assets/_page.Bj_a_5lv.css.gz +0 -0
  425. package/frontend/build/client/_app/immutable/assets/_page.BwgOqeMo.css +0 -22
  426. package/frontend/build/client/_app/immutable/assets/_page.BwgOqeMo.css.br +0 -0
  427. package/frontend/build/client/_app/immutable/assets/_page.BwgOqeMo.css.gz +0 -0
  428. package/frontend/build/client/_app/immutable/assets/_page.CBHi6pzT.css +0 -22
  429. package/frontend/build/client/_app/immutable/assets/_page.CBHi6pzT.css.br +0 -0
  430. package/frontend/build/client/_app/immutable/assets/_page.CBHi6pzT.css.gz +0 -0
  431. package/frontend/build/client/_app/immutable/assets/_page.CFnbmY-D.css +0 -22
  432. package/frontend/build/client/_app/immutable/assets/_page.CFnbmY-D.css.br +0 -0
  433. package/frontend/build/client/_app/immutable/assets/_page.CFnbmY-D.css.gz +0 -0
  434. package/frontend/build/client/_app/immutable/assets/_page.DvMkmYA-.css +1 -0
  435. package/frontend/build/client/_app/immutable/assets/_page.DvMkmYA-.css.br +0 -0
  436. package/frontend/build/client/_app/immutable/assets/_page.DvMkmYA-.css.gz +0 -0
  437. package/frontend/build/client/_app/immutable/assets/_page._h2o67kg.css +0 -22
  438. package/frontend/build/client/_app/immutable/assets/_page._h2o67kg.css.br +0 -0
  439. package/frontend/build/client/_app/immutable/assets/_page._h2o67kg.css.gz +0 -0
  440. package/frontend/build/client/_app/immutable/chunks/2zMvi6fR.js +0 -22
  441. package/frontend/build/client/_app/immutable/chunks/2zMvi6fR.js.br +0 -0
  442. package/frontend/build/client/_app/immutable/chunks/2zMvi6fR.js.gz +0 -0
  443. package/frontend/build/client/_app/immutable/chunks/{D2cvzNT9.js → 3InFPLvE.js} +1 -23
  444. package/frontend/build/client/_app/immutable/chunks/3InFPLvE.js.br +0 -0
  445. package/frontend/build/client/_app/immutable/chunks/3InFPLvE.js.gz +0 -0
  446. package/frontend/build/client/_app/immutable/chunks/BAACMRH5.js +0 -22
  447. package/frontend/build/client/_app/immutable/chunks/BAACMRH5.js.br +0 -0
  448. package/frontend/build/client/_app/immutable/chunks/BAACMRH5.js.gz +0 -0
  449. package/frontend/build/client/_app/immutable/chunks/BAMUGSh7.js +1 -0
  450. package/frontend/build/client/_app/immutable/chunks/BAMUGSh7.js.br +0 -0
  451. package/frontend/build/client/_app/immutable/chunks/BAMUGSh7.js.gz +0 -0
  452. package/frontend/build/client/_app/immutable/chunks/BKuh57WU.js +1 -0
  453. package/frontend/build/client/_app/immutable/chunks/BKuh57WU.js.br +0 -0
  454. package/frontend/build/client/_app/immutable/chunks/BKuh57WU.js.gz +0 -0
  455. package/frontend/build/client/_app/immutable/chunks/{DkNBSlo2.js → BUwxRmHf.js} +1 -23
  456. package/frontend/build/client/_app/immutable/chunks/BUwxRmHf.js.br +0 -0
  457. package/frontend/build/client/_app/immutable/chunks/BUwxRmHf.js.gz +0 -0
  458. package/frontend/build/client/_app/immutable/chunks/Bfc47y5P.js +0 -22
  459. package/frontend/build/client/_app/immutable/chunks/Bfc47y5P.js.br +0 -0
  460. package/frontend/build/client/_app/immutable/chunks/Bfc47y5P.js.gz +0 -0
  461. package/frontend/build/client/_app/immutable/chunks/{DYlaQsvN.js → BmZ9upwL.js} +1 -23
  462. package/frontend/build/client/_app/immutable/chunks/BmZ9upwL.js.br +0 -0
  463. package/frontend/build/client/_app/immutable/chunks/BmZ9upwL.js.gz +0 -0
  464. package/frontend/build/client/_app/immutable/chunks/C1Vid6wz.js +0 -22
  465. package/frontend/build/client/_app/immutable/chunks/C1Vid6wz.js.br +0 -0
  466. package/frontend/build/client/_app/immutable/chunks/C1Vid6wz.js.gz +0 -0
  467. package/frontend/build/client/_app/immutable/chunks/C8OURRSs.js +0 -22
  468. package/frontend/build/client/_app/immutable/chunks/C8OURRSs.js.br +0 -0
  469. package/frontend/build/client/_app/immutable/chunks/C8OURRSs.js.gz +0 -0
  470. package/frontend/build/client/_app/immutable/chunks/CGeZlCaI.js +1 -0
  471. package/frontend/build/client/_app/immutable/chunks/CGeZlCaI.js.br +0 -0
  472. package/frontend/build/client/_app/immutable/chunks/CGeZlCaI.js.gz +0 -0
  473. package/frontend/build/client/_app/immutable/chunks/CKDtmZUQ.js +0 -22
  474. package/frontend/build/client/_app/immutable/chunks/CKDtmZUQ.js.br +0 -0
  475. package/frontend/build/client/_app/immutable/chunks/CKDtmZUQ.js.gz +0 -0
  476. package/frontend/build/client/_app/immutable/chunks/CMBQQ9RZ.js +0 -22
  477. package/frontend/build/client/_app/immutable/chunks/CMBQQ9RZ.js.br +0 -0
  478. package/frontend/build/client/_app/immutable/chunks/CMBQQ9RZ.js.gz +0 -0
  479. package/frontend/build/client/_app/immutable/chunks/{BjUpWNbl.js → CMEtqUfQ.js} +1 -23
  480. package/frontend/build/client/_app/immutable/chunks/CMEtqUfQ.js.br +0 -0
  481. package/frontend/build/client/_app/immutable/chunks/CMEtqUfQ.js.gz +0 -0
  482. package/frontend/build/client/_app/immutable/chunks/CNdcuGR0.js +0 -22
  483. package/frontend/build/client/_app/immutable/chunks/CNdcuGR0.js.br +0 -0
  484. package/frontend/build/client/_app/immutable/chunks/CNdcuGR0.js.gz +0 -0
  485. package/frontend/build/client/_app/immutable/chunks/CUC98kMZ.js +1 -0
  486. package/frontend/build/client/_app/immutable/chunks/CUC98kMZ.js.br +0 -0
  487. package/frontend/build/client/_app/immutable/chunks/CUC98kMZ.js.gz +0 -0
  488. package/frontend/build/client/_app/immutable/chunks/CgnwuKKO.js +0 -22
  489. package/frontend/build/client/_app/immutable/chunks/CgnwuKKO.js.br +0 -0
  490. package/frontend/build/client/_app/immutable/chunks/CgnwuKKO.js.gz +0 -0
  491. package/frontend/build/client/_app/immutable/chunks/{B98sHkeB.js → Co3xKhEp.js} +1 -23
  492. package/frontend/build/client/_app/immutable/chunks/Co3xKhEp.js.br +0 -0
  493. package/frontend/build/client/_app/immutable/chunks/Co3xKhEp.js.gz +0 -0
  494. package/frontend/build/client/_app/immutable/chunks/CuqnZUex.js +0 -22
  495. package/frontend/build/client/_app/immutable/chunks/CuqnZUex.js.br +1 -21
  496. package/frontend/build/client/_app/immutable/chunks/CuqnZUex.js.gz +0 -0
  497. package/frontend/build/client/_app/immutable/chunks/{DlNYZJ7K.js → CzlPaHY9.js} +1 -23
  498. package/frontend/build/client/_app/immutable/chunks/CzlPaHY9.js.br +0 -0
  499. package/frontend/build/client/_app/immutable/chunks/CzlPaHY9.js.gz +0 -0
  500. package/frontend/build/client/_app/immutable/chunks/DCgHuuvs.js +0 -22
  501. package/frontend/build/client/_app/immutable/chunks/DCgHuuvs.js.br +0 -0
  502. package/frontend/build/client/_app/immutable/chunks/DCgHuuvs.js.gz +0 -0
  503. package/frontend/build/client/_app/immutable/chunks/DHM6H-es.js +2 -0
  504. package/frontend/build/client/_app/immutable/chunks/DHM6H-es.js.br +0 -0
  505. package/frontend/build/client/_app/immutable/chunks/DHM6H-es.js.gz +0 -0
  506. package/frontend/build/client/_app/immutable/chunks/{3IV-uqHa.js → DMZwI8Cj.js} +1 -23
  507. package/frontend/build/client/_app/immutable/chunks/DMZwI8Cj.js.br +0 -0
  508. package/frontend/build/client/_app/immutable/chunks/DMZwI8Cj.js.gz +0 -0
  509. package/frontend/build/client/_app/immutable/chunks/DMyTUV-Y.js +3 -0
  510. package/frontend/build/client/_app/immutable/chunks/DMyTUV-Y.js.br +0 -0
  511. package/frontend/build/client/_app/immutable/chunks/DMyTUV-Y.js.gz +0 -0
  512. package/frontend/build/client/_app/immutable/chunks/{D2gYTmAA.js → DSLBMEpr.js} +1 -23
  513. package/frontend/build/client/_app/immutable/chunks/DSLBMEpr.js.br +0 -0
  514. package/frontend/build/client/_app/immutable/chunks/DSLBMEpr.js.gz +0 -0
  515. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/DDblTLLE.js → build/client/_app/immutable/chunks/DbgD7JLa.js} +1 -23
  516. package/frontend/build/client/_app/immutable/chunks/DbgD7JLa.js.br +0 -0
  517. package/frontend/build/client/_app/immutable/chunks/DbgD7JLa.js.gz +0 -0
  518. package/frontend/build/client/_app/immutable/chunks/Dlnxgs49.js +0 -22
  519. package/frontend/build/client/_app/immutable/chunks/Dlnxgs49.js.br +0 -0
  520. package/frontend/build/client/_app/immutable/chunks/Dlnxgs49.js.gz +0 -0
  521. package/frontend/build/client/_app/immutable/chunks/TOCyHP97.js +0 -22
  522. package/frontend/build/client/_app/immutable/chunks/TOCyHP97.js.br +0 -0
  523. package/frontend/build/client/_app/immutable/chunks/TOCyHP97.js.gz +0 -0
  524. package/frontend/build/client/_app/immutable/chunks/nURnIknV.js +1 -0
  525. package/frontend/build/client/_app/immutable/chunks/nURnIknV.js.br +0 -0
  526. package/frontend/build/client/_app/immutable/chunks/nURnIknV.js.gz +0 -0
  527. package/frontend/build/client/_app/immutable/chunks/t-La0hgu.js +0 -22
  528. package/frontend/build/client/_app/immutable/chunks/t-La0hgu.js.br +0 -0
  529. package/frontend/build/client/_app/immutable/chunks/t-La0hgu.js.gz +0 -0
  530. package/frontend/build/client/_app/immutable/chunks/w0D4Uzlq.js +0 -22
  531. package/frontend/build/client/_app/immutable/chunks/w0D4Uzlq.js.br +0 -0
  532. package/frontend/build/client/_app/immutable/chunks/w0D4Uzlq.js.gz +0 -0
  533. package/frontend/build/client/_app/immutable/entry/{app.BCWbw5zZ.js → app.BkBD0hgA.js} +2 -24
  534. package/frontend/build/client/_app/immutable/entry/app.BkBD0hgA.js.br +0 -0
  535. package/frontend/build/client/_app/immutable/entry/app.BkBD0hgA.js.gz +0 -0
  536. package/frontend/build/client/_app/immutable/entry/start.BxeX1Uxs.js +1 -0
  537. package/frontend/build/client/_app/immutable/entry/start.BxeX1Uxs.js.br +2 -0
  538. package/frontend/build/client/_app/immutable/entry/start.BxeX1Uxs.js.gz +0 -0
  539. package/frontend/build/client/_app/immutable/nodes/0.ChjDHxSJ.js +6 -0
  540. package/frontend/build/client/_app/immutable/nodes/0.ChjDHxSJ.js.br +0 -0
  541. package/frontend/build/client/_app/immutable/nodes/0.ChjDHxSJ.js.gz +0 -0
  542. package/frontend/build/client/_app/immutable/nodes/1.DBSWa36f.js +1 -0
  543. package/frontend/build/client/_app/immutable/nodes/1.DBSWa36f.js.br +0 -0
  544. package/frontend/build/client/_app/immutable/nodes/1.DBSWa36f.js.gz +0 -0
  545. package/frontend/{.svelte-kit/output/client/_app/immutable/nodes/10.Bn4Ma-MU.js → build/client/_app/immutable/nodes/10.DEbnxfND.js} +1 -23
  546. package/frontend/build/client/_app/immutable/nodes/10.DEbnxfND.js.br +0 -0
  547. package/frontend/build/client/_app/immutable/nodes/10.DEbnxfND.js.gz +0 -0
  548. package/frontend/{.svelte-kit/output/client/_app/immutable/nodes/11.BacEu7sW.js → build/client/_app/immutable/nodes/11.O4cjXCg4.js} +1 -23
  549. package/frontend/build/client/_app/immutable/nodes/11.O4cjXCg4.js.br +0 -0
  550. package/frontend/build/client/_app/immutable/nodes/11.O4cjXCg4.js.gz +0 -0
  551. package/frontend/build/client/_app/immutable/nodes/12.BWQdeRdX.js +1 -0
  552. package/frontend/build/client/_app/immutable/nodes/12.BWQdeRdX.js.br +0 -0
  553. package/frontend/build/client/_app/immutable/nodes/12.BWQdeRdX.js.gz +0 -0
  554. package/frontend/build/client/_app/immutable/nodes/2.BnHalSCi.js +1 -0
  555. package/frontend/build/client/_app/immutable/nodes/2.BnHalSCi.js.br +0 -0
  556. package/frontend/build/client/_app/immutable/nodes/2.BnHalSCi.js.gz +0 -0
  557. package/frontend/build/client/_app/immutable/nodes/{3.DHx0kho3.js → 3._S1vrLVF.js} +1 -23
  558. package/frontend/build/client/_app/immutable/nodes/3._S1vrLVF.js.br +0 -0
  559. package/frontend/build/client/_app/immutable/nodes/3._S1vrLVF.js.gz +0 -0
  560. package/frontend/build/client/_app/immutable/nodes/{4.CnaMiirx.js → 4.D-YT_JJe.js} +1 -23
  561. package/frontend/build/client/_app/immutable/nodes/4.D-YT_JJe.js.br +0 -0
  562. package/frontend/build/client/_app/immutable/nodes/4.D-YT_JJe.js.gz +0 -0
  563. package/frontend/{.svelte-kit/output/client/_app/immutable/nodes/5.B6m-zTVe.js → build/client/_app/immutable/nodes/5.BiFBiWcW.js} +1 -23
  564. package/frontend/build/client/_app/immutable/nodes/5.BiFBiWcW.js.br +0 -0
  565. package/frontend/build/client/_app/immutable/nodes/5.BiFBiWcW.js.gz +0 -0
  566. package/frontend/{.svelte-kit/output/client/_app/immutable/nodes/6.BPDag1zv.js → build/client/_app/immutable/nodes/6.BNS-W0R_.js} +1 -23
  567. package/frontend/build/client/_app/immutable/nodes/6.BNS-W0R_.js.br +0 -0
  568. package/frontend/build/client/_app/immutable/nodes/6.BNS-W0R_.js.gz +0 -0
  569. package/frontend/build/client/_app/immutable/nodes/{7.D7LwxSvT.js → 7.C-pKvVZy.js} +1 -23
  570. package/frontend/build/client/_app/immutable/nodes/7.C-pKvVZy.js.br +0 -0
  571. package/frontend/build/client/_app/immutable/nodes/7.C-pKvVZy.js.gz +0 -0
  572. package/frontend/build/client/_app/immutable/nodes/{8.CCkNX20G.js → 8.BEUdazrw.js} +1 -23
  573. package/frontend/build/client/_app/immutable/nodes/8.BEUdazrw.js.br +0 -0
  574. package/frontend/build/client/_app/immutable/nodes/8.BEUdazrw.js.gz +0 -0
  575. package/frontend/build/client/_app/immutable/nodes/{9.HDerA6JV.js → 9.CrLHYPEJ.js} +1 -23
  576. package/frontend/build/client/_app/immutable/nodes/9.CrLHYPEJ.js.br +0 -0
  577. package/frontend/build/client/_app/immutable/nodes/9.CrLHYPEJ.js.gz +0 -0
  578. package/frontend/build/client/_app/version.json +1 -1
  579. package/frontend/build/client/_app/version.json.br +0 -0
  580. package/frontend/build/client/_app/version.json.gz +0 -0
  581. package/frontend/build/env.js +0 -22
  582. package/frontend/build/handler.js +0 -22
  583. package/frontend/build/index.js +0 -22
  584. package/frontend/build/server/chunks/0-Cn_2hzqk.js +17 -0
  585. package/frontend/build/server/chunks/0-Cn_2hzqk.js.map +1 -0
  586. package/frontend/build/server/chunks/1-BrRGJFSB.js +9 -0
  587. package/frontend/build/server/chunks/1-BrRGJFSB.js.map +1 -0
  588. package/frontend/build/server/chunks/10-l6_ikL_D.js +9 -0
  589. package/frontend/build/server/chunks/10-l6_ikL_D.js.map +1 -0
  590. package/frontend/build/server/chunks/11-BLPbHJqB.js +9 -0
  591. package/frontend/build/server/chunks/11-BLPbHJqB.js.map +1 -0
  592. package/frontend/build/server/chunks/12-S1ujUrHy.js +9 -0
  593. package/frontend/build/server/chunks/12-S1ujUrHy.js.map +1 -0
  594. package/frontend/build/server/chunks/2-Cte30Dgy.js +9 -0
  595. package/frontend/build/server/chunks/2-Cte30Dgy.js.map +1 -0
  596. package/frontend/build/server/chunks/3-BHkXVoNI.js +9 -0
  597. package/frontend/build/server/chunks/3-BHkXVoNI.js.map +1 -0
  598. package/frontend/build/server/chunks/4-Bo04DC5Z.js +9 -0
  599. package/frontend/build/server/chunks/4-Bo04DC5Z.js.map +1 -0
  600. package/frontend/build/server/chunks/5-F1ZsXMt2.js +9 -0
  601. package/frontend/build/server/chunks/5-F1ZsXMt2.js.map +1 -0
  602. package/frontend/build/server/chunks/6-FlZLnYJ6.js +9 -0
  603. package/frontend/build/server/chunks/6-FlZLnYJ6.js.map +1 -0
  604. package/frontend/build/server/chunks/7-DiQJZEF_.js +9 -0
  605. package/frontend/build/server/chunks/{7-DekQfQHu.js.map → 7-DiQJZEF_.js.map} +1 -21
  606. package/frontend/build/server/chunks/8-DXReUGxi.js +9 -0
  607. package/frontend/build/server/chunks/8-DXReUGxi.js.map +1 -0
  608. package/frontend/build/server/chunks/9-Cy_mGmt4.js +9 -0
  609. package/frontend/build/server/chunks/9-Cy_mGmt4.js.map +1 -0
  610. package/frontend/build/server/chunks/BackLink-BJ8NaemM.js +13 -0
  611. package/frontend/build/server/chunks/{BackLink-KxZNqsaq.js.map → BackLink-BJ8NaemM.js.map} +1 -21
  612. package/frontend/build/server/chunks/Badge-44ZTDx0V.js +13 -0
  613. package/frontend/build/server/chunks/{Badge-B5V-z6pI.js.map → Badge-44ZTDx0V.js.map} +1 -21
  614. package/frontend/build/server/chunks/{ConfirmModal-Ckkt99Pn.js → ConfirmModal-C0EAXcq_.js} +4 -26
  615. package/frontend/build/server/chunks/{ConfirmModal-Ckkt99Pn.js.map → ConfirmModal-C0EAXcq_.js.map} +1 -21
  616. package/frontend/build/server/chunks/{EmptyState-BwwbShnX.js → EmptyState-BA_eXaeR.js} +3 -25
  617. package/frontend/build/server/chunks/{EmptyState-BwwbShnX.js.map → EmptyState-BA_eXaeR.js.map} +1 -21
  618. package/frontend/build/server/chunks/{Modal-DG-6c5si.js → Modal-DChG187n.js} +2 -24
  619. package/frontend/build/server/chunks/{Modal-DG-6c5si.js.map → Modal-DChG187n.js.map} +1 -21
  620. package/frontend/build/server/chunks/{Toast-CIG4edEp.js → Toast-v-q4ZnYq.js} +2 -24
  621. package/frontend/build/server/chunks/{Toast-CIG4edEp.js.map → Toast-v-q4ZnYq.js.map} +1 -21
  622. package/frontend/build/server/chunks/_layout.svelte-CHVI3Prt.js +24 -0
  623. package/frontend/build/server/chunks/{_layout.svelte-BjPrZpoG.js.map → _layout.svelte-CHVI3Prt.js.map} +1 -21
  624. package/frontend/build/server/chunks/{_page.svelte-BbZNxvCl.js → _page.svelte-1as75nPc.js} +14 -35
  625. package/frontend/build/server/chunks/{_page.svelte-BbZNxvCl.js.map → _page.svelte-1as75nPc.js.map} +1 -21
  626. package/frontend/build/server/chunks/{_page.svelte-CLFpft5D.js → _page.svelte-1jo8MapI.js} +11 -33
  627. package/frontend/build/server/chunks/{_page.svelte-CLFpft5D.js.map → _page.svelte-1jo8MapI.js.map} +1 -21
  628. package/frontend/build/server/chunks/{_page.svelte-BHw14GPR.js → _page.svelte-BuFusRK1.js} +12 -34
  629. package/frontend/build/server/chunks/{_page.svelte-BHw14GPR.js.map → _page.svelte-BuFusRK1.js.map} +1 -21
  630. package/frontend/build/server/chunks/{_page.svelte-D78qaBDN.js → _page.svelte-CAVyp70V.js} +14 -35
  631. package/frontend/build/server/chunks/{_page.svelte-D78qaBDN.js.map → _page.svelte-CAVyp70V.js.map} +1 -21
  632. package/frontend/build/server/chunks/{_page.svelte-D2oF79cT.js → _page.svelte-CB8-QBNg.js} +11 -33
  633. package/frontend/build/server/chunks/{_page.svelte-D2oF79cT.js.map → _page.svelte-CB8-QBNg.js.map} +1 -21
  634. package/frontend/build/server/chunks/{_page.svelte-DyyuZN_3.js → _page.svelte-CWWeZuid.js} +11 -33
  635. package/frontend/build/server/chunks/{_page.svelte-DyyuZN_3.js.map → _page.svelte-CWWeZuid.js.map} +1 -21
  636. package/frontend/build/server/chunks/_page.svelte-CpB-fgJl.js +219 -0
  637. package/frontend/build/server/chunks/_page.svelte-CpB-fgJl.js.map +1 -0
  638. package/frontend/build/server/chunks/_page.svelte-D3E6Eojd.js +27 -0
  639. package/frontend/build/server/chunks/{_page.svelte-B9rjnZWE.js.map → _page.svelte-D3E6Eojd.js.map} +1 -21
  640. package/frontend/build/server/chunks/_page.svelte-Kg69DDaM.js +27 -0
  641. package/frontend/build/server/chunks/{_page.svelte-D1aYn1PL.js.map → _page.svelte-Kg69DDaM.js.map} +1 -21
  642. package/frontend/build/server/chunks/{_page.svelte-ubW5EUCf.js → _page.svelte-L9fuiN_q.js} +10 -32
  643. package/frontend/build/server/chunks/{_page.svelte-ubW5EUCf.js.map → _page.svelte-L9fuiN_q.js.map} +1 -21
  644. package/frontend/build/server/chunks/{_page.svelte-Cr16HubD.js → _page.svelte-wKyUmA2e.js} +12 -34
  645. package/frontend/build/server/chunks/{_page.svelte-Cr16HubD.js.map → _page.svelte-wKyUmA2e.js.map} +1 -21
  646. package/frontend/build/server/chunks/attributes-BeaNKpgU.js +0 -22
  647. package/frontend/build/server/chunks/attributes-BeaNKpgU.js.map +0 -20
  648. package/frontend/build/server/chunks/{auth-rlH-cIzn.js → auth-Chw-wBpI.js} +2 -24
  649. package/frontend/build/server/chunks/{auth-rlH-cIzn.js.map → auth-Chw-wBpI.js.map} +1 -21
  650. package/frontend/build/server/chunks/auth2-C02yYDpz.js +0 -22
  651. package/frontend/build/server/chunks/auth2-C02yYDpz.js.map +0 -20
  652. package/frontend/build/server/chunks/client-DEmxR_a-.js +40 -0
  653. package/frontend/build/server/chunks/{client-DyII78e0.js.map → client-DEmxR_a-.js.map} +1 -21
  654. package/frontend/build/server/chunks/common-DYYTVHPw.js +21 -0
  655. package/frontend/build/server/chunks/common-DYYTVHPw.js.map +1 -0
  656. package/frontend/build/server/chunks/constants-CXTaQaB6.js +22 -0
  657. package/frontend/build/server/chunks/constants-CXTaQaB6.js.map +1 -0
  658. package/frontend/build/server/chunks/error.svelte-BD3xNemk.js +28 -0
  659. package/frontend/build/server/chunks/{error.svelte-BDW3iP1O.js.map → error.svelte-BD3xNemk.js.map} +1 -21
  660. package/frontend/build/server/chunks/escaping-CqgfEcN3.js +0 -22
  661. package/frontend/build/server/chunks/escaping-CqgfEcN3.js.map +0 -20
  662. package/frontend/build/server/chunks/exports-D0QHgeSL.js +0 -22
  663. package/frontend/build/server/chunks/exports-D0QHgeSL.js.map +0 -20
  664. package/frontend/build/server/chunks/{format-0SSB1oGG.js → format-CiNRMfHu.js} +2 -24
  665. package/frontend/build/server/chunks/{format-0SSB1oGG.js.map → format-CiNRMfHu.js.map} +1 -21
  666. package/frontend/build/server/chunks/index-server-B3M9vyh2.js +14 -0
  667. package/frontend/build/server/chunks/index-server-B3M9vyh2.js.map +1 -0
  668. package/frontend/build/server/chunks/{index2-DG8XHU5D.js → index2-5R1tbrep.js} +2 -24
  669. package/frontend/build/server/chunks/{index2-DG8XHU5D.js.map → index2-5R1tbrep.js.map} +1 -21
  670. package/frontend/build/server/chunks/reports-D_ApeeNh.js +23 -0
  671. package/frontend/build/server/chunks/{reports-DnYbvluH.js.map → reports-D_ApeeNh.js.map} +1 -21
  672. package/frontend/build/server/chunks/{reports2-DR4XlcJg.js → reports2-BtElN_53.js} +2 -24
  673. package/frontend/build/server/chunks/{reports2-DR4XlcJg.js.map → reports2-BtElN_53.js.map} +1 -21
  674. package/frontend/build/server/chunks/{repository-D9Derhnk.js → repository-FYYV_vKE.js} +3 -26
  675. package/frontend/build/server/chunks/repository-FYYV_vKE.js.map +1 -0
  676. package/frontend/build/server/chunks/runner-DC7hXbnY.js +32 -0
  677. package/frontend/build/server/chunks/runner-DC7hXbnY.js.map +1 -0
  678. package/frontend/build/server/chunks/stores-BLenR3c1.js +27 -0
  679. package/frontend/build/server/chunks/{stores-DlkXV308.js.map → stores-BLenR3c1.js.map} +1 -21
  680. package/frontend/build/server/chunks/theme-nAx-GvX_.js +10 -0
  681. package/frontend/build/server/chunks/theme-nAx-GvX_.js.map +1 -0
  682. package/frontend/build/server/index.js +2 -24
  683. package/frontend/build/server/index.js.map +1 -21
  684. package/frontend/build/server/manifest.js +14 -36
  685. package/frontend/build/server/manifest.js.map +1 -21
  686. package/frontend/build/shims.js +0 -22
  687. package/frontend/package.json +1 -0
  688. package/frontend/src/app.css +1 -13
  689. package/frontend/src/app.html +1 -13
  690. package/frontend/src/lib/api/activeRuns.js +18 -0
  691. package/frontend/src/lib/api/auth.js +1 -13
  692. package/frontend/src/lib/api/reports.js +1 -13
  693. package/frontend/src/lib/api/repository.js +1 -13
  694. package/frontend/src/lib/api/runners.js +26 -21
  695. package/frontend/src/lib/api/schedules.js +1 -13
  696. package/frontend/src/lib/api/settings.js +11 -23
  697. package/frontend/src/lib/api/tests.js +1 -13
  698. package/frontend/src/lib/api/users.js +1 -13
  699. package/frontend/src/lib/components/icons/BrowserIcon.svelte +1 -13
  700. package/frontend/src/lib/components/layout/Nav.svelte +1 -13
  701. package/frontend/src/lib/components/layout/PageShell.svelte +1 -13
  702. package/frontend/src/lib/components/layout/RunnerPanel.svelte +146 -105
  703. package/frontend/src/lib/components/ui/AutomatedBadge.svelte +2 -31
  704. package/frontend/src/lib/components/ui/BackLink.svelte +1 -30
  705. package/frontend/src/lib/components/ui/Badge.svelte +1 -13
  706. package/frontend/src/lib/components/ui/Button.svelte +1 -13
  707. package/frontend/src/lib/components/ui/CaseIdChip.svelte +1 -30
  708. package/frontend/src/lib/components/ui/ConfirmModal.svelte +8 -17
  709. package/frontend/src/lib/components/ui/EmptyState.svelte +26 -15
  710. package/frontend/src/lib/components/ui/Modal.svelte +1 -13
  711. package/frontend/src/lib/components/ui/Pagination.svelte +1 -13
  712. package/frontend/src/lib/components/ui/PriorityBadge.svelte +1 -30
  713. package/frontend/src/lib/components/ui/ResultChip.svelte +1 -30
  714. package/frontend/src/lib/components/ui/StatusDot.svelte +1 -30
  715. package/frontend/src/lib/components/ui/StepKeyword.svelte +1 -30
  716. package/frontend/src/lib/components/ui/StepStatusIcon.svelte +1 -30
  717. package/frontend/src/lib/components/ui/TagChip.svelte +1 -30
  718. package/frontend/src/lib/components/ui/Terminal.svelte +1 -13
  719. package/frontend/src/lib/components/ui/Toast.svelte +1 -13
  720. package/frontend/src/lib/constants.js +5 -17
  721. package/frontend/src/lib/copy/auth.js +29 -0
  722. package/frontend/src/lib/copy/common.js +39 -0
  723. package/frontend/src/lib/copy/dashboard.js +28 -0
  724. package/frontend/src/lib/copy/reports.js +83 -0
  725. package/frontend/src/lib/copy/repository.js +153 -0
  726. package/frontend/src/lib/copy/runners.js +59 -0
  727. package/frontend/src/lib/copy/schedules.js +96 -0
  728. package/frontend/src/lib/copy/settings.js +295 -0
  729. package/frontend/src/lib/index.js +1 -13
  730. package/frontend/src/lib/socketEvents.js +36 -0
  731. package/frontend/src/lib/stores/auth.js +1 -13
  732. package/frontend/src/lib/stores/runner.js +10 -18
  733. package/frontend/src/lib/stores/theme.js +1 -13
  734. package/frontend/src/lib/styles/global.css +1 -13
  735. package/frontend/src/lib/styles/reset.css +1 -13
  736. package/frontend/src/lib/styles/tokens.css +1 -13
  737. package/frontend/src/lib/utils/format.js +1 -13
  738. package/frontend/src/routes/+layout.js +1 -13
  739. package/frontend/src/routes/+layout.svelte +1 -13
  740. package/frontend/src/routes/+page.svelte +296 -115
  741. package/frontend/src/routes/login/+page.svelte +22 -23
  742. package/frontend/src/routes/reports/+page.svelte +37 -38
  743. package/frontend/src/routes/reports/[id]/+page.svelte +54 -43
  744. package/frontend/src/routes/reports/live/+page.svelte +57 -42
  745. package/frontend/src/routes/scheduled-tests/+page.svelte +134 -117
  746. package/frontend/src/routes/settings/+page.svelte +490 -267
  747. package/frontend/src/routes/setup/+page.svelte +30 -27
  748. package/frontend/src/routes/test-repository/+page.svelte +120 -91
  749. package/frontend/src/routes/test-repository/runs/[id]/+page.svelte +95 -60
  750. package/frontend/src/routes/test-repository/suites/[id]/+page.svelte +145 -91
  751. package/frontend/svelte.config.js +1 -13
  752. package/frontend/vite.config.js +1 -13
  753. package/package.json +2 -2
  754. package/resources/mit-license.txt +2 -0
  755. package/backend/scripts/create-test.js +0 -149
  756. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.CrXpMrqh.css +0 -23
  757. package/frontend/.svelte-kit/output/client/_app/immutable/assets/2.CrXpMrqh.css +0 -23
  758. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.CrXpMrqh.css +0 -23
  759. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/4N1zIH8t.js +0 -23
  760. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BhvHtTRh.js +0 -23
  761. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/C1sukchk.js +0 -23
  762. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DW85KPAh.js +0 -24
  763. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DW_iTTZe.js +0 -23
  764. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DtGXv8RA.js +0 -25
  765. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/oN0Z3NSF.js +0 -23
  766. package/frontend/.svelte-kit/output/client/_app/immutable/entry/start.2_AF42wj.js +0 -23
  767. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/0.BAqq2UTE.js +0 -28
  768. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/1.D5VvLtGP.js +0 -23
  769. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/12.0YGtl1uj.js +0 -23
  770. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/2.C2jjMA-Z.js +0 -23
  771. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CrXpMrqh.css +0 -23
  772. package/frontend/build/client/_app/immutable/assets/2.CrXpMrqh.css +0 -23
  773. package/frontend/build/client/_app/immutable/assets/2.CrXpMrqh.css.br +0 -0
  774. package/frontend/build/client/_app/immutable/assets/2.CrXpMrqh.css.gz +0 -0
  775. package/frontend/build/client/_app/immutable/assets/_page.CrXpMrqh.css +0 -23
  776. package/frontend/build/client/_app/immutable/assets/_page.CrXpMrqh.css.br +0 -0
  777. package/frontend/build/client/_app/immutable/assets/_page.CrXpMrqh.css.gz +0 -0
  778. package/frontend/build/client/_app/immutable/chunks/3IV-uqHa.js.br +0 -0
  779. package/frontend/build/client/_app/immutable/chunks/3IV-uqHa.js.gz +0 -0
  780. package/frontend/build/client/_app/immutable/chunks/4N1zIH8t.js +0 -23
  781. package/frontend/build/client/_app/immutable/chunks/4N1zIH8t.js.br +0 -0
  782. package/frontend/build/client/_app/immutable/chunks/4N1zIH8t.js.gz +0 -0
  783. package/frontend/build/client/_app/immutable/chunks/B98sHkeB.js.br +0 -0
  784. package/frontend/build/client/_app/immutable/chunks/B98sHkeB.js.gz +0 -0
  785. package/frontend/build/client/_app/immutable/chunks/BhvHtTRh.js +0 -23
  786. package/frontend/build/client/_app/immutable/chunks/BhvHtTRh.js.br +0 -0
  787. package/frontend/build/client/_app/immutable/chunks/BhvHtTRh.js.gz +0 -0
  788. package/frontend/build/client/_app/immutable/chunks/BjUpWNbl.js.br +0 -0
  789. package/frontend/build/client/_app/immutable/chunks/BjUpWNbl.js.gz +0 -0
  790. package/frontend/build/client/_app/immutable/chunks/C1sukchk.js +0 -23
  791. package/frontend/build/client/_app/immutable/chunks/C1sukchk.js.br +0 -0
  792. package/frontend/build/client/_app/immutable/chunks/C1sukchk.js.gz +0 -0
  793. package/frontend/build/client/_app/immutable/chunks/D2cvzNT9.js.br +0 -0
  794. package/frontend/build/client/_app/immutable/chunks/D2cvzNT9.js.gz +0 -0
  795. package/frontend/build/client/_app/immutable/chunks/D2gYTmAA.js.br +0 -0
  796. package/frontend/build/client/_app/immutable/chunks/D2gYTmAA.js.gz +0 -0
  797. package/frontend/build/client/_app/immutable/chunks/DDblTLLE.js.br +0 -0
  798. package/frontend/build/client/_app/immutable/chunks/DDblTLLE.js.gz +0 -0
  799. package/frontend/build/client/_app/immutable/chunks/DW85KPAh.js +0 -24
  800. package/frontend/build/client/_app/immutable/chunks/DW85KPAh.js.br +0 -0
  801. package/frontend/build/client/_app/immutable/chunks/DW85KPAh.js.gz +0 -0
  802. package/frontend/build/client/_app/immutable/chunks/DW_iTTZe.js +0 -23
  803. package/frontend/build/client/_app/immutable/chunks/DW_iTTZe.js.br +0 -0
  804. package/frontend/build/client/_app/immutable/chunks/DW_iTTZe.js.gz +0 -0
  805. package/frontend/build/client/_app/immutable/chunks/DYlaQsvN.js.br +0 -0
  806. package/frontend/build/client/_app/immutable/chunks/DYlaQsvN.js.gz +0 -0
  807. package/frontend/build/client/_app/immutable/chunks/DkNBSlo2.js.br +0 -0
  808. package/frontend/build/client/_app/immutable/chunks/DkNBSlo2.js.gz +0 -0
  809. package/frontend/build/client/_app/immutable/chunks/DlNYZJ7K.js.br +0 -0
  810. package/frontend/build/client/_app/immutable/chunks/DlNYZJ7K.js.gz +0 -0
  811. package/frontend/build/client/_app/immutable/chunks/DtGXv8RA.js +0 -25
  812. package/frontend/build/client/_app/immutable/chunks/DtGXv8RA.js.br +0 -0
  813. package/frontend/build/client/_app/immutable/chunks/DtGXv8RA.js.gz +0 -0
  814. package/frontend/build/client/_app/immutable/chunks/oN0Z3NSF.js +0 -23
  815. package/frontend/build/client/_app/immutable/chunks/oN0Z3NSF.js.br +0 -0
  816. package/frontend/build/client/_app/immutable/chunks/oN0Z3NSF.js.gz +0 -0
  817. package/frontend/build/client/_app/immutable/entry/app.BCWbw5zZ.js.br +0 -0
  818. package/frontend/build/client/_app/immutable/entry/app.BCWbw5zZ.js.gz +0 -0
  819. package/frontend/build/client/_app/immutable/entry/start.2_AF42wj.js +0 -23
  820. package/frontend/build/client/_app/immutable/entry/start.2_AF42wj.js.br +0 -22
  821. package/frontend/build/client/_app/immutable/entry/start.2_AF42wj.js.gz +0 -0
  822. package/frontend/build/client/_app/immutable/nodes/0.BAqq2UTE.js +0 -28
  823. package/frontend/build/client/_app/immutable/nodes/0.BAqq2UTE.js.br +0 -0
  824. package/frontend/build/client/_app/immutable/nodes/0.BAqq2UTE.js.gz +0 -0
  825. package/frontend/build/client/_app/immutable/nodes/1.D5VvLtGP.js +0 -23
  826. package/frontend/build/client/_app/immutable/nodes/1.D5VvLtGP.js.br +0 -0
  827. package/frontend/build/client/_app/immutable/nodes/1.D5VvLtGP.js.gz +0 -0
  828. package/frontend/build/client/_app/immutable/nodes/10.Bn4Ma-MU.js.br +0 -0
  829. package/frontend/build/client/_app/immutable/nodes/10.Bn4Ma-MU.js.gz +0 -0
  830. package/frontend/build/client/_app/immutable/nodes/11.BacEu7sW.js.br +0 -0
  831. package/frontend/build/client/_app/immutable/nodes/11.BacEu7sW.js.gz +0 -0
  832. package/frontend/build/client/_app/immutable/nodes/12.0YGtl1uj.js +0 -23
  833. package/frontend/build/client/_app/immutable/nodes/12.0YGtl1uj.js.br +0 -0
  834. package/frontend/build/client/_app/immutable/nodes/12.0YGtl1uj.js.gz +0 -0
  835. package/frontend/build/client/_app/immutable/nodes/2.C2jjMA-Z.js +0 -23
  836. package/frontend/build/client/_app/immutable/nodes/2.C2jjMA-Z.js.br +0 -0
  837. package/frontend/build/client/_app/immutable/nodes/2.C2jjMA-Z.js.gz +0 -0
  838. package/frontend/build/client/_app/immutable/nodes/3.DHx0kho3.js.br +0 -0
  839. package/frontend/build/client/_app/immutable/nodes/3.DHx0kho3.js.gz +0 -0
  840. package/frontend/build/client/_app/immutable/nodes/4.CnaMiirx.js.br +0 -0
  841. package/frontend/build/client/_app/immutable/nodes/4.CnaMiirx.js.gz +0 -0
  842. package/frontend/build/client/_app/immutable/nodes/5.B6m-zTVe.js.br +0 -0
  843. package/frontend/build/client/_app/immutable/nodes/5.B6m-zTVe.js.gz +0 -0
  844. package/frontend/build/client/_app/immutable/nodes/6.BPDag1zv.js.br +0 -0
  845. package/frontend/build/client/_app/immutable/nodes/6.BPDag1zv.js.gz +0 -0
  846. package/frontend/build/client/_app/immutable/nodes/7.D7LwxSvT.js.br +0 -0
  847. package/frontend/build/client/_app/immutable/nodes/7.D7LwxSvT.js.gz +0 -0
  848. package/frontend/build/client/_app/immutable/nodes/8.CCkNX20G.js.br +0 -0
  849. package/frontend/build/client/_app/immutable/nodes/8.CCkNX20G.js.gz +0 -0
  850. package/frontend/build/client/_app/immutable/nodes/9.HDerA6JV.js.br +0 -0
  851. package/frontend/build/client/_app/immutable/nodes/9.HDerA6JV.js.gz +0 -0
  852. package/frontend/build/server/chunks/0-Di4jNU9J.js +0 -39
  853. package/frontend/build/server/chunks/0-Di4jNU9J.js.map +0 -21
  854. package/frontend/build/server/chunks/1-DR5YRUTa.js +0 -31
  855. package/frontend/build/server/chunks/1-DR5YRUTa.js.map +0 -21
  856. package/frontend/build/server/chunks/10-Bhe409bL.js +0 -31
  857. package/frontend/build/server/chunks/10-Bhe409bL.js.map +0 -21
  858. package/frontend/build/server/chunks/11-DqyXW7n1.js +0 -31
  859. package/frontend/build/server/chunks/11-DqyXW7n1.js.map +0 -21
  860. package/frontend/build/server/chunks/12-BCpjMUbs.js +0 -31
  861. package/frontend/build/server/chunks/12-BCpjMUbs.js.map +0 -21
  862. package/frontend/build/server/chunks/2-D-0buH5i.js +0 -31
  863. package/frontend/build/server/chunks/2-D-0buH5i.js.map +0 -21
  864. package/frontend/build/server/chunks/3-y2kzPO2X.js +0 -31
  865. package/frontend/build/server/chunks/3-y2kzPO2X.js.map +0 -21
  866. package/frontend/build/server/chunks/4-CFrK8HST.js +0 -31
  867. package/frontend/build/server/chunks/4-CFrK8HST.js.map +0 -21
  868. package/frontend/build/server/chunks/5-B0lJu5bT.js +0 -31
  869. package/frontend/build/server/chunks/5-B0lJu5bT.js.map +0 -21
  870. package/frontend/build/server/chunks/6-BD4CEJ3Z.js +0 -31
  871. package/frontend/build/server/chunks/6-BD4CEJ3Z.js.map +0 -21
  872. package/frontend/build/server/chunks/7-DekQfQHu.js +0 -31
  873. package/frontend/build/server/chunks/8-BMqmu7WF.js +0 -31
  874. package/frontend/build/server/chunks/8-BMqmu7WF.js.map +0 -21
  875. package/frontend/build/server/chunks/9-C5sKo9aY.js +0 -31
  876. package/frontend/build/server/chunks/9-C5sKo9aY.js.map +0 -21
  877. package/frontend/build/server/chunks/BackLink-KxZNqsaq.js +0 -35
  878. package/frontend/build/server/chunks/Badge-B5V-z6pI.js +0 -35
  879. package/frontend/build/server/chunks/_layout.svelte-BjPrZpoG.js +0 -46
  880. package/frontend/build/server/chunks/_page.svelte-B9rjnZWE.js +0 -49
  881. package/frontend/build/server/chunks/_page.svelte-D1aYn1PL.js +0 -49
  882. package/frontend/build/server/chunks/_page.svelte-sbqebZYx.js +0 -206
  883. package/frontend/build/server/chunks/_page.svelte-sbqebZYx.js.map +0 -21
  884. package/frontend/build/server/chunks/client-DyII78e0.js +0 -62
  885. package/frontend/build/server/chunks/common-Db-bgKYG.js +0 -42
  886. package/frontend/build/server/chunks/common-Db-bgKYG.js.map +0 -21
  887. package/frontend/build/server/chunks/constants-cZ2kUwWa.js +0 -41
  888. package/frontend/build/server/chunks/constants-cZ2kUwWa.js.map +0 -21
  889. package/frontend/build/server/chunks/error.svelte-BDW3iP1O.js +0 -50
  890. package/frontend/build/server/chunks/index-server-Dr2Nvcmu.js +0 -36
  891. package/frontend/build/server/chunks/index-server-Dr2Nvcmu.js.map +0 -21
  892. package/frontend/build/server/chunks/reports-DnYbvluH.js +0 -45
  893. package/frontend/build/server/chunks/repository-D9Derhnk.js.map +0 -21
  894. package/frontend/build/server/chunks/runner-DE5sufZH.js +0 -54
  895. package/frontend/build/server/chunks/runner-DE5sufZH.js.map +0 -21
  896. package/frontend/build/server/chunks/stores-DlkXV308.js +0 -49
  897. package/frontend/build/server/chunks/theme-D_NKm6iI.js +0 -32
  898. package/frontend/build/server/chunks/theme-D_NKm6iI.js.map +0 -21
  899. package/resources/gpl-3.0-license.txt +0 -14
@@ -1,23 +1 @@
1
- /*
2
- * This file is part of Plum.
3
- *
4
- * Plum is free software: you can redistribute it and/or modify
5
- * it under the terms of the GNU General Public License as published by
6
- * the Free Software Foundation, either version 3 of the License, or
7
- * (at your option) any later version.
8
- *
9
- * Plum is distributed in the hope that it will be useful,
10
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- * GNU General Public License for more details.
13
- *
14
- * You should have received a copy of the GNU General Public License
15
- * along with Plum. If not, see https://www.gnu.org/licenses/.
16
- */
17
-
18
- /*
19
- * This file is part of Plum.
20
- * Licensed under the MIT License. See LICENSE file in the project root for details.
21
- */
22
-
23
- import{a as l,t as o,s as c,b as rs,c as Ne,n as ge,e as N,h as Na}from"../chunks/CMBQQ9RZ.js";import{i as la}from"../chunks/CKDtmZUQ.js";import{t as d,d as a,k as s,p as na,l as V,s as g,ai as Va,b as ca,g as e,c as oa,m as S,f as ae,an as za,o as Ka,ap as Ya,$ as Fa,j as t,ao as ws,x as b,n as Ua}from"../chunks/BAACMRH5.js";import{i as _,s as Wa,a as Ja}from"../chunks/CgnwuKKO.js";import{t as k,a as Fs,c as Qa,e as Se,i as Be,g as Xa}from"../chunks/TOCyHP97.js";import{s as C,H as Za,r as et,G as st,p as at,B as Us}from"../chunks/4N1zIH8t.js";import{s as Ws}from"../chunks/Bfc47y5P.js";import{b as tt}from"../chunks/CNdcuGR0.js";import{p as rt}from"../chunks/DW_iTTZe.js";import{b as lt,s as Js}from"../chunks/DDblTLLE.js";import{k as nt,p as ct,g as Qs,f as Xs,s as Zs,b as ts,c as ot,d as ea,t as vt,i as it}from"../chunks/D2gYTmAA.js";import{G as pt,I as dt,g as ut,J as _t,K as gt,M as ht,O as ft,Q as qt,U as yt,X as xt,Y as kt,Z as sa,s as mt,u as wt,_ as bt,$ as St,a0 as Bt,a1 as Et,a2 as Lt,a3 as Ct,a4 as Tt,a5 as At,v as Rt}from"../chunks/B98sHkeB.js";import{B as Pt}from"../chunks/CuqnZUex.js";import{B as It}from"../chunks/oN0Z3NSF.js";import{p as Ee}from"../chunks/C8OURRSs.js";var Dt=o('<span class="status-dot svelte-eg9xrn"></span>');function aa(z,j){let h=Ee(j,"status",8,"passed");var i=Dt();d(()=>{k(i,"pass",h()==="passed"),k(i,"fail",h()==="failed"),k(i,"skip",h()!=="passed"&&h()!=="failed")}),l(z,i)}var Ot=o('<span class="tag-chip svelte-foe7v9"> </span>');function Mt(z,j){let h=Ee(j,"tag",8,"");var i=Ot(),R=a(i,!0);s(i),d(()=>c(R,h())),l(z,i)}var jt=o('<span class="kw svelte-3mvi7i"> </span>');function ta(z,j){na(j,!1);const h=S();let i=Ee(j,"keyword",8,"");V(()=>Va(i()),()=>{g(h,nt(i()))}),ca(),la();var R=jt(),P=a(R,!0);s(R),d(()=>{k(R,"kw-given",e(h)==="kw-given"),k(R,"kw-when",e(h)==="kw-when"),k(R,"kw-then",e(h)==="kw-then"),k(R,"kw-and",e(h)==="kw-and"),c(P,i())}),l(z,R),oa()}var $t=o('<span class="step-status-icon svelte-9zpq1y"><!></span>');function ra(z,j){let h=Ee(j,"status",8,"passed");var i=$t(),R=a(i);{var P=B=>{var m=rs("✓");l(B,m)},K=B=>{var m=Ne(),E=ae(m);{var he=H=>{var $=rs("✗");l(H,$)},te=H=>{var $=rs("−");l(H,$)};_(E,H=>{h()==="failed"?H(he):H(te,!1)},!0)}l(B,m)};_(R,B=>{h()==="passed"?B(P):B(K,!1)})}s(i),d(()=>{k(i,"icon-pass",h()==="passed"),k(i,"icon-fail",h()==="failed"),k(i,"icon-skip",h()!=="passed"&&h()!=="failed")}),l(z,i)}var Gt=ge('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2c0 4.5-5 7-5 12a5 5 0 0 0 10 0c0-5-5-7.5-5-12z"></path><path d="M12 9c0 2.5-2.5 4-2.5 7a2.5 2.5 0 0 0 5 0c0-3-2.5-4.5-2.5-7z"></path></svg>'),Ht=ge('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polygon points="12,5.5 14.5,12 12,10.5 9.5,12" fill="currentColor" stroke="none"></polygon><polygon points="12,18.5 9.5,12 12,13.5 14.5,12" fill="currentColor" stroke="none" opacity="0.35"></polygon></svg>'),Nt=ge('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><circle cx="12" cy="12" r="4"></circle><line x1="21.17" y1="8" x2="12" y2="8"></line><line x1="3.95" y1="6.06" x2="8.54" y2="14"></line><line x1="10.88" y1="21.94" x2="15.46" y2="14"></line></svg>');function Vt(z,j){let h=Ee(j,"browser",8,"chromium"),i=Ee(j,"size",8,11);var R=Ne(),P=ae(R);{var K=m=>{var E=Gt();d(()=>{C(E,"width",i()),C(E,"height",i())}),l(m,E)},B=m=>{var E=Ne(),he=ae(E);{var te=$=>{var Y=Ht();d(()=>{C(Y,"width",i()),C(Y,"height",i())}),l($,Y)},H=$=>{var Y=Nt();d(()=>{C(Y,"width",i()),C(Y,"height",i())}),l($,Y)};_(he,$=>{h()==="webkit"?$(te):$(H,!1)},!0)}l(m,E)};_(P,m=>{h()==="firefox"?m(K):m(B,!1)})}l(z,R)}var zt=o('<div class="error-state svelte-1cdcqpr"> </div>'),Kt=o('<div class="loading-state svelte-1cdcqpr"><div class="loading-dots svelte-1cdcqpr"><span class="svelte-1cdcqpr"></span><span class="svelte-1cdcqpr"></span><span class="svelte-1cdcqpr"></span></div></div>'),Yt=ge('<svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1cdcqpr"><polyline points="20 6 9 17 4 12" class="svelte-1cdcqpr"></polyline></svg>'),Ft=ge('<svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1cdcqpr"><line x1="18" y1="6" x2="6" y2="18" class="svelte-1cdcqpr"></line><line x1="6" y1="6" x2="18" y2="18" class="svelte-1cdcqpr"></line></svg>'),Ut=o('<span class="run-name-badge svelte-1cdcqpr"> </span>'),Wt=o('<span class="run-name-badge svelte-1cdcqpr"> </span>'),Jt=o('<div class="stat svelte-1cdcqpr"><span class="stat-num fail-color svelte-1cdcqpr"> </span> <span class="stat-label svelte-1cdcqpr"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1cdcqpr"><line x1="18" y1="6" x2="6" y2="18" class="svelte-1cdcqpr"></line><line x1="6" y1="6" x2="18" y2="18" class="svelte-1cdcqpr"></line></svg> </span></div>'),Qt=o('<div class="stat svelte-1cdcqpr"><span class="stat-num muted-color svelte-1cdcqpr"> </span> <span class="stat-label svelte-1cdcqpr"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" class="svelte-1cdcqpr"><line x1="5" y1="12" x2="19" y2="12" class="svelte-1cdcqpr"></line></svg> </span></div>'),Xt=o('<span class="log-runner-count svelte-1cdcqpr"> </span>'),Zt=o('<button class="log-tab svelte-1cdcqpr"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-1cdcqpr"><rect x="2" y="3" width="20" height="14" rx="2" class="svelte-1cdcqpr"></rect><path d="M8 21h8M12 17v4" class="svelte-1cdcqpr"></path></svg> </button>'),er=o('<div class="log-tabs svelte-1cdcqpr"></div>'),sr=o('<details class="logs-section svelte-1cdcqpr"><summary class="logs-summary svelte-1cdcqpr"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1cdcqpr"><polyline points="4 17 10 11 4 5" class="svelte-1cdcqpr"></polyline><line x1="12" y1="19" x2="20" y2="19" class="svelte-1cdcqpr"></line></svg> <!></summary> <!> <pre class="logs-body svelte-1cdcqpr"> </pre></details>'),ar=o('<span class="suite-tag svelte-1cdcqpr"> </span>'),tr=o('<span class="scenario-count svelte-1cdcqpr"> </span>'),rr=o('<span class="scenario-count svelte-1cdcqpr"> </span>'),lr=o('<button class="replay-btn svelte-1cdcqpr"><svg width="11" height="11" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-1cdcqpr"><polygon points="5,3 19,12 5,21" class="svelte-1cdcqpr"></polygon></svg> </button>'),nr=o('<button class="replay-btn replay-btn-sm svelte-1cdcqpr"><svg width="9" height="9" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-1cdcqpr"><polygon points="5,3 19,12 5,21" class="svelte-1cdcqpr"></polygon></svg> </button>'),cr=o('<div class="example-header svelte-1cdcqpr"><!> <span class="svelte-1cdcqpr"> </span> <span class="scenario-duration svelte-1cdcqpr"> </span> <!></div>'),or=o('<pre class="step-error svelte-1cdcqpr"> </pre>'),vr=o('<details class="screenshot-wrap svelte-1cdcqpr"><summary class="screenshot-toggle svelte-1cdcqpr"></summary> <img class="screenshot svelte-1cdcqpr"></details>'),ir=o('<div class="step svelte-1cdcqpr"><div class="step-row svelte-1cdcqpr"><!> <!> <span class="step-name svelte-1cdcqpr"> </span> <span class="step-duration svelte-1cdcqpr"> </span></div> <!> <!></div>'),pr=o("<!> <!>",1),dr=o('<div class="steps svelte-1cdcqpr"></div>'),ur=o('<div class="scenario svelte-1cdcqpr"><div class="scenario-row svelte-1cdcqpr"><button class="scenario-header svelte-1cdcqpr"><!> <span class="scenario-name svelte-1cdcqpr"> <!> <!></span> <div class="scenario-tags svelte-1cdcqpr"></div> <span class="scenario-duration svelte-1cdcqpr"> </span> <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="chevron svelte-1cdcqpr"><polyline points="9 18 15 12 9 6" class="svelte-1cdcqpr"></polyline></svg></button> <!></div> <!></div>'),_r=o('<div class="feature svelte-1cdcqpr"><div class="feature-header svelte-1cdcqpr"><h2 class="feature-name svelte-1cdcqpr"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feature-icon svelte-1cdcqpr"><path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z" class="svelte-1cdcqpr"></path><polyline points="14 2 14 8 20 8" class="svelte-1cdcqpr"></polyline></svg> <!></h2> <div class="feature-right svelte-1cdcqpr"><span class="feature-file svelte-1cdcqpr"> </span> <!></div></div> <div class="scenarios svelte-1cdcqpr"></div></div>'),gr=o('<div class="report-header svelte-1cdcqpr"><div class="header-main svelte-1cdcqpr"><div class="header-status svelte-1cdcqpr"><div class="status-icon-wrap svelte-1cdcqpr"><!></div> <div class="svelte-1cdcqpr"><div class="h1-row svelte-1cdcqpr"><h1 class="svelte-1cdcqpr"> </h1> <!></div> <div class="header-meta svelte-1cdcqpr"><span class="mono svelte-1cdcqpr"> </span> <span class="meta-sep svelte-1cdcqpr">·</span> <span class="svelte-1cdcqpr"> </span> <span class="meta-sep svelte-1cdcqpr">·</span> <span class="svelte-1cdcqpr"> </span> <span class="meta-sep svelte-1cdcqpr">·</span> <span class="browser-pill svelte-1cdcqpr"><!> </span></div></div></div> <div class="header-stats svelte-1cdcqpr"><div class="stat svelte-1cdcqpr"><span class="stat-num pass-color svelte-1cdcqpr"> </span> <span class="stat-label svelte-1cdcqpr"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1cdcqpr"><polyline points="20 6 9 17 4 12" class="svelte-1cdcqpr"></polyline></svg> </span></div> <!> <!> <div class="stat svelte-1cdcqpr"><span class="stat-num svelte-1cdcqpr"> </span> <span class="stat-label svelte-1cdcqpr"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1cdcqpr"><circle cx="12" cy="12" r="10" class="svelte-1cdcqpr"></circle><polyline points="12 6 12 12 16 14" class="svelte-1cdcqpr"></polyline></svg> </span></div> <div class="stat svelte-1cdcqpr"><span class="stat-num svelte-1cdcqpr"> </span> <span class="stat-label svelte-1cdcqpr"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-1cdcqpr"><rect x="2" y="3" width="20" height="14" rx="2" class="svelte-1cdcqpr"></rect><path d="M8 21h8M12 17v4" class="svelte-1cdcqpr"></path></svg> </span></div></div></div></div> <!> <!>',1),hr=o('<img class="replay-screenshot svelte-1cdcqpr">'),fr=o('<div class="replay-no-screenshot svelte-1cdcqpr"></div>'),qr=ge('<svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-1cdcqpr"><rect x="6" y="4" width="4" height="16" rx="1" class="svelte-1cdcqpr"></rect><rect x="14" y="4" width="4" height="16" rx="1" class="svelte-1cdcqpr"></rect></svg>'),yr=ge('<svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-1cdcqpr"><polygon points="5,3 19,12 5,21" class="svelte-1cdcqpr"></polygon></svg>'),xr=o('<div class="replay-overlay svelte-1cdcqpr"><div class="replay-modal svelte-1cdcqpr"><div class="replay-modal-header svelte-1cdcqpr"><span class="replay-modal-title svelte-1cdcqpr"> </span> <button class="replay-close svelte-1cdcqpr"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-1cdcqpr"><line x1="18" y1="6" x2="6" y2="18" class="svelte-1cdcqpr"></line><line x1="6" y1="6" x2="18" y2="18" class="svelte-1cdcqpr"></line></svg></button></div> <div class="replay-screenshot-area svelte-1cdcqpr"><!></div> <div class="replay-timeline svelte-1cdcqpr"><input type="range" class="replay-slider svelte-1cdcqpr" min="0"></div> <div class="replay-step-info svelte-1cdcqpr"><!> <!> <span class="replay-step-name svelte-1cdcqpr"> </span></div> <div class="replay-nav svelte-1cdcqpr"><button class="replay-nav-btn svelte-1cdcqpr"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-1cdcqpr"><polyline points="15 18 9 12 15 6" class="svelte-1cdcqpr"></polyline></svg></button> <button class="replay-play-btn svelte-1cdcqpr"><!></button> <button class="replay-nav-btn svelte-1cdcqpr"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-1cdcqpr"><polyline points="9 18 15 12 9 6" class="svelte-1cdcqpr"></polyline></svg></button> <span class="replay-counter svelte-1cdcqpr"> </span></div></div></div>'),kr=o("<!> <!> <!>",1);function Mr(z,j){na(j,!1);const[h,i]=Wa(),R=()=>Ja(rt,"$page",h),P=S(),K=S(),B=S(),m=S(),E=S(),he=S(),te=S(),H=S(),$=S(),Y=S(),va=parseInt(R().params.id,10);let q=S(null),ls=S(null),fe=S(new Set),Ve=S(!1),re=S(null),L=S(0),Le=S(!1),qe=null;za(()=>{qe&&clearInterval(qe)});function bs(){g(Le,!0),qe=setInterval(()=>{var r,y;e(L)<(((y=(r=e(re))==null?void 0:r.steps)==null?void 0:y.length)??0)-1?ws(L):le()},Za)}function le(){g(Le,!1),qe&&(clearInterval(qe),qe=null)}function Ss(r){le(),g(re,r),g(L,0),g(Ve,!0),bs()}function ns(){le(),g(Ve,!1),g(re,null)}function Bs(){e(Le)?le():(e(L)>=e(P).length-1&&g(L,0),bs())}function Es(){le(),e(L)>0&&ws(L,-1)}function Ls(){le(),e(L)<e(P).length-1&&ws(L)}function ia(r){e(Ve)&&(r.key==="ArrowRight"?Ls():r.key==="ArrowLeft"?Es():r.key===" "?(r.preventDefault(),Bs()):r.key==="Escape"&&ns())}Ka(async()=>{try{g(q,await lt(va))}catch{g(ls,dt)}});function pa(r){e(fe).has(r)?e(fe).delete(r):e(fe).add(r),g(fe,e(fe))}let ze=S(0);V(()=>e(re),()=>{var r;g(P,((r=e(re))==null?void 0:r.steps)??[])}),V(()=>(e(P),e(L)),()=>{g(K,e(P)[e(L)]??null)}),V(()=>e(q),()=>{var r;g(B,ct(((r=e(q))==null?void 0:r.logs)??null))}),V(()=>e(B),()=>{e(B)&&g(ze,0)}),V(()=>e(q),()=>{var r;g(m,((r=e(q))==null?void 0:r.status)==="PASS")}),V(()=>e(q),()=>{var r;g(E,((r=e(q))==null?void 0:r.features.flatMap(y=>y.scenarios))??[])}),V(()=>e(E),()=>{g(he,e(E).filter(r=>r.status==="passed").length)}),V(()=>e(E),()=>{g(te,e(E).filter(r=>r.status==="failed").length)}),V(()=>e(E),()=>{g(H,e(E).filter(r=>r.status==="skipped"||r.status==="pending").length)}),V(()=>(e(q),e(E)),()=>{var r;g($,((r=e(q))==null?void 0:r.duration)??e(E).reduce((y,F)=>y+F.duration,0))}),V(()=>(e(q),Qs),()=>{var r;g(Y,((r=e(q))==null?void 0:r.features.map(y=>({...y,scenarioGroups:Qs(y.scenarios)})))??[])}),ca(),la();var Cs=kr();N("keydown",Ya,ia),Na(r=>{Fa.title=pt});var Ts=ae(Cs);It(Ts,{href:"/reports",label:ut});var As=t(Ts,2);{var da=r=>{var y=zt(),F=a(y,!0);s(y),d(()=>c(F,e(ls))),l(r,y)},ua=r=>{var y=Ne(),F=ae(y);{var Ce=ee=>{var ye=Kt();l(ee,ye)},Te=ee=>{var ye=gr(),U=ae(ye),Ke=a(U),Ae=a(Ke),ne=a(Ae),Re=a(ne);{var ce=v=>{var n=Yt();l(v,n)},Pe=v=>{var n=Ft();l(v,n)};_(Re,v=>{e(m)?v(ce):v(Pe,!1)})}s(ne);var Ie=t(ne,2),De=a(Ie),xe=a(De),cs=a(xe,!0);s(xe);var Ye=t(xe,2);{var os=v=>{var n=Ut(),x=a(n,!0);s(n),d(()=>c(x,e(q).testRun.title)),l(v,n)},Fe=v=>{var n=Ne(),x=ae(n);{var A=I=>{var G=Wt(),ve=a(G,!0);s(G),d(()=>c(ve,e(q).triggerType)),l(I,G)};_(x,I=>{it(e(q).triggerType)&&I(A)},!0)}l(v,n)};_(Ye,v=>{var n;(n=e(q).testRun)!=null&&n.title?v(os):v(Fe,!1)})}s(De);var ke=t(De,2),W=a(ke),vs=a(W,!0);s(W);var Oe=t(W,4),is=a(Oe,!0);s(Oe);var oe=t(Oe,4),Ue=a(oe,!0);s(oe);var We=t(oe,4),p=a(We);const T=b(()=>e(q).browser??Us[0].id);Vt(p,{get browser(){return e(T)}});var me=t(p);s(We),s(ke),s(Ie),s(Ae);var Je=t(Ae,2),ps=a(Je),ds=a(ps),ha=a(ds,!0);s(ds);var Rs=t(ds,2),fa=t(a(Rs));fa.nodeValue=` ${ht}`,s(Rs),s(ps);var Ps=t(ps,2);{var qa=v=>{var n=Jt(),x=a(n),A=a(x,!0);s(x);var I=t(x,2),G=t(a(I));G.nodeValue=` ${Bt}`,s(I),s(n),d(()=>c(A,e(te))),l(v,n)};_(Ps,v=>{e(te)>0&&v(qa)})}var Is=t(Ps,2);{var ya=v=>{var n=Qt(),x=a(n),A=a(x,!0);s(x);var I=t(x,2),G=t(a(I));G.nodeValue=` ${Et}`,s(I),s(n),d(()=>c(A,e(H))),l(v,n)};_(Is,v=>{e(H)>0&&v(ya)})}var us=t(Is,2),_s=a(us),xa=a(_s,!0);s(_s);var Ds=t(_s,2),ka=t(a(Ds));ka.nodeValue=` ${ft}`,s(Ds),s(us);var Os=t(us,2),gs=a(Os),ma=a(gs,!0);s(gs);var Ms=t(gs,2),wa=t(a(Ms));s(Ms),s(Os),s(Je),s(Ke),s(U);var js=t(U,2);{var ba=v=>{var n=sr(),x=a(n),A=t(a(x));A.nodeValue=` ${Lt} `;var I=t(A);{var G=D=>{var J=Xt(),Me=a(J,!0);s(J),d(je=>c(Me,je),[()=>Rt(e(B).length)],b),l(D,J)};_(I,D=>{e(B).length>1&&D(G)})}s(x);var ve=t(x,2);{var hs=D=>{var J=er();Se(J,5,()=>e(B),Be,(Me,je,$e)=>{var O=Zt(),f=t(a(O));s(O),d(()=>{k(O,"log-tab-active",e(ze)===$e),c(f,` ${e(je).name??""}`)}),N("click",O,Ws(()=>g(ze,$e))),l(Me,O)}),s(J),l(D,J)};_(ve,D=>{e(B).length>1&&D(hs)})}var Qe=t(ve,2),Xe=a(Qe,!0);s(Qe),s(n),d(()=>{var D;return c(Xe,((D=e(B)[e(ze)])==null?void 0:D.content)??"")}),l(v,n)};_(js,v=>{e(B).length>0&&v(ba)})}var Sa=t(js,2);Se(Sa,1,()=>e(Y),Be,(v,n,x)=>{var A=_r(),I=a(A),G=a(I),ve=t(a(G)),hs=t(ve);{var Qe=O=>{var f=ar(),we=a(f,!0);s(f),d(ie=>c(we,ie),[()=>Xs(e(n))],b),l(O,f)};_(hs,O=>{Xs(e(n))&&O(Qe)})}s(G);var Xe=t(G,2),D=a(Xe),J=a(D,!0);s(D);var Me=t(D,2);const je=b(()=>e(n).status==="passed"?"pass":"fail");Pt(Me,{get variant(){return e(je)},children:(O,f)=>{Ua();var we=rs();d(()=>c(we,e(n).status)),l(O,we)},$$slots:{default:!0}}),s(Xe),s(I);var $e=t(I,2);Se($e,5,()=>e(n).scenarioGroups,Be,(O,f,we)=>{var ie=ur();const $s=b(()=>`${x}-${e(f).key}`),Gs=b(()=>e(fe).has(e($s))),Ba=b(()=>e(f).scenarios.some(ea));var fs=a(ie),Ze=a(fs),Hs=a(Ze);aa(Hs,{get status(){return e(f).status}});var qs=t(Hs,2),Ns=a(qs),Vs=t(Ns);{var Ea=w=>{var u=tr(),pe=a(u,!0);s(u),d(Q=>c(pe,Q),[()=>qt(e(f).scenarios.length)],b),l(w,u)};_(Vs,w=>{e(f).scenarios.length>1&&w(Ea)})}var La=t(Vs,2);{var Ca=w=>{var u=rr();C(u,"title",yt);var pe=a(u,!0);s(u),d(Q=>c(pe,Q),[()=>xt(e(f).scenarios[0].attempts)],b),l(w,u)};_(La,w=>{var u;((u=e(f).scenarios[0])==null?void 0:u.attempts)>1&&w(Ca)})}s(qs);var ys=t(qs,2);Se(ys,5,()=>e(f).tags,Be,(w,u)=>{Mt(w,{get tag(){return e(u)}})}),s(ys);var xs=t(ys,2),Ta=a(xs,!0);s(xs);var Aa=t(xs,2);s(Ze);var Ra=t(Ze,2);{var Pa=w=>{var u=lr();C(u,"title",kt);var pe=t(a(u));pe.nodeValue=` ${sa}`,s(u),N("click",u,()=>Ss(e(f).scenarios[0])),l(w,u)};_(Ra,w=>{e(Ba)&&e(f).scenarios.length===1&&w(Pa)})}s(fs);var Ia=t(fs,2);{var Da=w=>{var u=dr();Se(u,5,()=>e(f).scenarios,Be,(pe,Q,Oa)=>{var zs=pr(),Ks=ae(zs);{var Ma=Ge=>{var M=cr(),se=a(M);aa(se,{get status(){return e(Q).status}});var de=t(se,2),es=a(de,!0);s(de);var be=t(de,2),He=a(be,!0);s(be);var ks=t(be,2);{var ss=ue=>{var X=nr(),ms=t(a(X));ms.nodeValue=` ${sa}`,s(X),N("click",X,()=>Ss(e(Q))),l(ue,X)};_(ks,ue=>{ea(e(Q))&&ue(ss)})}s(M),d((ue,X)=>{c(es,ue),c(He,X)},[()=>Ct(Oa+1),()=>ts(e(Q).duration)],b),l(Ge,M)};_(Ks,Ge=>{e(f).scenarios.length>1&&Ge(Ma)})}var ja=t(Ks,2);Se(ja,1,()=>e(Q).steps,Be,(Ge,M)=>{var se=ir(),de=a(se),es=a(de);ra(es,{get status(){return e(M).status}});var be=t(es,2);ta(be,{get keyword(){return e(M).keyword}});var He=t(be,2),ks=a(He,!0);s(He);var ss=t(He,2),ue=a(ss,!0);s(ss),s(de);var X=t(de,2);{var ms=Z=>{var _e=or(),as=a(_e,!0);s(_e),d(()=>c(as,e(M).error)),l(Z,_e)};_(X,Z=>{e(M).error&&Z(ms)})}var $a=t(X,2);{var Ga=Z=>{var _e=vr(),as=a(_e);as.textContent=Tt;var Ys=t(as,2);C(Ys,"alt",At),s(_e),d(Ha=>C(Ys,"src",Ha),[()=>Js(e(M).screenshot)],b),l(Z,_e)};_($a,Z=>{e(M).screenshot&&Z(Ga)})}s(se),d(Z=>{k(se,"step-fail",e(M).status==="failed"),k(se,"step-skip",e(M).status==="skipped"||e(M).status==="pending"),c(ks,e(M).name),c(ue,Z)},[()=>ts(e(M).duration)],b),l(Ge,se)}),l(pe,zs)}),s(u),Fs(3,u,()=>Xa,()=>({duration:200})),l(w,u)};_(Ia,w=>{e(Gs)&&w(Da)})}s(ie),d((w,u)=>{C(ie,"style",w),k(ie,"scenario-fail",e(f).status==="failed"),c(Ns,`${e(f).name??""} `),c(Ta,u),k(Aa,"rotated",e(Gs))},[()=>Zs(x*5+we,40),()=>ts(e(f).duration)],b),N("click",Ze,()=>pa(e($s))),l(O,ie)}),s($e),s(A),d((O,f)=>{C(A,"style",O),k(A,"feature-pass",e(n).status==="passed"),k(A,"feature-fail",e(n).status!=="passed"),c(ve,` ${e(n).name??""} `),C(D,"title",e(n).uri),c(J,f)},[()=>Zs(x,60),()=>ot(e(n).uri)],b),l(v,A)}),d((v,n,x,A)=>{k(U,"pass",e(m)),k(U,"fail",!e(m)),k(ne,"pass-bg",e(m)),k(ne,"fail-bg",!e(m)),c(cs,e(m)?mt:wt),c(vs,e(q).tags),c(is,v),c(Ue,n),c(me,` ${e(q).browser??Us[0].id??""}`),c(ha,e(he)),c(xa,x),c(ma,e(q).runners),c(wa,` ${A??""}`)},[()=>vt(e(q).triggerType),()=>new Date(e(q).createdAt).toLocaleString(),()=>ts(e($)),()=>at(e(q).runners,"runner")],b),l(ee,ye)};_(F,ee=>{e(q)?ee(Te,!1):ee(Ce)},!0)}l(r,y)};_(As,r=>{e(ls)?r(da):r(ua,!1)})}var _a=t(As,2);{var ga=r=>{var y=xr(),F=a(y),Ce=a(F),Te=a(Ce),ee=a(Te,!0);s(Te);var ye=t(Te,2);s(Ce);var U=t(Ce,2),Ke=a(U);{var Ae=p=>{var T=hr();d((me,Je)=>{C(T,"src",me),C(T,"alt",Je)},[()=>Js(e(K).screenshot),()=>bt(e(L)+1)],b),l(p,T)},ne=p=>{var T=fr();T.textContent=St,l(p,T)};_(Ke,p=>{var T;(T=e(K))!=null&&T.screenshot?p(Ae):p(ne,!1)})}s(U);var Re=t(U,2),ce=a(Re);et(ce),s(Re);var Pe=t(Re,2),Ie=a(Pe);const De=b(()=>{var p;return((p=e(K))==null?void 0:p.status)??"skipped"});ra(Ie,{get status(){return e(De)}});var xe=t(Ie,2);const cs=b(()=>{var p;return((p=e(K))==null?void 0:p.keyword)??""});ta(xe,{get keyword(){return e(cs)}});var Ye=t(xe,2),os=a(Ye,!0);s(Ye),s(Pe);var Fe=t(Pe,2),ke=a(Fe),W=t(ke,2),vs=a(W);{var Oe=p=>{var T=qr();l(p,T)},is=p=>{var T=yr();l(p,T)};_(vs,p=>{e(Le)?p(Oe):p(is,!1)})}s(W);var oe=t(W,2),Ue=t(oe,2),We=a(Ue,!0);s(Ue),s(Fe),s(F),s(y),d((p,T)=>{var me;c(ee,e(re).name),C(ce,"max",e(P).length-1),st(ce,e(L)),C(ce,"style",`--fill: ${(e(P).length>1?e(L)/(e(P).length-1)*100:0)??""}%`),c(os,(me=e(K))==null?void 0:me.name),ke.disabled=e(L)===0,C(W,"title",p),oe.disabled=e(L)===e(P).length-1,c(We,T)},[()=>_t(e(Le)),()=>gt(e(L)+1,e(P).length)],b),N("click",ye,ns),N("input",ce,p=>{le(),g(L,Number(p.target.value))}),N("click",ke,Es),N("click",W,Bs),N("click",oe,Ls),N("click",F,Ws(function(p){tt.call(this,j,p)})),Fs(3,y,()=>Qa,()=>({duration:150})),N("click",y,ns),l(r,y)};_(_a,r=>{e(Ve)&&e(re)&&r(ga)})}l(z,Cs),oa(),i()}export{Mr as component};
1
+ import{a as l,t as o,s as c,b as rs,c as Ne,n as ge,e as N,h as Na}from"../chunks/CMBQQ9RZ.js";import{i as la}from"../chunks/CKDtmZUQ.js";import{t as d,d as a,k as s,p as na,l as V,s as g,ai as Va,b as ca,g as e,c as oa,m as S,f as ae,an as za,o as Ka,ap as Ya,$ as Fa,j as t,ao as ws,x as b,n as Ua}from"../chunks/BAACMRH5.js";import{i as _,s as Wa,a as Ja}from"../chunks/CgnwuKKO.js";import{t as k,a as Fs,c as Qa,e as Se,i as Be,g as Xa}from"../chunks/TOCyHP97.js";import{s as C,I as Za,r as et,H as st,p as at,B as Us}from"../chunks/CUC98kMZ.js";import{s as Ws}from"../chunks/Bfc47y5P.js";import{b as tt}from"../chunks/CNdcuGR0.js";import{p as rt}from"../chunks/nURnIknV.js";import{b as lt,s as Js}from"../chunks/DbgD7JLa.js";import{k as nt,p as ct,g as Qs,f as Xs,s as Zs,b as ts,c as ot,d as ea,t as vt,i as it}from"../chunks/DSLBMEpr.js";import{G as pt,I as dt,g as ut,J as _t,K as gt,M as ht,O as ft,Q as qt,U as yt,X as xt,Y as kt,Z as sa,s as mt,u as wt,_ as bt,$ as St,a0 as Bt,a1 as Et,a2 as Lt,a3 as Ct,a4 as Tt,a5 as At,v as Rt}from"../chunks/Co3xKhEp.js";import{B as Pt}from"../chunks/CuqnZUex.js";import{B as It}from"../chunks/CGeZlCaI.js";import{p as Ee}from"../chunks/C8OURRSs.js";var Dt=o('<span class="status-dot svelte-eg9xrn"></span>');function aa(z,j){let h=Ee(j,"status",8,"passed");var i=Dt();d(()=>{k(i,"pass",h()==="passed"),k(i,"fail",h()==="failed"),k(i,"skip",h()!=="passed"&&h()!=="failed")}),l(z,i)}var Ot=o('<span class="tag-chip svelte-foe7v9"> </span>');function Mt(z,j){let h=Ee(j,"tag",8,"");var i=Ot(),R=a(i,!0);s(i),d(()=>c(R,h())),l(z,i)}var jt=o('<span class="kw svelte-3mvi7i"> </span>');function ta(z,j){na(j,!1);const h=S();let i=Ee(j,"keyword",8,"");V(()=>Va(i()),()=>{g(h,nt(i()))}),ca(),la();var R=jt(),P=a(R,!0);s(R),d(()=>{k(R,"kw-given",e(h)==="kw-given"),k(R,"kw-when",e(h)==="kw-when"),k(R,"kw-then",e(h)==="kw-then"),k(R,"kw-and",e(h)==="kw-and"),c(P,i())}),l(z,R),oa()}var $t=o('<span class="step-status-icon svelte-9zpq1y"><!></span>');function ra(z,j){let h=Ee(j,"status",8,"passed");var i=$t(),R=a(i);{var P=B=>{var m=rs("✓");l(B,m)},K=B=>{var m=Ne(),E=ae(m);{var he=H=>{var $=rs("✗");l(H,$)},te=H=>{var $=rs("−");l(H,$)};_(E,H=>{h()==="failed"?H(he):H(te,!1)},!0)}l(B,m)};_(R,B=>{h()==="passed"?B(P):B(K,!1)})}s(i),d(()=>{k(i,"icon-pass",h()==="passed"),k(i,"icon-fail",h()==="failed"),k(i,"icon-skip",h()!=="passed"&&h()!=="failed")}),l(z,i)}var Gt=ge('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2c0 4.5-5 7-5 12a5 5 0 0 0 10 0c0-5-5-7.5-5-12z"></path><path d="M12 9c0 2.5-2.5 4-2.5 7a2.5 2.5 0 0 0 5 0c0-3-2.5-4.5-2.5-7z"></path></svg>'),Ht=ge('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polygon points="12,5.5 14.5,12 12,10.5 9.5,12" fill="currentColor" stroke="none"></polygon><polygon points="12,18.5 9.5,12 12,13.5 14.5,12" fill="currentColor" stroke="none" opacity="0.35"></polygon></svg>'),Nt=ge('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><circle cx="12" cy="12" r="4"></circle><line x1="21.17" y1="8" x2="12" y2="8"></line><line x1="3.95" y1="6.06" x2="8.54" y2="14"></line><line x1="10.88" y1="21.94" x2="15.46" y2="14"></line></svg>');function Vt(z,j){let h=Ee(j,"browser",8,"chromium"),i=Ee(j,"size",8,11);var R=Ne(),P=ae(R);{var K=m=>{var E=Gt();d(()=>{C(E,"width",i()),C(E,"height",i())}),l(m,E)},B=m=>{var E=Ne(),he=ae(E);{var te=$=>{var Y=Ht();d(()=>{C(Y,"width",i()),C(Y,"height",i())}),l($,Y)},H=$=>{var Y=Nt();d(()=>{C(Y,"width",i()),C(Y,"height",i())}),l($,Y)};_(he,$=>{h()==="webkit"?$(te):$(H,!1)},!0)}l(m,E)};_(P,m=>{h()==="firefox"?m(K):m(B,!1)})}l(z,R)}var zt=o('<div class="error-state svelte-1cdcqpr"> </div>'),Kt=o('<div class="loading-state svelte-1cdcqpr"><div class="loading-dots svelte-1cdcqpr"><span class="svelte-1cdcqpr"></span><span class="svelte-1cdcqpr"></span><span class="svelte-1cdcqpr"></span></div></div>'),Yt=ge('<svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1cdcqpr"><polyline points="20 6 9 17 4 12" class="svelte-1cdcqpr"></polyline></svg>'),Ft=ge('<svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1cdcqpr"><line x1="18" y1="6" x2="6" y2="18" class="svelte-1cdcqpr"></line><line x1="6" y1="6" x2="18" y2="18" class="svelte-1cdcqpr"></line></svg>'),Ut=o('<span class="run-name-badge svelte-1cdcqpr"> </span>'),Wt=o('<span class="run-name-badge svelte-1cdcqpr"> </span>'),Jt=o('<div class="stat svelte-1cdcqpr"><span class="stat-num fail-color svelte-1cdcqpr"> </span> <span class="stat-label svelte-1cdcqpr"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1cdcqpr"><line x1="18" y1="6" x2="6" y2="18" class="svelte-1cdcqpr"></line><line x1="6" y1="6" x2="18" y2="18" class="svelte-1cdcqpr"></line></svg> </span></div>'),Qt=o('<div class="stat svelte-1cdcqpr"><span class="stat-num muted-color svelte-1cdcqpr"> </span> <span class="stat-label svelte-1cdcqpr"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" class="svelte-1cdcqpr"><line x1="5" y1="12" x2="19" y2="12" class="svelte-1cdcqpr"></line></svg> </span></div>'),Xt=o('<span class="log-runner-count svelte-1cdcqpr"> </span>'),Zt=o('<button class="log-tab svelte-1cdcqpr"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-1cdcqpr"><rect x="2" y="3" width="20" height="14" rx="2" class="svelte-1cdcqpr"></rect><path d="M8 21h8M12 17v4" class="svelte-1cdcqpr"></path></svg> </button>'),er=o('<div class="log-tabs svelte-1cdcqpr"></div>'),sr=o('<details class="logs-section svelte-1cdcqpr"><summary class="logs-summary svelte-1cdcqpr"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1cdcqpr"><polyline points="4 17 10 11 4 5" class="svelte-1cdcqpr"></polyline><line x1="12" y1="19" x2="20" y2="19" class="svelte-1cdcqpr"></line></svg> <!></summary> <!> <pre class="logs-body svelte-1cdcqpr"> </pre></details>'),ar=o('<span class="suite-tag svelte-1cdcqpr"> </span>'),tr=o('<span class="scenario-count svelte-1cdcqpr"> </span>'),rr=o('<span class="scenario-count svelte-1cdcqpr"> </span>'),lr=o('<button class="replay-btn svelte-1cdcqpr"><svg width="11" height="11" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-1cdcqpr"><polygon points="5,3 19,12 5,21" class="svelte-1cdcqpr"></polygon></svg> </button>'),nr=o('<button class="replay-btn replay-btn-sm svelte-1cdcqpr"><svg width="9" height="9" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-1cdcqpr"><polygon points="5,3 19,12 5,21" class="svelte-1cdcqpr"></polygon></svg> </button>'),cr=o('<div class="example-header svelte-1cdcqpr"><!> <span class="svelte-1cdcqpr"> </span> <span class="scenario-duration svelte-1cdcqpr"> </span> <!></div>'),or=o('<pre class="step-error svelte-1cdcqpr"> </pre>'),vr=o('<details class="screenshot-wrap svelte-1cdcqpr"><summary class="screenshot-toggle svelte-1cdcqpr"></summary> <img class="screenshot svelte-1cdcqpr"></details>'),ir=o('<div class="step svelte-1cdcqpr"><div class="step-row svelte-1cdcqpr"><!> <!> <span class="step-name svelte-1cdcqpr"> </span> <span class="step-duration svelte-1cdcqpr"> </span></div> <!> <!></div>'),pr=o("<!> <!>",1),dr=o('<div class="steps svelte-1cdcqpr"></div>'),ur=o('<div class="scenario svelte-1cdcqpr"><div class="scenario-row svelte-1cdcqpr"><button class="scenario-header svelte-1cdcqpr"><!> <span class="scenario-name svelte-1cdcqpr"> <!> <!></span> <div class="scenario-tags svelte-1cdcqpr"></div> <span class="scenario-duration svelte-1cdcqpr"> </span> <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="chevron svelte-1cdcqpr"><polyline points="9 18 15 12 9 6" class="svelte-1cdcqpr"></polyline></svg></button> <!></div> <!></div>'),_r=o('<div class="feature svelte-1cdcqpr"><div class="feature-header svelte-1cdcqpr"><h2 class="feature-name svelte-1cdcqpr"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feature-icon svelte-1cdcqpr"><path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z" class="svelte-1cdcqpr"></path><polyline points="14 2 14 8 20 8" class="svelte-1cdcqpr"></polyline></svg> <!></h2> <div class="feature-right svelte-1cdcqpr"><span class="feature-file svelte-1cdcqpr"> </span> <!></div></div> <div class="scenarios svelte-1cdcqpr"></div></div>'),gr=o('<div class="report-header svelte-1cdcqpr"><div class="header-main svelte-1cdcqpr"><div class="header-status svelte-1cdcqpr"><div class="status-icon-wrap svelte-1cdcqpr"><!></div> <div class="svelte-1cdcqpr"><div class="h1-row svelte-1cdcqpr"><h1 class="svelte-1cdcqpr"> </h1> <!></div> <div class="header-meta svelte-1cdcqpr"><span class="mono svelte-1cdcqpr"> </span> <span class="meta-sep svelte-1cdcqpr">·</span> <span class="svelte-1cdcqpr"> </span> <span class="meta-sep svelte-1cdcqpr">·</span> <span class="svelte-1cdcqpr"> </span> <span class="meta-sep svelte-1cdcqpr">·</span> <span class="browser-pill svelte-1cdcqpr"><!> </span></div></div></div> <div class="header-stats svelte-1cdcqpr"><div class="stat svelte-1cdcqpr"><span class="stat-num pass-color svelte-1cdcqpr"> </span> <span class="stat-label svelte-1cdcqpr"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1cdcqpr"><polyline points="20 6 9 17 4 12" class="svelte-1cdcqpr"></polyline></svg> </span></div> <!> <!> <div class="stat svelte-1cdcqpr"><span class="stat-num svelte-1cdcqpr"> </span> <span class="stat-label svelte-1cdcqpr"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1cdcqpr"><circle cx="12" cy="12" r="10" class="svelte-1cdcqpr"></circle><polyline points="12 6 12 12 16 14" class="svelte-1cdcqpr"></polyline></svg> </span></div> <div class="stat svelte-1cdcqpr"><span class="stat-num svelte-1cdcqpr"> </span> <span class="stat-label svelte-1cdcqpr"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-1cdcqpr"><rect x="2" y="3" width="20" height="14" rx="2" class="svelte-1cdcqpr"></rect><path d="M8 21h8M12 17v4" class="svelte-1cdcqpr"></path></svg> </span></div></div></div></div> <!> <!>',1),hr=o('<img class="replay-screenshot svelte-1cdcqpr">'),fr=o('<div class="replay-no-screenshot svelte-1cdcqpr"></div>'),qr=ge('<svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-1cdcqpr"><rect x="6" y="4" width="4" height="16" rx="1" class="svelte-1cdcqpr"></rect><rect x="14" y="4" width="4" height="16" rx="1" class="svelte-1cdcqpr"></rect></svg>'),yr=ge('<svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-1cdcqpr"><polygon points="5,3 19,12 5,21" class="svelte-1cdcqpr"></polygon></svg>'),xr=o('<div class="replay-overlay svelte-1cdcqpr"><div class="replay-modal svelte-1cdcqpr"><div class="replay-modal-header svelte-1cdcqpr"><span class="replay-modal-title svelte-1cdcqpr"> </span> <button class="replay-close svelte-1cdcqpr"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-1cdcqpr"><line x1="18" y1="6" x2="6" y2="18" class="svelte-1cdcqpr"></line><line x1="6" y1="6" x2="18" y2="18" class="svelte-1cdcqpr"></line></svg></button></div> <div class="replay-screenshot-area svelte-1cdcqpr"><!></div> <div class="replay-timeline svelte-1cdcqpr"><input type="range" class="replay-slider svelte-1cdcqpr" min="0"></div> <div class="replay-step-info svelte-1cdcqpr"><!> <!> <span class="replay-step-name svelte-1cdcqpr"> </span></div> <div class="replay-nav svelte-1cdcqpr"><button class="replay-nav-btn svelte-1cdcqpr"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-1cdcqpr"><polyline points="15 18 9 12 15 6" class="svelte-1cdcqpr"></polyline></svg></button> <button class="replay-play-btn svelte-1cdcqpr"><!></button> <button class="replay-nav-btn svelte-1cdcqpr"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-1cdcqpr"><polyline points="9 18 15 12 9 6" class="svelte-1cdcqpr"></polyline></svg></button> <span class="replay-counter svelte-1cdcqpr"> </span></div></div></div>'),kr=o("<!> <!> <!>",1);function Mr(z,j){na(j,!1);const[h,i]=Wa(),R=()=>Ja(rt,"$page",h),P=S(),K=S(),B=S(),m=S(),E=S(),he=S(),te=S(),H=S(),$=S(),Y=S(),va=parseInt(R().params.id,10);let q=S(null),ls=S(null),fe=S(new Set),Ve=S(!1),re=S(null),L=S(0),Le=S(!1),qe=null;za(()=>{qe&&clearInterval(qe)});function bs(){g(Le,!0),qe=setInterval(()=>{var r,y;e(L)<(((y=(r=e(re))==null?void 0:r.steps)==null?void 0:y.length)??0)-1?ws(L):le()},Za)}function le(){g(Le,!1),qe&&(clearInterval(qe),qe=null)}function Ss(r){le(),g(re,r),g(L,0),g(Ve,!0),bs()}function ns(){le(),g(Ve,!1),g(re,null)}function Bs(){e(Le)?le():(e(L)>=e(P).length-1&&g(L,0),bs())}function Es(){le(),e(L)>0&&ws(L,-1)}function Ls(){le(),e(L)<e(P).length-1&&ws(L)}function ia(r){e(Ve)&&(r.key==="ArrowRight"?Ls():r.key==="ArrowLeft"?Es():r.key===" "?(r.preventDefault(),Bs()):r.key==="Escape"&&ns())}Ka(async()=>{try{g(q,await lt(va))}catch{g(ls,dt)}});function pa(r){e(fe).has(r)?e(fe).delete(r):e(fe).add(r),g(fe,e(fe))}let ze=S(0);V(()=>e(re),()=>{var r;g(P,((r=e(re))==null?void 0:r.steps)??[])}),V(()=>(e(P),e(L)),()=>{g(K,e(P)[e(L)]??null)}),V(()=>e(q),()=>{var r;g(B,ct(((r=e(q))==null?void 0:r.logs)??null))}),V(()=>e(B),()=>{e(B)&&g(ze,0)}),V(()=>e(q),()=>{var r;g(m,((r=e(q))==null?void 0:r.status)==="PASS")}),V(()=>e(q),()=>{var r;g(E,((r=e(q))==null?void 0:r.features.flatMap(y=>y.scenarios))??[])}),V(()=>e(E),()=>{g(he,e(E).filter(r=>r.status==="passed").length)}),V(()=>e(E),()=>{g(te,e(E).filter(r=>r.status==="failed").length)}),V(()=>e(E),()=>{g(H,e(E).filter(r=>r.status==="skipped"||r.status==="pending").length)}),V(()=>(e(q),e(E)),()=>{var r;g($,((r=e(q))==null?void 0:r.duration)??e(E).reduce((y,F)=>y+F.duration,0))}),V(()=>(e(q),Qs),()=>{var r;g(Y,((r=e(q))==null?void 0:r.features.map(y=>({...y,scenarioGroups:Qs(y.scenarios)})))??[])}),ca(),la();var Cs=kr();N("keydown",Ya,ia),Na(r=>{Fa.title=pt});var Ts=ae(Cs);It(Ts,{href:"/reports",label:ut});var As=t(Ts,2);{var da=r=>{var y=zt(),F=a(y,!0);s(y),d(()=>c(F,e(ls))),l(r,y)},ua=r=>{var y=Ne(),F=ae(y);{var Ce=ee=>{var ye=Kt();l(ee,ye)},Te=ee=>{var ye=gr(),U=ae(ye),Ke=a(U),Ae=a(Ke),ne=a(Ae),Re=a(ne);{var ce=v=>{var n=Yt();l(v,n)},Pe=v=>{var n=Ft();l(v,n)};_(Re,v=>{e(m)?v(ce):v(Pe,!1)})}s(ne);var Ie=t(ne,2),De=a(Ie),xe=a(De),cs=a(xe,!0);s(xe);var Ye=t(xe,2);{var os=v=>{var n=Ut(),x=a(n,!0);s(n),d(()=>c(x,e(q).testRun.title)),l(v,n)},Fe=v=>{var n=Ne(),x=ae(n);{var A=I=>{var G=Wt(),ve=a(G,!0);s(G),d(()=>c(ve,e(q).triggerType)),l(I,G)};_(x,I=>{it(e(q).triggerType)&&I(A)},!0)}l(v,n)};_(Ye,v=>{var n;(n=e(q).testRun)!=null&&n.title?v(os):v(Fe,!1)})}s(De);var ke=t(De,2),W=a(ke),vs=a(W,!0);s(W);var Oe=t(W,4),is=a(Oe,!0);s(Oe);var oe=t(Oe,4),Ue=a(oe,!0);s(oe);var We=t(oe,4),p=a(We);const T=b(()=>e(q).browser??Us[0].id);Vt(p,{get browser(){return e(T)}});var me=t(p);s(We),s(ke),s(Ie),s(Ae);var Je=t(Ae,2),ps=a(Je),ds=a(ps),ha=a(ds,!0);s(ds);var Rs=t(ds,2),fa=t(a(Rs));fa.nodeValue=` ${ht}`,s(Rs),s(ps);var Ps=t(ps,2);{var qa=v=>{var n=Jt(),x=a(n),A=a(x,!0);s(x);var I=t(x,2),G=t(a(I));G.nodeValue=` ${Bt}`,s(I),s(n),d(()=>c(A,e(te))),l(v,n)};_(Ps,v=>{e(te)>0&&v(qa)})}var Is=t(Ps,2);{var ya=v=>{var n=Qt(),x=a(n),A=a(x,!0);s(x);var I=t(x,2),G=t(a(I));G.nodeValue=` ${Et}`,s(I),s(n),d(()=>c(A,e(H))),l(v,n)};_(Is,v=>{e(H)>0&&v(ya)})}var us=t(Is,2),_s=a(us),xa=a(_s,!0);s(_s);var Ds=t(_s,2),ka=t(a(Ds));ka.nodeValue=` ${ft}`,s(Ds),s(us);var Os=t(us,2),gs=a(Os),ma=a(gs,!0);s(gs);var Ms=t(gs,2),wa=t(a(Ms));s(Ms),s(Os),s(Je),s(Ke),s(U);var js=t(U,2);{var ba=v=>{var n=sr(),x=a(n),A=t(a(x));A.nodeValue=` ${Lt} `;var I=t(A);{var G=D=>{var J=Xt(),Me=a(J,!0);s(J),d(je=>c(Me,je),[()=>Rt(e(B).length)],b),l(D,J)};_(I,D=>{e(B).length>1&&D(G)})}s(x);var ve=t(x,2);{var hs=D=>{var J=er();Se(J,5,()=>e(B),Be,(Me,je,$e)=>{var O=Zt(),f=t(a(O));s(O),d(()=>{k(O,"log-tab-active",e(ze)===$e),c(f,` ${e(je).name??""}`)}),N("click",O,Ws(()=>g(ze,$e))),l(Me,O)}),s(J),l(D,J)};_(ve,D=>{e(B).length>1&&D(hs)})}var Qe=t(ve,2),Xe=a(Qe,!0);s(Qe),s(n),d(()=>{var D;return c(Xe,((D=e(B)[e(ze)])==null?void 0:D.content)??"")}),l(v,n)};_(js,v=>{e(B).length>0&&v(ba)})}var Sa=t(js,2);Se(Sa,1,()=>e(Y),Be,(v,n,x)=>{var A=_r(),I=a(A),G=a(I),ve=t(a(G)),hs=t(ve);{var Qe=O=>{var f=ar(),we=a(f,!0);s(f),d(ie=>c(we,ie),[()=>Xs(e(n))],b),l(O,f)};_(hs,O=>{Xs(e(n))&&O(Qe)})}s(G);var Xe=t(G,2),D=a(Xe),J=a(D,!0);s(D);var Me=t(D,2);const je=b(()=>e(n).status==="passed"?"pass":"fail");Pt(Me,{get variant(){return e(je)},children:(O,f)=>{Ua();var we=rs();d(()=>c(we,e(n).status)),l(O,we)},$$slots:{default:!0}}),s(Xe),s(I);var $e=t(I,2);Se($e,5,()=>e(n).scenarioGroups,Be,(O,f,we)=>{var ie=ur();const $s=b(()=>`${x}-${e(f).key}`),Gs=b(()=>e(fe).has(e($s))),Ba=b(()=>e(f).scenarios.some(ea));var fs=a(ie),Ze=a(fs),Hs=a(Ze);aa(Hs,{get status(){return e(f).status}});var qs=t(Hs,2),Ns=a(qs),Vs=t(Ns);{var Ea=w=>{var u=tr(),pe=a(u,!0);s(u),d(Q=>c(pe,Q),[()=>qt(e(f).scenarios.length)],b),l(w,u)};_(Vs,w=>{e(f).scenarios.length>1&&w(Ea)})}var La=t(Vs,2);{var Ca=w=>{var u=rr();C(u,"title",yt);var pe=a(u,!0);s(u),d(Q=>c(pe,Q),[()=>xt(e(f).scenarios[0].attempts)],b),l(w,u)};_(La,w=>{var u;((u=e(f).scenarios[0])==null?void 0:u.attempts)>1&&w(Ca)})}s(qs);var ys=t(qs,2);Se(ys,5,()=>e(f).tags,Be,(w,u)=>{Mt(w,{get tag(){return e(u)}})}),s(ys);var xs=t(ys,2),Ta=a(xs,!0);s(xs);var Aa=t(xs,2);s(Ze);var Ra=t(Ze,2);{var Pa=w=>{var u=lr();C(u,"title",kt);var pe=t(a(u));pe.nodeValue=` ${sa}`,s(u),N("click",u,()=>Ss(e(f).scenarios[0])),l(w,u)};_(Ra,w=>{e(Ba)&&e(f).scenarios.length===1&&w(Pa)})}s(fs);var Ia=t(fs,2);{var Da=w=>{var u=dr();Se(u,5,()=>e(f).scenarios,Be,(pe,Q,Oa)=>{var zs=pr(),Ks=ae(zs);{var Ma=Ge=>{var M=cr(),se=a(M);aa(se,{get status(){return e(Q).status}});var de=t(se,2),es=a(de,!0);s(de);var be=t(de,2),He=a(be,!0);s(be);var ks=t(be,2);{var ss=ue=>{var X=nr(),ms=t(a(X));ms.nodeValue=` ${sa}`,s(X),N("click",X,()=>Ss(e(Q))),l(ue,X)};_(ks,ue=>{ea(e(Q))&&ue(ss)})}s(M),d((ue,X)=>{c(es,ue),c(He,X)},[()=>Ct(Oa+1),()=>ts(e(Q).duration)],b),l(Ge,M)};_(Ks,Ge=>{e(f).scenarios.length>1&&Ge(Ma)})}var ja=t(Ks,2);Se(ja,1,()=>e(Q).steps,Be,(Ge,M)=>{var se=ir(),de=a(se),es=a(de);ra(es,{get status(){return e(M).status}});var be=t(es,2);ta(be,{get keyword(){return e(M).keyword}});var He=t(be,2),ks=a(He,!0);s(He);var ss=t(He,2),ue=a(ss,!0);s(ss),s(de);var X=t(de,2);{var ms=Z=>{var _e=or(),as=a(_e,!0);s(_e),d(()=>c(as,e(M).error)),l(Z,_e)};_(X,Z=>{e(M).error&&Z(ms)})}var $a=t(X,2);{var Ga=Z=>{var _e=vr(),as=a(_e);as.textContent=Tt;var Ys=t(as,2);C(Ys,"alt",At),s(_e),d(Ha=>C(Ys,"src",Ha),[()=>Js(e(M).screenshot)],b),l(Z,_e)};_($a,Z=>{e(M).screenshot&&Z(Ga)})}s(se),d(Z=>{k(se,"step-fail",e(M).status==="failed"),k(se,"step-skip",e(M).status==="skipped"||e(M).status==="pending"),c(ks,e(M).name),c(ue,Z)},[()=>ts(e(M).duration)],b),l(Ge,se)}),l(pe,zs)}),s(u),Fs(3,u,()=>Xa,()=>({duration:200})),l(w,u)};_(Ia,w=>{e(Gs)&&w(Da)})}s(ie),d((w,u)=>{C(ie,"style",w),k(ie,"scenario-fail",e(f).status==="failed"),c(Ns,`${e(f).name??""} `),c(Ta,u),k(Aa,"rotated",e(Gs))},[()=>Zs(x*5+we,40),()=>ts(e(f).duration)],b),N("click",Ze,()=>pa(e($s))),l(O,ie)}),s($e),s(A),d((O,f)=>{C(A,"style",O),k(A,"feature-pass",e(n).status==="passed"),k(A,"feature-fail",e(n).status!=="passed"),c(ve,` ${e(n).name??""} `),C(D,"title",e(n).uri),c(J,f)},[()=>Zs(x,60),()=>ot(e(n).uri)],b),l(v,A)}),d((v,n,x,A)=>{k(U,"pass",e(m)),k(U,"fail",!e(m)),k(ne,"pass-bg",e(m)),k(ne,"fail-bg",!e(m)),c(cs,e(m)?mt:wt),c(vs,e(q).tags),c(is,v),c(Ue,n),c(me,` ${e(q).browser??Us[0].id??""}`),c(ha,e(he)),c(xa,x),c(ma,e(q).runners),c(wa,` ${A??""}`)},[()=>vt(e(q).triggerType),()=>new Date(e(q).createdAt).toLocaleString(),()=>ts(e($)),()=>at(e(q).runners,"runner")],b),l(ee,ye)};_(F,ee=>{e(q)?ee(Te,!1):ee(Ce)},!0)}l(r,y)};_(As,r=>{e(ls)?r(da):r(ua,!1)})}var _a=t(As,2);{var ga=r=>{var y=xr(),F=a(y),Ce=a(F),Te=a(Ce),ee=a(Te,!0);s(Te);var ye=t(Te,2);s(Ce);var U=t(Ce,2),Ke=a(U);{var Ae=p=>{var T=hr();d((me,Je)=>{C(T,"src",me),C(T,"alt",Je)},[()=>Js(e(K).screenshot),()=>bt(e(L)+1)],b),l(p,T)},ne=p=>{var T=fr();T.textContent=St,l(p,T)};_(Ke,p=>{var T;(T=e(K))!=null&&T.screenshot?p(Ae):p(ne,!1)})}s(U);var Re=t(U,2),ce=a(Re);et(ce),s(Re);var Pe=t(Re,2),Ie=a(Pe);const De=b(()=>{var p;return((p=e(K))==null?void 0:p.status)??"skipped"});ra(Ie,{get status(){return e(De)}});var xe=t(Ie,2);const cs=b(()=>{var p;return((p=e(K))==null?void 0:p.keyword)??""});ta(xe,{get keyword(){return e(cs)}});var Ye=t(xe,2),os=a(Ye,!0);s(Ye),s(Pe);var Fe=t(Pe,2),ke=a(Fe),W=t(ke,2),vs=a(W);{var Oe=p=>{var T=qr();l(p,T)},is=p=>{var T=yr();l(p,T)};_(vs,p=>{e(Le)?p(Oe):p(is,!1)})}s(W);var oe=t(W,2),Ue=t(oe,2),We=a(Ue,!0);s(Ue),s(Fe),s(F),s(y),d((p,T)=>{var me;c(ee,e(re).name),C(ce,"max",e(P).length-1),st(ce,e(L)),C(ce,"style",`--fill: ${(e(P).length>1?e(L)/(e(P).length-1)*100:0)??""}%`),c(os,(me=e(K))==null?void 0:me.name),ke.disabled=e(L)===0,C(W,"title",p),oe.disabled=e(L)===e(P).length-1,c(We,T)},[()=>_t(e(Le)),()=>gt(e(L)+1,e(P).length)],b),N("click",ye,ns),N("input",ce,p=>{le(),g(L,Number(p.target.value))}),N("click",ke,Es),N("click",W,Bs),N("click",oe,Ls),N("click",F,Ws(function(p){tt.call(this,j,p)})),Fs(3,y,()=>Qa,()=>({duration:150})),N("click",y,ns),l(r,y)};_(_a,r=>{e(Ve)&&e(re)&&r(ga)})}l(z,Cs),oa(),i()}export{Mr as component};
@@ -1,23 +1 @@
1
- /*
2
- * This file is part of Plum.
3
- *
4
- * Plum is free software: you can redistribute it and/or modify
5
- * it under the terms of the GNU General Public License as published by
6
- * the Free Software Foundation, either version 3 of the License, or
7
- * (at your option) any later version.
8
- *
9
- * Plum is distributed in the hope that it will be useful,
10
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- * GNU General Public License for more details.
13
- *
14
- * You should have received a copy of the GNU General Public License
15
- * along with Plum. If not, see https://www.gnu.org/licenses/.
16
- */
17
-
18
- /*
19
- * This file is part of Plum.
20
- * Licensed under the MIT License. See LICENSE file in the project root for details.
21
- */
22
-
23
- import{h as ve,a as v,t as p,c as ot,s as E,e as bt,b as it,n as Mt}from"../chunks/CMBQQ9RZ.js";import{i as oe}from"../chunks/CKDtmZUQ.js";import{h as Ct,_ as ie,a as ce,ak as de,al as _e,Z as pe,a7 as ge,a6 as ue,a8 as fe,U as he,p as me,am as xe,an as Ee,l as S,b as ke,f as T,c as be,$ as Le,g as t,y as Pt,s as L,ao as ye,j as l,m as w,d as n,k as r,t as m,x as tt,n as ct}from"../chunks/BAACMRH5.js";import{i as k,s as Ie,a as Lt}from"../chunks/CgnwuKKO.js";import{e as Vt,t as A,a as yt,f as we,i as Te,c as Ot}from"../chunks/TOCyHP97.js";import{t as It,s as et,u as Se}from"../chunks/4N1zIH8t.js";import{b as jt}from"../chunks/2zMvi6fR.js";import{g as dt}from"../chunks/DtGXv8RA.js";import{p as Re}from"../chunks/DW_iTTZe.js";import{b as Ae,c as Be,d as Ne}from"../chunks/DW85KPAh.js";import{r as wt}from"../chunks/DDblTLLE.js";import{e as Ce,g as Pe,h as Ve,i as Oe,V as je,j as De,k as Ue,l as Ge,w as $e,C as We,m as He,n as Me,o as Fe,q as qe,F as Ye,W as Ke,s as Ze,u as ze,v as Je,A as Qe,x as Xe,y as Dt,z as Ut,B as Gt,E as $t}from"../chunks/B98sHkeB.js";import{t as ts}from"../chunks/D2gYTmAA.js";import{B as es}from"../chunks/oN0Z3NSF.js";import{B as Wt}from"../chunks/CuqnZUex.js";function Ht(_t,pt,K){Ct&&ie();var st=_t,Z=he,B,at=ce()?de:_e;pe(()=>{at(Z,Z=pt())&&(B&&ge(B),B=ue(()=>K(st)))}),Ct&&(st=fe)}var ss=p('<div class="idle-state svelte-4v9t4g"><div class="idle-icon svelte-4v9t4g"><svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-4v9t4g"><circle cx="12" cy="12" r="10" class="svelte-4v9t4g"></circle><polyline points="12 6 12 12 16 14" class="svelte-4v9t4g"></polyline></svg></div> <h2 class="svelte-4v9t4g"></h2> <p class="svelte-4v9t4g"></p> <a href="/reports" class="idle-link svelte-4v9t4g"></a></div>'),as=p('<a class="cron-task-chip svelte-4v9t4g"> </a>'),rs=p('<div class="cron-running-state svelte-4v9t4g"><div class="cron-running-icon svelte-4v9t4g"><span class="cron-pulse-dot svelte-4v9t4g"></span></div> <h2 class="svelte-4v9t4g"> </h2> <div class="cron-task-list svelte-4v9t4g"></div> <p class="svelte-4v9t4g"></p></div>'),ns=p('<span class="live-badge svelte-4v9t4g"><span class="live-dot svelte-4v9t4g"></span> </span>'),ls=p('<span class="run-title-label svelte-4v9t4g"> </span> <span class="run-sep svelte-4v9t4g">·</span>',1),vs=p('<span class="run-sep svelte-4v9t4g">·</span> <span class="run-detail svelte-4v9t4g"> </span>',1),os=p('<div class="run-info svelte-4v9t4g"><!> <span class="run-tag-label svelte-4v9t4g"> </span> <span class="run-sep svelte-4v9t4g">·</span> <span class="run-detail svelte-4v9t4g"> </span> <span class="run-sep svelte-4v9t4g">·</span> <span class="run-detail svelte-4v9t4g"> </span> <!></div>'),is=p('<button class="cancel-btn svelte-4v9t4g"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-4v9t4g"><rect x="3" y="3" width="18" height="18" rx="2" class="svelte-4v9t4g"></rect><line x1="9" y1="9" x2="15" y2="15" class="svelte-4v9t4g"></line><line x1="15" y1="9" x2="9" y2="15" class="svelte-4v9t4g"></line></svg> </button>'),cs=Mt('<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-4v9t4g"><polyline points="20 6 9 17 4 12" class="svelte-4v9t4g"></polyline></svg> ',1),ds=Mt('<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-4v9t4g"><line x1="18" y1="6" x2="6" y2="18" class="svelte-4v9t4g"></line><line x1="6" y1="6" x2="18" y2="18" class="svelte-4v9t4g"></line></svg> ',1),_s=p('<div class="completion-bar svelte-4v9t4g"><div class="completion-left svelte-4v9t4g"><!></div> <div class="completion-right svelte-4v9t4g"><span class="redirect-hint svelte-4v9t4g"> </span> <button class="view-now-btn svelte-4v9t4g"> <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-4v9t4g"><line x1="5" y1="12" x2="19" y2="12" class="svelte-4v9t4g"></line><polyline points="12 5 19 12 12 19" class="svelte-4v9t4g"></polyline></svg></button></div></div>'),ps=p('<span class="tab-count svelte-4v9t4g"> </span>'),gs=p('<button class="lane-tab svelte-4v9t4g"><span class="tab-dot svelte-4v9t4g"></span> <!></button>'),us=p('<div class="lane-tabs svelte-4v9t4g"></div>'),fs=p('<img class="live-shot svelte-4v9t4g">'),hs=p('<!> <div class="step-overlay svelte-4v9t4g"><span class="step-keyword svelte-4v9t4g"></span> <span class="step-name svelte-4v9t4g"> </span></div>',1),ms=p('<div class="awaiting-state svelte-4v9t4g"><svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" opacity="0.25" class="svelte-4v9t4g"><rect x="2" y="5" width="20" height="14" rx="2" class="svelte-4v9t4g"></rect><circle cx="12" cy="12" r="3" class="svelte-4v9t4g"></circle></svg> <span class="svelte-4v9t4g"> </span></div>'),xs=p('<img class="live-shot svelte-4v9t4g">'),Es=p('<!> <div class="step-overlay svelte-4v9t4g"><span class="step-keyword svelte-4v9t4g"></span> <span class="step-name svelte-4v9t4g"> </span></div>',1),ks=p('<div class="awaiting-state svelte-4v9t4g"><svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" opacity="0.25" class="svelte-4v9t4g"><rect x="2" y="5" width="20" height="14" rx="2" class="svelte-4v9t4g"></rect><circle cx="12" cy="12" r="3" class="svelte-4v9t4g"></circle></svg> <span class="svelte-4v9t4g"> </span></div>'),bs=p('<pre class="terminal svelte-4v9t4g"> </pre>'),Ls=p('<pre class="terminal svelte-4v9t4g"> </pre>'),ys=p('<div class="run-header svelte-4v9t4g"><div class="header-left svelte-4v9t4g"><!> <!></div> <!></div> <!> <!> <div class="run-view svelte-4v9t4g"><div class="screenshot-panel svelte-4v9t4g"><!></div> <div class="terminal-panel svelte-4v9t4g"><div class="terminal-bar svelte-4v9t4g"><span class="dot red svelte-4v9t4g"></span> <span class="dot yellow svelte-4v9t4g"></span> <span class="dot green svelte-4v9t4g"></span> <span class="terminal-label svelte-4v9t4g"><!></span></div> <!></div></div>',1),Is=p("<!> <!>",1);function $s(_t,pt){me(pt,!1);const[K,st]=Ie(),Z=()=>Lt(Re,"$page",K),B=()=>Lt(Ae,"$backgroundRuns",K),at=()=>Lt(Be,"$runnerState",K),V=w(),s=w(),U=w(),N=w(),G=w(),Tt=w(),C=w(),Ft={output:"",running:!1,testCompleted:!1,latestReportId:null,status:"idle",lanes:[],currentRun:null,latestScreenshot:null};let $=w(),W=w(),O=w(null),z=w(It/1e3),j=w(null),P=w(null);xe(()=>{t($)&&Pt($,t($).scrollTop=t($).scrollHeight),t(W)&&Pt(W,t(W).scrollTop=t(W).scrollHeight)}),Ee(()=>{t(O)&&clearTimeout(t(O)),t(j)&&clearInterval(t(j))});function qt(){t(O)&&clearTimeout(t(O)),t(j)&&clearInterval(t(j)),dt(wt(t(s).latestReportId))}S(()=>Z(),()=>{L(V,Z().url.searchParams.get("run"))}),S(()=>(t(V),B(),at()),()=>{L(s,t(V)?B()[t(V)]??Ft:at())}),S(()=>t(s),()=>{L(U,t(s).lanes.length>0)}),S(()=>B(),()=>{L(N,Object.entries(B()).filter(([,y])=>y.running))}),S(()=>(t(V),t(s),t(N)),()=>{L(G,!t(V)&&!t(s).running&&!t(s).testCompleted&&t(N).length>0)}),S(()=>(t(s),t(G)),()=>{L(Tt,!t(s).running&&!t(s).testCompleted&&!t(G))}),S(()=>(t(G),t(N),dt),()=>{t(G)&&t(N).length===1&&dt(`/reports/live?run=${t(N)[0][0]}`)}),S(()=>(t(s),t(P)),()=>{t(s).lanes.length===0?L(P,null):t(s).lanes.find(y=>y.id===t(P))||L(P,t(s).lanes[0].id)}),S(()=>(t(s),t(P)),()=>{L(C,t(s).lanes.find(y=>y.id===t(P))??null)}),S(()=>(t(s),t(O),t(z),t(j),wt),()=>{t(s).testCompleted&&t(s).latestReportId&&!t(O)&&(L(z,It/1e3),L(j,setInterval(()=>{ye(z,-1),t(z)<=0&&clearInterval(t(j))},1e3)),L(O,setTimeout(()=>dt(wt(t(s).latestReportId)),It)))}),ke(),oe();var St=Is();ve(y=>{Le.title=Ce});var Rt=T(St);es(Rt,{href:"/reports",label:Pe});var Yt=l(Rt,2);{var Kt=y=>{var H=ss(),rt=l(n(H),2);rt.textContent=Ve;var nt=l(rt,2);nt.textContent=Oe;var gt=l(nt,2);gt.textContent=je,r(H),v(y,H)},Zt=y=>{var H=ot(),rt=T(H);{var nt=M=>{var F=rs(),R=l(n(F),2),J=n(R,!0);r(R);var q=l(R,2);Vt(q,5,()=>t(N),([D,Q])=>D,(D,Q)=>{let ft=()=>t(Q)[0],lt=()=>t(Q)[1];var Y=as(),vt=n(Y);r(Y),m(ht=>{et(Y,"href",`/reports/live?run=${ft()??""}`),E(vt,`${lt().label??""} · ${ht??""}`)},[()=>ts(lt().kind)],tt),v(D,Y)}),r(q);var ut=l(q,2);ut.textContent=De,r(F),m(D=>E(J,D),[()=>Ue(t(N).length)],tt),v(M,F)},gt=M=>{var F=ys(),R=T(F),J=n(R),q=n(J);{var ut=a=>{var e=ns(),d=l(n(e),1,!0);d.nodeValue=Ge,r(e),v(a,e)},D=a=>{var e=ot(),d=T(e);{var c=i=>{Wt(i,{variant:"pass",children:(o,g)=>{ct();var _=it();_.nodeValue=Ze,v(o,_)},$$slots:{default:!0}})},u=i=>{Wt(i,{variant:"fail",children:(o,g)=>{ct();var _=it();_.nodeValue=ze,v(o,_)},$$slots:{default:!0}})};k(d,i=>{t(s).status==="pass"?i(c):i(u,!1)},!0)}v(a,e)};k(q,a=>{t(s).running?a(ut):a(D,!1)})}var Q=l(q,2);{var ft=a=>{var e=os(),d=n(e);{var c=f=>{var h=ls(),X=T(h),kt=n(X,!0);r(X),ct(2),m(()=>E(kt,t(s).currentRun.runTitle)),v(f,h)};k(d,f=>{t(s).currentRun.runTitle&&f(c)})}var u=l(d,2),i=n(u,!0);r(u);var o=l(u,4),g=n(o,!0);r(o);var _=l(o,4),x=n(_,!0);r(_);var I=l(_,2);{var b=f=>{var h=vs(),X=l(T(h),2),kt=n(X,!0);r(X),m(le=>E(kt,le),[()=>Je(t(s).lanes.length)],tt),v(f,h)};k(I,f=>{t(s).lanes.length>1&&f(b)})}r(e),m(f=>{E(i,t(s).currentRun.tag||Se),E(g,f),E(x,t(s).currentRun.browser)},[()=>$e(t(s).currentRun.workers)],tt),v(a,e)};k(Q,a=>{t(s).currentRun&&a(ft)})}r(J);var lt=l(J,2);{var Y=a=>{var e=is(),d=l(n(e));d.nodeValue=` ${We}`,r(e),bt("click",e,function(...c){var u;(u=Ne)==null||u.apply(this,c)}),v(a,e)};k(lt,a=>{t(s).running&&!t(V)&&a(Y)})}r(R);var vt=l(R,2);{var ht=a=>{var e=_s(),d=n(e),c=n(d);{var u=b=>{var f=cs(),h=l(T(f),1,!0);h.nodeValue=Qe,v(b,f)},i=b=>{var f=ds(),h=l(T(f),1,!0);h.nodeValue=Xe,v(b,f)};k(c,b=>{t(s).status==="pass"?b(u):b(i,!1)})}r(d);var o=l(d,2),g=n(o),_=n(g,!0);r(g);var x=l(g,2),I=n(x);I.nodeValue=`${He} `,ct(),r(x),r(o),r(e),m(b=>{A(e,"pass-bar",t(s).status==="pass"),A(e,"fail-bar",t(s).status==="fail"),E(_,b)},[()=>Me(t(z))],tt),bt("click",x,qt),yt(3,e,()=>we,()=>({y:-8,duration:250})),v(a,e)};k(vt,a=>{t(s).testCompleted&&t(s).latestReportId&&a(ht)})}var At=l(vt,2);{var zt=a=>{var e=us();Vt(e,5,()=>t(s).lanes,Te,(d,c)=>{var u=gs(),i=n(u),o=l(i),g=l(o);{var _=x=>{var I=ps(),b=n(I,!0);r(I),m(()=>E(b,t(c).testCount)),v(x,I)};k(g,x=>{t(c).testCount&&x(_)})}r(u),m(()=>{A(u,"active",t(P)===t(c).id),A(i,"tab-dot-running",t(c).status==="running"),A(i,"tab-dot-done",t(c).status==="done"),A(i,"tab-dot-error",t(c).status==="error"),E(o,` ${t(c).name??""} `)}),bt("click",u,()=>L(P,t(c).id)),v(d,u)}),r(e),v(a,e)};k(At,a=>{t(U)&&a(zt)})}var mt=l(At,2),xt=n(mt),Jt=n(xt);{var Qt=a=>{var e=ot(),d=T(e);{var c=i=>{var o=hs(),g=T(o);Ht(g,()=>t(C).latestScreenshot.data,f=>{var h=fs();et(h,"alt",$t),m(()=>et(h,"src",`data:image/jpeg;base64,${t(C).latestScreenshot.data??""}`)),yt(1,h,()=>Ot,()=>({duration:120})),v(f,h)});var _=l(g,2),x=n(_);x.textContent=Dt;var I=l(x,2),b=n(I,!0);r(I),r(_),m(()=>E(b,t(C).latestScreenshot.stepName)),v(i,o)},u=i=>{var o=ms(),g=l(n(o),2),_=n(g,!0);r(g),r(o),m(()=>{var x;return E(_,((x=t(C))==null?void 0:x.status)==="running"?Ut:Gt)}),v(i,o)};k(d,i=>{var o;(o=t(C))!=null&&o.latestScreenshot?i(c):i(u,!1)})}v(a,e)},Xt=a=>{var e=ot(),d=T(e);{var c=i=>{var o=Es(),g=T(o);Ht(g,()=>t(s).latestScreenshot.data,f=>{var h=xs();et(h,"alt",$t),m(()=>et(h,"src",`data:image/jpeg;base64,${t(s).latestScreenshot.data??""}`)),yt(1,h,()=>Ot,()=>({duration:120})),v(f,h)});var _=l(g,2),x=n(_);x.textContent=Dt;var I=l(x,2),b=n(I,!0);r(I),r(_),m(()=>E(b,t(s).latestScreenshot.stepName)),v(i,o)},u=i=>{var o=ks(),g=l(n(o),2),_=n(g,!0);r(g),r(o),m(()=>E(_,t(s).running?Ut:Gt)),v(i,o)};k(d,i=>{t(s).latestScreenshot?i(c):i(u,!1)},!0)}v(a,e)};k(Jt,a=>{t(U)?a(Qt):a(Xt,!1)})}r(xt);var Bt=l(xt,2),Et=n(Bt),Nt=l(n(Et),6),te=n(Nt);{var ee=a=>{var e=it();m(()=>{var d;return E(e,((d=t(C))==null?void 0:d.name)??Fe)}),v(a,e)},se=a=>{var e=it();m(()=>E(e,t(s).running?qe:Ye)),v(a,e)};k(te,a=>{t(U)?a(ee):a(se,!1)})}r(Nt),r(Et);var ae=l(Et,2);{var re=a=>{var e=bs(),d=n(e,!0);r(e),jt(e,c=>L(W,c),()=>t(W)),m(()=>{var c;return E(d,((c=t(C))==null?void 0:c.logs)||Ke)}),v(a,e)},ne=a=>{var e=Ls(),d=n(e,!0);r(e),jt(e,c=>L($,c),()=>t($)),m(()=>E(d,t(s).output)),v(a,e)};k(ae,a=>{t(U)?a(re):a(ne,!1)})}r(Bt),r(mt),m(()=>{A(R,"header-pass",t(s).status==="pass"),A(R,"header-fail",t(s).status==="fail"),A(mt,"no-top-radius",t(U))}),v(M,F)};k(rt,M=>{t(G)?M(nt):M(gt,!1)},!0)}v(y,H)};k(Yt,y=>{t(Tt)?y(Kt):y(Zt,!1)})}v(_t,St),be(),st()}export{$s as component};
1
+ import{h as ve,a as v,t as p,c as ot,s as E,e as bt,b as it,n as Mt}from"../chunks/CMBQQ9RZ.js";import{i as oe}from"../chunks/CKDtmZUQ.js";import{h as Ct,_ as ie,a as ce,ak as de,al as _e,Z as pe,a7 as ge,a6 as ue,a8 as fe,U as he,p as me,am as xe,an as Ee,l as S,b as ke,f as T,c as be,$ as Le,g as t,y as Pt,s as L,ao as ye,j as l,m as w,d as n,k as r,t as m,x as tt,n as ct}from"../chunks/BAACMRH5.js";import{i as k,s as Ie,a as Lt}from"../chunks/CgnwuKKO.js";import{e as Vt,t as A,a as yt,f as we,i as Te,c as Ot}from"../chunks/TOCyHP97.js";import{u as It,s as et,v as Se}from"../chunks/CUC98kMZ.js";import{b as jt}from"../chunks/2zMvi6fR.js";import{g as dt}from"../chunks/DMyTUV-Y.js";import{p as Re}from"../chunks/nURnIknV.js";import{b as Ae,c as Be,d as Ne}from"../chunks/DHM6H-es.js";import{r as wt}from"../chunks/DbgD7JLa.js";import{e as Ce,g as Pe,h as Ve,i as Oe,V as je,j as De,k as Ue,l as Ge,w as $e,C as We,m as He,n as Me,o as Fe,q as qe,F as Ye,W as Ke,s as Ze,u as ze,v as Je,A as Qe,x as Xe,y as Dt,z as Ut,B as Gt,E as $t}from"../chunks/Co3xKhEp.js";import{t as ts}from"../chunks/DSLBMEpr.js";import{B as es}from"../chunks/CGeZlCaI.js";import{B as Wt}from"../chunks/CuqnZUex.js";function Ht(_t,pt,K){Ct&&ie();var st=_t,Z=he,B,at=ce()?de:_e;pe(()=>{at(Z,Z=pt())&&(B&&ge(B),B=ue(()=>K(st)))}),Ct&&(st=fe)}var ss=p('<div class="idle-state svelte-4v9t4g"><div class="idle-icon svelte-4v9t4g"><svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-4v9t4g"><circle cx="12" cy="12" r="10" class="svelte-4v9t4g"></circle><polyline points="12 6 12 12 16 14" class="svelte-4v9t4g"></polyline></svg></div> <h2 class="svelte-4v9t4g"></h2> <p class="svelte-4v9t4g"></p> <a href="/reports" class="idle-link svelte-4v9t4g"></a></div>'),as=p('<a class="cron-task-chip svelte-4v9t4g"> </a>'),rs=p('<div class="cron-running-state svelte-4v9t4g"><div class="cron-running-icon svelte-4v9t4g"><span class="cron-pulse-dot svelte-4v9t4g"></span></div> <h2 class="svelte-4v9t4g"> </h2> <div class="cron-task-list svelte-4v9t4g"></div> <p class="svelte-4v9t4g"></p></div>'),ns=p('<span class="live-badge svelte-4v9t4g"><span class="live-dot svelte-4v9t4g"></span> </span>'),ls=p('<span class="run-title-label svelte-4v9t4g"> </span> <span class="run-sep svelte-4v9t4g">·</span>',1),vs=p('<span class="run-sep svelte-4v9t4g">·</span> <span class="run-detail svelte-4v9t4g"> </span>',1),os=p('<div class="run-info svelte-4v9t4g"><!> <span class="run-tag-label svelte-4v9t4g"> </span> <span class="run-sep svelte-4v9t4g">·</span> <span class="run-detail svelte-4v9t4g"> </span> <span class="run-sep svelte-4v9t4g">·</span> <span class="run-detail svelte-4v9t4g"> </span> <!></div>'),is=p('<button class="cancel-btn svelte-4v9t4g"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-4v9t4g"><rect x="3" y="3" width="18" height="18" rx="2" class="svelte-4v9t4g"></rect><line x1="9" y1="9" x2="15" y2="15" class="svelte-4v9t4g"></line><line x1="15" y1="9" x2="9" y2="15" class="svelte-4v9t4g"></line></svg> </button>'),cs=Mt('<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-4v9t4g"><polyline points="20 6 9 17 4 12" class="svelte-4v9t4g"></polyline></svg> ',1),ds=Mt('<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-4v9t4g"><line x1="18" y1="6" x2="6" y2="18" class="svelte-4v9t4g"></line><line x1="6" y1="6" x2="18" y2="18" class="svelte-4v9t4g"></line></svg> ',1),_s=p('<div class="completion-bar svelte-4v9t4g"><div class="completion-left svelte-4v9t4g"><!></div> <div class="completion-right svelte-4v9t4g"><span class="redirect-hint svelte-4v9t4g"> </span> <button class="view-now-btn svelte-4v9t4g"> <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-4v9t4g"><line x1="5" y1="12" x2="19" y2="12" class="svelte-4v9t4g"></line><polyline points="12 5 19 12 12 19" class="svelte-4v9t4g"></polyline></svg></button></div></div>'),ps=p('<span class="tab-count svelte-4v9t4g"> </span>'),gs=p('<button class="lane-tab svelte-4v9t4g"><span class="tab-dot svelte-4v9t4g"></span> <!></button>'),us=p('<div class="lane-tabs svelte-4v9t4g"></div>'),fs=p('<img class="live-shot svelte-4v9t4g">'),hs=p('<!> <div class="step-overlay svelte-4v9t4g"><span class="step-keyword svelte-4v9t4g"></span> <span class="step-name svelte-4v9t4g"> </span></div>',1),ms=p('<div class="awaiting-state svelte-4v9t4g"><svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" opacity="0.25" class="svelte-4v9t4g"><rect x="2" y="5" width="20" height="14" rx="2" class="svelte-4v9t4g"></rect><circle cx="12" cy="12" r="3" class="svelte-4v9t4g"></circle></svg> <span class="svelte-4v9t4g"> </span></div>'),xs=p('<img class="live-shot svelte-4v9t4g">'),Es=p('<!> <div class="step-overlay svelte-4v9t4g"><span class="step-keyword svelte-4v9t4g"></span> <span class="step-name svelte-4v9t4g"> </span></div>',1),ks=p('<div class="awaiting-state svelte-4v9t4g"><svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" opacity="0.25" class="svelte-4v9t4g"><rect x="2" y="5" width="20" height="14" rx="2" class="svelte-4v9t4g"></rect><circle cx="12" cy="12" r="3" class="svelte-4v9t4g"></circle></svg> <span class="svelte-4v9t4g"> </span></div>'),bs=p('<pre class="terminal svelte-4v9t4g"> </pre>'),Ls=p('<pre class="terminal svelte-4v9t4g"> </pre>'),ys=p('<div class="run-header svelte-4v9t4g"><div class="header-left svelte-4v9t4g"><!> <!></div> <!></div> <!> <!> <div class="run-view svelte-4v9t4g"><div class="screenshot-panel svelte-4v9t4g"><!></div> <div class="terminal-panel svelte-4v9t4g"><div class="terminal-bar svelte-4v9t4g"><span class="dot red svelte-4v9t4g"></span> <span class="dot yellow svelte-4v9t4g"></span> <span class="dot green svelte-4v9t4g"></span> <span class="terminal-label svelte-4v9t4g"><!></span></div> <!></div></div>',1),Is=p("<!> <!>",1);function $s(_t,pt){me(pt,!1);const[K,st]=Ie(),Z=()=>Lt(Re,"$page",K),B=()=>Lt(Ae,"$backgroundRuns",K),at=()=>Lt(Be,"$runnerState",K),V=w(),s=w(),U=w(),N=w(),G=w(),Tt=w(),C=w(),Ft={output:"",running:!1,testCompleted:!1,latestReportId:null,status:"idle",lanes:[],currentRun:null,latestScreenshot:null};let $=w(),W=w(),O=w(null),z=w(It/1e3),j=w(null),P=w(null);xe(()=>{t($)&&Pt($,t($).scrollTop=t($).scrollHeight),t(W)&&Pt(W,t(W).scrollTop=t(W).scrollHeight)}),Ee(()=>{t(O)&&clearTimeout(t(O)),t(j)&&clearInterval(t(j))});function qt(){t(O)&&clearTimeout(t(O)),t(j)&&clearInterval(t(j)),dt(wt(t(s).latestReportId))}S(()=>Z(),()=>{L(V,Z().url.searchParams.get("run"))}),S(()=>(t(V),B(),at()),()=>{L(s,t(V)?B()[t(V)]??Ft:at())}),S(()=>t(s),()=>{L(U,t(s).lanes.length>0)}),S(()=>B(),()=>{L(N,Object.entries(B()).filter(([,y])=>y.running))}),S(()=>(t(V),t(s),t(N)),()=>{L(G,!t(V)&&!t(s).running&&!t(s).testCompleted&&t(N).length>0)}),S(()=>(t(s),t(G)),()=>{L(Tt,!t(s).running&&!t(s).testCompleted&&!t(G))}),S(()=>(t(G),t(N),dt),()=>{t(G)&&t(N).length===1&&dt(`/reports/live?run=${t(N)[0][0]}`)}),S(()=>(t(s),t(P)),()=>{t(s).lanes.length===0?L(P,null):t(s).lanes.find(y=>y.id===t(P))||L(P,t(s).lanes[0].id)}),S(()=>(t(s),t(P)),()=>{L(C,t(s).lanes.find(y=>y.id===t(P))??null)}),S(()=>(t(s),t(O),t(z),t(j),wt),()=>{t(s).testCompleted&&t(s).latestReportId&&!t(O)&&(L(z,It/1e3),L(j,setInterval(()=>{ye(z,-1),t(z)<=0&&clearInterval(t(j))},1e3)),L(O,setTimeout(()=>dt(wt(t(s).latestReportId)),It)))}),ke(),oe();var St=Is();ve(y=>{Le.title=Ce});var Rt=T(St);es(Rt,{href:"/reports",label:Pe});var Yt=l(Rt,2);{var Kt=y=>{var H=ss(),rt=l(n(H),2);rt.textContent=Ve;var nt=l(rt,2);nt.textContent=Oe;var gt=l(nt,2);gt.textContent=je,r(H),v(y,H)},Zt=y=>{var H=ot(),rt=T(H);{var nt=M=>{var F=rs(),R=l(n(F),2),J=n(R,!0);r(R);var q=l(R,2);Vt(q,5,()=>t(N),([D,Q])=>D,(D,Q)=>{let ft=()=>t(Q)[0],lt=()=>t(Q)[1];var Y=as(),vt=n(Y);r(Y),m(ht=>{et(Y,"href",`/reports/live?run=${ft()??""}`),E(vt,`${lt().label??""} · ${ht??""}`)},[()=>ts(lt().kind)],tt),v(D,Y)}),r(q);var ut=l(q,2);ut.textContent=De,r(F),m(D=>E(J,D),[()=>Ue(t(N).length)],tt),v(M,F)},gt=M=>{var F=ys(),R=T(F),J=n(R),q=n(J);{var ut=a=>{var e=ns(),d=l(n(e),1,!0);d.nodeValue=Ge,r(e),v(a,e)},D=a=>{var e=ot(),d=T(e);{var c=i=>{Wt(i,{variant:"pass",children:(o,g)=>{ct();var _=it();_.nodeValue=Ze,v(o,_)},$$slots:{default:!0}})},u=i=>{Wt(i,{variant:"fail",children:(o,g)=>{ct();var _=it();_.nodeValue=ze,v(o,_)},$$slots:{default:!0}})};k(d,i=>{t(s).status==="pass"?i(c):i(u,!1)},!0)}v(a,e)};k(q,a=>{t(s).running?a(ut):a(D,!1)})}var Q=l(q,2);{var ft=a=>{var e=os(),d=n(e);{var c=f=>{var h=ls(),X=T(h),kt=n(X,!0);r(X),ct(2),m(()=>E(kt,t(s).currentRun.runTitle)),v(f,h)};k(d,f=>{t(s).currentRun.runTitle&&f(c)})}var u=l(d,2),i=n(u,!0);r(u);var o=l(u,4),g=n(o,!0);r(o);var _=l(o,4),x=n(_,!0);r(_);var I=l(_,2);{var b=f=>{var h=vs(),X=l(T(h),2),kt=n(X,!0);r(X),m(le=>E(kt,le),[()=>Je(t(s).lanes.length)],tt),v(f,h)};k(I,f=>{t(s).lanes.length>1&&f(b)})}r(e),m(f=>{E(i,t(s).currentRun.tag||Se),E(g,f),E(x,t(s).currentRun.browser)},[()=>$e(t(s).currentRun.workers)],tt),v(a,e)};k(Q,a=>{t(s).currentRun&&a(ft)})}r(J);var lt=l(J,2);{var Y=a=>{var e=is(),d=l(n(e));d.nodeValue=` ${We}`,r(e),bt("click",e,function(...c){var u;(u=Ne)==null||u.apply(this,c)}),v(a,e)};k(lt,a=>{t(s).running&&!t(V)&&a(Y)})}r(R);var vt=l(R,2);{var ht=a=>{var e=_s(),d=n(e),c=n(d);{var u=b=>{var f=cs(),h=l(T(f),1,!0);h.nodeValue=Qe,v(b,f)},i=b=>{var f=ds(),h=l(T(f),1,!0);h.nodeValue=Xe,v(b,f)};k(c,b=>{t(s).status==="pass"?b(u):b(i,!1)})}r(d);var o=l(d,2),g=n(o),_=n(g,!0);r(g);var x=l(g,2),I=n(x);I.nodeValue=`${He} `,ct(),r(x),r(o),r(e),m(b=>{A(e,"pass-bar",t(s).status==="pass"),A(e,"fail-bar",t(s).status==="fail"),E(_,b)},[()=>Me(t(z))],tt),bt("click",x,qt),yt(3,e,()=>we,()=>({y:-8,duration:250})),v(a,e)};k(vt,a=>{t(s).testCompleted&&t(s).latestReportId&&a(ht)})}var At=l(vt,2);{var zt=a=>{var e=us();Vt(e,5,()=>t(s).lanes,Te,(d,c)=>{var u=gs(),i=n(u),o=l(i),g=l(o);{var _=x=>{var I=ps(),b=n(I,!0);r(I),m(()=>E(b,t(c).testCount)),v(x,I)};k(g,x=>{t(c).testCount&&x(_)})}r(u),m(()=>{A(u,"active",t(P)===t(c).id),A(i,"tab-dot-running",t(c).status==="running"),A(i,"tab-dot-done",t(c).status==="done"),A(i,"tab-dot-error",t(c).status==="error"),E(o,` ${t(c).name??""} `)}),bt("click",u,()=>L(P,t(c).id)),v(d,u)}),r(e),v(a,e)};k(At,a=>{t(U)&&a(zt)})}var mt=l(At,2),xt=n(mt),Jt=n(xt);{var Qt=a=>{var e=ot(),d=T(e);{var c=i=>{var o=hs(),g=T(o);Ht(g,()=>t(C).latestScreenshot.data,f=>{var h=fs();et(h,"alt",$t),m(()=>et(h,"src",`data:image/jpeg;base64,${t(C).latestScreenshot.data??""}`)),yt(1,h,()=>Ot,()=>({duration:120})),v(f,h)});var _=l(g,2),x=n(_);x.textContent=Dt;var I=l(x,2),b=n(I,!0);r(I),r(_),m(()=>E(b,t(C).latestScreenshot.stepName)),v(i,o)},u=i=>{var o=ms(),g=l(n(o),2),_=n(g,!0);r(g),r(o),m(()=>{var x;return E(_,((x=t(C))==null?void 0:x.status)==="running"?Ut:Gt)}),v(i,o)};k(d,i=>{var o;(o=t(C))!=null&&o.latestScreenshot?i(c):i(u,!1)})}v(a,e)},Xt=a=>{var e=ot(),d=T(e);{var c=i=>{var o=Es(),g=T(o);Ht(g,()=>t(s).latestScreenshot.data,f=>{var h=xs();et(h,"alt",$t),m(()=>et(h,"src",`data:image/jpeg;base64,${t(s).latestScreenshot.data??""}`)),yt(1,h,()=>Ot,()=>({duration:120})),v(f,h)});var _=l(g,2),x=n(_);x.textContent=Dt;var I=l(x,2),b=n(I,!0);r(I),r(_),m(()=>E(b,t(s).latestScreenshot.stepName)),v(i,o)},u=i=>{var o=ks(),g=l(n(o),2),_=n(g,!0);r(g),r(o),m(()=>E(_,t(s).running?Ut:Gt)),v(i,o)};k(d,i=>{t(s).latestScreenshot?i(c):i(u,!1)},!0)}v(a,e)};k(Jt,a=>{t(U)?a(Qt):a(Xt,!1)})}r(xt);var Bt=l(xt,2),Et=n(Bt),Nt=l(n(Et),6),te=n(Nt);{var ee=a=>{var e=it();m(()=>{var d;return E(e,((d=t(C))==null?void 0:d.name)??Fe)}),v(a,e)},se=a=>{var e=it();m(()=>E(e,t(s).running?qe:Ye)),v(a,e)};k(te,a=>{t(U)?a(ee):a(se,!1)})}r(Nt),r(Et);var ae=l(Et,2);{var re=a=>{var e=bs(),d=n(e,!0);r(e),jt(e,c=>L(W,c),()=>t(W)),m(()=>{var c;return E(d,((c=t(C))==null?void 0:c.logs)||Ke)}),v(a,e)},ne=a=>{var e=Ls(),d=n(e,!0);r(e),jt(e,c=>L($,c),()=>t($)),m(()=>E(d,t(s).output)),v(a,e)};k(ae,a=>{t(U)?a(re):a(ne,!1)})}r(Bt),r(mt),m(()=>{A(R,"header-pass",t(s).status==="pass"),A(R,"header-fail",t(s).status==="fail"),A(mt,"no-top-radius",t(U))}),v(M,F)};k(rt,M=>{t(G)?M(nt):M(gt,!1)},!0)}v(y,H)};k(Yt,y=>{t(Tt)?y(Kt):y(Zt,!1)})}v(_t,St),be(),st()}export{$s as component};
@@ -1,23 +1 @@
1
- /*
2
- * This file is part of Plum.
3
- *
4
- * Plum is free software: you can redistribute it and/or modify
5
- * it under the terms of the GNU General Public License as published by
6
- * the Free Software Foundation, either version 3 of the License, or
7
- * (at your option) any later version.
8
- *
9
- * Plum is distributed in the hope that it will be useful,
10
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- * GNU General Public License for more details.
13
- *
14
- * You should have received a copy of the GNU General Public License
15
- * along with Plum. If not, see https://www.gnu.org/licenses/.
16
- */
17
-
18
- /*
19
- * This file is part of Plum.
20
- * Licensed under the MIT License. See LICENSE file in the project root for details.
21
- */
22
-
23
- import{h as Dt,a as u,s as g,e as K,t as x,b as j,c as Ut}from"../chunks/CMBQQ9RZ.js";import{i as Bt}from"../chunks/CKDtmZUQ.js";import{p as Pt,o as Mt,s as o,f as qe,c as Ht,m as w,$ as Wt,t as $,x as H,g as e,y as W,d as n,j as s,k as a,v as Jt,n as Ne}from"../chunks/BAACMRH5.js";import{i as J,s as Gt,a as Ft}from"../chunks/CgnwuKKO.js";import{e as ze,i as Xe,t as xe}from"../chunks/TOCyHP97.js";import{A as Ce,s as q,w as bt,x as z,m as ht,e as Vt,B as Me,b as Kt,r as de,y as qt,z as zt,F as Xt,D as Qt}from"../chunks/4N1zIH8t.js";import{b as lt,a as Et}from"../chunks/t-La0hgu.js";import{T as Yt,B as Qe,b as Zt}from"../chunks/DlNYZJ7K.js";import{p as jt}from"../chunks/Bfc47y5P.js";import{f as es,a as ts}from"../chunks/D2cvzNT9.js";import{b as ss}from"../chunks/DW85KPAh.js";import{s as as}from"../chunks/D2gYTmAA.js";import{B as ns}from"../chunks/CuqnZUex.js";import{M as rs}from"../chunks/BjUpWNbl.js";import{C as ls}from"../chunks/3IV-uqHa.js";import{E as os}from"../chunks/C1sukchk.js";async function ot(){const c=await fetch(`${Ce}/cron-jobs`),{cronJobs:C}=await c.json();return C??[]}async function vs({taskName:c,cronExpression:C,tags:X,workers:Q,browser:O,runnerIds:R,notifyDiscord:T,notifySlack:B,isEditing:E,editTaskName:k}){const b=X.replace(/\sOR\s/gi,P=>P.toLowerCase()),Y=E?`${Ce}/cron-jobs/${encodeURIComponent(k)}`:`${Ce}/cron-jobs`;return(await fetch(Y,{method:E?"PUT":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cronExpression:C,taskName:c,tags:b,workers:Q,browser:O,runnerIds:R,notifyDiscord:T??!1,notifySlack:B??!1})})).json()}async function cs(c,C){return(await fetch(`${Ce}/cron-jobs/${encodeURIComponent(c)}/toggle`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:C})})).json()}async function is(c){return(await fetch(`${Ce}/cron-jobs/${encodeURIComponent(c)}/run`,{method:"POST"})).json()}async function ds(c){return(await fetch(`${Ce}/cron-jobs/${encodeURIComponent(c)}`,{method:"DELETE"})).json()}const us="Scheduled Tests — Plum",fs="Scheduled Tests",_s="Manage recurring test runs via cron jobs",ms="+ New Job",ps="No scheduled tests yet. Create one to get started.",bs="Task Name",hs="Use a unique, meaningful name",Es="nightly-login-suite",gs="Schedule",ks="Select a schedule",ys="Custom…",Ns="0 9 * * 1-5",xs="Invalid cron expression",Cs="Tags",Ts="Multiple: @test-1 or @test-2. Leave blank to run all tests",Ss="@suite-login (optional)",Ls="Workers",$s="Parallel workers for this job",Rs="Browser",Is="Runners",As="Select one or more nodes",ws="this server",Os="Notifications",Ds="All fields are required.",Us="Invalid cron expression.",Bs="Failed to save. Please try again.",gt="Network error.",Ps="Could not update schedule.",Ms="Could not trigger run.",Hs="Could not delete cron job.",Ws="Delete Cron Job",Js="Are you sure you want to delete",Gs="Disable schedule",Fs="Enable schedule",Vs="Running now",Ks="Name",qs="Schedule",zs="Tags",Xs="Workers",Qs="Browser",Ys="Runner",Zs="Actions",js=c=>c?"Edit Cron Job":"New Cron Job",ea=c=>c?"Save Changes":"Add Cron Job",ta=c=>c?Gs:Fs,sa=c=>`Run ${c} now`,aa=c=>`${c} nodes`,na=(c,C)=>`${c?"Updated":"Added"}: ${C}`,ra=c=>`Started: ${c}`,la=c=>`Deleted: ${c}`,oa=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function va(c){if(!c)return"";const C=c.trim().split(/\s+/);if(C.length!==5)return"";const[X,Q,O,R,T]=C,B=(D,P)=>{const Te=D>=12?"PM":"AM";return`${D%12||12}:${String(P).padStart(2,"0")} ${Te}`},E=D=>/^\d+$/.test(D),k=E(Q)?+Q:null,b=E(X)?+X:null;if(c==="* * * * *")return"Every minute";const Y=X.match(/^\*\/(\d+)$/);if(Y&&Q==="*"&&O==="*"&&R==="*"&&T==="*")return`Every ${Y[1]} minutes`;if(b!==null&&Q==="*"&&O==="*"&&R==="*"&&T==="*")return`Every hour at :${String(b).padStart(2,"0")}`;if(b!==null&&k!==null&&O==="*"&&R==="*"&&T==="1-5")return`Weekdays at ${B(k,b)}`;if(b!==null&&k!==null&&O==="*"&&R==="*"&&T==="*")return`Daily at ${B(k,b)}`;if(b!==null&&k!==null&&O==="*"&&R==="*"&&/^\d$/.test(T))return`Every ${oa[+T]} at ${B(k,b)}`;const I=E(O)?+O:null;return b!==null&&k!==null&&I!==null&&R==="*"&&T==="*"?`Monthly on the ${I}${I===1?"st":I===2?"nd":I===3?"rd":"th"} at ${B(k,b)}`:""}var ca=x('<option class="svelte-13v7bmf"> </option>'),ia=x('<p class="cron-desc svelte-13v7bmf"> </p>'),da=x('<input type="text" class="field-input cron-input svelte-13v7bmf" spellcheck="false"> <!>',1),ua=x('<button type="button" class="seg-btn svelte-13v7bmf"><span class="seg-num svelte-13v7bmf"> </span></button>'),fa=x('<label class="runner-check-option svelte-13v7bmf"><input type="checkbox" class="svelte-13v7bmf"> <span class="runner-check-dot remote svelte-13v7bmf"></span> <span class="svelte-13v7bmf"> </span> <span class="runner-check-hint svelte-13v7bmf"> </span></label>'),_a=x('<label class="notify-check-option svelte-13v7bmf"><input type="checkbox" class="svelte-13v7bmf"> <span class="svelte-13v7bmf"></span></label>'),ma=x('<label class="notify-check-option svelte-13v7bmf"><input type="checkbox" class="svelte-13v7bmf"> <span class="svelte-13v7bmf"></span></label>'),pa=x('<div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span></div> <div class="notify-checks svelte-13v7bmf"><!> <!></div></div>'),ba=x('<p class="form-error svelte-13v7bmf"> </p>'),ha=x('<form class="modal-form svelte-13v7bmf"><div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span> <span class="field-hint svelte-13v7bmf"></span></div> <input type="text" class="field-input svelte-13v7bmf" required></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span></div> <select class="field-input svelte-13v7bmf" required><option disabled class="svelte-13v7bmf"></option><!><option class="svelte-13v7bmf"></option></select> <!></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span> <span class="field-hint svelte-13v7bmf"></span></div> <input type="text" class="field-input svelte-13v7bmf"></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span> <span class="field-hint svelte-13v7bmf"></span></div> <div class="stepper svelte-13v7bmf"><button type="button" class="step-btn svelte-13v7bmf">−</button> <span class="step-val svelte-13v7bmf"> </span> <button type="button" class="step-btn svelte-13v7bmf">+</button></div></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span></div> <div class="seg-control svelte-13v7bmf"></div></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span> <span class="field-hint svelte-13v7bmf"></span></div> <div class="runner-checks svelte-13v7bmf"><label class="runner-check-option svelte-13v7bmf"><input type="checkbox" class="svelte-13v7bmf"> <span class="runner-check-dot built-in svelte-13v7bmf"></span> <span class="svelte-13v7bmf"></span> <span class="runner-check-hint svelte-13v7bmf"></span></label> <!></div></div> <!> <!> <!></form>'),Ea=x(' <strong class="svelte-13v7bmf"> </strong> ',1),ga=x('<span class="running-dot svelte-13v7bmf"></span>'),ka=x('<tr class="job-row svelte-13v7bmf"><td class="td-toggle svelte-13v7bmf"><button class="toggle-btn svelte-13v7bmf"><span class="toggle-knob svelte-13v7bmf"></span></button></td><td class="td-run svelte-13v7bmf"><button class="run-icon-btn svelte-13v7bmf"><svg width="10" height="10" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-13v7bmf"><polygon points="5,3 19,12 5,21" class="svelte-13v7bmf"></polygon></svg></button></td><td class="job-name svelte-13v7bmf"><!> </td><td class="svelte-13v7bmf"><!></td><td class="svelte-13v7bmf"><span class="tag-text svelte-13v7bmf"> </span></td><td class="svelte-13v7bmf"><span class="workers-badge svelte-13v7bmf"> </span></td><td class="svelte-13v7bmf"><span class="browser-badge svelte-13v7bmf"> </span></td><td class="svelte-13v7bmf"><span class="runner-badge svelte-13v7bmf"><!></span></td><td class="actions-cell svelte-13v7bmf"><!> <!></td></tr>'),ya=x('<div class="table-wrap svelte-13v7bmf"><table class="data-table svelte-13v7bmf"><thead class="svelte-13v7bmf"><tr class="svelte-13v7bmf"><th class="th-toggle svelte-13v7bmf"></th><th class="th-run svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th></tr></thead><tbody class="svelte-13v7bmf"></tbody></table></div>'),Na=x('<!> <!> <!> <div class="page-header svelte-13v7bmf"><div class="header-row svelte-13v7bmf"><div class="svelte-13v7bmf"><h1 class="svelte-13v7bmf"></h1> <p class="subtitle svelte-13v7bmf"></p></div> <!></div></div> <div class="card svelte-13v7bmf" style="padding: 0; overflow: hidden;"><!></div>',1);function Ha(c,C){Pt(C,!1);const[X,Q]=Gt(),O=()=>Ft(ss,"$backgroundRuns",X),R=/^(\*|([0-5]?[0-9])|\*\/[0-9]+) (\*|([01]?[0-9]|2[0-3])) (\*|([01]?[0-9]|3[01])) (\*|([1-9]|1[0-2])) (\*|[0-6](-[0-6])?)$/,T="__custom__",B=[{label:"Every minute",value:"* * * * *"},{label:"Every hour",value:"0 * * * *"},{label:"Every midnight",value:"0 0 * * *"},{label:"Every Sunday",value:"0 0 * * 0"}];let E=w([]),k=w([]),b=w({discordWebhookUrl:"",slackWebhookUrl:"",notifyPublicUrl:""}),Y=w(null),I=w(!1),D=w(!1),P=w(!1),Te="",Se=w(""),r=w({taskName:"",cronExpression:"",tags:"",workers:1,browser:Me[0].id,runnerIds:[z],notifyDiscord:!1,notifySlack:!1}),Le=w(""),$e=w(!1),G=w("");function ee(t,f){o(Y,{type:t,message:f}),setTimeout(()=>o(Y,null),Kt)}function kt(t){t.target.value===T?(o($e,!0),W(r,e(r).cronExpression="")):(o($e,!1),W(r,e(r).cronExpression=t.target.value))}function vt(t){const f=e(r).runnerIds;f.includes(t)&&f.length===1||W(r,e(r).runnerIds=f.includes(t)?f.filter(d=>d!==t):[...f,t])}function ct(t){W(r,e(r).workers=Math.max(1,Math.min(10,(e(r).workers||1)+t)))}function yt(){o(P,!1),Te="",o(r,{taskName:"",cronExpression:"",tags:"",workers:1,browser:Me[0].id,runnerIds:[z],notifyDiscord:!1,notifySlack:!1}),o(Le,""),o($e,!1),o(G,""),o(I,!0)}function Nt(t){o(P,!0),Te=t.taskName;const f=new Set([z,...e(k).map(y=>y.id)]),S=(t.runnerIds?t.runnerIds.split(",").map(y=>y.trim()):[z]).filter(y=>f.has(y));o(r,{taskName:t.taskName,cronExpression:t.cronExpression,tags:t.tags,workers:t.workers??1,browser:t.browser??Me[0].id,runnerIds:S.length>0?S:[z],notifyDiscord:t.notifyDiscord??!1,notifySlack:t.notifySlack??!1});const L=B.some(y=>y.value===t.cronExpression);o($e,!L),o(Le,L?t.cronExpression:T),o(G,""),o(I,!0)}async function xt(){if(!e(r).taskName||!e(r).cronExpression){o(G,Ds);return}if(!R.test(e(r).cronExpression)){o(G,Us);return}o(G,"");try{(await vs({...e(r),isEditing:e(P),editTaskName:Te})).message?(ee("success",na(e(P),e(r).taskName)),o(I,!1),o(E,await ot())):o(G,Bs)}catch{o(G,gt)}}async function Ct(t){const f=!t.enabled;o(E,e(E).map(d=>d.taskName===t.taskName?{...d,enabled:f}:d));try{await cs(t.taskName,f)}catch{o(E,e(E).map(d=>d.taskName===t.taskName?{...d,enabled:!f}:d)),ee("error",Ps)}}async function Tt(t){try{await is(t),ee("success",ra(t))}catch{ee("error",Ms)}}async function St(){try{(await ds(e(Se))).message?(ee("success",la(e(Se))),o(E,await ot())):ee("error",Hs)}catch{ee("error",gt)}o(D,!1),o(Se,"")}function Lt(t){var f;return((f=B.find(d=>d.value===t))==null?void 0:f.label)??t}Mt(async()=>{await(async t=>(o(E,t[0]),o(k,t[1]),o(b,t[2])))(await Promise.all([ot(),es().catch(()=>[]),ts().catch(()=>({discordWebhookUrl:"",slackWebhookUrl:"",notifyPublicUrl:""}))]))}),Bt();var it=Na();Dt(t=>{Wt.title=us});var dt=qe(it);const $t=H(()=>js(e(P)));rs(dt,{get title(){return e($t)},get open(){return e(I)},set open(t){o(I,t)},children:(t,f)=>{var d=ha(),S=n(d),L=n(S),y=n(L);y.textContent=bs;var ue=s(y,2);ue.textContent=hs,a(L);var fe=s(L,2);de(fe),q(fe,"placeholder",Es),a(S);var _e=s(S,2),me=n(_e),He=n(me);He.textContent=gs,a(me);var te=s(me,2);$(()=>{e(Le),Jt(()=>{})});var se=n(te);se.value=((se.__value="")==null,""),se.textContent=ks;var We=s(se);ze(We,1,()=>B,Xe,(v,i)=>{var l=ca(),h={},A=n(l,!0);a(l),$(()=>{h!==(h=e(i).value)&&(l.value=(l.__value=e(i).value)==null?"":e(i).value),g(A,e(i).label)}),u(v,l)});var m=s(We);m.value=(m.__value=T)==null?"":T,m.textContent=ys,a(te);var je=s(te,2);{var ae=v=>{var i=da(),l=qe(i);de(l),q(l,"placeholder",Ns);var h=s(l,2);{var A=M=>{var F=ia(),Be=n(F,!0);a(F),$((Pe,V)=>{xe(F,"cron-invalid",Pe),g(Be,V)},[()=>!R.test(e(r).cronExpression),()=>R.test(e(r).cronExpression)?va(e(r).cronExpression)||e(r).cronExpression:xs],H),u(M,F)};J(h,M=>{e(r).cronExpression&&M(A)})}lt(l,()=>e(r).cronExpression,M=>W(r,e(r).cronExpression=M)),u(v,i)};J(je,v=>{e($e)&&v(ae)})}a(_e);var U=s(_e,2),ne=n(U),Z=n(ne);Z.textContent=Cs;var Re=s(Z,2);Re.textContent=Ts,a(ne);var pe=s(ne,2);de(pe),q(pe,"placeholder",Ss),a(U);var re=s(U,2),be=n(re),Je=n(be);Je.textContent=Ls;var et=s(Je,2);et.textContent=$s,a(be);var he=s(be,2),Ie=n(he),le=s(Ie,2),Ge=n(le,!0);a(le);var Fe=s(le,2);a(he),a(re);var oe=s(re,2),ve=n(oe),tt=n(ve);tt.textContent=Rs,a(ve);var Ee=s(ve,2);ze(Ee,5,()=>Me,Xe,(v,i)=>{var l=ua(),h=n(l),A=n(h,!0);a(h),a(l),$(()=>{xe(l,"active",e(r).browser===e(i).id),g(A,e(i).label)}),K("click",l,()=>W(r,e(r).browser=e(i).id)),u(v,l)}),a(Ee),a(oe);var ge=s(oe,2),Ae=n(ge),ke=n(Ae);ke.textContent=Is;var we=s(ke,2);we.textContent=As,a(Ae);var Ve=s(Ae,2),Oe=n(Ve),ye=n(Oe);de(ye);var De=s(ye,4);De.textContent=bt;var Ke=s(De,2);Ke.textContent=ws,a(Oe);var st=s(Oe,2);ze(st,1,()=>e(k),Xe,(v,i)=>{var l=fa(),h=n(l);de(h);var A=s(h,4),M=n(A,!0);a(A);var F=s(A,2),Be=n(F,!0);a(F),a(l),$(Pe=>{ht(h,Pe),g(M,e(i).name),g(Be,e(i).url)},[()=>e(r).runnerIds.includes(e(i).id)],H),K("change",h,()=>vt(e(i).id)),u(v,l)}),a(Ve),a(ge);var _=s(ge,2);{var p=v=>{var i=pa(),l=n(i),h=n(l);h.textContent=Os,a(l);var A=s(l,2),M=n(A);{var F=V=>{var ce=_a(),ie=n(ce);de(ie);var nt=s(ie,2);nt.textContent=qt,a(ce),Et(ie,()=>e(r).notifyDiscord,rt=>W(r,e(r).notifyDiscord=rt)),u(V,ce)};J(M,V=>{e(b).discordWebhookUrl&&V(F)})}var Be=s(M,2);{var Pe=V=>{var ce=ma(),ie=n(ce);de(ie);var nt=s(ie,2);nt.textContent=zt,a(ce),Et(ie,()=>e(r).notifySlack,rt=>W(r,e(r).notifySlack=rt)),u(V,ce)};J(Be,V=>{e(b).slackWebhookUrl&&V(Pe)})}a(A),a(i),u(v,i)};J(_,v=>{(e(b).discordWebhookUrl||e(b).slackWebhookUrl)&&v(p)})}var N=s(_,2);{var Ue=v=>{var i=ba(),l=n(i,!0);a(i),$(()=>g(l,e(G))),u(v,i)};J(N,v=>{e(G)&&v(Ue)})}var at=s(N,2);Qe(at,{type:"submit",size:"md",children:(v,i)=>{Ne();var l=j();$(h=>g(l,h),[()=>ea(e(P))],H),u(v,l)},$$slots:{default:!0}}),a(d),$(v=>{Ie.disabled=e(r).workers<=1,g(Ge,e(r).workers),Fe.disabled=e(r).workers>=10,ht(ye,v)},[()=>e(r).runnerIds.includes(z)],H),lt(fe,()=>e(r).taskName,v=>W(r,e(r).taskName=v)),Zt(te,()=>e(Le),v=>o(Le,v)),K("change",te,kt),lt(pe,()=>e(r).tags,v=>W(r,e(r).tags=v)),K("click",Ie,()=>ct(-1)),K("click",Fe,()=>ct(1)),K("change",ye,()=>vt(z)),K("submit",d,jt(xt)),u(t,d)},$$slots:{default:!0},$$legacy:!0});var ut=s(dt,2);ls(ut,{title:Ws,get open(){return e(D)},set open(t){o(D,t)},$$events:{confirm:St},children:(t,f)=>{Ne();var d=Ea(),S=qe(d);S.nodeValue=`${Js} `;var L=s(S),y=n(L,!0);a(L);var ue=s(L,1,!0);ue.nodeValue=Vt,$(()=>g(y,e(Se))),u(t,d)},$$slots:{default:!0},$$legacy:!0});var ft=s(ut,2);Yt(ft,{get toast(){return e(Y)}});var Ye=s(ft,2),_t=n(Ye),Ze=n(_t),mt=n(Ze);mt.textContent=fs;var Rt=s(mt,2);Rt.textContent=_s,a(Ze);var It=s(Ze,2);Qe(It,{$$events:{click:yt},children:(t,f)=>{Ne();var d=j();d.nodeValue=ms,u(t,d)},$$slots:{default:!0}}),a(_t),a(Ye);var pt=s(Ye,2),At=n(pt);{var wt=t=>{os(t,{message:ps,size:"sm"})},Ot=t=>{var f=ya(),d=n(f),S=n(d),L=n(S),y=s(n(L),2);y.textContent=Ks;var ue=s(y);ue.textContent=qs;var fe=s(ue);fe.textContent=zs;var _e=s(fe);_e.textContent=Xs;var me=s(_e);me.textContent=Qs;var He=s(me);He.textContent=Ys;var te=s(He);te.textContent=Zs,a(L),a(S);var se=s(S);ze(se,5,()=>e(E),Xe,(We,m,je)=>{var ae=ka();const U=H(()=>e(m).runnerIds?e(m).runnerIds.split(",").map(_=>_.trim()):[z]);var ne=n(ae),Z=n(ne);a(ne);var Re=s(ne),pe=n(Re);a(Re);var re=s(Re),be=n(re);{var Je=_=>{var p=ga();q(p,"title",Vs),u(_,p)};J(be,_=>{var p;(p=O()[e(m).taskName])!=null&&p.running&&_(Je)})}var et=s(be);a(re);var he=s(re),Ie=n(he);ns(Ie,{variant:"schedule",children:(_,p)=>{Ne();var N=j();$(Ue=>g(N,Ue),[()=>Lt(e(m).cronExpression)],H),u(_,N)},$$slots:{default:!0}}),a(he);var le=s(he),Ge=n(le),Fe=n(Ge,!0);a(Ge),a(le);var oe=s(le),ve=n(oe),tt=n(ve);a(ve),a(oe);var Ee=s(oe),ge=n(Ee),Ae=n(ge,!0);a(ge),a(Ee);var ke=s(Ee),we=n(ke),Ve=n(we);{var Oe=_=>{var p=j();p.nodeValue=bt,u(_,p)},ye=_=>{var p=Ut(),N=qe(p);{var Ue=v=>{var i=j();$(l=>g(i,l),[()=>{var l;return((l=e(k).find(h=>h.id===e(U)[0]))==null?void 0:l.name)??e(U)[0]}],H),u(v,i)},at=v=>{var i=j();$(l=>g(i,l),[()=>aa(e(U).length)],H),u(v,i)};J(N,v=>{e(U).length===1?v(Ue):v(at,!1)},!0)}u(_,p)};J(Ve,_=>{e(U).length===1&&e(U)[0]===z?_(Oe):_(ye,!1)})}a(we),a(ke);var De=s(ke),Ke=n(De);Qe(Ke,{variant:"ghost",size:"sm",$$events:{click:()=>Nt(e(m))},children:(_,p)=>{Ne();var N=j();N.nodeValue=Xt,u(_,N)},$$slots:{default:!0}});var st=s(Ke,2);Qe(st,{variant:"danger",size:"sm",$$events:{click:()=>{o(Se,e(m).taskName),o(D,!0)}},children:(_,p)=>{Ne();var N=j();N.nodeValue=Qt,u(_,N)},$$slots:{default:!0}}),a(De),a(ae),$((_,p,N)=>{q(ae,"style",_),xe(ae,"disabled",!e(m).enabled),q(Z,"title",p),q(Z,"aria-label",p),q(Z,"aria-pressed",e(m).enabled),xe(Z,"on",e(m).enabled),q(pe,"title",N),g(et,` ${e(m).taskName??""}`),g(Fe,e(m).tags),xe(ve,"multi",e(m).workers>1),g(tt,`×${e(m).workers??""}`),g(Ae,e(m).browser??Me[0].id),xe(we,"multi-node",e(U).length>1)},[()=>as(je),()=>ta(e(m).enabled),()=>sa(e(m).taskName)],H),K("click",Z,()=>Ct(e(m))),K("click",pe,()=>Tt(e(m).taskName)),u(We,ae)}),a(se),a(d),a(f),u(t,f)};J(At,t=>{e(E).length===0?t(wt):t(Ot,!1)})}a(pt),u(c,it),Ht(),Q()}export{Ha as component};
1
+ import{h as Dt,a as u,s as g,e as K,t as x,b as j,c as Ut}from"../chunks/CMBQQ9RZ.js";import{i as Bt}from"../chunks/CKDtmZUQ.js";import{p as Pt,o as Mt,s as o,f as qe,c as Ht,m as w,$ as Wt,t as $,x as H,g as e,y as W,d as n,j as s,k as a,v as Jt,n as Ne}from"../chunks/BAACMRH5.js";import{i as J,s as Gt,a as Ft}from"../chunks/CgnwuKKO.js";import{e as ze,i as Xe,t as xe}from"../chunks/TOCyHP97.js";import{A as Ce,s as q,x as bt,y as z,n as ht,f as Vt,B as Me,b as Kt,r as de,z as qt,F as zt,G as Xt,D as Qt}from"../chunks/CUC98kMZ.js";import{b as lt,a as Et}from"../chunks/t-La0hgu.js";import{T as Yt,B as Qe,b as Zt}from"../chunks/CzlPaHY9.js";import{p as jt}from"../chunks/Bfc47y5P.js";import{f as es,a as ts}from"../chunks/3InFPLvE.js";import{b as ss}from"../chunks/DHM6H-es.js";import{s as as}from"../chunks/DSLBMEpr.js";import{B as ns}from"../chunks/CuqnZUex.js";import{M as rs}from"../chunks/CMEtqUfQ.js";import{C as ls}from"../chunks/DMZwI8Cj.js";import{E as os}from"../chunks/BKuh57WU.js";async function ot(){const c=await fetch(`${Ce}/cron-jobs`),{cronJobs:C}=await c.json();return C??[]}async function vs({taskName:c,cronExpression:C,tags:X,workers:Q,browser:O,runnerIds:R,notifyDiscord:T,notifySlack:B,isEditing:E,editTaskName:k}){const b=X.replace(/\sOR\s/gi,P=>P.toLowerCase()),Y=E?`${Ce}/cron-jobs/${encodeURIComponent(k)}`:`${Ce}/cron-jobs`;return(await fetch(Y,{method:E?"PUT":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cronExpression:C,taskName:c,tags:b,workers:Q,browser:O,runnerIds:R,notifyDiscord:T??!1,notifySlack:B??!1})})).json()}async function cs(c,C){return(await fetch(`${Ce}/cron-jobs/${encodeURIComponent(c)}/toggle`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:C})})).json()}async function is(c){return(await fetch(`${Ce}/cron-jobs/${encodeURIComponent(c)}/run`,{method:"POST"})).json()}async function ds(c){return(await fetch(`${Ce}/cron-jobs/${encodeURIComponent(c)}`,{method:"DELETE"})).json()}const us="Scheduled Tests — Plum",fs="Scheduled Tests",_s="Manage recurring test runs via cron jobs",ms="+ New Job",ps="No scheduled tests yet. Create one to get started.",bs="Task Name",hs="Use a unique, meaningful name",Es="nightly-login-suite",gs="Schedule",ks="Select a schedule",ys="Custom…",Ns="0 9 * * 1-5",xs="Invalid cron expression",Cs="Tags",Ts="Multiple: @test-1 or @test-2. Leave blank to run all tests",Ss="@suite-login (optional)",Ls="Workers",$s="Parallel workers for this job",Rs="Browser",Is="Runners",As="Select one or more nodes",ws="this server",Os="Notifications",Ds="All fields are required.",Us="Invalid cron expression.",Bs="Failed to save. Please try again.",gt="Network error.",Ps="Could not update schedule.",Ms="Could not trigger run.",Hs="Could not delete cron job.",Ws="Delete Cron Job",Js="Are you sure you want to delete",Gs="Disable schedule",Fs="Enable schedule",Vs="Running now",Ks="Name",qs="Schedule",zs="Tags",Xs="Workers",Qs="Browser",Ys="Runner",Zs="Actions",js=c=>c?"Edit Cron Job":"New Cron Job",ea=c=>c?"Save Changes":"Add Cron Job",ta=c=>c?Gs:Fs,sa=c=>`Run ${c} now`,aa=c=>`${c} nodes`,na=(c,C)=>`${c?"Updated":"Added"}: ${C}`,ra=c=>`Started: ${c}`,la=c=>`Deleted: ${c}`,oa=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function va(c){if(!c)return"";const C=c.trim().split(/\s+/);if(C.length!==5)return"";const[X,Q,O,R,T]=C,B=(D,P)=>{const Te=D>=12?"PM":"AM";return`${D%12||12}:${String(P).padStart(2,"0")} ${Te}`},E=D=>/^\d+$/.test(D),k=E(Q)?+Q:null,b=E(X)?+X:null;if(c==="* * * * *")return"Every minute";const Y=X.match(/^\*\/(\d+)$/);if(Y&&Q==="*"&&O==="*"&&R==="*"&&T==="*")return`Every ${Y[1]} minutes`;if(b!==null&&Q==="*"&&O==="*"&&R==="*"&&T==="*")return`Every hour at :${String(b).padStart(2,"0")}`;if(b!==null&&k!==null&&O==="*"&&R==="*"&&T==="1-5")return`Weekdays at ${B(k,b)}`;if(b!==null&&k!==null&&O==="*"&&R==="*"&&T==="*")return`Daily at ${B(k,b)}`;if(b!==null&&k!==null&&O==="*"&&R==="*"&&/^\d$/.test(T))return`Every ${oa[+T]} at ${B(k,b)}`;const I=E(O)?+O:null;return b!==null&&k!==null&&I!==null&&R==="*"&&T==="*"?`Monthly on the ${I}${I===1?"st":I===2?"nd":I===3?"rd":"th"} at ${B(k,b)}`:""}var ca=x('<option class="svelte-13v7bmf"> </option>'),ia=x('<p class="cron-desc svelte-13v7bmf"> </p>'),da=x('<input type="text" class="field-input cron-input svelte-13v7bmf" spellcheck="false"> <!>',1),ua=x('<button type="button" class="seg-btn svelte-13v7bmf"><span class="seg-num svelte-13v7bmf"> </span></button>'),fa=x('<label class="runner-check-option svelte-13v7bmf"><input type="checkbox" class="svelte-13v7bmf"> <span class="runner-check-dot remote svelte-13v7bmf"></span> <span class="svelte-13v7bmf"> </span> <span class="runner-check-hint svelte-13v7bmf"> </span></label>'),_a=x('<label class="notify-check-option svelte-13v7bmf"><input type="checkbox" class="svelte-13v7bmf"> <span class="svelte-13v7bmf"></span></label>'),ma=x('<label class="notify-check-option svelte-13v7bmf"><input type="checkbox" class="svelte-13v7bmf"> <span class="svelte-13v7bmf"></span></label>'),pa=x('<div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span></div> <div class="notify-checks svelte-13v7bmf"><!> <!></div></div>'),ba=x('<p class="form-error svelte-13v7bmf"> </p>'),ha=x('<form class="modal-form svelte-13v7bmf"><div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span> <span class="field-hint svelte-13v7bmf"></span></div> <input type="text" class="field-input svelte-13v7bmf" required></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span></div> <select class="field-input svelte-13v7bmf" required><option disabled class="svelte-13v7bmf"></option><!><option class="svelte-13v7bmf"></option></select> <!></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span> <span class="field-hint svelte-13v7bmf"></span></div> <input type="text" class="field-input svelte-13v7bmf"></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span> <span class="field-hint svelte-13v7bmf"></span></div> <div class="stepper svelte-13v7bmf"><button type="button" class="step-btn svelte-13v7bmf">−</button> <span class="step-val svelte-13v7bmf"> </span> <button type="button" class="step-btn svelte-13v7bmf">+</button></div></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span></div> <div class="seg-control svelte-13v7bmf"></div></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span> <span class="field-hint svelte-13v7bmf"></span></div> <div class="runner-checks svelte-13v7bmf"><label class="runner-check-option svelte-13v7bmf"><input type="checkbox" class="svelte-13v7bmf"> <span class="runner-check-dot built-in svelte-13v7bmf"></span> <span class="svelte-13v7bmf"></span> <span class="runner-check-hint svelte-13v7bmf"></span></label> <!></div></div> <!> <!> <!></form>'),Ea=x(' <strong class="svelte-13v7bmf"> </strong> ',1),ga=x('<span class="running-dot svelte-13v7bmf"></span>'),ka=x('<tr class="job-row svelte-13v7bmf"><td class="td-toggle svelte-13v7bmf"><button class="toggle-btn svelte-13v7bmf"><span class="toggle-knob svelte-13v7bmf"></span></button></td><td class="td-run svelte-13v7bmf"><button class="run-icon-btn svelte-13v7bmf"><svg width="10" height="10" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-13v7bmf"><polygon points="5,3 19,12 5,21" class="svelte-13v7bmf"></polygon></svg></button></td><td class="job-name svelte-13v7bmf"><!> </td><td class="svelte-13v7bmf"><!></td><td class="svelte-13v7bmf"><span class="tag-text svelte-13v7bmf"> </span></td><td class="svelte-13v7bmf"><span class="workers-badge svelte-13v7bmf"> </span></td><td class="svelte-13v7bmf"><span class="browser-badge svelte-13v7bmf"> </span></td><td class="svelte-13v7bmf"><span class="runner-badge svelte-13v7bmf"><!></span></td><td class="actions-cell svelte-13v7bmf"><!> <!></td></tr>'),ya=x('<div class="table-wrap svelte-13v7bmf"><table class="data-table svelte-13v7bmf"><thead class="svelte-13v7bmf"><tr class="svelte-13v7bmf"><th class="th-toggle svelte-13v7bmf"></th><th class="th-run svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th></tr></thead><tbody class="svelte-13v7bmf"></tbody></table></div>'),Na=x('<!> <!> <!> <div class="page-header svelte-13v7bmf"><div class="header-row svelte-13v7bmf"><div class="svelte-13v7bmf"><h1 class="svelte-13v7bmf"></h1> <p class="subtitle svelte-13v7bmf"></p></div> <!></div></div> <div class="card svelte-13v7bmf" style="padding: 0; overflow: hidden;"><!></div>',1);function Ha(c,C){Pt(C,!1);const[X,Q]=Gt(),O=()=>Ft(ss,"$backgroundRuns",X),R=/^(\*|([0-5]?[0-9])|\*\/[0-9]+) (\*|([01]?[0-9]|2[0-3])) (\*|([01]?[0-9]|3[01])) (\*|([1-9]|1[0-2])) (\*|[0-6](-[0-6])?)$/,T="__custom__",B=[{label:"Every minute",value:"* * * * *"},{label:"Every hour",value:"0 * * * *"},{label:"Every midnight",value:"0 0 * * *"},{label:"Every Sunday",value:"0 0 * * 0"}];let E=w([]),k=w([]),b=w({discordWebhookUrl:"",slackWebhookUrl:"",notifyPublicUrl:""}),Y=w(null),I=w(!1),D=w(!1),P=w(!1),Te="",Se=w(""),r=w({taskName:"",cronExpression:"",tags:"",workers:1,browser:Me[0].id,runnerIds:[z],notifyDiscord:!1,notifySlack:!1}),Le=w(""),$e=w(!1),G=w("");function ee(t,f){o(Y,{type:t,message:f}),setTimeout(()=>o(Y,null),Kt)}function kt(t){t.target.value===T?(o($e,!0),W(r,e(r).cronExpression="")):(o($e,!1),W(r,e(r).cronExpression=t.target.value))}function vt(t){const f=e(r).runnerIds;f.includes(t)&&f.length===1||W(r,e(r).runnerIds=f.includes(t)?f.filter(d=>d!==t):[...f,t])}function ct(t){W(r,e(r).workers=Math.max(1,Math.min(10,(e(r).workers||1)+t)))}function yt(){o(P,!1),Te="",o(r,{taskName:"",cronExpression:"",tags:"",workers:1,browser:Me[0].id,runnerIds:[z],notifyDiscord:!1,notifySlack:!1}),o(Le,""),o($e,!1),o(G,""),o(I,!0)}function Nt(t){o(P,!0),Te=t.taskName;const f=new Set([z,...e(k).map(y=>y.id)]),S=(t.runnerIds?t.runnerIds.split(",").map(y=>y.trim()):[z]).filter(y=>f.has(y));o(r,{taskName:t.taskName,cronExpression:t.cronExpression,tags:t.tags,workers:t.workers??1,browser:t.browser??Me[0].id,runnerIds:S.length>0?S:[z],notifyDiscord:t.notifyDiscord??!1,notifySlack:t.notifySlack??!1});const L=B.some(y=>y.value===t.cronExpression);o($e,!L),o(Le,L?t.cronExpression:T),o(G,""),o(I,!0)}async function xt(){if(!e(r).taskName||!e(r).cronExpression){o(G,Ds);return}if(!R.test(e(r).cronExpression)){o(G,Us);return}o(G,"");try{(await vs({...e(r),isEditing:e(P),editTaskName:Te})).message?(ee("success",na(e(P),e(r).taskName)),o(I,!1),o(E,await ot())):o(G,Bs)}catch{o(G,gt)}}async function Ct(t){const f=!t.enabled;o(E,e(E).map(d=>d.taskName===t.taskName?{...d,enabled:f}:d));try{await cs(t.taskName,f)}catch{o(E,e(E).map(d=>d.taskName===t.taskName?{...d,enabled:!f}:d)),ee("error",Ps)}}async function Tt(t){try{await is(t),ee("success",ra(t))}catch{ee("error",Ms)}}async function St(){try{(await ds(e(Se))).message?(ee("success",la(e(Se))),o(E,await ot())):ee("error",Hs)}catch{ee("error",gt)}o(D,!1),o(Se,"")}function Lt(t){var f;return((f=B.find(d=>d.value===t))==null?void 0:f.label)??t}Mt(async()=>{await(async t=>(o(E,t[0]),o(k,t[1]),o(b,t[2])))(await Promise.all([ot(),es().catch(()=>[]),ts().catch(()=>({discordWebhookUrl:"",slackWebhookUrl:"",notifyPublicUrl:""}))]))}),Bt();var it=Na();Dt(t=>{Wt.title=us});var dt=qe(it);const $t=H(()=>js(e(P)));rs(dt,{get title(){return e($t)},get open(){return e(I)},set open(t){o(I,t)},children:(t,f)=>{var d=ha(),S=n(d),L=n(S),y=n(L);y.textContent=bs;var ue=s(y,2);ue.textContent=hs,a(L);var fe=s(L,2);de(fe),q(fe,"placeholder",Es),a(S);var _e=s(S,2),me=n(_e),He=n(me);He.textContent=gs,a(me);var te=s(me,2);$(()=>{e(Le),Jt(()=>{})});var se=n(te);se.value=((se.__value="")==null,""),se.textContent=ks;var We=s(se);ze(We,1,()=>B,Xe,(v,i)=>{var l=ca(),h={},A=n(l,!0);a(l),$(()=>{h!==(h=e(i).value)&&(l.value=(l.__value=e(i).value)==null?"":e(i).value),g(A,e(i).label)}),u(v,l)});var m=s(We);m.value=(m.__value=T)==null?"":T,m.textContent=ys,a(te);var je=s(te,2);{var ae=v=>{var i=da(),l=qe(i);de(l),q(l,"placeholder",Ns);var h=s(l,2);{var A=M=>{var F=ia(),Be=n(F,!0);a(F),$((Pe,V)=>{xe(F,"cron-invalid",Pe),g(Be,V)},[()=>!R.test(e(r).cronExpression),()=>R.test(e(r).cronExpression)?va(e(r).cronExpression)||e(r).cronExpression:xs],H),u(M,F)};J(h,M=>{e(r).cronExpression&&M(A)})}lt(l,()=>e(r).cronExpression,M=>W(r,e(r).cronExpression=M)),u(v,i)};J(je,v=>{e($e)&&v(ae)})}a(_e);var U=s(_e,2),ne=n(U),Z=n(ne);Z.textContent=Cs;var Re=s(Z,2);Re.textContent=Ts,a(ne);var pe=s(ne,2);de(pe),q(pe,"placeholder",Ss),a(U);var re=s(U,2),be=n(re),Je=n(be);Je.textContent=Ls;var et=s(Je,2);et.textContent=$s,a(be);var he=s(be,2),Ie=n(he),le=s(Ie,2),Ge=n(le,!0);a(le);var Fe=s(le,2);a(he),a(re);var oe=s(re,2),ve=n(oe),tt=n(ve);tt.textContent=Rs,a(ve);var Ee=s(ve,2);ze(Ee,5,()=>Me,Xe,(v,i)=>{var l=ua(),h=n(l),A=n(h,!0);a(h),a(l),$(()=>{xe(l,"active",e(r).browser===e(i).id),g(A,e(i).label)}),K("click",l,()=>W(r,e(r).browser=e(i).id)),u(v,l)}),a(Ee),a(oe);var ge=s(oe,2),Ae=n(ge),ke=n(Ae);ke.textContent=Is;var we=s(ke,2);we.textContent=As,a(Ae);var Ve=s(Ae,2),Oe=n(Ve),ye=n(Oe);de(ye);var De=s(ye,4);De.textContent=bt;var Ke=s(De,2);Ke.textContent=ws,a(Oe);var st=s(Oe,2);ze(st,1,()=>e(k),Xe,(v,i)=>{var l=fa(),h=n(l);de(h);var A=s(h,4),M=n(A,!0);a(A);var F=s(A,2),Be=n(F,!0);a(F),a(l),$(Pe=>{ht(h,Pe),g(M,e(i).name),g(Be,e(i).url)},[()=>e(r).runnerIds.includes(e(i).id)],H),K("change",h,()=>vt(e(i).id)),u(v,l)}),a(Ve),a(ge);var _=s(ge,2);{var p=v=>{var i=pa(),l=n(i),h=n(l);h.textContent=Os,a(l);var A=s(l,2),M=n(A);{var F=V=>{var ce=_a(),ie=n(ce);de(ie);var nt=s(ie,2);nt.textContent=qt,a(ce),Et(ie,()=>e(r).notifyDiscord,rt=>W(r,e(r).notifyDiscord=rt)),u(V,ce)};J(M,V=>{e(b).discordWebhookUrl&&V(F)})}var Be=s(M,2);{var Pe=V=>{var ce=ma(),ie=n(ce);de(ie);var nt=s(ie,2);nt.textContent=zt,a(ce),Et(ie,()=>e(r).notifySlack,rt=>W(r,e(r).notifySlack=rt)),u(V,ce)};J(Be,V=>{e(b).slackWebhookUrl&&V(Pe)})}a(A),a(i),u(v,i)};J(_,v=>{(e(b).discordWebhookUrl||e(b).slackWebhookUrl)&&v(p)})}var N=s(_,2);{var Ue=v=>{var i=ba(),l=n(i,!0);a(i),$(()=>g(l,e(G))),u(v,i)};J(N,v=>{e(G)&&v(Ue)})}var at=s(N,2);Qe(at,{type:"submit",size:"md",children:(v,i)=>{Ne();var l=j();$(h=>g(l,h),[()=>ea(e(P))],H),u(v,l)},$$slots:{default:!0}}),a(d),$(v=>{Ie.disabled=e(r).workers<=1,g(Ge,e(r).workers),Fe.disabled=e(r).workers>=10,ht(ye,v)},[()=>e(r).runnerIds.includes(z)],H),lt(fe,()=>e(r).taskName,v=>W(r,e(r).taskName=v)),Zt(te,()=>e(Le),v=>o(Le,v)),K("change",te,kt),lt(pe,()=>e(r).tags,v=>W(r,e(r).tags=v)),K("click",Ie,()=>ct(-1)),K("click",Fe,()=>ct(1)),K("change",ye,()=>vt(z)),K("submit",d,jt(xt)),u(t,d)},$$slots:{default:!0},$$legacy:!0});var ut=s(dt,2);ls(ut,{title:Ws,get open(){return e(D)},set open(t){o(D,t)},$$events:{confirm:St},children:(t,f)=>{Ne();var d=Ea(),S=qe(d);S.nodeValue=`${Js} `;var L=s(S),y=n(L,!0);a(L);var ue=s(L,1,!0);ue.nodeValue=Vt,$(()=>g(y,e(Se))),u(t,d)},$$slots:{default:!0},$$legacy:!0});var ft=s(ut,2);Yt(ft,{get toast(){return e(Y)}});var Ye=s(ft,2),_t=n(Ye),Ze=n(_t),mt=n(Ze);mt.textContent=fs;var Rt=s(mt,2);Rt.textContent=_s,a(Ze);var It=s(Ze,2);Qe(It,{$$events:{click:yt},children:(t,f)=>{Ne();var d=j();d.nodeValue=ms,u(t,d)},$$slots:{default:!0}}),a(_t),a(Ye);var pt=s(Ye,2),At=n(pt);{var wt=t=>{os(t,{message:ps,size:"sm"})},Ot=t=>{var f=ya(),d=n(f),S=n(d),L=n(S),y=s(n(L),2);y.textContent=Ks;var ue=s(y);ue.textContent=qs;var fe=s(ue);fe.textContent=zs;var _e=s(fe);_e.textContent=Xs;var me=s(_e);me.textContent=Qs;var He=s(me);He.textContent=Ys;var te=s(He);te.textContent=Zs,a(L),a(S);var se=s(S);ze(se,5,()=>e(E),Xe,(We,m,je)=>{var ae=ka();const U=H(()=>e(m).runnerIds?e(m).runnerIds.split(",").map(_=>_.trim()):[z]);var ne=n(ae),Z=n(ne);a(ne);var Re=s(ne),pe=n(Re);a(Re);var re=s(Re),be=n(re);{var Je=_=>{var p=ga();q(p,"title",Vs),u(_,p)};J(be,_=>{var p;(p=O()[e(m).taskName])!=null&&p.running&&_(Je)})}var et=s(be);a(re);var he=s(re),Ie=n(he);ns(Ie,{variant:"schedule",children:(_,p)=>{Ne();var N=j();$(Ue=>g(N,Ue),[()=>Lt(e(m).cronExpression)],H),u(_,N)},$$slots:{default:!0}}),a(he);var le=s(he),Ge=n(le),Fe=n(Ge,!0);a(Ge),a(le);var oe=s(le),ve=n(oe),tt=n(ve);a(ve),a(oe);var Ee=s(oe),ge=n(Ee),Ae=n(ge,!0);a(ge),a(Ee);var ke=s(Ee),we=n(ke),Ve=n(we);{var Oe=_=>{var p=j();p.nodeValue=bt,u(_,p)},ye=_=>{var p=Ut(),N=qe(p);{var Ue=v=>{var i=j();$(l=>g(i,l),[()=>{var l;return((l=e(k).find(h=>h.id===e(U)[0]))==null?void 0:l.name)??e(U)[0]}],H),u(v,i)},at=v=>{var i=j();$(l=>g(i,l),[()=>aa(e(U).length)],H),u(v,i)};J(N,v=>{e(U).length===1?v(Ue):v(at,!1)},!0)}u(_,p)};J(Ve,_=>{e(U).length===1&&e(U)[0]===z?_(Oe):_(ye,!1)})}a(we),a(ke);var De=s(ke),Ke=n(De);Qe(Ke,{variant:"ghost",size:"sm",$$events:{click:()=>Nt(e(m))},children:(_,p)=>{Ne();var N=j();N.nodeValue=Xt,u(_,N)},$$slots:{default:!0}});var st=s(Ke,2);Qe(st,{variant:"danger",size:"sm",$$events:{click:()=>{o(Se,e(m).taskName),o(D,!0)}},children:(_,p)=>{Ne();var N=j();N.nodeValue=Qt,u(_,N)},$$slots:{default:!0}}),a(De),a(ae),$((_,p,N)=>{q(ae,"style",_),xe(ae,"disabled",!e(m).enabled),q(Z,"title",p),q(Z,"aria-label",p),q(Z,"aria-pressed",e(m).enabled),xe(Z,"on",e(m).enabled),q(pe,"title",N),g(et,` ${e(m).taskName??""}`),g(Fe,e(m).tags),xe(ve,"multi",e(m).workers>1),g(tt,`×${e(m).workers??""}`),g(Ae,e(m).browser??Me[0].id),xe(we,"multi-node",e(U).length>1)},[()=>as(je),()=>ta(e(m).enabled),()=>sa(e(m).taskName)],H),K("click",Z,()=>Ct(e(m))),K("click",pe,()=>Tt(e(m).taskName)),u(We,ae)}),a(se),a(d),a(f),u(t,f)};J(At,t=>{e(E).length===0?t(wt):t(Ot,!1)})}a(pt),u(c,it),Ht(),Q()}export{Ha as component};