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
@@ -0,0 +1,3 @@
1
+ var Yt=t=>{throw TypeError(t)};var Ce=(t,e,n)=>e.has(t)||Yt("Cannot "+n);var A=(t,e,n)=>(Ce(t,e,"read from private field"),n?n.call(t):e.get(t)),P=(t,e,n)=>e.has(t)?Yt("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n);import{w as Ct,o as zt,au as C,g as O,s as N,z as Oe}from"./BAACMRH5.js";const Ne="1784381622985";new URL("sveltekit-internal://");function je(t,e){return t==="/"||e==="ignore"?t:e==="never"?t.endsWith("/")?t.slice(0,-1):t:e==="always"&&!t.endsWith("/")?t+"/":t}function $e(t){return t.split("%25").map(decodeURI).join("%25")}function De(t){for(const e in t)t[e]=decodeURIComponent(t[e]);return t}function Rt({href:t}){return t.split("#")[0]}function Fe(t,e,n,r=!1){const a=new URL(t);Object.defineProperty(a,"searchParams",{value:new Proxy(a.searchParams,{get(i,o){if(o==="get"||o==="getAll"||o==="has")return f=>(n(f),i[o](f));e();const c=Reflect.get(i,o);return typeof c=="function"?c.bind(i):c}}),enumerable:!0,configurable:!0});const s=["href","pathname","search","toString","toJSON"];r&&s.push("hash");for(const i of s)Object.defineProperty(a,i,{get(){return e(),t[i]},enumerable:!0,configurable:!0});return a}function Ve(...t){let e=5381;for(const n of t)if(typeof n=="string"){let r=n.length;for(;r;)e=e*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let a=r.length;for(;a;)e=e*33^r[--a]}else throw new TypeError("value must be a string or TypedArray");return(e>>>0).toString(36)}function Be(t){const e=atob(t),n=new Uint8Array(e.length);for(let r=0;r<e.length;r++)n[r]=e.charCodeAt(r);return n.buffer}const Ge=window.fetch;window.fetch=(t,e)=>((t instanceof Request?t.method:(e==null?void 0:e.method)||"GET")!=="GET"&&W.delete(Ot(t)),Ge(t,e));const W=new Map;function Me(t,e){const n=Ot(t,e),r=document.querySelector(n);if(r!=null&&r.textContent){let{body:a,...s}=JSON.parse(r.textContent);const i=r.getAttribute("data-ttl");return i&&W.set(n,{body:a,init:s,ttl:1e3*Number(i)}),r.getAttribute("data-b64")!==null&&(a=Be(a)),Promise.resolve(new Response(a,s))}return window.fetch(t,e)}function qe(t,e,n){if(W.size>0){const r=Ot(t,n),a=W.get(r);if(a){if(performance.now()<a.ttl&&["default","force-cache","only-if-cached",void 0].includes(n==null?void 0:n.cache))return new Response(a.body,a.init);W.delete(r)}}return window.fetch(e,n)}function Ot(t,e){let r=`script[data-sveltekit-fetched][data-url=${JSON.stringify(t instanceof Request?t.url:t)}]`;if(e!=null&&e.headers||e!=null&&e.body){const a=[];e.headers&&a.push([...new Headers(e.headers)].join(",")),e.body&&(typeof e.body=="string"||ArrayBuffer.isView(e.body))&&a.push(e.body),r+=`[data-hash="${Ve(...a)}"]`}return r}const He=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function Ke(t){const e=[];return{pattern:t==="/"?/^\/$/:new RegExp(`^${Ye(t).map(r=>{const a=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(a)return e.push({name:a[1],matcher:a[2],optional:!1,rest:!0,chained:!0}),"(?:/(.*))?";const s=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(s)return e.push({name:s[1],matcher:s[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const i=r.split(/\[(.+?)\](?!\])/);return"/"+i.map((c,f)=>{if(f%2){if(c.startsWith("x+"))return It(String.fromCharCode(parseInt(c.slice(2),16)));if(c.startsWith("u+"))return It(String.fromCharCode(...c.slice(2).split("-").map(d=>parseInt(d,16))));const u=He.exec(c),[,p,y,l,m]=u;return e.push({name:l,matcher:m,optional:!!p,rest:!!y,chained:y?f===1&&i[0]==="":!1}),y?"(.*?)":p?"([^/]*)?":"([^/]+?)"}return It(c)}).join("")}).join("")}/?$`),params:e}}function We(t){return!/^\([^)]+\)$/.test(t)}function Ye(t){return t.slice(1).split("/").filter(We)}function ze(t,e,n){const r={},a=t.slice(1),s=a.filter(o=>o!==void 0);let i=0;for(let o=0;o<e.length;o+=1){const c=e[o];let f=a[o-i];if(c.chained&&c.rest&&i&&(f=a.slice(o-i,o+1).filter(u=>u).join("/"),i=0),f===void 0){c.rest&&(r[c.name]="");continue}if(!c.matcher||n[c.matcher](f)){r[c.name]=f;const u=e[o+1],p=a[o+1];u&&!u.rest&&u.optional&&p&&c.chained&&(i=0),!u&&!p&&Object.keys(r).length===s.length&&(i=0);continue}if(c.optional&&c.chained){i++;continue}return}if(!i)return r}function It(t){return t.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Je({nodes:t,server_loads:e,dictionary:n,matchers:r}){const a=new Set(e);return Object.entries(n).map(([o,[c,f,u]])=>{const{pattern:p,params:y}=Ke(o),l={id:o,exec:m=>{const d=p.exec(m);if(d)return ze(d,y,r)},errors:[1,...u||[]].map(m=>t[m]),layouts:[0,...f||[]].map(i),leaf:s(c)};return l.errors.length=l.layouts.length=Math.max(l.errors.length,l.layouts.length),l});function s(o){const c=o<0;return c&&(o=~o),[c,t[o]]}function i(o){return o===void 0?o:[a.has(o),t[o]]}}function fe(t,e=JSON.parse){try{return e(sessionStorage[t])}catch{}}function Jt(t,e,n=JSON.stringify){const r=n(e);try{sessionStorage[t]=r}catch{}}var oe;const x=((oe=globalThis.__sveltekit_1v80gvr)==null?void 0:oe.base)??"";var se;const Xe=((se=globalThis.__sveltekit_1v80gvr)==null?void 0:se.assets)??x,ue="sveltekit:snapshot",he="sveltekit:scroll",de="sveltekit:states",Ze="sveltekit:pageurl",G="sveltekit:history",J="sveltekit:navigation",ut={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},ft=location.origin;function pe(t){if(t instanceof URL)return t;let e=document.baseURI;if(!e){const n=document.getElementsByTagName("base");e=n.length?n[0].href:document.URL}return new URL(t,e)}function Nt(){return{x:pageXOffset,y:pageYOffset}}function B(t,e){return t.getAttribute(`data-sveltekit-${e}`)}const Xt={...ut,"":ut.hover};function ge(t){let e=t.assignedSlot??t.parentNode;return(e==null?void 0:e.nodeType)===11&&(e=e.host),e}function me(t,e){for(;t&&t!==e;){if(t.nodeName.toUpperCase()==="A"&&t.hasAttribute("href"))return t;t=ge(t)}}function Tt(t,e,n){let r;try{if(r=new URL(t instanceof SVGAElement?t.href.baseVal:t.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){const o=location.hash.split("#")[1]||"/";r.hash=`#${o}${r.hash}`}}catch{}const a=t instanceof SVGAElement?t.target.baseVal:t.target,s=!r||!!a||vt(r,e,n)||(t.getAttribute("rel")||"").split(/\s+/).includes("external"),i=(r==null?void 0:r.origin)===ft&&t.hasAttribute("download");return{url:r,external:s,target:a,download:i}}function ht(t){let e=null,n=null,r=null,a=null,s=null,i=null,o=t;for(;o&&o!==document.documentElement;)r===null&&(r=B(o,"preload-code")),a===null&&(a=B(o,"preload-data")),e===null&&(e=B(o,"keepfocus")),n===null&&(n=B(o,"noscroll")),s===null&&(s=B(o,"reload")),i===null&&(i=B(o,"replacestate")),o=ge(o);function c(f){switch(f){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:Xt[r??"off"],preload_data:Xt[a??"off"],keepfocus:c(e),noscroll:c(n),reload:c(s),replace_state:c(i)}}function Zt(t){const e=Ct(t);let n=!0;function r(){n=!0,e.update(i=>i)}function a(i){n=!1,e.set(i)}function s(i){let o;return e.subscribe(c=>{(o===void 0||n&&c!==o)&&i(o=c)})}return{notify:r,set:a,subscribe:s}}const ye={v:()=>{}};function Qe(){const{set:t,subscribe:e}=Ct(!1);let n;async function r(){clearTimeout(n);try{const a=await fetch(`${Xe}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const i=(await a.json()).version!==Ne;return i&&(t(!0),ye.v(),clearTimeout(n)),i}catch{return!1}}return{subscribe:e,check:r}}function vt(t,e,n){return t.origin!==ft||!t.pathname.startsWith(e)?!0:n?!(t.pathname===e+"/"||t.pathname===e+"/index.html"||t.protocol==="file:"&&t.pathname.replace(/\/[^/]+\.html?$/,"")===e):!1}function Qt(t){const e=en(t),n=new ArrayBuffer(e.length),r=new DataView(n);for(let a=0;a<n.byteLength;a++)r.setUint8(a,e.charCodeAt(a));return n}const tn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function en(t){t.length%4===0&&(t=t.replace(/==?$/,""));let e="",n=0,r=0;for(let a=0;a<t.length;a++)n<<=6,n|=tn.indexOf(t[a]),r+=6,r===24&&(e+=String.fromCharCode((n&16711680)>>16),e+=String.fromCharCode((n&65280)>>8),e+=String.fromCharCode(n&255),n=r=0);return r===12?(n>>=4,e+=String.fromCharCode(n)):r===18&&(n>>=2,e+=String.fromCharCode((n&65280)>>8),e+=String.fromCharCode(n&255)),e}const nn=-1,rn=-2,an=-3,on=-4,sn=-5,cn=-6;function ln(t,e){if(typeof t=="number")return a(t,!0);if(!Array.isArray(t)||t.length===0)throw new Error("Invalid input");const n=t,r=Array(n.length);function a(s,i=!1){if(s===nn)return;if(s===an)return NaN;if(s===on)return 1/0;if(s===sn)return-1/0;if(s===cn)return-0;if(i)throw new Error("Invalid input");if(s in r)return r[s];const o=n[s];if(!o||typeof o!="object")r[s]=o;else if(Array.isArray(o))if(typeof o[0]=="string"){const c=o[0],f=e==null?void 0:e[c];if(f)return r[s]=f(a(o[1]));switch(c){case"Date":r[s]=new Date(o[1]);break;case"Set":const u=new Set;r[s]=u;for(let l=1;l<o.length;l+=1)u.add(a(o[l]));break;case"Map":const p=new Map;r[s]=p;for(let l=1;l<o.length;l+=2)p.set(a(o[l]),a(o[l+1]));break;case"RegExp":r[s]=new RegExp(o[1],o[2]);break;case"Object":r[s]=Object(o[1]);break;case"BigInt":r[s]=BigInt(o[1]);break;case"null":const y=Object.create(null);r[s]=y;for(let l=1;l<o.length;l+=2)y[o[l]]=a(o[l+1]);break;case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":{const l=globalThis[c],m=o[1],d=Qt(m),h=new l(d);r[s]=h;break}case"ArrayBuffer":{const l=o[1],m=Qt(l);r[s]=m;break}default:throw new Error(`Unknown type ${c}`)}}else{const c=new Array(o.length);r[s]=c;for(let f=0;f<o.length;f+=1){const u=o[f];u!==rn&&(c[f]=a(u))}}else{const c={};r[s]=c;for(const f in o){const u=o[f];c[f]=a(u)}}return r[s]}return a(0)}const we=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...we];const fn=new Set([...we]);[...fn];function un(t){return t.filter(e=>e!=null)}class bt{constructor(e,n){this.status=e,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}}class jt{constructor(e,n){this.status=e,this.location=n}}class $t extends Error{constructor(e,n,r){super(r),this.status=e,this.text=n}}const hn="x-sveltekit-invalidated",dn="x-sveltekit-trailing-slash";function dt(t){return t instanceof bt||t instanceof $t?t.status:500}function pn(t){return t instanceof $t?t.text:"Internal Error"}let U,X,Ut;const gn=zt.toString().includes("$$")||/function \w+\(\) \{\}/.test(zt.toString());var tt,et,nt,rt,at,ot,st,it,ie,ct,ce,lt,le;gn?(U={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},X={current:null},Ut={current:!1}):(U=new(ie=class{constructor(){P(this,tt,C({}));P(this,et,C(null));P(this,nt,C(null));P(this,rt,C({}));P(this,at,C({id:null}));P(this,ot,C({}));P(this,st,C(-1));P(this,it,C(new URL("https://example.com")))}get data(){return O(A(this,tt))}set data(e){N(A(this,tt),e)}get form(){return O(A(this,et))}set form(e){N(A(this,et),e)}get error(){return O(A(this,nt))}set error(e){N(A(this,nt),e)}get params(){return O(A(this,rt))}set params(e){N(A(this,rt),e)}get route(){return O(A(this,at))}set route(e){N(A(this,at),e)}get state(){return O(A(this,ot))}set state(e){N(A(this,ot),e)}get status(){return O(A(this,st))}set status(e){N(A(this,st),e)}get url(){return O(A(this,it))}set url(e){N(A(this,it),e)}},tt=new WeakMap,et=new WeakMap,nt=new WeakMap,rt=new WeakMap,at=new WeakMap,ot=new WeakMap,st=new WeakMap,it=new WeakMap,ie),X=new(ce=class{constructor(){P(this,ct,C(null))}get current(){return O(A(this,ct))}set current(e){N(A(this,ct),e)}},ct=new WeakMap,ce),Ut=new(le=class{constructor(){P(this,lt,C(!1))}get current(){return O(A(this,lt))}set current(e){N(A(this,lt),e)}},lt=new WeakMap,le),ye.v=()=>Ut.current=!0);function mn(t){Object.assign(U,t)}const yn="/__data.json",wn=".html__data.json";function _n(t){return t.endsWith(".html")?t.replace(/\.html$/,wn):t.replace(/\/$/,"")+yn}const vn=new Set(["icon","shortcut icon","apple-touch-icon"]),V=fe(he)??{},Z=fe(ue)??{},$={url:Zt({}),page:Zt({}),navigating:Ct(null),updated:Qe()};function Dt(t){V[t]=Nt()}function bn(t,e){let n=t+1;for(;V[n];)delete V[n],n+=1;for(n=e+1;Z[n];)delete Z[n],n+=1}function q(t){return location.href=t.href,new Promise(()=>{})}async function _e(){if("serviceWorker"in navigator){const t=await navigator.serviceWorker.getRegistration(x||"/");t&&await t.update()}}function te(){}let Ft,xt,pt,j,Pt,k;const gt=[],mt=[];let L=null;const ve=new Set,An=new Set,Y=new Set;let v={branch:[],error:null,url:null},Vt=!1,yt=!1,ee=!0,Q=!1,H=!1,be=!1,Bt=!1,Ae,R,T,F;const z=new Set;async function Vn(t,e,n){var a,s,i,o;document.URL!==location.href&&(location.href=location.href),k=t,await((s=(a=t.hooks).init)==null?void 0:s.call(a)),Ft=Je(t),j=document.documentElement,Pt=e,xt=t.nodes[0],pt=t.nodes[1],xt(),pt(),R=(i=history.state)==null?void 0:i[G],T=(o=history.state)==null?void 0:o[J],R||(R=T=Date.now(),history.replaceState({...history.state,[G]:R,[J]:T},""));const r=V[R];r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y)),n?await Cn(Pt,n):await Tn(k.hash?Pe(new URL(location.href)):location.href,{replaceState:!0}),Pn()}function kn(){gt.length=0,Bt=!1}function ke(t){mt.some(e=>e==null?void 0:e.snapshot)&&(Z[t]=mt.map(e=>{var n;return(n=e==null?void 0:e.snapshot)==null?void 0:n.capture()}))}function Se(t){var e;(e=Z[t])==null||e.forEach((n,r)=>{var a,s;(s=(a=mt[r])==null?void 0:a.snapshot)==null||s.restore(n)})}function ne(){Dt(R),Jt(he,V),ke(T),Jt(ue,Z)}async function Gt(t,e,n,r){return K({type:"goto",url:pe(t),keepfocus:e.keepFocus,noscroll:e.noScroll,replace_state:e.replaceState,state:e.state,redirect_count:n,nav_token:r,accept:()=>{e.invalidateAll&&(Bt=!0),e.invalidate&&e.invalidate.forEach(xn)}})}async function Sn(t){if(t.id!==(L==null?void 0:L.id)){const e={};z.add(e),L={id:t.id,token:e,promise:Re({...t,preload:e}).then(n=>(z.delete(e),n.type==="loaded"&&n.state.error&&(L=null),n))}}return L.promise}async function Lt(t){var n;const e=(n=await kt(t,!1))==null?void 0:n.route;e&&await Promise.all([...e.layouts,e.leaf].map(r=>r==null?void 0:r[1]()))}function Ee(t,e,n){var s;v=t.state;const r=document.querySelector("style[data-sveltekit]");r&&r.remove(),Object.assign(U,t.props.page),Ae=new k.root({target:e,props:{...t.props,stores:$,components:mt},hydrate:n,sync:!1}),Se(T);const a={from:null,to:{params:v.params,route:{id:((s=v.route)==null?void 0:s.id)??null},url:new URL(location.href)},willUnload:!1,type:"enter",complete:Promise.resolve()};Y.forEach(i=>i(a)),yt=!0}function wt({url:t,params:e,branch:n,status:r,error:a,route:s,form:i}){let o="never";if(x&&(t.pathname===x||t.pathname===x+"/"))o="always";else for(const l of n)(l==null?void 0:l.slash)!==void 0&&(o=l.slash);t.pathname=je(t.pathname,o),t.search=t.search;const c={type:"loaded",state:{url:t,params:e,branch:n,error:a,route:s},props:{constructors:un(n).map(l=>l.node.component),page:Ht(U)}};i!==void 0&&(c.props.form=i);let f={},u=!U,p=0;for(let l=0;l<Math.max(n.length,v.branch.length);l+=1){const m=n[l],d=v.branch[l];(m==null?void 0:m.data)!==(d==null?void 0:d.data)&&(u=!0),m&&(f={...f,...m.data},u&&(c.props[`data_${p}`]=f),p+=1)}return(!v.url||t.href!==v.url.href||v.error!==a||i!==void 0&&i!==U.form||u)&&(c.props.page={error:a,params:e,route:{id:(s==null?void 0:s.id)??null},state:{},status:r,url:new URL(t),form:i??null,data:u?f:U.data}),c}async function Mt({loader:t,parent:e,url:n,params:r,route:a,server_data_node:s}){var u,p,y;let i=null,o=!0;const c={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},f=await t();if((u=f.universal)!=null&&u.load){let l=function(...d){for(const h of d){const{href:w}=new URL(h,n);c.dependencies.add(w)}};const m={route:new Proxy(a,{get:(d,h)=>(o&&(c.route=!0),d[h])}),params:new Proxy(r,{get:(d,h)=>(o&&c.params.add(h),d[h])}),data:(s==null?void 0:s.data)??null,url:Fe(n,()=>{o&&(c.url=!0)},d=>{o&&c.search_params.add(d)},k.hash),async fetch(d,h){let w;d instanceof Request?(w=d.url,h={body:d.method==="GET"||d.method==="HEAD"?void 0:await d.blob(),cache:d.cache,credentials:d.credentials,headers:[...d.headers].length?d.headers:void 0,integrity:d.integrity,keepalive:d.keepalive,method:d.method,mode:d.mode,redirect:d.redirect,referrer:d.referrer,referrerPolicy:d.referrerPolicy,signal:d.signal,...h}):w=d;const S=new URL(w,n);return o&&l(S.href),S.origin===n.origin&&(w=S.href.slice(n.origin.length)),yt?qe(w,S.href,h):Me(w,h)},setHeaders:()=>{},depends:l,parent(){return o&&(c.parent=!0),e()},untrack(d){o=!1;try{return d()}finally{o=!0}}};i=await f.universal.load.call(null,m)??null}return{node:f,loader:t,server:s,universal:(p=f.universal)!=null&&p.load?{type:"data",data:i,uses:c}:null,data:i??(s==null?void 0:s.data)??null,slash:((y=f.universal)==null?void 0:y.trailingSlash)??(s==null?void 0:s.slash)}}function re(t,e,n,r,a,s){if(Bt)return!0;if(!a)return!1;if(a.parent&&t||a.route&&e||a.url&&n)return!0;for(const i of a.search_params)if(r.has(i))return!0;for(const i of a.params)if(s[i]!==v.params[i])return!0;for(const i of a.dependencies)if(gt.some(o=>o(new URL(i))))return!0;return!1}function qt(t,e){return(t==null?void 0:t.type)==="data"?t:(t==null?void 0:t.type)==="skip"?e??null:null}function En(t,e){if(!t)return new Set(e.searchParams.keys());const n=new Set([...t.searchParams.keys(),...e.searchParams.keys()]);for(const r of n){const a=t.searchParams.getAll(r),s=e.searchParams.getAll(r);a.every(i=>s.includes(i))&&s.every(i=>a.includes(i))&&n.delete(r)}return n}function ae({error:t,url:e,route:n,params:r}){return{type:"loaded",state:{error:t,url:e,route:n,params:r,branch:[]},props:{page:Ht(U),constructors:[]}}}async function Re({id:t,invalidating:e,url:n,params:r,route:a,preload:s}){if((L==null?void 0:L.id)===t)return z.delete(L.token),L.promise;const{errors:i,layouts:o,leaf:c}=a,f=[...o,c];i.forEach(g=>g==null?void 0:g().catch(()=>{})),f.forEach(g=>g==null?void 0:g[1]().catch(()=>{}));let u=null;const p=v.url?t!==_t(v.url):!1,y=v.route?a.id!==v.route.id:!1,l=En(v.url,n);let m=!1;const d=f.map((g,_)=>{var D;const b=v.branch[_],E=!!(g!=null&&g[0])&&((b==null?void 0:b.loader)!==g[1]||re(m,y,p,l,(D=b.server)==null?void 0:D.uses,r));return E&&(m=!0),E});if(d.some(Boolean)){try{u=await Le(n,d)}catch(g){const _=await M(g,{url:n,params:r,route:{id:t}});return z.has(s)?ae({error:_,url:n,params:r,route:a}):At({status:dt(g),error:_,url:n,route:a})}if(u.type==="redirect")return u}const h=u==null?void 0:u.nodes;let w=!1;const S=f.map(async(g,_)=>{var St;if(!g)return;const b=v.branch[_],E=h==null?void 0:h[_];if((!E||E.type==="skip")&&g[1]===(b==null?void 0:b.loader)&&!re(w,y,p,l,(St=b.universal)==null?void 0:St.uses,r))return b;if(w=!0,(E==null?void 0:E.type)==="error")throw E;return Mt({loader:g[1],url:n,params:r,route:a,parent:async()=>{var Wt;const Kt={};for(let Et=0;Et<_;Et+=1)Object.assign(Kt,(Wt=await S[Et])==null?void 0:Wt.data);return Kt},server_data_node:qt(E===void 0&&g[0]?{type:"skip"}:E??null,g[0]?b==null?void 0:b.server:void 0)})});for(const g of S)g.catch(()=>{});const I=[];for(let g=0;g<f.length;g+=1)if(f[g])try{I.push(await S[g])}catch(_){if(_ instanceof jt)return{type:"redirect",location:_.location};if(z.has(s))return ae({error:await M(_,{params:r,url:n,route:{id:a.id}}),url:n,params:r,route:a});let b=dt(_),E;if(h!=null&&h.includes(_))b=_.status??b,E=_.error;else if(_ instanceof bt)E=_.body;else{if(await $.updated.check())return await _e(),await q(n);E=await M(_,{params:r,url:n,route:{id:a.id}})}const D=await Rn(g,I,i);return D?wt({url:n,params:r,branch:I.slice(0,D.idx).concat(D.node),status:b,error:E,route:a}):await Ue(n,{id:a.id},E,b)}else I.push(void 0);return wt({url:n,params:r,branch:I,status:200,error:null,route:a,form:e?void 0:null})}async function Rn(t,e,n){for(;t--;)if(n[t]){let r=t;for(;!e[r];)r-=1;try{return{idx:r+1,node:{node:await n[t](),loader:n[t],data:{},server:null,universal:null}}}catch{continue}}}async function At({status:t,error:e,url:n,route:r}){const a={};let s=null;if(k.server_loads[0]===0)try{const o=await Le(n,[!0]);if(o.type!=="data"||o.nodes[0]&&o.nodes[0].type!=="data")throw 0;s=o.nodes[0]??null}catch{(n.origin!==ft||n.pathname!==location.pathname||Vt)&&await q(n)}try{const o=await Mt({loader:xt,url:n,params:a,route:r,parent:()=>Promise.resolve({}),server_data_node:qt(s)}),c={node:await pt(),loader:pt,universal:null,server:null,data:null};return wt({url:n,params:a,branch:[o,c],status:t,error:e,route:null})}catch(o){if(o instanceof jt)return Gt(new URL(o.location,location.href),{},0);throw o}}function In(t){let e;try{if(e=k.hooks.reroute({url:new URL(t)})??t,typeof e=="string"){const n=new URL(t);k.hash?n.hash=e:n.pathname=e,e=n}}catch{return}return e}async function kt(t,e){if(t&&!vt(t,x,k.hash)){const n=In(t);if(!n)return;const r=Un(n);for(const a of Ft){const s=a.exec(r);if(s)return{id:_t(t),invalidating:e,route:a,params:De(s),url:t}}}}function Un(t){return $e(k.hash?t.hash.replace(/^#/,"").replace(/[?#].+/,""):t.pathname.slice(x.length))||"/"}function _t(t){return(k.hash?t.hash.replace(/^#/,""):t.pathname)+t.search}function Ie({url:t,type:e,intent:n,delta:r}){let a=!1;const s=xe(v,n,t,e);r!==void 0&&(s.navigation.delta=r);const i={...s.navigation,cancel:()=>{a=!0,s.reject(new Error("navigation cancelled"))}};return Q||ve.forEach(o=>o(i)),a?null:s}async function K({type:t,url:e,popped:n,keepfocus:r,noscroll:a,replace_state:s,state:i={},redirect_count:o=0,nav_token:c={},accept:f=te,block:u=te}){const p=F;F=c;const y=await kt(e,!1),l=Ie({url:e,type:t,delta:n==null?void 0:n.delta,intent:y});if(!l){u(),F===c&&(F=p);return}const m=R,d=T;f(),Q=!0,yt&&$.navigating.set(X.current=l.navigation);let h=y&&await Re(y);if(!h){if(vt(e,x,k.hash))return await q(e);h=await Ue(e,{id:null},await M(new $t(404,"Not Found",`Not found: ${e.pathname}`),{url:e,params:{},route:{id:null}}),404)}if(e=(y==null?void 0:y.url)||e,F!==c)return l.reject(new Error("navigation aborted")),!1;if(h.type==="redirect")if(o>=20)h=await At({status:500,error:await M(new Error("Redirect loop"),{url:e,params:{},route:{id:null}}),url:e,route:{id:null}});else return await Gt(new URL(h.location,e).href,{},o+1,c),!1;else h.props.page.status>=400&&await $.updated.check()&&(await _e(),await q(e));if(kn(),Dt(m),ke(d),h.props.page.url.pathname!==e.pathname&&(e.pathname=h.props.page.url.pathname),i=n?n.state:i,!n){const g=s?0:1,_={[G]:R+=g,[J]:T+=g,[de]:i};(s?history.replaceState:history.pushState).call(history,_,"",e),s||bn(R,T)}if(L=null,h.props.page.state=i,yt){v=h.state,h.props.page&&(h.props.page.url=e);const g=(await Promise.all(Array.from(An,_=>_(l.navigation)))).filter(_=>typeof _=="function");if(g.length>0){let _=function(){g.forEach(b=>{Y.delete(b)})};g.push(_),g.forEach(b=>{Y.add(b)})}Ae.$set(h.props),mn(h.props.page),be=!0}else Ee(h,Pt,!1);const{activeElement:w}=document;await Oe();const S=n?n.scroll:a?Nt():null;if(ee){const g=e.hash&&document.getElementById(decodeURIComponent(k.hash?e.hash.split("#")[2]??"":e.hash.slice(1)));S?scrollTo(S.x,S.y):g?g.scrollIntoView():scrollTo(0,0)}const I=document.activeElement!==w&&document.activeElement!==document.body;!r&&!I&&On(),ee=!0,h.props.page&&Object.assign(U,h.props.page),Q=!1,t==="popstate"&&Se(T),l.fulfil(void 0),Y.forEach(g=>g(l.navigation)),$.navigating.set(X.current=null)}async function Ue(t,e,n,r){return t.origin===ft&&t.pathname===location.pathname&&!Vt?await At({status:r,error:n,url:t,route:e}):await q(t)}function Ln(){let t,e;j.addEventListener("mousemove",i=>{const o=i.target;clearTimeout(t),t=setTimeout(()=>{a(o,2)},20)});function n(i){i.defaultPrevented||a(i.composedPath()[0],1)}j.addEventListener("mousedown",n),j.addEventListener("touchstart",n,{passive:!0});const r=new IntersectionObserver(i=>{for(const o of i)o.isIntersecting&&(Lt(new URL(o.target.href)),r.unobserve(o.target))},{threshold:0});async function a(i,o){const c=me(i,j);if(!c||c===e)return;e=c;const{url:f,external:u,download:p}=Tt(c,x,k.hash);if(u||p)return;const y=ht(c),l=f&&_t(v.url)===_t(f);if(!y.reload&&!l)if(o<=y.preload_data){const m=await kt(f,!1);m&&Sn(m)}else o<=y.preload_code&&Lt(f)}function s(){r.disconnect();for(const i of j.querySelectorAll("a")){const{url:o,external:c,download:f}=Tt(i,x,k.hash);if(c||f)continue;const u=ht(i);u.reload||(u.preload_code===ut.viewport&&r.observe(i),u.preload_code===ut.eager&&Lt(o))}}Y.add(s),s()}function M(t,e){if(t instanceof bt)return t.body;const n=dt(t),r=pn(t);return k.hooks.handleError({error:t,event:e,status:n,message:r})??{message:r}}function Tn(t,e={}){return t=new URL(pe(t)),t.origin!==ft?Promise.reject(new Error("goto: invalid URL")):Gt(t,e,0)}function xn(t){if(typeof t=="function")gt.push(t);else{const{href:e}=new URL(t,location.href);gt.push(n=>n.href===e)}}function Pn(){var e;history.scrollRestoration="manual",addEventListener("beforeunload",n=>{let r=!1;if(ne(),!Q){const a=xe(v,void 0,null,"leave"),s={...a.navigation,cancel:()=>{r=!0,a.reject(new Error("navigation cancelled"))}};ve.forEach(i=>i(s))}r?(n.preventDefault(),n.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&ne()}),(e=navigator.connection)!=null&&e.saveData||Ln(),j.addEventListener("click",async n=>{if(n.button||n.which!==1||n.metaKey||n.ctrlKey||n.shiftKey||n.altKey||n.defaultPrevented)return;const r=me(n.composedPath()[0],j);if(!r)return;const{url:a,external:s,target:i,download:o}=Tt(r,x,k.hash);if(!a)return;if(i==="_parent"||i==="_top"){if(window.parent!==window)return}else if(i&&i!=="_self")return;const c=ht(r);if(!(r instanceof SVGAElement)&&a.protocol!==location.protocol&&!(a.protocol==="https:"||a.protocol==="http:")||o)return;const[u,p]=(k.hash?a.hash.replace(/^#/,""):a.href).split("#"),y=u===Rt(location);if(s||c.reload&&(!y||!p)){Ie({url:a,type:"link"})?Q=!0:n.preventDefault();return}if(p!==void 0&&y){const[,l]=v.url.href.split("#");if(l===p){if(n.preventDefault(),p===""||p==="top"&&r.ownerDocument.getElementById("top")===null)window.scrollTo({top:0});else{const m=r.ownerDocument.getElementById(decodeURIComponent(p));m&&(m.scrollIntoView(),m.focus())}return}if(H=!0,Dt(R),t(a),!c.replace_state)return;H=!1}n.preventDefault(),await new Promise(l=>{requestAnimationFrame(()=>{setTimeout(l,0)}),setTimeout(l,100)}),await K({type:"link",url:a,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??a.href===location.href})}),j.addEventListener("submit",n=>{if(n.defaultPrevented)return;const r=HTMLFormElement.prototype.cloneNode.call(n.target),a=n.submitter;if(((a==null?void 0:a.formTarget)||r.target)==="_blank"||((a==null?void 0:a.formMethod)||r.method)!=="get")return;const o=new URL((a==null?void 0:a.hasAttribute("formaction"))&&(a==null?void 0:a.formAction)||r.action);if(vt(o,x,!1))return;const c=n.target,f=ht(c);if(f.reload)return;n.preventDefault(),n.stopPropagation();const u=new FormData(c),p=a==null?void 0:a.getAttribute("name");p&&u.append(p,(a==null?void 0:a.getAttribute("value"))??""),o.search=new URLSearchParams(u).toString(),K({type:"form",url:o,keepfocus:f.keepfocus,noscroll:f.noscroll,replace_state:f.replace_state??o.href===location.href})}),addEventListener("popstate",async n=>{var r;if((r=n.state)!=null&&r[G]){const a=n.state[G];if(F={},a===R)return;const s=V[a],i=n.state[de]??{},o=new URL(n.state[Ze]??location.href),c=n.state[J],f=v.url?Rt(location)===Rt(v.url):!1;if(c===T&&(be||f)){i!==U.state&&(U.state=i),t(o),V[R]=Nt(),s&&scrollTo(s.x,s.y),R=a;return}const p=a-R;await K({type:"popstate",url:o,popped:{state:i,scroll:s,delta:p},accept:()=>{R=a,T=c},block:()=>{history.go(-p)},nav_token:F})}else if(!H){const a=new URL(location.href);t(a)}}),addEventListener("hashchange",()=>{H?(H=!1,history.replaceState({...history.state,[G]:++R,[J]:T},"",location.href)):k.hash&&v.url.hash===location.hash&&K({type:"goto",url:Pe(v.url)})});for(const n of document.querySelectorAll("link"))vn.has(n.rel)&&(n.href=n.href);addEventListener("pageshow",n=>{n.persisted&&$.navigating.set(X.current=null)});function t(n){v.url=U.url=n,$.page.set(Ht(U)),$.page.notify()}}async function Cn(t,{status:e=200,error:n,node_ids:r,params:a,route:s,server_route:i,data:o,form:c}){Vt=!0;const f=new URL(location.href);let u;({params:a={},route:s={id:null}}=await kt(f,!1)||{}),u=Ft.find(({id:l})=>l===s.id);let p,y=!0;try{const l=r.map(async(d,h)=>{const w=o[h];return w!=null&&w.uses&&(w.uses=Te(w.uses)),Mt({loader:k.nodes[d],url:f,params:a,route:s,parent:async()=>{const S={};for(let I=0;I<h;I+=1)Object.assign(S,(await l[I]).data);return S},server_data_node:qt(w)})}),m=await Promise.all(l);if(u){const d=u.layouts;for(let h=0;h<d.length;h++)d[h]||m.splice(h,0,void 0)}p=wt({url:f,params:a,branch:m,status:e,error:n,form:c,route:u??null})}catch(l){if(l instanceof jt){await q(new URL(l.location,location.href));return}p=await At({status:dt(l),error:await M(l,{url:f,params:a,route:s}),url:f,route:s}),t.textContent="",y=!1}p.props.page&&(p.props.page.state={}),Ee(p,t,y)}async function Le(t,e){var s;const n=new URL(t);n.pathname=_n(t.pathname),t.pathname.endsWith("/")&&n.searchParams.append(dn,"1"),n.searchParams.append(hn,e.map(i=>i?"1":"0").join(""));const r=window.fetch,a=await r(n.href,{});if(!a.ok){let i;throw(s=a.headers.get("content-type"))!=null&&s.includes("application/json")?i=await a.json():a.status===404?i="Not Found":a.status===500&&(i="Internal Error"),new bt(a.status,i)}return new Promise(async i=>{var y;const o=new Map,c=a.body.getReader(),f=new TextDecoder;function u(l){return ln(l,{...k.decoders,Promise:m=>new Promise((d,h)=>{o.set(m,{fulfil:d,reject:h})})})}let p="";for(;;){const{done:l,value:m}=await c.read();if(l&&!p)break;for(p+=!m&&p?`
2
+ `:f.decode(m,{stream:!0});;){const d=p.indexOf(`
3
+ `);if(d===-1)break;const h=JSON.parse(p.slice(0,d));if(p=p.slice(d+1),h.type==="redirect")return i(h);if(h.type==="data")(y=h.nodes)==null||y.forEach(w=>{(w==null?void 0:w.type)==="data"&&(w.uses=Te(w.uses),w.data=u(w.data))}),i(h);else if(h.type==="chunk"){const{id:w,data:S,error:I}=h,g=o.get(w);o.delete(w),I?g.reject(u(I)):g.fulfil(u(S))}}}})}function Te(t){return{dependencies:new Set((t==null?void 0:t.dependencies)??[]),params:new Set((t==null?void 0:t.params)??[]),parent:!!(t!=null&&t.parent),route:!!(t!=null&&t.route),url:!!(t!=null&&t.url),search_params:new Set((t==null?void 0:t.search_params)??[])}}function On(){const t=document.querySelector("[autofocus]");if(t)t.focus();else{const e=document.body,n=e.getAttribute("tabindex");e.tabIndex=-1,e.focus({preventScroll:!0,focusVisible:!1}),n!==null?e.setAttribute("tabindex",n):e.removeAttribute("tabindex");const r=getSelection();if(r&&r.type!=="None"){const a=[];for(let s=0;s<r.rangeCount;s+=1)a.push(r.getRangeAt(s));setTimeout(()=>{if(r.rangeCount===a.length){for(let s=0;s<r.rangeCount;s+=1){const i=a[s],o=r.getRangeAt(s);if(i.commonAncestorContainer!==o.commonAncestorContainer||i.startContainer!==o.startContainer||i.endContainer!==o.endContainer||i.startOffset!==o.startOffset||i.endOffset!==o.endOffset)return}r.removeAllRanges()}})}}}function xe(t,e,n,r){var c,f;let a,s;const i=new Promise((u,p)=>{a=u,s=p});return i.catch(()=>{}),{navigation:{from:{params:t.params,route:{id:((c=t.route)==null?void 0:c.id)??null},url:t.url},to:n&&{params:(e==null?void 0:e.params)??null,route:{id:((f=e==null?void 0:e.route)==null?void 0:f.id)??null},url:n},willUnload:!e,type:r,complete:i},fulfil:a,reject:s}}function Ht(t){return{data:t.data,error:t.error,form:t.form,params:t.params,route:t.route,state:t.state,status:t.status,url:t.url}}function Pe(t){const e=new URL(t);return e.hash=decodeURIComponent(t.hash),e}export{Vn as a,Tn as g,U as p,$ as s};
@@ -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{T as r}from"./4N1zIH8t.js";const c=new Set([r.MANUAL,r.CLI,r.MCP,r.EXTERNAL,"undefined"]);function m(n){return!!n&&!c.has(n)}function h(n){return n===r.MANUAL?"Manual":n===r.CLI||n==="undefined"?"CLI":n===r.MCP?"MCP":n===r.EXTERNAL?"External":"Scheduled"}function L(n){return n===r.MANUAL?"tag":n===r.CLI||n==="undefined"?"neutral":n===r.MCP?"mcp":n===r.EXTERNAL?"external":"schedule"}function p(n,t=45){return`animation-delay: ${n*t}ms`}function w(n){return n>=1e3?(n/1e3).toFixed(2)+"s":n+"ms"}function S(n){if(!n)return"";const t=n.replace(/\\/g,"/"),e=t.lastIndexOf("/features/");return e!==-1?t.slice(e+1):t.split("/").pop()}function A(n){const t=(n??"").toLowerCase().replace(/:$/,"");return t==="given"?"kw-given":t==="when"?"kw-when":t==="then"?"kw-then":"kw-and"}function o(n){return/suite/i.test(n)||/^@ts-?\d+/i.test(n)}function d(n){return/^@test[\w-]*/i.test(n)||/^@tc-?\d+/i.test(n)}function f(n){var t;return((t=n.tags)==null?void 0:t.find(d))??null}function C(n){var t;for(const e of n.scenarios??[]){const s=(t=e.tags)==null?void 0:t.find(o);if(s)return s}return null}function g(n){const t=f(n);return t?[t]:(n.tags??[]).filter(e=>!o(e))}const a={failed:3,pending:2,skipped:1,passed:0};function l(n){return n.reduce((t,e)=>(a[e.status]??0)>(a[t]??0)?e.status:t,"passed")}function k(n){const t=new Map;for(const e of n){const i=f(e)??`${e.keyword}:${e.name}`;t.has(i)||t.set(i,{key:i,name:e.name,tags:g(e),scenarios:[],duration:0,status:e.status});const u=t.get(i);u.scenarios.push(e),u.duration+=e.duration??0,u.status=l(u.scenarios)}return Array.from(t.values())}function E(n){if(!n)return[];if(!/^=== .+ ===/m.test(n))return[{name:"Logs",content:n}];const t=[];for(const e of n.split(/\n\n(?==== )/)){const s=e.match(/^=== (.+?) ===\n?([\s\S]*)/);s&&t.push({name:s[1].trim(),content:s[2].trim()})}return t}function M(n){var t;return((t=n.steps)==null?void 0:t.some(e=>e.screenshot))??!1}export{L as a,w as b,S as c,M as d,C as f,k as g,m as i,A as k,E as p,p as s,h as t};
1
+ import{T as r}from"./CUC98kMZ.js";const c=new Set([r.MANUAL,r.CLI,r.MCP,r.EXTERNAL,"undefined"]);function m(n){return!!n&&!c.has(n)}function h(n){return n===r.MANUAL?"Manual":n===r.CLI||n==="undefined"?"CLI":n===r.MCP?"MCP":n===r.EXTERNAL?"External":"Scheduled"}function L(n){return n===r.MANUAL?"tag":n===r.CLI||n==="undefined"?"neutral":n===r.MCP?"mcp":n===r.EXTERNAL?"external":"schedule"}function p(n,t=45){return`animation-delay: ${n*t}ms`}function w(n){return n>=1e3?(n/1e3).toFixed(2)+"s":n+"ms"}function S(n){if(!n)return"";const t=n.replace(/\\/g,"/"),e=t.lastIndexOf("/features/");return e!==-1?t.slice(e+1):t.split("/").pop()}function A(n){const t=(n??"").toLowerCase().replace(/:$/,"");return t==="given"?"kw-given":t==="when"?"kw-when":t==="then"?"kw-then":"kw-and"}function o(n){return/suite/i.test(n)||/^@ts-?\d+/i.test(n)}function d(n){return/^@test[\w-]*/i.test(n)||/^@tc-?\d+/i.test(n)}function f(n){var t;return((t=n.tags)==null?void 0:t.find(d))??null}function C(n){var t;for(const e of n.scenarios??[]){const s=(t=e.tags)==null?void 0:t.find(o);if(s)return s}return null}function g(n){const t=f(n);return t?[t]:(n.tags??[]).filter(e=>!o(e))}const a={failed:3,pending:2,skipped:1,passed:0};function l(n){return n.reduce((t,e)=>(a[e.status]??0)>(a[t]??0)?e.status:t,"passed")}function k(n){const t=new Map;for(const e of n){const i=f(e)??`${e.keyword}:${e.name}`;t.has(i)||t.set(i,{key:i,name:e.name,tags:g(e),scenarios:[],duration:0,status:e.status});const u=t.get(i);u.scenarios.push(e),u.duration+=e.duration??0,u.status=l(u.scenarios)}return Array.from(t.values())}function E(n){if(!n)return[];if(!/^=== .+ ===/m.test(n))return[{name:"Logs",content:n}];const t=[];for(const e of n.split(/\n\n(?==== )/)){const s=e.match(/^=== (.+?) ===\n?([\s\S]*)/);s&&t.push({name:s[1].trim(),content:s[2].trim()})}return t}function M(n){var t;return((t=n.steps)==null?void 0:t.some(e=>e.screenshot))??!1}export{L as a,w as b,S as c,M as d,C as f,k as g,m as i,A as k,E as p,p as s,h as t};
@@ -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 r,R as u}from"./4N1zIH8t.js";function o(t){return{...t,date:new Date(t.createdAt).toLocaleString()}}async function h({page:t=1,limit:e=u}={}){const n=new URLSearchParams({page:t,limit:e}),s=await fetch(`${r}/reports?${n}`),{reports:a,total:c,passCount:i,failCount:p,trend:f}=await s.json();return{reports:a.map(o),total:c,passCount:i,failCount:p,trend:f.map(o)}}async function l(){const t=await fetch(`${r}/reports/latest`),{latestReportId:e}=await t.json();return e}function w(t){return`/reports/${t}`}function E(t){return`${r}/screenshots/${t}`}async function R(t){const e=await fetch(`${r}/reports/${t}`);if(!e.ok)throw new Error("Report not found");return e.json()}async function $(t){const e=await fetch(`${r}/reports/${t}`,{method:"DELETE"});if(!e.ok)throw new Error("Failed to delete report");return e.json()}async function m(t){const e=await fetch(`${r}/reports/bulk`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:t})});if(!e.ok)throw new Error("Failed to delete reports");return e.json()}export{m as a,R as b,l as c,$ as d,h as f,w as r,E as s};
1
+ import{A as r,R as u}from"./CUC98kMZ.js";function o(t){return{...t,date:new Date(t.createdAt).toLocaleString()}}async function h({page:t=1,limit:e=u}={}){const n=new URLSearchParams({page:t,limit:e}),s=await fetch(`${r}/reports?${n}`),{reports:a,total:c,passCount:i,failCount:p,trend:f}=await s.json();return{reports:a.map(o),total:c,passCount:i,failCount:p,trend:f.map(o)}}async function l(){const t=await fetch(`${r}/reports/latest`),{latestReportId:e}=await t.json();return e}function w(t){return`/reports/${t}`}function E(t){return`${r}/screenshots/${t}`}async function R(t){const e=await fetch(`${r}/reports/${t}`);if(!e.ok)throw new Error("Report not found");return e.json()}async function $(t){const e=await fetch(`${r}/reports/${t}`,{method:"DELETE"});if(!e.ok)throw new Error("Failed to delete report");return e.json()}async function m(t){const e=await fetch(`${r}/reports/bulk`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:t})});if(!e.ok)throw new Error("Failed to delete reports");return e.json()}export{m as a,R as b,l as c,$ as d,h as f,w as r,E as s};
@@ -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
1
  const a="Checking server…",t="jane@example.com",n="Sign in — Plum",c="Sign in",e="Access your test workspace",E="••••••••",L="Login failed",o=s=>s?"Signing in…":"Sign in",_="Setup — Plum",A="Welcome to Plum",S="Create your first account to get started.",r="Your name",I="Jane Smith",i="Min. 8 characters",P="All fields are required.",C="Password must be at least 8 characters.",R="Setup failed",T=s=>s?"Creating account…":"Create account";export{P as A,a as C,t as E,n as L,I as N,E as P,c as S,A as W,r as Y,e as a,L as b,_ as c,S as d,i as e,T as f,C as g,R as h,o as s};
@@ -1,25 +1,3 @@
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
1
  import{av as va,Z as da,aw as ta,h as T,a3 as M,ax as _a,_ as sa,g as Y,a1 as pa,a2 as J,a4 as H,a8 as S,ay as ha,a5 as ia,a6 as na,a7 as ya,az as D,aA as fa,q as oa,H as k,aB as z,aC as Q,aD as B,x as ma,i as $a,W as ga,E as X,aE as wa,aF as Ea,aG as Ta,aH as xa,aI as Na,aJ as ba,aK as Aa,a0 as Ca,aL as Ia,aM as Sa,e as Fa,u as Ra,aN as ka,aO as La,a9 as F,aP as Z,aQ as j,aR as Oa,aS as Ma,aT as Ha}from"./BAACMRH5.js";import{g as Da,w as qa}from"./CMBQQ9RZ.js";function Xa(e,a){return a}function za(e,a,r,i){for(var s=[],n=a.length,o=0;o<n;o++)Ea(a[o].e,s,!0);var c=n>0&&s.length===0&&r!==null;if(c){var g=r.parentNode;Ta(g),g.append(r),i.clear(),N(e,a[0].prev,a[n-1].next)}xa(s,()=>{for(var d=0;d<n;d++){var l=a[d];c||(i.delete(l.k),N(e,l.prev,l.next)),Na(l.e,!c)}})}function Za(e,a,r,i,s,n=null){var o=e,c={flags:a,items:new Map,first:null},g=(a&ta)!==0;if(g){var d=e;o=T?M(_a(d)):d.appendChild(va())}T&&sa();var l=null,w=!1,t=ma(()=>{var u=r();return $a(u)?u:u==null?[]:fa(u)});da(()=>{var u=Y(t),f=u.length;if(w&&f===0)return;w=f===0;let m=!1;if(T){var h=o.data===pa;h!==(f===0)&&(o=J(),M(o),H(!1),m=!0)}if(T){for(var _=null,$,p=0;p<f;p++){if(S.nodeType===8&&S.data===ha){o=S,m=!0,H(!1);break}var v=u[p],y=i(v,p);$=la(S,c,_,null,v,y,p,s,a,r),c.items.set(y,$),_=$}f>0&&M(J())}T||Ba(u,c,o,s,a,i,r),n!==null&&(f===0?l?ia(l):l=na(()=>n(o)):l!==null&&ya(l,()=>{l=null})),m&&H(!0),Y(t)}),T&&(o=S)}function Ba(e,a,r,i,s,n,o){var W,P,G,K;var c=(s&wa)!==0,g=(s&(z|B))!==0,d=e.length,l=a.items,w=a.first,t=w,u,f=null,m,h=[],_=[],$,p,v,y;if(c)for(y=0;y<d;y+=1)$=e[y],p=n($,y),v=l.get(p),v!==void 0&&((W=v.a)==null||W.measure(),(m??(m=new Set)).add(v));for(y=0;y<d;y+=1){if($=e[y],p=n($,y),v=l.get(p),v===void 0){var C=t?t.e.nodes_start:r;f=la(C,a,f,f===null?a.first:f.next,$,p,y,i,s,o),l.set(p,f),h=[],_=[],t=f.next;continue}if(g&&Ua(v,$,y,s),v.e.f&D&&(ia(v.e),c&&((P=v.a)==null||P.unfix(),(m??(m=new Set)).delete(v))),v!==t){if(u!==void 0&&u.has(v)){if(h.length<_.length){var b=_[0],E;f=b.prev;var A=h[0],L=h[h.length-1];for(E=0;E<h.length;E+=1)aa(h[E],b,r);for(E=0;E<_.length;E+=1)u.delete(_[E]);N(a,A.prev,L.next),N(a,f,A),N(a,L,b),t=b,f=L,y-=1,h=[],_=[]}else u.delete(v),aa(v,t,r),N(a,v.prev,v.next),N(a,v,f===null?a.first:f.next),N(a,f,v),f=v;continue}for(h=[],_=[];t!==null&&t.k!==p;)t.e.f&D||(u??(u=new Set)).add(t),_.push(t),t=t.next;if(t===null)continue;v=t}h.push(v),f=v,t=v.next}if(t!==null||u!==void 0){for(var I=u===void 0?[]:fa(u);t!==null;)t.e.f&D||I.push(t),t=t.next;var O=I.length;if(O>0){var ca=s&ta&&d===0?r:null;if(c){for(y=0;y<O;y+=1)(G=I[y].a)==null||G.measure();for(y=0;y<O;y+=1)(K=I[y].a)==null||K.fix()}za(a,I,ca,l)}}c&&oa(()=>{var V;if(m!==void 0)for(v of m)(V=v.a)==null||V.apply()}),k.first=a.first&&a.first.e,k.last=f&&f.e}function Ua(e,a,r,i){i&z&&Q(e.v,a),i&B?Q(e.i,r):e.i=r}function la(e,a,r,i,s,n,o,c,g,d){var l=(g&z)!==0,w=(g&ba)===0,t=l?w?ga(s):X(s):s,u=g&B?X(o):o,f={i:u,v:t,k:n,a:null,e:null,prev:r,next:i};try{return f.e=na(()=>c(e,t,u,d),T),f.e.prev=r&&r.e,f.e.next=i&&i.e,r===null?a.first=f:(r.next=f,r.e.next=f.e),i!==null&&(i.prev=f,i.e.prev=f.e),f}finally{}}function aa(e,a,r){for(var i=e.next?e.next.e.nodes_start:r,s=a?a.e.nodes_start:r,n=e.e.nodes_start;n!==i;){var o=Aa(n);s.before(n),n=o}}function N(e,a,r){a===null?e.first=r:(a.next=r,a.e.next=r&&r.e),r!==null&&(r.prev=a,r.e.prev=a&&a.e)}function ja(e,a,r,i,s){var c;T&&sa();var n=(c=a.$$slots)==null?void 0:c[r],o=!1;n===!0&&(n=a.children,o=!0),n===void 0?s!==null&&s(e):n(e,o?()=>i:i)}function ae(e,a,r){var i=e.__className,s=Wa(a);T&&e.className===s?e.__className=s:(i!==s||T&&e.className!==s)&&(a==null?e.removeAttribute("class"):e.className=s,e.__className=s)}function Wa(e,a){return(e??"")+""}function ee(e,a,r){if(r){if(e.classList.contains(a))return;e.classList.add(a)}else{if(!e.classList.contains(a))return;e.classList.remove(a)}}const Pa=()=>performance.now(),x={tick:e=>requestAnimationFrame(e),now:()=>Pa(),tasks:new Set};function ua(){const e=x.now();x.tasks.forEach(a=>{a.c(e)||(x.tasks.delete(a),a.f())}),x.tasks.size!==0&&x.tick(ua)}function Ga(e){let a;return x.tasks.size===0&&x.tick(ua),{promise:new Promise(r=>{x.tasks.add(a={c:e,f:r})}),abort(){x.tasks.delete(a)}}}function R(e,a){qa(()=>{e.dispatchEvent(new CustomEvent(a))})}function Ka(e){if(e==="float")return"cssFloat";if(e==="offset")return"cssOffset";if(e.startsWith("--"))return e;const a=e.split("-");return a.length===1?a[0]:a[0]+a.slice(1).map(r=>r[0].toUpperCase()+r.slice(1)).join("")}function ea(e){const a={},r=e.split(";");for(const i of r){const[s,n]=i.split(":");if(!s||n===void 0)break;const o=Ka(s.trim());a[o]=n.trim()}return a}const Va=e=>e;function re(e,a,r,i){var s=(e&Ma)!==0,n=(e&Ha)!==0,o=s&&n,c=(e&ka)!==0,g=o?"both":s?"in":"out",d,l=a.inert,w=a.style.overflow,t,u;function f(){var p=Oa,v=k;Z(null),j(null);try{return d??(d=r()(a,(i==null?void 0:i())??{},{direction:g}))}finally{Z(p),j(v)}}var m={is_global:c,in(){var p;if(a.inert=l,!s){u==null||u.abort(),(p=u==null?void 0:u.reset)==null||p.call(u);return}n||t==null||t.abort(),R(a,"introstart"),t=q(a,f(),u,1,()=>{R(a,"introend"),t==null||t.abort(),t=d=void 0,a.style.overflow=w})},out(p){if(!n){p==null||p(),d=void 0;return}a.inert=!0,R(a,"outrostart"),u=q(a,f(),t,0,()=>{R(a,"outroend"),p==null||p()})},stop:()=>{t==null||t.abort(),u==null||u.abort()}},h=k;if((h.transitions??(h.transitions=[])).push(m),s&&Da){var _=c;if(!_){for(var $=h.parent;$&&$.f&Ca;)for(;($=$.parent)&&!($.f&Ia););_=!$||($.f&Sa)!==0}_&&Fa(()=>{Ra(()=>m.in())})}}function q(e,a,r,i,s){var n=i===1;if(La(a)){var o,c=!1;return oa(()=>{if(!c){var h=a({direction:n?"in":"out"});o=q(e,h,r,i,s)}}),{abort:()=>{c=!0,o==null||o.abort()},deactivate:()=>o.deactivate(),reset:()=>o.reset(),t:()=>o.t()}}if(r==null||r.deactivate(),!(a!=null&&a.duration))return s(),{abort:F,deactivate:F,reset:F,t:()=>i};const{delay:g=0,css:d,tick:l,easing:w=Va}=a;var t=[];if(n&&r===void 0&&(l&&l(0,1),d)){var u=ea(d(0,1));t.push(u,u)}var f=()=>1-i,m=e.animate(t,{duration:g});return m.onfinish=()=>{var h=(r==null?void 0:r.t())??1-i;r==null||r.abort();var _=i-h,$=a.duration*Math.abs(_),p=[];if($>0){var v=!1;if(d)for(var y=Math.ceil($/16.666666666666668),C=0;C<=y;C+=1){var b=h+_*w(C/y),E=ea(d(b,1-b));p.push(E),v||(v=E.overflow==="hidden")}v&&(e.style.overflow="hidden"),f=()=>{var A=m.currentTime;return h+_*w(A/$)},l&&Ga(()=>{if(m.playState!=="running")return!1;var A=f();return l(A,1-A),!0})}m=e.animate(p,{duration:$,fill:"forwards"}),m.onfinish=()=>{f=()=>i,l==null||l(i,1-i),s()}},{abort:()=>{m&&(m.cancel(),m.effect=null,m.onfinish=F)},deactivate:()=>{s=F},reset:()=>{i===0&&(l==null||l(1,0))},t:()=>f()}}const Ya=e=>e;function U(e){const a=e-1;return a*a*a+1}function ra(e){const a=typeof e=="string"&&e.match(/^\s*(-?[\d.]+)([^\s]*)\s*$/);return a?[parseFloat(a[1]),a[2]||"px"]:[e,"px"]}function te(e,{delay:a=0,duration:r=400,easing:i=Ya}={}){const s=+getComputedStyle(e).opacity;return{delay:a,duration:r,easing:i,css:n=>`opacity: ${n*s}`}}function se(e,{delay:a=0,duration:r=400,easing:i=U,x:s=0,y:n=0,opacity:o=0}={}){const c=getComputedStyle(e),g=+c.opacity,d=c.transform==="none"?"":c.transform,l=g*(1-o),[w,t]=ra(s),[u,f]=ra(n);return{delay:a,duration:r,easing:i,css:(m,h)=>`
24
2
  transform: ${d} translate(${(1-m)*w}${t}, ${(1-m)*u}${f});
25
3
  opacity: ${g-l*h}`}}function ie(e,{delay:a=0,duration:r=400,easing:i=U,axis:s="y"}={}){const n=getComputedStyle(e),o=+n.opacity,c=s==="y"?"height":"width",g=parseFloat(n[c]),d=s==="y"?["top","bottom"]:["left","right"],l=d.map(_=>`${_[0].toUpperCase()}${_.slice(1)}`),w=parseFloat(n[`padding${l[0]}`]),t=parseFloat(n[`padding${l[1]}`]),u=parseFloat(n[`margin${l[0]}`]),f=parseFloat(n[`margin${l[1]}`]),m=parseFloat(n[`border${l[0]}Width`]),h=parseFloat(n[`border${l[1]}Width`]);return{delay:a,duration:r,easing:i,css:_=>`overflow: hidden;opacity: ${Math.min(_*20,1)*o};${c}: ${_*g}px;padding-${d[0]}: ${_*w}px;padding-${d[1]}: ${_*t}px;margin-${d[0]}: ${_*u}px;margin-${d[1]}: ${_*f}px;border-${d[0]}-width: ${_*m}px;border-${d[1]}-width: ${_*h}px;min-${c}: 0`}}function ne(e,{delay:a=0,duration:r=400,easing:i=U,start:s=0,opacity:n=0}={}){const o=getComputedStyle(e),c=+o.opacity,g=o.transform==="none"?"":o.transform,d=1-s,l=c*(1-n);return{delay:a,duration:r,easing:i,css:(w,t)=>`
@@ -0,0 +1 @@
1
+ import{s as e}from"./DMyTUV-Y.js";const r=()=>{const s=e;return{page:{subscribe:s.page.subscribe},navigating:{subscribe:s.navigating.subscribe},updated:s.updated}},b={subscribe(s){return r().page.subscribe(s)}};export{b as p};
@@ -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
1
  import{a as k,u as n,r as s,h as u}from"./BAACMRH5.js";import{l as h}from"./CMBQQ9RZ.js";function t(e,a,v=a){var c=k();h(e,"input",l=>{var r=l?e.defaultValue:e.value;if(r=f(e)?d(r):r,v(r),c&&r!==(r=a())){var _=e.selectionStart,o=e.selectionEnd;e.value=r??"",o!==null&&(e.selectionStart=_,e.selectionEnd=Math.min(o,e.value.length))}}),(u&&e.defaultValue!==e.value||n(a)==null&&e.value)&&v(f(e)?d(e.value):e.value),s(()=>{var l=a();f(e)&&l===d(e.value)||e.type==="date"&&!l&&!e.value||l!==e.value&&(e.value=l??"")})}function y(e,a,v=a){h(e,"change",c=>{var l=c?e.defaultChecked:e.checked;v(l)}),(u&&e.defaultChecked!==e.checked||n(a)==null)&&v(e.checked),s(()=>{var c=a();e.checked=!!c})}function f(e){var a=e.type;return a==="number"||a==="range"}function d(e){return e===""?null:+e}export{y as a,t as b};
@@ -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
1
  import{c as w,a as c,e as v,t as _}from"./CMBQQ9RZ.js";import{i as A}from"./CKDtmZUQ.js";import{p as j,A as y,f as C,c as D,d as E,j as p,t as u,k as N}from"./BAACMRH5.js";import{i as q}from"./CgnwuKKO.js";import{e as z,t as B,i as F}from"./TOCyHP97.js";import{p as d}from"./C8OURRSs.js";var G=_('<button class="page svelte-1a7b06a"></button>'),H=_('<div class="pagination svelte-1a7b06a"><button class="arrow svelte-1a7b06a" aria-label="Previous">←</button> <!> <button class="arrow svelte-1a7b06a" aria-label="Next">→</button></div>');function R(g,o){j(o,!1);let t=d(o,"current",8,1),e=d(o,"total",8,1);const h=y();function s(a){a<1||a>e()||h("change",a)}A();var b=w(),k=C(b);{var x=a=>{var i=H(),n=E(i),f=p(n,2);z(f,1,()=>Array(e()),F,(P,I,l)=>{var r=G();r.textContent=l+1,u(()=>B(r,"active",t()===l+1)),v("click",r,()=>s(l+1)),c(P,r)});var m=p(f,2);N(i),u(()=>{n.disabled=t()===1,m.disabled=t()===e()}),v("click",n,()=>s(t()-1)),v("click",m,()=>s(t()+1)),c(a,i)};q(k,a=>{e()>1&&a(x)})}c(g,b),D()}export{R as P};
@@ -1,24 +1,2 @@
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
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.BAqq2UTE.js","../chunks/CMBQQ9RZ.js","../chunks/BAACMRH5.js","../chunks/CKDtmZUQ.js","../chunks/CgnwuKKO.js","../chunks/TOCyHP97.js","../chunks/DtGXv8RA.js","../chunks/DW_iTTZe.js","../chunks/4N1zIH8t.js","../chunks/C1Vid6wz.js","../chunks/D2cvzNT9.js","../chunks/DW85KPAh.js","../chunks/DDblTLLE.js","../chunks/DkNBSlo2.js","../chunks/D2gYTmAA.js","../chunks/3IV-uqHa.js","../chunks/C8OURRSs.js","../chunks/BjUpWNbl.js","../assets/Modal.BZpm0HP8.css","../assets/ConfirmModal.Dd3uP-Sk.css","../chunks/CuqnZUex.js","../assets/Badge.D1SV0Gv7.css","../chunks/DYlaQsvN.js","../assets/0.BhSG-jZH.css","../nodes/1.D5VvLtGP.js","../nodes/2.C2jjMA-Z.js","../chunks/t-La0hgu.js","../chunks/C1sukchk.js","../assets/EmptyState.DUDM4P19.css","../assets/2.CrXpMrqh.css","../nodes/3.DHx0kho3.js","../chunks/DCgHuuvs.js","../chunks/Dlnxgs49.js","../assets/3.BR3wgXcZ.css","../nodes/4.CnaMiirx.js","../chunks/w0D4Uzlq.js","../assets/Pagination.DZmi2Po-.css","../chunks/B98sHkeB.js","../assets/4.0Eln51hV.css","../nodes/5.B6m-zTVe.js","../chunks/Bfc47y5P.js","../chunks/CNdcuGR0.js","../chunks/oN0Z3NSF.js","../assets/BackLink.CvWWuO3h.css","../assets/5.DFV9OgAu.css","../nodes/6.BPDag1zv.js","../chunks/2zMvi6fR.js","../assets/6.CFnbmY-D.css","../nodes/7.D7LwxSvT.js","../chunks/DlNYZJ7K.js","../assets/Button.FOWXxvc7.css","../assets/7.CBHi6pzT.css","../nodes/8.CCkNX20G.js","../assets/8.BwgOqeMo.css","../nodes/9.HDerA6JV.js","../assets/9._h2o67kg.css","../nodes/10.Bn4Ma-MU.js","../chunks/BhvHtTRh.js","../assets/10.CdaQUS6U.css","../nodes/11.BacEu7sW.js","../assets/11.BWAH0Beh.css","../nodes/12.0YGtl1uj.js","../assets/12.Bj_a_5lv.css"])))=>i.map(i=>d[i]);
24
- var W=r=>{throw TypeError(r)};var z=(r,t,s)=>t.has(r)||W("Cannot "+s);var u=(r,t,s)=>(z(r,t,"read from private field"),s?s.call(r):t.get(r)),w=(r,t,s)=>t.has(r)?W("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(r):t.set(r,s),D=(r,t,s,a)=>(z(r,t,"write to private field"),a?a.call(r,s):t.set(r,s),s);import{s as V,O as K,g as E,at as Q,ac as X,W as M,h as G,_ as $,Z as tt,a0 as et,a6 as rt,a7 as st,a8 as ot,p as at,ae as nt,af as it,o as ct,z as ut,f as T,j as lt,c as _t,au as I,d as mt,k as dt,t as ft,V as x}from"../chunks/BAACMRH5.js";import{f as ht,m as vt,u as Et,a as b,c as S,t as Y,b as gt,s as yt}from"../chunks/CMBQQ9RZ.js";import{i as C}from"../chunks/CgnwuKKO.js";import{p as j,a as pt}from"../chunks/C8OURRSs.js";import{b as B}from"../chunks/2zMvi6fR.js";const Pt="modulepreload",Rt=function(r,t){return new URL(r,t).href},N={},l=function(t,s,a){let n=Promise.resolve();if(s&&s.length>0){const o=document.getElementsByTagName("link"),e=document.querySelector("meta[property=csp-nonce]"),d=(e==null?void 0:e.nonce)||(e==null?void 0:e.getAttribute("nonce"));n=Promise.allSettled(s.map(_=>{if(_=Rt(_,a),_ in N)return;N[_]=!0;const y=_.endsWith(".css"),k=y?'[rel="stylesheet"]':"";if(!!a)for(let p=o.length-1;p>=0;p--){const i=o[p];if(i.href===_&&(!y||i.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${_}"]${k}`))return;const h=document.createElement("link");if(h.rel=y?"stylesheet":Pt,y||(h.as="script"),h.crossOrigin="",h.href=_,d&&h.setAttribute("nonce",d),document.head.appendChild(h),y)return new Promise((p,i)=>{h.addEventListener("load",p),h.addEventListener("error",()=>i(new Error(`Unable to preload CSS for ${_}`)))})}))}function c(o){const e=new Event("vite:preloadError",{cancelable:!0});if(e.payload=o,window.dispatchEvent(e),!e.defaultPrevented)throw o}return n.then(o=>{for(const e of o||[])e.status==="rejected"&&c(e.reason);return t().catch(c)})},Bt={};function bt(r){return class extends Ot{constructor(t){super({component:r,...t})}}}var g,m;class Ot{constructor(t){w(this,g);w(this,m);var c;var s=new Map,a=(o,e)=>{var d=M(e);return s.set(o,d),d};const n=new Proxy({...t.props||{},$$events:{}},{get(o,e){return E(s.get(e)??a(e,Reflect.get(o,e)))},has(o,e){return e===K?!0:(E(s.get(e)??a(e,Reflect.get(o,e))),Reflect.has(o,e))},set(o,e,d){return V(s.get(e)??a(e,d),d),Reflect.set(o,e,d)}});D(this,m,(t.hydrate?ht:vt)(t.component,{target:t.target,anchor:t.anchor,props:n,context:t.context,intro:t.intro??!1,recover:t.recover})),(!((c=t==null?void 0:t.props)!=null&&c.$$host)||t.sync===!1)&&Q(),D(this,g,n.$$events);for(const o of Object.keys(u(this,m)))o==="$set"||o==="$destroy"||o==="$on"||X(this,o,{get(){return u(this,m)[o]},set(e){u(this,m)[o]=e},enumerable:!0});u(this,m).$set=o=>{Object.assign(n,o)},u(this,m).$destroy=()=>{Et(u(this,m))}}$set(t){u(this,m).$set(t)}$on(t,s){u(this,g)[t]=u(this,g)[t]||[];const a=(...n)=>s.call(this,...n);return u(this,g)[t].push(a),()=>{u(this,g)[t]=u(this,g)[t].filter(n=>n!==a)}}$destroy(){u(this,m).$destroy()}}g=new WeakMap,m=new WeakMap;function q(r,t,s){G&&$();var a=r,n,c;tt(()=>{n!==(n=t())&&(c&&(st(c),c=null),n&&(c=rt(()=>s(a,n))))},et),G&&(a=ot)}var At=Y('<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>'),Lt=Y("<!> <!>",1);function Tt(r,t){at(t,!0);let s=j(t,"components",23,()=>[]),a=j(t,"data_0",3,null),n=j(t,"data_1",3,null);nt(()=>t.stores.page.set(t.page)),it(()=>{t.stores,t.page,t.constructors,s(),t.form,a(),n(),t.stores.page.notify()});let c=I(!1),o=I(!1),e=I(null);ct(()=>{const i=t.stores.page.subscribe(()=>{E(c)&&(V(o,!0),ut().then(()=>{V(e,pt(document.title||"untitled page"))}))});return V(c,!0),i});const d=x(()=>t.constructors[1]);var _=Lt(),y=T(_);{var k=i=>{var v=S();const O=x(()=>t.constructors[0]);var A=T(v);q(A,()=>E(O),(P,R)=>{B(R(P,{get data(){return a()},get form(){return t.form},children:(f,wt)=>{var U=S(),Z=T(U);q(Z,()=>E(d),(H,J)=>{B(J(H,{get data(){return n()},get form(){return t.form}}),L=>s()[1]=L,()=>{var L;return(L=s())==null?void 0:L[1]})}),b(f,U)},$$slots:{default:!0}}),f=>s()[0]=f,()=>{var f;return(f=s())==null?void 0:f[0]})}),b(i,v)},F=i=>{var v=S();const O=x(()=>t.constructors[0]);var A=T(v);q(A,()=>E(O),(P,R)=>{B(R(P,{get data(){return a()},get form(){return t.form}}),f=>s()[0]=f,()=>{var f;return(f=s())==null?void 0:f[0]})}),b(i,v)};C(y,i=>{t.constructors[1]?i(k):i(F,!1)})}var h=lt(y,2);{var p=i=>{var v=At(),O=mt(v);{var A=P=>{var R=gt();ft(()=>yt(R,E(e))),b(P,R)};C(O,P=>{E(o)&&P(A)})}dt(v),b(i,v)};C(h,i=>{E(c)&&i(p)})}b(r,_),_t()}const qt=bt(Tt),Ft=[()=>l(()=>import("../nodes/0.BAqq2UTE.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]),import.meta.url),()=>l(()=>import("../nodes/1.D5VvLtGP.js"),__vite__mapDeps([24,1,2,3,6]),import.meta.url),()=>l(()=>import("../nodes/2.C2jjMA-Z.js"),__vite__mapDeps([25,1,2,3,4,5,8,26,11,14,27,16,28,29]),import.meta.url),()=>l(()=>import("../nodes/3.DHx0kho3.js"),__vite__mapDeps([30,1,2,3,4,8,26,6,9,22,31,32,33]),import.meta.url),()=>l(()=>import("../nodes/4.CnaMiirx.js"),__vite__mapDeps([34,1,2,3,4,5,8,12,11,14,20,16,21,35,36,15,17,18,19,27,28,37,38]),import.meta.url),()=>l(()=>import("../nodes/5.B6m-zTVe.js"),__vite__mapDeps([39,1,2,3,4,5,8,40,41,7,6,12,14,37,20,16,21,42,43,44]),import.meta.url),()=>l(()=>import("../nodes/6.BPDag1zv.js"),__vite__mapDeps([45,1,2,3,4,5,8,46,6,7,11,12,37,14,42,16,43,20,21,47]),import.meta.url),()=>l(()=>import("../nodes/7.D7LwxSvT.js"),__vite__mapDeps([48,1,2,3,4,5,8,26,49,16,41,50,40,10,9,11,14,20,21,17,18,15,19,27,28,51]),import.meta.url),()=>l(()=>import("../nodes/8.CCkNX20G.js"),__vite__mapDeps([52,1,2,3,4,5,8,26,49,16,41,50,46,6,10,9,13,22,11,31,15,17,18,19,20,21,53]),import.meta.url),()=>l(()=>import("../nodes/9.HDerA6JV.js"),__vite__mapDeps([54,1,2,3,4,8,26,6,22,9,31,32,55]),import.meta.url),()=>l(()=>import("../nodes/10.Bn4Ma-MU.js"),__vite__mapDeps([56,1,2,3,4,5,8,26,49,16,41,50,13,9,11,35,36,27,28,15,17,18,19,57,58]),import.meta.url),()=>l(()=>import("../nodes/11.BacEu7sW.js"),__vite__mapDeps([59,1,2,3,4,5,8,26,49,16,41,50,7,6,13,9,11,17,18,27,28,57,60]),import.meta.url),()=>l(()=>import("../nodes/12.0YGtl1uj.js"),__vite__mapDeps([61,1,2,3,4,5,8,26,49,16,41,50,40,7,6,13,9,27,28,15,17,18,19,35,36,57,62]),import.meta.url)],Ut=[],Wt={"/":[2],"/login":[3],"/reports":[4],"/reports/live":[6],"/reports/[id]":[5],"/scheduled-tests":[7],"/settings":[8],"/setup":[9],"/test-repository":[10],"/test-repository/runs/[id]":[11],"/test-repository/suites/[id]":[12]},Vt={handleError:({error:r})=>{console.error(r)},reroute:()=>{},transport:{}},kt=Object.fromEntries(Object.entries(Vt.transport).map(([r,t])=>[r,t.decode])),zt=!1,Gt=(r,t)=>kt[r](t);export{Gt as decode,kt as decoders,Wt as dictionary,zt as hash,Vt as hooks,Bt as matchers,Ft as nodes,qt as root,Ut as server_loads};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.ChjDHxSJ.js","../chunks/CMBQQ9RZ.js","../chunks/BAACMRH5.js","../chunks/CKDtmZUQ.js","../chunks/CgnwuKKO.js","../chunks/TOCyHP97.js","../chunks/DMyTUV-Y.js","../chunks/nURnIknV.js","../chunks/CUC98kMZ.js","../chunks/C1Vid6wz.js","../chunks/3InFPLvE.js","../chunks/DHM6H-es.js","../chunks/DbgD7JLa.js","../chunks/BUwxRmHf.js","../chunks/DSLBMEpr.js","../chunks/DMZwI8Cj.js","../chunks/C8OURRSs.js","../chunks/CMEtqUfQ.js","../assets/Modal.BZpm0HP8.css","../assets/ConfirmModal.Dd3uP-Sk.css","../chunks/CuqnZUex.js","../assets/Badge.D1SV0Gv7.css","../chunks/BmZ9upwL.js","../assets/0.BhSG-jZH.css","../nodes/1.DBSWa36f.js","../nodes/2.BnHalSCi.js","../chunks/t-La0hgu.js","../chunks/BKuh57WU.js","../assets/EmptyState.DUDM4P19.css","../assets/2.DvMkmYA-.css","../nodes/3._S1vrLVF.js","../chunks/DCgHuuvs.js","../chunks/Dlnxgs49.js","../assets/3.BR3wgXcZ.css","../nodes/4.D-YT_JJe.js","../chunks/w0D4Uzlq.js","../assets/Pagination.DZmi2Po-.css","../chunks/Co3xKhEp.js","../assets/4.0Eln51hV.css","../nodes/5.BiFBiWcW.js","../chunks/Bfc47y5P.js","../chunks/CNdcuGR0.js","../chunks/CGeZlCaI.js","../assets/BackLink.CvWWuO3h.css","../assets/5.DFV9OgAu.css","../nodes/6.BNS-W0R_.js","../chunks/2zMvi6fR.js","../assets/6.CFnbmY-D.css","../nodes/7.C-pKvVZy.js","../chunks/CzlPaHY9.js","../assets/Button.FOWXxvc7.css","../assets/7.CBHi6pzT.css","../nodes/8.BEUdazrw.js","../assets/8.BwgOqeMo.css","../nodes/9.CrLHYPEJ.js","../assets/9._h2o67kg.css","../nodes/10.DEbnxfND.js","../chunks/BAMUGSh7.js","../assets/10.CdaQUS6U.css","../nodes/11.O4cjXCg4.js","../assets/11.BWAH0Beh.css","../nodes/12.BWQdeRdX.js","../assets/12.Bj_a_5lv.css"])))=>i.map(i=>d[i]);
2
+ var W=r=>{throw TypeError(r)};var z=(r,t,s)=>t.has(r)||W("Cannot "+s);var u=(r,t,s)=>(z(r,t,"read from private field"),s?s.call(r):t.get(r)),w=(r,t,s)=>t.has(r)?W("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(r):t.set(r,s),D=(r,t,s,a)=>(z(r,t,"write to private field"),a?a.call(r,s):t.set(r,s),s);import{s as V,O as K,g as E,at as Q,ac as X,W as M,h as G,_ as $,Z as tt,a0 as et,a6 as rt,a7 as st,a8 as ot,p as at,ae as nt,af as it,o as ct,z as ut,f as T,j as lt,c as _t,au as I,d as mt,k as dt,t as ft,V as x}from"../chunks/BAACMRH5.js";import{f as ht,m as vt,u as Et,a as b,c as S,t as Y,b as gt,s as yt}from"../chunks/CMBQQ9RZ.js";import{i as C}from"../chunks/CgnwuKKO.js";import{p as j,a as pt}from"../chunks/C8OURRSs.js";import{b as B}from"../chunks/2zMvi6fR.js";const Pt="modulepreload",Rt=function(r,t){return new URL(r,t).href},N={},l=function(t,s,a){let n=Promise.resolve();if(s&&s.length>0){const o=document.getElementsByTagName("link"),e=document.querySelector("meta[property=csp-nonce]"),d=(e==null?void 0:e.nonce)||(e==null?void 0:e.getAttribute("nonce"));n=Promise.allSettled(s.map(_=>{if(_=Rt(_,a),_ in N)return;N[_]=!0;const y=_.endsWith(".css"),k=y?'[rel="stylesheet"]':"";if(!!a)for(let p=o.length-1;p>=0;p--){const i=o[p];if(i.href===_&&(!y||i.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${_}"]${k}`))return;const h=document.createElement("link");if(h.rel=y?"stylesheet":Pt,y||(h.as="script"),h.crossOrigin="",h.href=_,d&&h.setAttribute("nonce",d),document.head.appendChild(h),y)return new Promise((p,i)=>{h.addEventListener("load",p),h.addEventListener("error",()=>i(new Error(`Unable to preload CSS for ${_}`)))})}))}function c(o){const e=new Event("vite:preloadError",{cancelable:!0});if(e.payload=o,window.dispatchEvent(e),!e.defaultPrevented)throw o}return n.then(o=>{for(const e of o||[])e.status==="rejected"&&c(e.reason);return t().catch(c)})},Bt={};function bt(r){return class extends Ot{constructor(t){super({component:r,...t})}}}var g,m;class Ot{constructor(t){w(this,g);w(this,m);var c;var s=new Map,a=(o,e)=>{var d=M(e);return s.set(o,d),d};const n=new Proxy({...t.props||{},$$events:{}},{get(o,e){return E(s.get(e)??a(e,Reflect.get(o,e)))},has(o,e){return e===K?!0:(E(s.get(e)??a(e,Reflect.get(o,e))),Reflect.has(o,e))},set(o,e,d){return V(s.get(e)??a(e,d),d),Reflect.set(o,e,d)}});D(this,m,(t.hydrate?ht:vt)(t.component,{target:t.target,anchor:t.anchor,props:n,context:t.context,intro:t.intro??!1,recover:t.recover})),(!((c=t==null?void 0:t.props)!=null&&c.$$host)||t.sync===!1)&&Q(),D(this,g,n.$$events);for(const o of Object.keys(u(this,m)))o==="$set"||o==="$destroy"||o==="$on"||X(this,o,{get(){return u(this,m)[o]},set(e){u(this,m)[o]=e},enumerable:!0});u(this,m).$set=o=>{Object.assign(n,o)},u(this,m).$destroy=()=>{Et(u(this,m))}}$set(t){u(this,m).$set(t)}$on(t,s){u(this,g)[t]=u(this,g)[t]||[];const a=(...n)=>s.call(this,...n);return u(this,g)[t].push(a),()=>{u(this,g)[t]=u(this,g)[t].filter(n=>n!==a)}}$destroy(){u(this,m).$destroy()}}g=new WeakMap,m=new WeakMap;function q(r,t,s){G&&$();var a=r,n,c;tt(()=>{n!==(n=t())&&(c&&(st(c),c=null),n&&(c=rt(()=>s(a,n))))},et),G&&(a=ot)}var At=Y('<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>'),Lt=Y("<!> <!>",1);function Tt(r,t){at(t,!0);let s=j(t,"components",23,()=>[]),a=j(t,"data_0",3,null),n=j(t,"data_1",3,null);nt(()=>t.stores.page.set(t.page)),it(()=>{t.stores,t.page,t.constructors,s(),t.form,a(),n(),t.stores.page.notify()});let c=I(!1),o=I(!1),e=I(null);ct(()=>{const i=t.stores.page.subscribe(()=>{E(c)&&(V(o,!0),ut().then(()=>{V(e,pt(document.title||"untitled page"))}))});return V(c,!0),i});const d=x(()=>t.constructors[1]);var _=Lt(),y=T(_);{var k=i=>{var v=S();const O=x(()=>t.constructors[0]);var A=T(v);q(A,()=>E(O),(P,R)=>{B(R(P,{get data(){return a()},get form(){return t.form},children:(f,wt)=>{var U=S(),Z=T(U);q(Z,()=>E(d),(H,J)=>{B(J(H,{get data(){return n()},get form(){return t.form}}),L=>s()[1]=L,()=>{var L;return(L=s())==null?void 0:L[1]})}),b(f,U)},$$slots:{default:!0}}),f=>s()[0]=f,()=>{var f;return(f=s())==null?void 0:f[0]})}),b(i,v)},F=i=>{var v=S();const O=x(()=>t.constructors[0]);var A=T(v);q(A,()=>E(O),(P,R)=>{B(R(P,{get data(){return a()},get form(){return t.form}}),f=>s()[0]=f,()=>{var f;return(f=s())==null?void 0:f[0]})}),b(i,v)};C(y,i=>{t.constructors[1]?i(k):i(F,!1)})}var h=lt(y,2);{var p=i=>{var v=At(),O=mt(v);{var A=P=>{var R=gt();ft(()=>yt(R,E(e))),b(P,R)};C(O,P=>{E(o)&&P(A)})}dt(v),b(i,v)};C(h,i=>{E(c)&&i(p)})}b(r,_),_t()}const qt=bt(Tt),Ft=[()=>l(()=>import("../nodes/0.ChjDHxSJ.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]),import.meta.url),()=>l(()=>import("../nodes/1.DBSWa36f.js"),__vite__mapDeps([24,1,2,3,6]),import.meta.url),()=>l(()=>import("../nodes/2.BnHalSCi.js"),__vite__mapDeps([25,1,2,3,4,5,8,26,11,9,14,27,16,28,29]),import.meta.url),()=>l(()=>import("../nodes/3._S1vrLVF.js"),__vite__mapDeps([30,1,2,3,4,8,26,6,9,22,31,32,33]),import.meta.url),()=>l(()=>import("../nodes/4.D-YT_JJe.js"),__vite__mapDeps([34,1,2,3,4,5,8,12,11,9,14,20,16,21,35,36,15,17,18,19,27,28,37,38]),import.meta.url),()=>l(()=>import("../nodes/5.BiFBiWcW.js"),__vite__mapDeps([39,1,2,3,4,5,8,40,41,7,6,12,14,37,20,16,21,42,43,44]),import.meta.url),()=>l(()=>import("../nodes/6.BNS-W0R_.js"),__vite__mapDeps([45,1,2,3,4,5,8,46,6,7,11,9,12,37,14,42,16,43,20,21,47]),import.meta.url),()=>l(()=>import("../nodes/7.C-pKvVZy.js"),__vite__mapDeps([48,1,2,3,4,5,8,26,49,16,41,50,40,10,9,11,14,20,21,17,18,15,19,27,28,51]),import.meta.url),()=>l(()=>import("../nodes/8.BEUdazrw.js"),__vite__mapDeps([52,1,2,3,4,5,8,26,49,16,41,50,46,6,10,9,13,22,11,31,15,17,18,19,20,21,53]),import.meta.url),()=>l(()=>import("../nodes/9.CrLHYPEJ.js"),__vite__mapDeps([54,1,2,3,4,8,26,6,22,9,31,32,55]),import.meta.url),()=>l(()=>import("../nodes/10.DEbnxfND.js"),__vite__mapDeps([56,1,2,3,4,5,8,26,49,16,41,50,13,9,11,35,36,27,28,15,17,18,19,57,58]),import.meta.url),()=>l(()=>import("../nodes/11.O4cjXCg4.js"),__vite__mapDeps([59,1,2,3,4,5,8,26,49,16,41,50,7,6,13,9,11,17,18,27,28,57,60]),import.meta.url),()=>l(()=>import("../nodes/12.BWQdeRdX.js"),__vite__mapDeps([61,1,2,3,4,5,8,26,49,16,41,50,40,7,6,13,9,27,28,15,17,18,19,35,36,57,62]),import.meta.url)],Ut=[],Wt={"/":[2],"/login":[3],"/reports":[4],"/reports/live":[6],"/reports/[id]":[5],"/scheduled-tests":[7],"/settings":[8],"/setup":[9],"/test-repository":[10],"/test-repository/runs/[id]":[11],"/test-repository/suites/[id]":[12]},Vt={handleError:({error:r})=>{console.error(r)},reroute:()=>{},transport:{}},kt=Object.fromEntries(Object.entries(Vt.transport).map(([r,t])=>[r,t.decode])),zt=!1,Gt=(r,t)=>kt[r](t);export{Gt as decode,kt as decoders,Wt as dictionary,zt as hash,Vt as hooks,Bt as matchers,Ft as nodes,qt as root,Ut as server_loads};
@@ -0,0 +1 @@
1
+ import{a as t}from"../chunks/DMyTUV-Y.js";export{t as start};
@@ -0,0 +1,2 @@
1
+ ��import{a as t}from"../chunks/DMyTUV-Y.js";export{t as start};
2
+