plum-e2e 2.5.13 → 2.6.0

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 (726) hide show
  1. package/README.md +1 -1
  2. package/backend/constants/triggers.js +3 -1
  3. package/backend/lib/screenshotPoller.js +43 -0
  4. package/backend/mcp/server.js +120 -2
  5. package/backend/prisma/migrations/20260713090000_add_report_duration/migration.sql +2 -0
  6. package/backend/prisma/schema.prisma +1 -0
  7. package/backend/routes/node.routes.js +1 -1
  8. package/backend/routes/trigger.routes.js +51 -4
  9. package/backend/server.js +1 -0
  10. package/backend/services/cronService.js +119 -29
  11. package/backend/services/reportService.js +10 -4
  12. package/backend/services/runnerService.js +3 -1
  13. package/backend/websockets/socketHandler.js +6 -24
  14. package/frontend/.svelte-kit/adapter-node/.vite/manifest.json +312 -37
  15. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/BackLink.CvWWuO3h.css +18 -0
  16. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/Badge.D1SV0Gv7.css +18 -0
  17. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/ConfirmModal.CdhOYVBb.css +18 -0
  18. package/frontend/.svelte-kit/{output/client/_app/immutable/chunks/rVEKg0Ak.js → adapter-node/_app/immutable/assets/EmptyState.BdO1q9cJ.css} +1 -1
  19. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/Pagination.DZmi2Po-.css +18 -0
  20. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/Toast.DENwYn3g.css +18 -0
  21. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_layout.BuhMvMUj.css +18 -0
  22. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.0Eln51hV.css +18 -0
  23. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.5IJAEAjc.css +18 -0
  24. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BJ-I1gHO.css +18 -0
  25. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BR3wgXcZ.css +18 -0
  26. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BZfe6nWe.css +18 -0
  27. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.Bhof07Eg.css +18 -0
  28. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.Bj_a_5lv.css +18 -0
  29. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.CBHi6pzT.css +18 -0
  30. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.CFnbmY-D.css +18 -0
  31. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.CrXpMrqh.css +18 -0
  32. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page._h2o67kg.css +18 -0
  33. package/frontend/.svelte-kit/adapter-node/chunks/BackLink.js +29 -0
  34. package/frontend/.svelte-kit/adapter-node/chunks/Badge.js +3 -3
  35. package/frontend/.svelte-kit/adapter-node/chunks/Button.js +4 -3
  36. package/frontend/.svelte-kit/adapter-node/chunks/ConfirmModal.js +74 -0
  37. package/frontend/.svelte-kit/adapter-node/chunks/EmptyState.js +34 -0
  38. package/frontend/.svelte-kit/adapter-node/chunks/Toast.js +36 -0
  39. package/frontend/.svelte-kit/adapter-node/chunks/auth.js +61 -0
  40. package/frontend/.svelte-kit/adapter-node/chunks/client.js +9 -2
  41. package/frontend/.svelte-kit/adapter-node/chunks/constants.js +41 -0
  42. package/frontend/.svelte-kit/adapter-node/chunks/exports.js +7 -65
  43. package/frontend/.svelte-kit/adapter-node/chunks/format.js +51 -0
  44. package/frontend/.svelte-kit/adapter-node/chunks/index-server.js +31 -0
  45. package/frontend/.svelte-kit/adapter-node/chunks/index.js +71 -50
  46. package/frontend/.svelte-kit/adapter-node/chunks/index2.js +76 -0
  47. package/frontend/.svelte-kit/adapter-node/chunks/internal.js +3 -4
  48. package/frontend/.svelte-kit/adapter-node/chunks/reports.js +16 -33
  49. package/frontend/.svelte-kit/adapter-node/chunks/runner.js +45 -0
  50. package/frontend/.svelte-kit/adapter-node/chunks/stores.js +43 -0
  51. package/frontend/{build/client/_app/immutable/chunks/rVEKg0Ak.js → .svelte-kit/adapter-node/chunks/theme.js} +9 -1
  52. package/frontend/.svelte-kit/{output/client/_app/immutable/entry/start.GiBry-lw.js → adapter-node/entries/pages/_layout.js} +4 -1
  53. package/frontend/.svelte-kit/adapter-node/entries/pages/_layout.svelte.js +10 -154
  54. package/frontend/.svelte-kit/adapter-node/entries/pages/_page.svelte.js +46 -28
  55. package/frontend/.svelte-kit/adapter-node/entries/pages/login/_page.svelte.js +40 -0
  56. package/frontend/.svelte-kit/adapter-node/entries/pages/reports/_id_/_page.svelte.js +62 -0
  57. package/frontend/.svelte-kit/adapter-node/entries/pages/reports/_page.svelte.js +167 -89
  58. package/frontend/.svelte-kit/adapter-node/entries/pages/reports/live/_page.svelte.js +257 -0
  59. package/frontend/.svelte-kit/adapter-node/entries/pages/scheduled-tests/_page.svelte.js +91 -52
  60. package/frontend/.svelte-kit/adapter-node/entries/pages/settings/_page.svelte.js +562 -0
  61. package/frontend/.svelte-kit/adapter-node/entries/pages/setup/_page.svelte.js +40 -0
  62. package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/_page.svelte.js +421 -0
  63. package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/runs/_id_/_page.svelte.js +62 -0
  64. package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/suites/_id_/_page.svelte.js +198 -0
  65. package/frontend/.svelte-kit/adapter-node/index.js +2 -1
  66. package/frontend/.svelte-kit/adapter-node/manifest-full.js +64 -8
  67. package/frontend/.svelte-kit/adapter-node/manifest.js +64 -8
  68. package/frontend/.svelte-kit/adapter-node/nodes/0.js +5 -3
  69. package/frontend/.svelte-kit/adapter-node/nodes/1.js +1 -1
  70. package/frontend/.svelte-kit/adapter-node/nodes/10.js +25 -0
  71. package/frontend/.svelte-kit/adapter-node/nodes/11.js +25 -0
  72. package/frontend/.svelte-kit/adapter-node/nodes/12.js +25 -0
  73. package/frontend/.svelte-kit/adapter-node/nodes/2.js +2 -2
  74. package/frontend/.svelte-kit/adapter-node/nodes/3.js +3 -3
  75. package/frontend/.svelte-kit/adapter-node/nodes/4.js +3 -3
  76. package/frontend/.svelte-kit/adapter-node/nodes/5.js +3 -3
  77. package/frontend/.svelte-kit/adapter-node/nodes/6.js +25 -0
  78. package/frontend/.svelte-kit/adapter-node/nodes/7.js +25 -0
  79. package/frontend/.svelte-kit/adapter-node/nodes/8.js +25 -0
  80. package/frontend/.svelte-kit/adapter-node/nodes/9.js +25 -0
  81. package/frontend/.svelte-kit/ambient.d.ts +4 -0
  82. package/frontend/.svelte-kit/generated/client-optimized/app.js +18 -4
  83. package/frontend/.svelte-kit/generated/client-optimized/nodes/0.js +2 -0
  84. package/frontend/.svelte-kit/generated/client-optimized/nodes/10.js +18 -0
  85. package/frontend/.svelte-kit/generated/client-optimized/nodes/11.js +18 -0
  86. package/frontend/.svelte-kit/generated/client-optimized/nodes/12.js +18 -0
  87. package/frontend/.svelte-kit/generated/client-optimized/nodes/3.js +1 -1
  88. package/frontend/.svelte-kit/generated/client-optimized/nodes/4.js +1 -1
  89. package/frontend/.svelte-kit/generated/client-optimized/nodes/5.js +1 -1
  90. package/frontend/.svelte-kit/generated/client-optimized/nodes/6.js +18 -0
  91. package/frontend/.svelte-kit/generated/client-optimized/nodes/7.js +18 -0
  92. package/frontend/.svelte-kit/generated/client-optimized/nodes/8.js +18 -0
  93. package/frontend/.svelte-kit/generated/client-optimized/nodes/9.js +18 -0
  94. package/frontend/.svelte-kit/generated/server/internal.js +1 -1
  95. package/frontend/.svelte-kit/output/client/.vite/manifest.json +486 -155
  96. package/frontend/.svelte-kit/output/client/_app/immutable/assets/0.BhSG-jZH.css +18 -0
  97. package/frontend/.svelte-kit/output/client/_app/immutable/assets/10.CdaQUS6U.css +18 -0
  98. package/frontend/.svelte-kit/output/client/_app/immutable/assets/11.BJ-I1gHO.css +18 -0
  99. package/frontend/.svelte-kit/output/client/_app/immutable/assets/12.Bj_a_5lv.css +18 -0
  100. package/frontend/.svelte-kit/output/client/_app/immutable/assets/2.CrXpMrqh.css +18 -0
  101. package/frontend/.svelte-kit/output/client/_app/immutable/assets/3.BR3wgXcZ.css +18 -0
  102. package/frontend/.svelte-kit/output/client/_app/immutable/assets/4.0Eln51hV.css +18 -0
  103. package/frontend/.svelte-kit/output/client/_app/immutable/assets/5.DFV9OgAu.css +18 -0
  104. package/frontend/.svelte-kit/output/client/_app/immutable/assets/6.CFnbmY-D.css +18 -0
  105. package/frontend/.svelte-kit/output/client/_app/immutable/assets/7.CBHi6pzT.css +18 -0
  106. package/frontend/.svelte-kit/output/client/_app/immutable/assets/8.Bhof07Eg.css +18 -0
  107. package/frontend/.svelte-kit/output/client/_app/immutable/assets/9._h2o67kg.css +18 -0
  108. package/frontend/.svelte-kit/output/client/_app/immutable/assets/BackLink.CvWWuO3h.css +18 -0
  109. package/frontend/.svelte-kit/output/client/_app/immutable/assets/Badge.D1SV0Gv7.css +18 -0
  110. package/frontend/.svelte-kit/output/client/_app/immutable/assets/Button.FOWXxvc7.css +18 -0
  111. package/frontend/.svelte-kit/output/client/_app/immutable/assets/ConfirmModal.CdhOYVBb.css +18 -0
  112. package/frontend/.svelte-kit/output/client/_app/immutable/assets/ConfirmModal.DmxkcwXv.css +18 -0
  113. package/frontend/.svelte-kit/output/client/_app/immutable/assets/EmptyState.BdO1q9cJ.css +18 -0
  114. package/frontend/.svelte-kit/output/client/_app/immutable/assets/Pagination.DZmi2Po-.css +18 -0
  115. package/frontend/.svelte-kit/output/client/_app/immutable/assets/Toast.DENwYn3g.css +18 -0
  116. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_layout.BuhMvMUj.css +18 -0
  117. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.0Eln51hV.css +18 -0
  118. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.5IJAEAjc.css +18 -0
  119. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BJ-I1gHO.css +18 -0
  120. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BR3wgXcZ.css +18 -0
  121. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BZfe6nWe.css +18 -0
  122. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.Bhof07Eg.css +18 -0
  123. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.Bj_a_5lv.css +18 -0
  124. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.CBHi6pzT.css +18 -0
  125. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.CFnbmY-D.css +18 -0
  126. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.CrXpMrqh.css +18 -0
  127. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page._h2o67kg.css +18 -0
  128. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/B0pefNHY.js +18 -0
  129. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BFEiffAL.js +18 -0
  130. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{CJ8q7g9Y.js → BFgtfHj2.js} +1 -1
  131. package/frontend/.svelte-kit/{adapter-node/chunks/equality.js → output/client/_app/immutable/chunks/BIRVeCLU.js} +1 -14
  132. package/frontend/.svelte-kit/output/{server/chunks/equality.js → client/_app/immutable/chunks/BKCNyxZ2.js} +1 -14
  133. package/frontend/{build/client/_app/immutable/chunks/CHV2KnPr.js → .svelte-kit/output/client/_app/immutable/chunks/BLAiBE__.js} +1 -1
  134. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BVMec-1T.js +18 -0
  135. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BeO8veBd.js +18 -0
  136. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Bfc47y5P.js +18 -0
  137. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BgNaeXAp.js +18 -0
  138. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BkKmeUbA.js +18 -0
  139. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/C3SY6-sX.js +19 -0
  140. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/C4eeChIU.js +18 -0
  141. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/C67QNx7Z.js +18 -0
  142. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CVV6HrFb.js +18 -0
  143. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CstKKb9b.js +18 -0
  144. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CxTX_lpP.js +18 -0
  145. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CyQ_oBw2.js +18 -0
  146. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{CwBTqcbj.js → DGryW1Vp.js} +1 -1
  147. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{BKz6FZdB.js → DIx44H9N.js} +1 -1
  148. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DP6QP4L6.js +18 -0
  149. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DmRbbcS3.js +23 -0
  150. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/IFIFk6zi.js +18 -0
  151. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/KJdjlibc.js +20 -0
  152. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/ll-VsEGv.js +18 -0
  153. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/raHbXn_9.js +18 -0
  154. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/uFRI_bmR.js +18 -0
  155. package/frontend/.svelte-kit/output/client/_app/immutable/entry/app.Dz_CBZcR.js +19 -0
  156. package/frontend/{build/client/_app/immutable/entry/start.GiBry-lw.js → .svelte-kit/output/client/_app/immutable/entry/start.MMlC62np.js} +1 -1
  157. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/0.CKD9Qja6.js +23 -0
  158. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{1.N4gjrCnX.js → 1.Dbck5ct8.js} +1 -1
  159. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/10.BfmGpmC1.js +19 -0
  160. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/11.C7l9HPom.js +18 -0
  161. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/12.Iu9bcGdC.js +19 -0
  162. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/2.BqQhRvYh.js +18 -0
  163. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/3.BZRTKadS.js +18 -0
  164. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/4.BfKoPKdM.js +18 -0
  165. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/5.B4a2uCWn.js +18 -0
  166. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/6.CI508CMS.js +18 -0
  167. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/7.3x_eiof1.js +18 -0
  168. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/8.BfUuob4H.js +29 -0
  169. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/9.BZhCKRJe.js +18 -0
  170. package/frontend/.svelte-kit/output/client/_app/version.json +1 -1
  171. package/frontend/.svelte-kit/output/client/favicon-32x32.png +0 -0
  172. package/frontend/.svelte-kit/output/client/favicon.ico +0 -0
  173. package/frontend/.svelte-kit/output/server/.vite/manifest.json +312 -37
  174. package/frontend/.svelte-kit/output/server/_app/immutable/assets/BackLink.CvWWuO3h.css +18 -0
  175. package/frontend/.svelte-kit/output/server/_app/immutable/assets/Badge.D1SV0Gv7.css +18 -0
  176. package/frontend/.svelte-kit/output/server/_app/immutable/assets/ConfirmModal.CdhOYVBb.css +18 -0
  177. package/frontend/.svelte-kit/output/server/_app/immutable/assets/EmptyState.BdO1q9cJ.css +18 -0
  178. package/frontend/.svelte-kit/output/server/_app/immutable/assets/Pagination.DZmi2Po-.css +18 -0
  179. package/frontend/.svelte-kit/output/server/_app/immutable/assets/Toast.DENwYn3g.css +18 -0
  180. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_layout.BuhMvMUj.css +18 -0
  181. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.0Eln51hV.css +18 -0
  182. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.5IJAEAjc.css +18 -0
  183. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BJ-I1gHO.css +18 -0
  184. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BR3wgXcZ.css +18 -0
  185. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BZfe6nWe.css +18 -0
  186. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Bhof07Eg.css +18 -0
  187. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Bj_a_5lv.css +18 -0
  188. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CBHi6pzT.css +18 -0
  189. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CFnbmY-D.css +18 -0
  190. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CrXpMrqh.css +18 -0
  191. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page._h2o67kg.css +18 -0
  192. package/frontend/.svelte-kit/output/server/chunks/BackLink.js +29 -0
  193. package/frontend/.svelte-kit/output/server/chunks/Badge.js +3 -3
  194. package/frontend/.svelte-kit/output/server/chunks/Button.js +4 -3
  195. package/frontend/.svelte-kit/output/server/chunks/ConfirmModal.js +74 -0
  196. package/frontend/.svelte-kit/output/server/chunks/EmptyState.js +34 -0
  197. package/frontend/.svelte-kit/output/server/chunks/Toast.js +36 -0
  198. package/frontend/.svelte-kit/output/server/chunks/auth.js +61 -0
  199. package/frontend/.svelte-kit/output/server/chunks/client.js +9 -2
  200. package/frontend/.svelte-kit/output/server/chunks/constants.js +41 -0
  201. package/frontend/.svelte-kit/output/server/chunks/exports.js +7 -65
  202. package/frontend/.svelte-kit/output/server/chunks/format.js +51 -0
  203. package/frontend/.svelte-kit/output/server/chunks/index-server.js +31 -0
  204. package/frontend/.svelte-kit/output/server/chunks/index.js +71 -50
  205. package/frontend/.svelte-kit/output/server/chunks/index2.js +76 -0
  206. package/frontend/.svelte-kit/output/server/chunks/internal.js +3 -4
  207. package/frontend/.svelte-kit/output/server/chunks/reports.js +16 -33
  208. package/frontend/.svelte-kit/output/server/chunks/runner.js +45 -0
  209. package/frontend/.svelte-kit/output/server/chunks/stores.js +43 -0
  210. package/frontend/.svelte-kit/output/server/chunks/theme.js +26 -0
  211. package/frontend/.svelte-kit/output/server/entries/pages/_layout.js +21 -0
  212. package/frontend/.svelte-kit/output/server/entries/pages/_layout.svelte.js +10 -154
  213. package/frontend/.svelte-kit/output/server/entries/pages/_page.svelte.js +46 -28
  214. package/frontend/.svelte-kit/output/server/entries/pages/login/_page.svelte.js +40 -0
  215. package/frontend/.svelte-kit/output/server/entries/pages/reports/_id_/_page.svelte.js +62 -0
  216. package/frontend/.svelte-kit/output/server/entries/pages/reports/_page.svelte.js +167 -89
  217. package/frontend/.svelte-kit/output/server/entries/pages/reports/live/_page.svelte.js +257 -0
  218. package/frontend/.svelte-kit/output/server/entries/pages/scheduled-tests/_page.svelte.js +91 -52
  219. package/frontend/.svelte-kit/output/server/entries/pages/settings/_page.svelte.js +562 -0
  220. package/frontend/.svelte-kit/output/server/entries/pages/setup/_page.svelte.js +40 -0
  221. package/frontend/.svelte-kit/output/server/entries/pages/test-repository/_page.svelte.js +421 -0
  222. package/frontend/.svelte-kit/output/server/entries/pages/test-repository/runs/_id_/_page.svelte.js +62 -0
  223. package/frontend/.svelte-kit/output/server/entries/pages/test-repository/suites/_id_/_page.svelte.js +198 -0
  224. package/frontend/.svelte-kit/output/server/index.js +2 -1
  225. package/frontend/.svelte-kit/output/server/manifest-full.js +64 -8
  226. package/frontend/.svelte-kit/output/server/manifest.js +64 -8
  227. package/frontend/.svelte-kit/output/server/nodes/0.js +5 -3
  228. package/frontend/.svelte-kit/output/server/nodes/1.js +1 -1
  229. package/frontend/.svelte-kit/output/server/nodes/10.js +25 -0
  230. package/frontend/.svelte-kit/output/server/nodes/11.js +25 -0
  231. package/frontend/.svelte-kit/output/server/nodes/12.js +25 -0
  232. package/frontend/.svelte-kit/output/server/nodes/2.js +2 -2
  233. package/frontend/.svelte-kit/output/server/nodes/3.js +3 -3
  234. package/frontend/.svelte-kit/output/server/nodes/4.js +3 -3
  235. package/frontend/.svelte-kit/output/server/nodes/5.js +3 -3
  236. package/frontend/.svelte-kit/output/server/nodes/6.js +25 -0
  237. package/frontend/.svelte-kit/output/server/nodes/7.js +25 -0
  238. package/frontend/.svelte-kit/output/server/nodes/8.js +25 -0
  239. package/frontend/.svelte-kit/output/server/nodes/9.js +25 -0
  240. package/frontend/build/client/_app/immutable/assets/0.BhSG-jZH.css +18 -0
  241. package/frontend/build/client/_app/immutable/assets/0.BhSG-jZH.css.br +0 -0
  242. package/frontend/build/client/_app/immutable/assets/0.BhSG-jZH.css.gz +0 -0
  243. package/frontend/build/client/_app/immutable/assets/10.CdaQUS6U.css +18 -0
  244. package/frontend/build/client/_app/immutable/assets/10.CdaQUS6U.css.br +0 -0
  245. package/frontend/build/client/_app/immutable/assets/10.CdaQUS6U.css.gz +0 -0
  246. package/frontend/build/client/_app/immutable/assets/11.BJ-I1gHO.css +18 -0
  247. package/frontend/build/client/_app/immutable/assets/11.BJ-I1gHO.css.br +0 -0
  248. package/frontend/build/client/_app/immutable/assets/11.BJ-I1gHO.css.gz +0 -0
  249. package/frontend/build/client/_app/immutable/assets/12.Bj_a_5lv.css +18 -0
  250. package/frontend/build/client/_app/immutable/assets/12.Bj_a_5lv.css.br +0 -0
  251. package/frontend/build/client/_app/immutable/assets/12.Bj_a_5lv.css.gz +0 -0
  252. package/frontend/build/client/_app/immutable/assets/2.CrXpMrqh.css +18 -0
  253. package/frontend/build/client/_app/immutable/assets/2.CrXpMrqh.css.br +0 -0
  254. package/frontend/build/client/_app/immutable/assets/2.CrXpMrqh.css.gz +0 -0
  255. package/frontend/build/client/_app/immutable/assets/3.BR3wgXcZ.css +18 -0
  256. package/frontend/build/client/_app/immutable/assets/3.BR3wgXcZ.css.br +0 -0
  257. package/frontend/build/client/_app/immutable/assets/3.BR3wgXcZ.css.gz +0 -0
  258. package/frontend/build/client/_app/immutable/assets/4.0Eln51hV.css +18 -0
  259. package/frontend/build/client/_app/immutable/assets/4.0Eln51hV.css.br +0 -0
  260. package/frontend/build/client/_app/immutable/assets/4.0Eln51hV.css.gz +0 -0
  261. package/frontend/build/client/_app/immutable/assets/5.DFV9OgAu.css +18 -0
  262. package/frontend/build/client/_app/immutable/assets/5.DFV9OgAu.css.br +0 -0
  263. package/frontend/build/client/_app/immutable/assets/5.DFV9OgAu.css.gz +0 -0
  264. package/frontend/build/client/_app/immutable/assets/6.CFnbmY-D.css +18 -0
  265. package/frontend/build/client/_app/immutable/assets/6.CFnbmY-D.css.br +0 -0
  266. package/frontend/build/client/_app/immutable/assets/6.CFnbmY-D.css.gz +0 -0
  267. package/frontend/build/client/_app/immutable/assets/7.CBHi6pzT.css +18 -0
  268. package/frontend/build/client/_app/immutable/assets/7.CBHi6pzT.css.br +0 -0
  269. package/frontend/build/client/_app/immutable/assets/7.CBHi6pzT.css.gz +0 -0
  270. package/frontend/build/client/_app/immutable/assets/8.Bhof07Eg.css +18 -0
  271. package/frontend/build/client/_app/immutable/assets/8.Bhof07Eg.css.br +0 -0
  272. package/frontend/build/client/_app/immutable/assets/8.Bhof07Eg.css.gz +0 -0
  273. package/frontend/build/client/_app/immutable/assets/9._h2o67kg.css +18 -0
  274. package/frontend/build/client/_app/immutable/assets/9._h2o67kg.css.br +0 -0
  275. package/frontend/build/client/_app/immutable/assets/9._h2o67kg.css.gz +0 -0
  276. package/frontend/build/client/_app/immutable/assets/BackLink.CvWWuO3h.css +18 -0
  277. package/frontend/build/client/_app/immutable/{chunks/rVEKg0Ak.js.br → assets/BackLink.CvWWuO3h.css.br} +0 -0
  278. package/frontend/build/client/_app/immutable/{chunks/rVEKg0Ak.js.gz → assets/BackLink.CvWWuO3h.css.gz} +0 -0
  279. package/frontend/build/client/_app/immutable/assets/Badge.D1SV0Gv7.css +18 -0
  280. package/frontend/build/client/_app/immutable/assets/Badge.D1SV0Gv7.css.br +0 -0
  281. package/frontend/build/client/_app/immutable/assets/{Badge.DLLowvEA.css.gz → Badge.D1SV0Gv7.css.gz} +0 -0
  282. package/frontend/build/client/_app/immutable/assets/Button.FOWXxvc7.css +18 -0
  283. package/frontend/build/client/_app/immutable/assets/Button.FOWXxvc7.css.br +0 -0
  284. package/frontend/build/client/_app/immutable/assets/Button.FOWXxvc7.css.gz +0 -0
  285. package/frontend/build/client/_app/immutable/assets/ConfirmModal.CdhOYVBb.css +18 -0
  286. package/frontend/build/client/_app/immutable/assets/ConfirmModal.CdhOYVBb.css.br +0 -0
  287. package/frontend/build/client/_app/immutable/assets/ConfirmModal.CdhOYVBb.css.gz +0 -0
  288. package/frontend/build/client/_app/immutable/assets/ConfirmModal.DmxkcwXv.css +18 -0
  289. package/frontend/build/client/_app/immutable/assets/ConfirmModal.DmxkcwXv.css.br +0 -0
  290. package/frontend/build/client/_app/immutable/assets/ConfirmModal.DmxkcwXv.css.gz +0 -0
  291. package/frontend/build/client/_app/immutable/assets/EmptyState.BdO1q9cJ.css +18 -0
  292. package/frontend/build/client/_app/immutable/{chunks/CJ8q7g9Y.js.br → assets/EmptyState.BdO1q9cJ.css.br} +0 -0
  293. package/frontend/build/client/_app/immutable/assets/EmptyState.BdO1q9cJ.css.gz +0 -0
  294. package/frontend/build/client/_app/immutable/assets/Pagination.DZmi2Po-.css +18 -0
  295. package/frontend/build/client/_app/immutable/assets/Pagination.DZmi2Po-.css.br +0 -0
  296. package/frontend/build/client/_app/immutable/assets/Pagination.DZmi2Po-.css.gz +0 -0
  297. package/frontend/build/client/_app/immutable/assets/Toast.DENwYn3g.css +18 -0
  298. package/frontend/build/client/_app/immutable/assets/Toast.DENwYn3g.css.br +0 -0
  299. package/frontend/build/client/_app/immutable/assets/Toast.DENwYn3g.css.gz +0 -0
  300. package/frontend/build/client/_app/immutable/assets/_layout.BuhMvMUj.css +18 -0
  301. package/frontend/build/client/_app/immutable/assets/_layout.BuhMvMUj.css.br +0 -0
  302. package/frontend/build/client/_app/immutable/assets/_layout.BuhMvMUj.css.gz +0 -0
  303. package/frontend/build/client/_app/immutable/assets/_page.0Eln51hV.css +18 -0
  304. package/frontend/build/client/_app/immutable/assets/_page.0Eln51hV.css.br +0 -0
  305. package/frontend/build/client/_app/immutable/assets/_page.0Eln51hV.css.gz +0 -0
  306. package/frontend/build/client/_app/immutable/assets/_page.5IJAEAjc.css +18 -0
  307. package/frontend/build/client/_app/immutable/assets/_page.5IJAEAjc.css.br +0 -0
  308. package/frontend/build/client/_app/immutable/assets/_page.5IJAEAjc.css.gz +0 -0
  309. package/frontend/build/client/_app/immutable/assets/_page.BJ-I1gHO.css +18 -0
  310. package/frontend/build/client/_app/immutable/assets/_page.BJ-I1gHO.css.br +0 -0
  311. package/frontend/build/client/_app/immutable/assets/_page.BJ-I1gHO.css.gz +0 -0
  312. package/frontend/build/client/_app/immutable/assets/_page.BR3wgXcZ.css +18 -0
  313. package/frontend/build/client/_app/immutable/assets/_page.BR3wgXcZ.css.br +0 -0
  314. package/frontend/build/client/_app/immutable/assets/_page.BR3wgXcZ.css.gz +0 -0
  315. package/frontend/build/client/_app/immutable/assets/_page.BZfe6nWe.css +18 -0
  316. package/frontend/build/client/_app/immutable/assets/_page.BZfe6nWe.css.br +0 -0
  317. package/frontend/build/client/_app/immutable/assets/_page.BZfe6nWe.css.gz +0 -0
  318. package/frontend/build/client/_app/immutable/assets/_page.Bhof07Eg.css +18 -0
  319. package/frontend/build/client/_app/immutable/assets/_page.Bhof07Eg.css.br +0 -0
  320. package/frontend/build/client/_app/immutable/assets/_page.Bhof07Eg.css.gz +0 -0
  321. package/frontend/build/client/_app/immutable/assets/_page.Bj_a_5lv.css +18 -0
  322. package/frontend/build/client/_app/immutable/assets/_page.Bj_a_5lv.css.br +0 -0
  323. package/frontend/build/client/_app/immutable/assets/_page.Bj_a_5lv.css.gz +0 -0
  324. package/frontend/build/client/_app/immutable/assets/_page.CBHi6pzT.css +18 -0
  325. package/frontend/build/client/_app/immutable/assets/_page.CBHi6pzT.css.br +0 -0
  326. package/frontend/build/client/_app/immutable/assets/_page.CBHi6pzT.css.gz +0 -0
  327. package/frontend/build/client/_app/immutable/assets/_page.CFnbmY-D.css +18 -0
  328. package/frontend/build/client/_app/immutable/assets/_page.CFnbmY-D.css.br +0 -0
  329. package/frontend/build/client/_app/immutable/assets/_page.CFnbmY-D.css.gz +0 -0
  330. package/frontend/build/client/_app/immutable/assets/_page.CrXpMrqh.css +18 -0
  331. package/frontend/build/client/_app/immutable/assets/_page.CrXpMrqh.css.br +0 -0
  332. package/frontend/build/client/_app/immutable/assets/_page.CrXpMrqh.css.gz +0 -0
  333. package/frontend/build/client/_app/immutable/assets/_page._h2o67kg.css +18 -0
  334. package/frontend/build/client/_app/immutable/assets/_page._h2o67kg.css.br +0 -0
  335. package/frontend/build/client/_app/immutable/assets/_page._h2o67kg.css.gz +0 -0
  336. package/frontend/build/client/_app/immutable/chunks/B0pefNHY.js +18 -0
  337. package/frontend/build/client/_app/immutable/chunks/B0pefNHY.js.br +0 -0
  338. package/frontend/build/client/_app/immutable/chunks/B0pefNHY.js.gz +0 -0
  339. package/frontend/build/client/_app/immutable/chunks/BFEiffAL.js +18 -0
  340. package/frontend/build/client/_app/immutable/chunks/BFEiffAL.js.br +0 -0
  341. package/frontend/build/client/_app/immutable/chunks/BFEiffAL.js.gz +0 -0
  342. package/frontend/build/client/_app/immutable/chunks/{CJ8q7g9Y.js → BFgtfHj2.js} +1 -1
  343. package/frontend/build/client/_app/immutable/chunks/BFgtfHj2.js.br +0 -0
  344. package/frontend/build/client/_app/immutable/chunks/{CJ8q7g9Y.js.gz → BFgtfHj2.js.gz} +0 -0
  345. package/frontend/build/client/_app/immutable/chunks/BIRVeCLU.js +18 -0
  346. package/frontend/build/client/_app/immutable/chunks/{CHV2KnPr.js.gz → BIRVeCLU.js.br} +0 -0
  347. package/frontend/build/client/_app/immutable/chunks/BIRVeCLU.js.gz +0 -0
  348. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/oc0we5Us.js → build/client/_app/immutable/chunks/BKCNyxZ2.js} +1 -1
  349. package/frontend/build/client/_app/immutable/chunks/BKCNyxZ2.js.br +0 -0
  350. package/frontend/build/client/_app/immutable/chunks/BKCNyxZ2.js.gz +0 -0
  351. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/CHV2KnPr.js → build/client/_app/immutable/chunks/BLAiBE__.js} +1 -1
  352. package/frontend/build/client/_app/immutable/chunks/{CHV2KnPr.js.br → BLAiBE__.js.br} +2 -2
  353. package/frontend/build/client/_app/immutable/{assets/Badge.DLLowvEA.css.br → chunks/BLAiBE__.js.gz} +0 -0
  354. package/frontend/build/client/_app/immutable/chunks/BVMec-1T.js +18 -0
  355. package/frontend/build/client/_app/immutable/chunks/BVMec-1T.js.br +0 -0
  356. package/frontend/build/client/_app/immutable/chunks/BVMec-1T.js.gz +0 -0
  357. package/frontend/build/client/_app/immutable/chunks/BeO8veBd.js +18 -0
  358. package/frontend/build/client/_app/immutable/chunks/BeO8veBd.js.br +0 -0
  359. package/frontend/build/client/_app/immutable/chunks/BeO8veBd.js.gz +0 -0
  360. package/frontend/build/client/_app/immutable/chunks/Bfc47y5P.js +18 -0
  361. package/frontend/build/client/_app/immutable/chunks/Bfc47y5P.js.br +0 -0
  362. package/frontend/build/client/_app/immutable/chunks/Bfc47y5P.js.gz +0 -0
  363. package/frontend/build/client/_app/immutable/chunks/BgNaeXAp.js +18 -0
  364. package/frontend/build/client/_app/immutable/chunks/BgNaeXAp.js.br +0 -0
  365. package/frontend/build/client/_app/immutable/chunks/BgNaeXAp.js.gz +0 -0
  366. package/frontend/build/client/_app/immutable/chunks/BkKmeUbA.js +18 -0
  367. package/frontend/build/client/_app/immutable/chunks/BkKmeUbA.js.br +0 -0
  368. package/frontend/build/client/_app/immutable/chunks/BkKmeUbA.js.gz +0 -0
  369. package/frontend/build/client/_app/immutable/chunks/C3SY6-sX.js +19 -0
  370. package/frontend/build/client/_app/immutable/chunks/C3SY6-sX.js.br +0 -0
  371. package/frontend/build/client/_app/immutable/chunks/C3SY6-sX.js.gz +0 -0
  372. package/frontend/build/client/_app/immutable/chunks/C4eeChIU.js +18 -0
  373. package/frontend/build/client/_app/immutable/chunks/C4eeChIU.js.br +0 -0
  374. package/frontend/build/client/_app/immutable/chunks/C4eeChIU.js.gz +0 -0
  375. package/frontend/build/client/_app/immutable/chunks/C67QNx7Z.js +18 -0
  376. package/frontend/build/client/_app/immutable/chunks/C67QNx7Z.js.br +0 -0
  377. package/frontend/build/client/_app/immutable/chunks/C67QNx7Z.js.gz +0 -0
  378. package/frontend/build/client/_app/immutable/chunks/CVV6HrFb.js +18 -0
  379. package/frontend/build/client/_app/immutable/chunks/CVV6HrFb.js.br +0 -0
  380. package/frontend/build/client/_app/immutable/chunks/CVV6HrFb.js.gz +0 -0
  381. package/frontend/build/client/_app/immutable/chunks/CstKKb9b.js +18 -0
  382. package/frontend/build/client/_app/immutable/chunks/CstKKb9b.js.br +0 -0
  383. package/frontend/build/client/_app/immutable/chunks/CstKKb9b.js.gz +0 -0
  384. package/frontend/build/client/_app/immutable/chunks/CxTX_lpP.js +18 -0
  385. package/frontend/build/client/_app/immutable/chunks/CxTX_lpP.js.br +0 -0
  386. package/frontend/build/client/_app/immutable/chunks/CxTX_lpP.js.gz +0 -0
  387. package/frontend/build/client/_app/immutable/chunks/CyQ_oBw2.js +18 -0
  388. package/frontend/build/client/_app/immutable/chunks/CyQ_oBw2.js.br +0 -0
  389. package/frontend/build/client/_app/immutable/chunks/CyQ_oBw2.js.gz +0 -0
  390. package/frontend/build/client/_app/immutable/chunks/DGryW1Vp.js +18 -0
  391. package/frontend/build/client/_app/immutable/chunks/DGryW1Vp.js.br +0 -0
  392. package/frontend/build/client/_app/immutable/chunks/DGryW1Vp.js.gz +0 -0
  393. package/frontend/build/client/_app/immutable/chunks/DIx44H9N.js +18 -0
  394. package/frontend/build/client/_app/immutable/chunks/DIx44H9N.js.br +0 -0
  395. package/frontend/build/client/_app/immutable/chunks/DIx44H9N.js.gz +0 -0
  396. package/frontend/build/client/_app/immutable/chunks/DP6QP4L6.js +18 -0
  397. package/frontend/build/client/_app/immutable/chunks/DP6QP4L6.js.br +0 -0
  398. package/frontend/build/client/_app/immutable/chunks/DP6QP4L6.js.gz +0 -0
  399. package/frontend/build/client/_app/immutable/chunks/DmRbbcS3.js +23 -0
  400. package/frontend/build/client/_app/immutable/chunks/DmRbbcS3.js.br +0 -0
  401. package/frontend/build/client/_app/immutable/chunks/DmRbbcS3.js.gz +0 -0
  402. package/frontend/build/client/_app/immutable/chunks/IFIFk6zi.js +18 -0
  403. package/frontend/build/client/_app/immutable/chunks/IFIFk6zi.js.br +0 -0
  404. package/frontend/build/client/_app/immutable/chunks/IFIFk6zi.js.gz +0 -0
  405. package/frontend/build/client/_app/immutable/chunks/KJdjlibc.js +20 -0
  406. package/frontend/build/client/_app/immutable/chunks/KJdjlibc.js.br +0 -0
  407. package/frontend/build/client/_app/immutable/chunks/KJdjlibc.js.gz +0 -0
  408. package/frontend/build/client/_app/immutable/chunks/ll-VsEGv.js +18 -0
  409. package/frontend/build/client/_app/immutable/chunks/ll-VsEGv.js.br +0 -0
  410. package/frontend/build/client/_app/immutable/chunks/ll-VsEGv.js.gz +0 -0
  411. package/frontend/build/client/_app/immutable/chunks/raHbXn_9.js +18 -0
  412. package/frontend/build/client/_app/immutable/chunks/raHbXn_9.js.br +0 -0
  413. package/frontend/build/client/_app/immutable/chunks/raHbXn_9.js.gz +0 -0
  414. package/frontend/build/client/_app/immutable/chunks/uFRI_bmR.js +18 -0
  415. package/frontend/build/client/_app/immutable/chunks/uFRI_bmR.js.br +0 -0
  416. package/frontend/build/client/_app/immutable/chunks/uFRI_bmR.js.gz +0 -0
  417. package/frontend/build/client/_app/immutable/entry/app.Dz_CBZcR.js +19 -0
  418. package/frontend/build/client/_app/immutable/entry/app.Dz_CBZcR.js.br +0 -0
  419. package/frontend/build/client/_app/immutable/entry/app.Dz_CBZcR.js.gz +0 -0
  420. package/frontend/build/client/_app/immutable/entry/start.MMlC62np.js +18 -0
  421. package/frontend/build/client/_app/immutable/entry/{start.GiBry-lw.js.br → start.MMlC62np.js.br} +1 -1
  422. package/frontend/build/client/_app/immutable/entry/{start.GiBry-lw.js.gz → start.MMlC62np.js.gz} +0 -0
  423. package/frontend/build/client/_app/immutable/nodes/0.CKD9Qja6.js +23 -0
  424. package/frontend/build/client/_app/immutable/nodes/0.CKD9Qja6.js.br +0 -0
  425. package/frontend/build/client/_app/immutable/nodes/0.CKD9Qja6.js.gz +0 -0
  426. package/frontend/build/client/_app/immutable/nodes/{1.N4gjrCnX.js → 1.Dbck5ct8.js} +1 -1
  427. package/frontend/build/client/_app/immutable/nodes/1.Dbck5ct8.js.br +0 -0
  428. package/frontend/build/client/_app/immutable/nodes/1.Dbck5ct8.js.gz +0 -0
  429. package/frontend/build/client/_app/immutable/nodes/10.BfmGpmC1.js +19 -0
  430. package/frontend/build/client/_app/immutable/nodes/10.BfmGpmC1.js.br +0 -0
  431. package/frontend/build/client/_app/immutable/nodes/10.BfmGpmC1.js.gz +0 -0
  432. package/frontend/build/client/_app/immutable/nodes/11.C7l9HPom.js +18 -0
  433. package/frontend/build/client/_app/immutable/nodes/11.C7l9HPom.js.br +0 -0
  434. package/frontend/build/client/_app/immutable/nodes/11.C7l9HPom.js.gz +0 -0
  435. package/frontend/build/client/_app/immutable/nodes/12.Iu9bcGdC.js +19 -0
  436. package/frontend/build/client/_app/immutable/nodes/12.Iu9bcGdC.js.br +0 -0
  437. package/frontend/build/client/_app/immutable/nodes/12.Iu9bcGdC.js.gz +0 -0
  438. package/frontend/build/client/_app/immutable/nodes/2.BqQhRvYh.js +18 -0
  439. package/frontend/build/client/_app/immutable/nodes/2.BqQhRvYh.js.br +0 -0
  440. package/frontend/build/client/_app/immutable/nodes/2.BqQhRvYh.js.gz +0 -0
  441. package/frontend/build/client/_app/immutable/nodes/3.BZRTKadS.js +18 -0
  442. package/frontend/build/client/_app/immutable/nodes/3.BZRTKadS.js.br +0 -0
  443. package/frontend/build/client/_app/immutable/nodes/3.BZRTKadS.js.gz +0 -0
  444. package/frontend/build/client/_app/immutable/nodes/4.BfKoPKdM.js +18 -0
  445. package/frontend/build/client/_app/immutable/nodes/4.BfKoPKdM.js.br +0 -0
  446. package/frontend/build/client/_app/immutable/nodes/4.BfKoPKdM.js.gz +0 -0
  447. package/frontend/build/client/_app/immutable/nodes/5.B4a2uCWn.js +18 -0
  448. package/frontend/build/client/_app/immutable/nodes/5.B4a2uCWn.js.br +0 -0
  449. package/frontend/build/client/_app/immutable/nodes/5.B4a2uCWn.js.gz +0 -0
  450. package/frontend/build/client/_app/immutable/nodes/6.CI508CMS.js +18 -0
  451. package/frontend/build/client/_app/immutable/nodes/6.CI508CMS.js.br +0 -0
  452. package/frontend/build/client/_app/immutable/nodes/6.CI508CMS.js.gz +0 -0
  453. package/frontend/build/client/_app/immutable/nodes/7.3x_eiof1.js +18 -0
  454. package/frontend/build/client/_app/immutable/nodes/7.3x_eiof1.js.br +0 -0
  455. package/frontend/build/client/_app/immutable/nodes/7.3x_eiof1.js.gz +0 -0
  456. package/frontend/build/client/_app/immutable/nodes/8.BfUuob4H.js +29 -0
  457. package/frontend/build/client/_app/immutable/nodes/8.BfUuob4H.js.br +0 -0
  458. package/frontend/build/client/_app/immutable/nodes/8.BfUuob4H.js.gz +0 -0
  459. package/frontend/build/client/_app/immutable/nodes/9.BZhCKRJe.js +18 -0
  460. package/frontend/build/client/_app/immutable/nodes/9.BZhCKRJe.js.br +0 -0
  461. package/frontend/build/client/_app/immutable/nodes/9.BZhCKRJe.js.gz +0 -0
  462. package/frontend/build/client/_app/version.json +1 -1
  463. package/frontend/build/client/_app/version.json.br +0 -0
  464. package/frontend/build/client/_app/version.json.gz +0 -0
  465. package/frontend/build/client/favicon-32x32.png +0 -0
  466. package/frontend/build/client/favicon.ico +0 -0
  467. package/frontend/build/server/chunks/0-Dzas6zkl.js +34 -0
  468. package/frontend/build/server/chunks/0-Dzas6zkl.js.map +17 -0
  469. package/frontend/build/server/chunks/{1-hso3H4Ax.js → 1-B4EsP8yr.js} +3 -3
  470. package/frontend/build/server/chunks/{1-hso3H4Ax.js.map → 1-B4EsP8yr.js.map} +1 -1
  471. package/frontend/build/server/chunks/10-UhDQZ5BY.js +26 -0
  472. package/frontend/build/server/chunks/10-UhDQZ5BY.js.map +17 -0
  473. package/frontend/build/server/chunks/11-mTH3nQlX.js +26 -0
  474. package/frontend/build/server/chunks/11-mTH3nQlX.js.map +17 -0
  475. package/frontend/build/server/chunks/12-9mg6kp53.js +26 -0
  476. package/frontend/build/server/chunks/12-9mg6kp53.js.map +17 -0
  477. package/frontend/build/server/chunks/{4-2UUrCVtM.js → 2-Bkz8H7CT.js} +5 -5
  478. package/frontend/build/server/chunks/2-Bkz8H7CT.js.map +17 -0
  479. package/frontend/build/server/chunks/{3-BYumY9dv.js → 3-DDtaiqu7.js} +4 -4
  480. package/frontend/build/server/chunks/3-DDtaiqu7.js.map +17 -0
  481. package/frontend/build/server/chunks/4-DbdkTAvS.js +26 -0
  482. package/frontend/build/server/chunks/4-DbdkTAvS.js.map +17 -0
  483. package/frontend/build/server/chunks/{5-C2_y_fwT.js → 5-CK5hY2WF.js} +4 -4
  484. package/frontend/build/server/chunks/5-CK5hY2WF.js.map +17 -0
  485. package/frontend/build/server/chunks/6-Cps9fL3Z.js +26 -0
  486. package/frontend/build/server/chunks/6-Cps9fL3Z.js.map +17 -0
  487. package/frontend/build/server/chunks/7-CgUpbaJD.js +26 -0
  488. package/frontend/build/server/chunks/7-CgUpbaJD.js.map +17 -0
  489. package/frontend/build/server/chunks/8-dilaVKYo.js +26 -0
  490. package/frontend/build/server/chunks/8-dilaVKYo.js.map +17 -0
  491. package/frontend/build/server/chunks/{2-BSZWXCWp.js → 9-CUJxgoIN.js} +5 -5
  492. package/frontend/build/server/chunks/9-CUJxgoIN.js.map +17 -0
  493. package/frontend/build/server/chunks/BackLink-KxZNqsaq.js +30 -0
  494. package/frontend/build/server/chunks/BackLink-KxZNqsaq.js.map +17 -0
  495. package/frontend/build/server/chunks/{Badge-CC4U7C0c.js → Badge-B5V-z6pI.js} +4 -4
  496. package/frontend/build/server/chunks/Badge-B5V-z6pI.js.map +17 -0
  497. package/frontend/build/server/chunks/{Button-BLkPicwS.js → Button-CuacyA7Y.js} +4 -4
  498. package/frontend/build/server/chunks/Button-CuacyA7Y.js.map +17 -0
  499. package/frontend/build/server/chunks/ConfirmModal-DBtnLLsU.js +73 -0
  500. package/frontend/build/server/chunks/ConfirmModal-DBtnLLsU.js.map +17 -0
  501. package/frontend/build/server/chunks/EmptyState-B74-VZ15.js +34 -0
  502. package/frontend/build/server/chunks/EmptyState-B74-VZ15.js.map +17 -0
  503. package/frontend/build/server/chunks/Toast-DDF2wi_5.js +37 -0
  504. package/frontend/build/server/chunks/Toast-DDF2wi_5.js.map +17 -0
  505. package/frontend/build/server/chunks/_layout.svelte-DoJXDbP1.js +39 -0
  506. package/frontend/build/server/chunks/_layout.svelte-DoJXDbP1.js.map +17 -0
  507. package/frontend/build/server/chunks/_page.svelte-BETENC2e.js +67 -0
  508. package/frontend/build/server/chunks/_page.svelte-BETENC2e.js.map +17 -0
  509. package/frontend/build/server/chunks/_page.svelte-C0vstY93.js +219 -0
  510. package/frontend/build/server/chunks/_page.svelte-C0vstY93.js.map +17 -0
  511. package/frontend/build/server/chunks/_page.svelte-CC27sZag.js +421 -0
  512. package/frontend/build/server/chunks/_page.svelte-CC27sZag.js.map +17 -0
  513. package/frontend/build/server/chunks/{_page.svelte-s6ZIOitT.js → _page.svelte-CYkOPxn2.js} +47 -29
  514. package/frontend/build/server/chunks/_page.svelte-CYkOPxn2.js.map +17 -0
  515. package/frontend/build/server/chunks/_page.svelte-CperUuP9.js +564 -0
  516. package/frontend/build/server/chunks/_page.svelte-CperUuP9.js.map +17 -0
  517. package/frontend/build/server/chunks/_page.svelte-CwrCf0C8.js +65 -0
  518. package/frontend/build/server/chunks/_page.svelte-CwrCf0C8.js.map +17 -0
  519. package/frontend/build/server/chunks/_page.svelte-DALHRFEX.js +43 -0
  520. package/frontend/build/server/chunks/_page.svelte-DALHRFEX.js.map +17 -0
  521. package/frontend/build/server/chunks/_page.svelte-DNNyBx4y.js +43 -0
  522. package/frontend/build/server/chunks/_page.svelte-DNNyBx4y.js.map +17 -0
  523. package/frontend/build/server/chunks/_page.svelte-DqWsUJRp.js +199 -0
  524. package/frontend/build/server/chunks/_page.svelte-DqWsUJRp.js.map +17 -0
  525. package/frontend/build/server/chunks/_page.svelte-LcJmR5du.js +219 -0
  526. package/frontend/build/server/chunks/_page.svelte-LcJmR5du.js.map +17 -0
  527. package/frontend/build/server/chunks/_page.svelte-gnktnXKP.js +259 -0
  528. package/frontend/build/server/chunks/_page.svelte-gnktnXKP.js.map +17 -0
  529. package/frontend/build/server/chunks/auth-rlH-cIzn.js +62 -0
  530. package/frontend/build/server/chunks/auth-rlH-cIzn.js.map +17 -0
  531. package/frontend/build/server/chunks/{client-C9IaEwNo.js → client-DyII78e0.js} +9 -4
  532. package/frontend/build/server/chunks/client-DyII78e0.js.map +17 -0
  533. package/frontend/build/server/chunks/constants-Drz-Vo39.js +35 -0
  534. package/frontend/build/server/chunks/constants-Drz-Vo39.js.map +17 -0
  535. package/frontend/build/server/chunks/{error.svelte-HKBv5sQT.js → error.svelte-BDW3iP1O.js} +4 -4
  536. package/frontend/build/server/chunks/{error.svelte-HKBv5sQT.js.map → error.svelte-BDW3iP1O.js.map} +1 -1
  537. package/frontend/build/server/chunks/{exports-OxlCJ8yE.js → exports-D0QHgeSL.js} +2 -67
  538. package/frontend/build/server/chunks/exports-D0QHgeSL.js.map +17 -0
  539. package/frontend/build/server/chunks/format-D26ZQccb.js +49 -0
  540. package/frontend/build/server/chunks/format-D26ZQccb.js.map +17 -0
  541. package/frontend/build/server/chunks/index-server-Dr2Nvcmu.js +31 -0
  542. package/frontend/build/{client/_app/immutable/chunks/BKz6FZdB.js.br → server/chunks/index-server-Dr2Nvcmu.js.map} +0 -0
  543. package/frontend/build/server/chunks/{index-CjHlq1kt.js → index2-DG8XHU5D.js} +81 -10
  544. package/frontend/build/server/chunks/index2-DG8XHU5D.js.map +17 -0
  545. package/frontend/build/server/chunks/reports-Bgi7V5N7.js +40 -0
  546. package/frontend/build/server/chunks/reports-Bgi7V5N7.js.map +17 -0
  547. package/frontend/build/server/chunks/runner-D18Ml_vF.js +42 -0
  548. package/frontend/build/server/chunks/runner-D18Ml_vF.js.map +17 -0
  549. package/frontend/build/server/chunks/{reports-D3ZeYSmi.js → stores-DlkXV308.js} +4 -16
  550. package/frontend/build/server/chunks/stores-DlkXV308.js.map +17 -0
  551. package/frontend/build/server/chunks/theme-D_NKm6iI.js +27 -0
  552. package/frontend/build/server/chunks/theme-D_NKm6iI.js.map +17 -0
  553. package/frontend/build/server/index.js +4 -4
  554. package/frontend/build/server/index.js.map +1 -1
  555. package/frontend/build/server/manifest.js +69 -13
  556. package/frontend/build/server/manifest.js.map +1 -1
  557. package/frontend/src/lib/components/layout/RunnerPanel.svelte +108 -21
  558. package/frontend/src/lib/components/ui/Badge.svelte +6 -1
  559. package/frontend/src/lib/constants.js +2 -1
  560. package/frontend/src/lib/stores/runner.js +5 -2
  561. package/frontend/src/lib/styles/tokens.css +4 -0
  562. package/frontend/src/lib/utils/format.js +3 -0
  563. package/frontend/src/routes/reports/[id]/+page.svelte +5 -1
  564. package/frontend/src/routes/reports/live/+page.svelte +38 -17
  565. package/frontend/src/routes/scheduled-tests/+page.svelte +2 -2
  566. package/frontend/src/routes/settings/+page.svelte +50 -1
  567. package/package.json +1 -1
  568. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/Badge.DLLowvEA.css +0 -34
  569. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/Button.cBruH0aD.css +0 -34
  570. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_layout.D7eM-6MV.css +0 -34
  571. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BVnUajEa.css +0 -34
  572. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.CGnCsn5q.css +0 -34
  573. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.DBhBrHFz.css +0 -34
  574. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.DOqo0UR4.css +0 -34
  575. package/frontend/.svelte-kit/adapter-node/entries/pages/reports/_slug_/_page.svelte.js +0 -42
  576. package/frontend/.svelte-kit/output/client/_app/immutable/assets/0.CnXRuPt4.css +0 -34
  577. package/frontend/.svelte-kit/output/client/_app/immutable/assets/2.CGnCsn5q.css +0 -34
  578. package/frontend/.svelte-kit/output/client/_app/immutable/assets/3.BVnUajEa.css +0 -34
  579. package/frontend/.svelte-kit/output/client/_app/immutable/assets/4.DBhBrHFz.css +0 -34
  580. package/frontend/.svelte-kit/output/client/_app/immutable/assets/5.D93VAB-w.css +0 -34
  581. package/frontend/.svelte-kit/output/client/_app/immutable/assets/Badge.DLLowvEA.css +0 -34
  582. package/frontend/.svelte-kit/output/client/_app/immutable/assets/Button.cBruH0aD.css +0 -34
  583. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_layout.D7eM-6MV.css +0 -34
  584. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BVnUajEa.css +0 -34
  585. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.CGnCsn5q.css +0 -34
  586. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.DBhBrHFz.css +0 -34
  587. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.DOqo0UR4.css +0 -34
  588. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/B0bn91RF.js +0 -18
  589. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/B1kE5jmt.js +0 -23
  590. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Be4iUAB0.js +0 -18
  591. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BpaMqo9O.js +0 -18
  592. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Bt3-Z7H1.js +0 -18
  593. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Cit9MuSg.js +0 -20
  594. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DBk3zeq4.js +0 -18
  595. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DFJLQFic.js +0 -18
  596. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DTUE7kkY.js +0 -18
  597. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/IYPwzKs_.js +0 -20
  598. package/frontend/.svelte-kit/output/client/_app/immutable/entry/app.C2MbX06K.js +0 -19
  599. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/0.BsCYK-Tn.js +0 -21
  600. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/2.D9yQNzK8.js +0 -18
  601. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/3.CBC5WvNb.js +0 -18
  602. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/4.BU6UZHSE.js +0 -19
  603. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/5.Dzzfrntl.js +0 -18
  604. package/frontend/.svelte-kit/output/client/favicon.png +0 -0
  605. package/frontend/.svelte-kit/output/server/_app/immutable/assets/Badge.DLLowvEA.css +0 -34
  606. package/frontend/.svelte-kit/output/server/_app/immutable/assets/Button.cBruH0aD.css +0 -34
  607. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_layout.D7eM-6MV.css +0 -34
  608. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BVnUajEa.css +0 -34
  609. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CGnCsn5q.css +0 -34
  610. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.DBhBrHFz.css +0 -34
  611. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.DOqo0UR4.css +0 -34
  612. package/frontend/.svelte-kit/output/server/entries/pages/reports/_slug_/_page.svelte.js +0 -42
  613. package/frontend/build/client/_app/immutable/assets/0.CnXRuPt4.css +0 -34
  614. package/frontend/build/client/_app/immutable/assets/0.CnXRuPt4.css.br +0 -0
  615. package/frontend/build/client/_app/immutable/assets/0.CnXRuPt4.css.gz +0 -0
  616. package/frontend/build/client/_app/immutable/assets/2.CGnCsn5q.css +0 -34
  617. package/frontend/build/client/_app/immutable/assets/2.CGnCsn5q.css.br +0 -0
  618. package/frontend/build/client/_app/immutable/assets/2.CGnCsn5q.css.gz +0 -0
  619. package/frontend/build/client/_app/immutable/assets/3.BVnUajEa.css +0 -34
  620. package/frontend/build/client/_app/immutable/assets/3.BVnUajEa.css.br +0 -0
  621. package/frontend/build/client/_app/immutable/assets/3.BVnUajEa.css.gz +0 -0
  622. package/frontend/build/client/_app/immutable/assets/4.DBhBrHFz.css +0 -34
  623. package/frontend/build/client/_app/immutable/assets/4.DBhBrHFz.css.br +0 -0
  624. package/frontend/build/client/_app/immutable/assets/4.DBhBrHFz.css.gz +0 -0
  625. package/frontend/build/client/_app/immutable/assets/5.D93VAB-w.css +0 -34
  626. package/frontend/build/client/_app/immutable/assets/5.D93VAB-w.css.br +0 -0
  627. package/frontend/build/client/_app/immutable/assets/5.D93VAB-w.css.gz +0 -0
  628. package/frontend/build/client/_app/immutable/assets/Badge.DLLowvEA.css +0 -34
  629. package/frontend/build/client/_app/immutable/assets/Button.cBruH0aD.css +0 -34
  630. package/frontend/build/client/_app/immutable/assets/Button.cBruH0aD.css.br +0 -0
  631. package/frontend/build/client/_app/immutable/assets/Button.cBruH0aD.css.gz +0 -0
  632. package/frontend/build/client/_app/immutable/assets/_layout.D7eM-6MV.css +0 -34
  633. package/frontend/build/client/_app/immutable/assets/_layout.D7eM-6MV.css.br +0 -0
  634. package/frontend/build/client/_app/immutable/assets/_layout.D7eM-6MV.css.gz +0 -0
  635. package/frontend/build/client/_app/immutable/assets/_page.BVnUajEa.css +0 -34
  636. package/frontend/build/client/_app/immutable/assets/_page.BVnUajEa.css.br +0 -0
  637. package/frontend/build/client/_app/immutable/assets/_page.BVnUajEa.css.gz +0 -0
  638. package/frontend/build/client/_app/immutable/assets/_page.CGnCsn5q.css +0 -34
  639. package/frontend/build/client/_app/immutable/assets/_page.CGnCsn5q.css.br +0 -0
  640. package/frontend/build/client/_app/immutable/assets/_page.CGnCsn5q.css.gz +0 -0
  641. package/frontend/build/client/_app/immutable/assets/_page.DBhBrHFz.css +0 -34
  642. package/frontend/build/client/_app/immutable/assets/_page.DBhBrHFz.css.br +0 -0
  643. package/frontend/build/client/_app/immutable/assets/_page.DBhBrHFz.css.gz +0 -0
  644. package/frontend/build/client/_app/immutable/assets/_page.DOqo0UR4.css +0 -34
  645. package/frontend/build/client/_app/immutable/assets/_page.DOqo0UR4.css.br +0 -0
  646. package/frontend/build/client/_app/immutable/assets/_page.DOqo0UR4.css.gz +0 -0
  647. package/frontend/build/client/_app/immutable/chunks/B0bn91RF.js +0 -18
  648. package/frontend/build/client/_app/immutable/chunks/B0bn91RF.js.br +0 -0
  649. package/frontend/build/client/_app/immutable/chunks/B0bn91RF.js.gz +0 -0
  650. package/frontend/build/client/_app/immutable/chunks/B1kE5jmt.js +0 -23
  651. package/frontend/build/client/_app/immutable/chunks/B1kE5jmt.js.br +0 -0
  652. package/frontend/build/client/_app/immutable/chunks/B1kE5jmt.js.gz +0 -0
  653. package/frontend/build/client/_app/immutable/chunks/BKz6FZdB.js +0 -18
  654. package/frontend/build/client/_app/immutable/chunks/BKz6FZdB.js.gz +0 -0
  655. package/frontend/build/client/_app/immutable/chunks/Be4iUAB0.js +0 -18
  656. package/frontend/build/client/_app/immutable/chunks/Be4iUAB0.js.br +0 -0
  657. package/frontend/build/client/_app/immutable/chunks/Be4iUAB0.js.gz +0 -0
  658. package/frontend/build/client/_app/immutable/chunks/BpaMqo9O.js +0 -18
  659. package/frontend/build/client/_app/immutable/chunks/BpaMqo9O.js.br +0 -0
  660. package/frontend/build/client/_app/immutable/chunks/BpaMqo9O.js.gz +0 -0
  661. package/frontend/build/client/_app/immutable/chunks/Bt3-Z7H1.js +0 -18
  662. package/frontend/build/client/_app/immutable/chunks/Bt3-Z7H1.js.br +0 -0
  663. package/frontend/build/client/_app/immutable/chunks/Bt3-Z7H1.js.gz +0 -0
  664. package/frontend/build/client/_app/immutable/chunks/Cit9MuSg.js +0 -20
  665. package/frontend/build/client/_app/immutable/chunks/Cit9MuSg.js.br +0 -0
  666. package/frontend/build/client/_app/immutable/chunks/Cit9MuSg.js.gz +0 -0
  667. package/frontend/build/client/_app/immutable/chunks/CwBTqcbj.js +0 -18
  668. package/frontend/build/client/_app/immutable/chunks/CwBTqcbj.js.br +0 -0
  669. package/frontend/build/client/_app/immutable/chunks/CwBTqcbj.js.gz +0 -0
  670. package/frontend/build/client/_app/immutable/chunks/DBk3zeq4.js +0 -18
  671. package/frontend/build/client/_app/immutable/chunks/DBk3zeq4.js.br +0 -0
  672. package/frontend/build/client/_app/immutable/chunks/DBk3zeq4.js.gz +0 -0
  673. package/frontend/build/client/_app/immutable/chunks/DFJLQFic.js +0 -18
  674. package/frontend/build/client/_app/immutable/chunks/DFJLQFic.js.br +0 -0
  675. package/frontend/build/client/_app/immutable/chunks/DFJLQFic.js.gz +0 -0
  676. package/frontend/build/client/_app/immutable/chunks/DTUE7kkY.js +0 -18
  677. package/frontend/build/client/_app/immutable/chunks/DTUE7kkY.js.br +0 -0
  678. package/frontend/build/client/_app/immutable/chunks/DTUE7kkY.js.gz +0 -0
  679. package/frontend/build/client/_app/immutable/chunks/IYPwzKs_.js +0 -20
  680. package/frontend/build/client/_app/immutable/chunks/IYPwzKs_.js.br +0 -0
  681. package/frontend/build/client/_app/immutable/chunks/IYPwzKs_.js.gz +0 -0
  682. package/frontend/build/client/_app/immutable/chunks/oc0we5Us.js +0 -18
  683. package/frontend/build/client/_app/immutable/chunks/oc0we5Us.js.br +0 -0
  684. package/frontend/build/client/_app/immutable/chunks/oc0we5Us.js.gz +0 -0
  685. package/frontend/build/client/_app/immutable/entry/app.C2MbX06K.js +0 -19
  686. package/frontend/build/client/_app/immutable/entry/app.C2MbX06K.js.br +0 -0
  687. package/frontend/build/client/_app/immutable/entry/app.C2MbX06K.js.gz +0 -0
  688. package/frontend/build/client/_app/immutable/nodes/0.BsCYK-Tn.js +0 -21
  689. package/frontend/build/client/_app/immutable/nodes/0.BsCYK-Tn.js.br +0 -0
  690. package/frontend/build/client/_app/immutable/nodes/0.BsCYK-Tn.js.gz +0 -0
  691. package/frontend/build/client/_app/immutable/nodes/1.N4gjrCnX.js.br +0 -0
  692. package/frontend/build/client/_app/immutable/nodes/1.N4gjrCnX.js.gz +0 -0
  693. package/frontend/build/client/_app/immutable/nodes/2.D9yQNzK8.js +0 -18
  694. package/frontend/build/client/_app/immutable/nodes/2.D9yQNzK8.js.br +0 -0
  695. package/frontend/build/client/_app/immutable/nodes/2.D9yQNzK8.js.gz +0 -0
  696. package/frontend/build/client/_app/immutable/nodes/3.CBC5WvNb.js +0 -18
  697. package/frontend/build/client/_app/immutable/nodes/3.CBC5WvNb.js.br +0 -0
  698. package/frontend/build/client/_app/immutable/nodes/3.CBC5WvNb.js.gz +0 -0
  699. package/frontend/build/client/_app/immutable/nodes/4.BU6UZHSE.js +0 -19
  700. package/frontend/build/client/_app/immutable/nodes/4.BU6UZHSE.js.br +0 -0
  701. package/frontend/build/client/_app/immutable/nodes/4.BU6UZHSE.js.gz +0 -0
  702. package/frontend/build/client/_app/immutable/nodes/5.Dzzfrntl.js +0 -18
  703. package/frontend/build/client/_app/immutable/nodes/5.Dzzfrntl.js.br +0 -0
  704. package/frontend/build/client/_app/immutable/nodes/5.Dzzfrntl.js.gz +0 -0
  705. package/frontend/build/client/favicon.png +0 -0
  706. package/frontend/build/server/chunks/0-BFfqmlsS.js +0 -26
  707. package/frontend/build/server/chunks/0-BFfqmlsS.js.map +0 -17
  708. package/frontend/build/server/chunks/2-BSZWXCWp.js.map +0 -17
  709. package/frontend/build/server/chunks/3-BYumY9dv.js.map +0 -17
  710. package/frontend/build/server/chunks/4-2UUrCVtM.js.map +0 -17
  711. package/frontend/build/server/chunks/5-C2_y_fwT.js.map +0 -17
  712. package/frontend/build/server/chunks/Badge-CC4U7C0c.js.map +0 -17
  713. package/frontend/build/server/chunks/Button-BLkPicwS.js.map +0 -17
  714. package/frontend/build/server/chunks/_layout.svelte-Bfxcj9C6.js +0 -183
  715. package/frontend/build/server/chunks/_layout.svelte-Bfxcj9C6.js.map +0 -17
  716. package/frontend/build/server/chunks/_page.svelte-DEK6UvaI.js +0 -45
  717. package/frontend/build/server/chunks/_page.svelte-DEK6UvaI.js.map +0 -17
  718. package/frontend/build/server/chunks/_page.svelte-DScVdHOq.js +0 -142
  719. package/frontend/build/server/chunks/_page.svelte-DScVdHOq.js.map +0 -17
  720. package/frontend/build/server/chunks/_page.svelte-Ns7w2sZt.js +0 -180
  721. package/frontend/build/server/chunks/_page.svelte-Ns7w2sZt.js.map +0 -17
  722. package/frontend/build/server/chunks/_page.svelte-s6ZIOitT.js.map +0 -17
  723. package/frontend/build/server/chunks/client-C9IaEwNo.js.map +0 -17
  724. package/frontend/build/server/chunks/exports-OxlCJ8yE.js.map +0 -17
  725. package/frontend/build/server/chunks/index-CjHlq1kt.js.map +0 -17
  726. package/frontend/build/server/chunks/reports-D3ZeYSmi.js.map +0 -17
@@ -1,20 +0,0 @@
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
- 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 Jt,aJ as C,A as O,m as N,aA as Oe}from"./B0bn91RF.js";const Ne="1781425198782";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 Je(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 ze({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 Je(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 zt(t,e,n=JSON.stringify){const r=n(e);try{sessionStorage[t]=r}catch{}}var oe;const x=((oe=globalThis.__sveltekit_kg35is)==null?void 0:oe.base)??"";var se;const Xe=((se=globalThis.__sveltekit_kg35is)==null?void 0:se.assets)??x,ue="sveltekit:snapshot",he="sveltekit:scroll",de="sveltekit:states",Ze="sveltekit:pageurl",G="sveltekit:history",z="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=Jt.toString().includes("$$")||/function \w+\(\) \{\}/.test(Jt.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 J=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=ze(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[z],R||(R=T=Date.now(),history.replaceState({...history.state,[G]:R,[z]: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),zt(he,V),ke(T),zt(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={};J.add(e),L={id:t.id,token:e,promise:Re({...t,preload:e}).then(n=>(J.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 J.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 J.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(J.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,[z]: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[z],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,[z]: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?`
19
- `:f.decode(m,{stream:!0});;){const d=p.indexOf(`
20
- `);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,U as p,$ as s};
@@ -1,18 +0,0 @@
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
- import{e as f,a as b,t as c}from"./DFJLQFic.js";import"./DTUE7kkY.js";import{R as u,D as v,B as d,C as p}from"./B0bn91RF.js";import{s as y}from"./rVEKg0Ak.js";import{s as _,a as h}from"./Bt3-Z7H1.js";import{p as l}from"./Be4iUAB0.js";function B(i,t){var s;var e=(s=i.$$events)==null?void 0:s[t.type],r=u(e)?e.slice():e==null?[]:[e];for(var o of r)o.call(this,t)}var k=c("<button><!></button>");function D(i,t){let e=l(t,"variant",8,"primary"),r=l(t,"size",8,"md"),o=l(t,"type",8,"button"),s=l(t,"disabled",8,!1);var a=k(),n=d(a);y(n,t,"default",{}),p(a),v(()=>{_(a,"type",o()),a.disabled=s(),h(a,`btn ${e()??""} ${r()??""} svelte-1mw9qtj`)}),f("click",a,function(m){B.call(this,t,m)}),b(i,a)}export{D as B};
@@ -1,18 +0,0 @@
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
- import{aF as N,aG as L,aH as C,Z as E,a3 as U,q as Y,a4 as j,R as G,ag as R,ah as w,aN as x,aO as Q,aP as Z,h,k as d,a as H,s as P,aQ as A,aR as z,at as J,aS as O,d as b,ai as K,aT as X,aU as ee,ao as re,ak as te,aV as ae,j as ne,l as se,I as ie,y as oe}from"./B0bn91RF.js";let D=!1;function ue(){D||(D=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{var r;if(!e.defaultPrevented)for(const t of e.target.elements)(r=t.__on_r)==null||r.call(t)})},{capture:!0}))}function W(e){var r=C,t=E;N(null),L(null);try{return e()}finally{N(r),L(t)}}function pe(e,r,t,s=t){e.addEventListener(r,()=>W(t));const n=e.__on_r;n?e.__on_r=()=>{n(),s(!0)}:e.__on_r=()=>s(!0),ue()}const fe=new Set,k=new Set;function de(e,r,t,s={}){function n(a){if(s.capture||y.call(r,a),!a.cancelBubble)return W(()=>t==null?void 0:t.call(this,a))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?Y(()=>{r.addEventListener(e,n,s)}):r.addEventListener(e,n,s),n}function ge(e,r,t,s,n){var a={capture:s,passive:n},i=de(e,r,t,a);(r===document.body||r===window||r===document)&&U(()=>{r.removeEventListener(e,i,a)})}function y(e){var M;var r=this,t=r.ownerDocument,s=e.type,n=((M=e.composedPath)==null?void 0:M.call(e))||[],a=n[0]||e.target,i=0,l=e.__root;if(l){var f=n.indexOf(l);if(f!==-1&&(r===document||r===window)){e.__root=r;return}var g=n.indexOf(r);if(g===-1)return;f<=g&&(i=f)}if(a=n[i]||e.target,a!==r){j(e,"currentTarget",{configurable:!0,get(){return a||t}});var S=C,c=E;N(null),L(null);try{for(var o,u=[];a!==null;){var v=a.assignedSlot||a.parentNode||a.host||null;try{var p=a["__"+s];if(p!==void 0&&(!a.disabled||e.target===a))if(G(p)){var[B,...F]=p;B.apply(a,[e,...F])}else p.call(a,e)}catch(T){o?u.push(T):o=T}if(e.cancelBubble||v===r||v===null)break;a=v}if(o){for(let T of u)queueMicrotask(()=>{throw T});throw o}}finally{e.__root=r,delete e.currentTarget,N(S),L(c)}}}function $(e){var r=document.createElement("template");return r.innerHTML=e,r.content}function _(e,r){var t=E;t.nodes_start===null&&(t.nodes_start=e,t.nodes_end=r)}function me(e,r){var t=(r&Q)!==0,s=(r&Z)!==0,n,a=!e.startsWith("<!>");return()=>{if(h)return _(d,null),d;n===void 0&&(n=$(a?e:"<!>"+e),t||(n=w(n)));var i=s||x?document.importNode(n,!0):n.cloneNode(!0);if(t){var l=w(i),f=i.lastChild;_(l,f)}else _(i,i);return i}}function ye(e,r,t="svg"){var s=!e.startsWith("<!>"),n=`<${t}>${s?e:"<!>"+e}</${t}>`,a;return()=>{if(h)return _(d,null),d;if(!a){var i=$(n),l=w(i);a=w(l)}var f=a.cloneNode(!0);return _(f,f),f}}function we(e=""){if(!h){var r=R(e+"");return _(r,r),r}var t=d;return t.nodeType!==3&&(t.before(t=R()),P(t)),_(t,t),t}function Ee(){if(h)return _(d,null),d;var e=document.createDocumentFragment(),r=document.createComment(""),t=R();return e.append(r,t),_(r,t),e}function Te(e,r){if(h){E.nodes_end=d,H();return}e!==null&&e.before(r)}const le=["touchstart","touchmove"];function ce(e){return le.includes(e)}let V=!0;function be(e,r){var t=r==null?"":typeof r=="object"?r+"":r;t!==(e.__t??(e.__t=e.nodeValue))&&(e.__t=t,e.nodeValue=t+"")}function _e(e,r){return q(e,r)}function Ne(e,r){A(),r.intro=r.intro??!1;const t=r.target,s=h,n=d;try{for(var a=w(t);a&&(a.nodeType!==8||a.data!==z);)a=J(a);if(!a)throw O;b(!0),P(a),H();const i=q(e,{...r,anchor:a});if(d===null||d.nodeType!==8||d.data!==K)throw X(),O;return b(!1),i}catch(i){if(i===O)return r.recover===!1&&ee(),A(),re(t),b(!1),_e(e,r);throw i}finally{b(s),P(n)}}const m=new Map;function q(e,{target:r,anchor:t,props:s={},events:n,context:a,intro:i=!0}){A();var l=new Set,f=c=>{for(var o=0;o<c.length;o++){var u=c[o];if(!l.has(u)){l.add(u);var v=ce(u);r.addEventListener(u,y,{passive:v});var p=m.get(u);p===void 0?(document.addEventListener(u,y,{passive:v}),m.set(u,1)):m.set(u,p+1)}}};f(te(fe)),k.add(f);var g=void 0,S=ae(()=>{var c=t??r.appendChild(R());return ne(()=>{if(a){se({});var o=ie;o.c=a}n&&(s.$$events=n),h&&_(c,null),V=i,g=e(c,s)||{},V=!0,h&&(E.nodes_end=d),a&&oe()}),()=>{var v;for(var o of l){r.removeEventListener(o,y);var u=m.get(o);--u===0?(document.removeEventListener(o,y),m.delete(o)):m.set(o,u)}k.delete(f),c!==t&&((v=c.parentNode)==null||v.removeChild(c))}});return I.set(g,S),g}let I=new WeakMap;function Le(e,r){const t=I.get(e);return t?(I.delete(e),t(r)):Promise.resolve()}const ve="5";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(ve);export{Te as a,we as b,Ee as c,ue as d,ge as e,V as f,Ne as h,pe as l,_e as m,ye as n,be as s,me as t,Le as u,W as w};
@@ -1,18 +0,0 @@
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
- import{I as d,J as g,K as c,L as i,u as m,M as b,A as p,N as v,O as h,P as k}from"./B0bn91RF.js";function x(n=!1){const s=d,e=s.l.u;if(!e)return;let f=()=>v(s.s);if(n){let a=0,t={};const _=h(()=>{let l=!1;const r=s.s;for(const o in r)r[o]!==t[o]&&(t[o]=r[o],l=!0);return l&&a++,a});f=()=>p(_)}e.b.length&&g(()=>{u(s,f),i(e.b)}),c(()=>{const a=m(()=>e.m.map(b));return()=>{for(const t of a)typeof t=="function"&&t()}}),e.a.length&&c(()=>{u(s,f),i(e.a)})}function u(n,s){if(n.l.s)for(const e of n.l.s)p(e);s()}k();export{x as i};
@@ -1,20 +0,0 @@
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
- import{w as t,g as r}from"./B0bn91RF.js";const l=t(null),i=t({output:`Ready — select a test from the list.
19
- `,running:!1,testCompleted:!1,latestReport:null,status:"idle",lastRunId:""}),p=t({workers:1,testID:""}),c=t(!0);function g(s){const n=r(l);if(!n)return;const{workers:a,testID:u}=r(p),e=(s!==void 0?s:u).trim().replace(/\sOR\s/gi,o=>o.toLowerCase());i.set({output:`Running: ${e||"(all tests)"}
20
- `,running:!0,testCompleted:!1,latestReport:null,status:"running",lastRunId:e}),c.set(!0),n.emit("run-test",e,a)}export{i as a,c as p,p as r,l as s,g as t};
@@ -1,19 +0,0 @@
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
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.BsCYK-Tn.js","../chunks/DFJLQFic.js","../chunks/B0bn91RF.js","../chunks/DTUE7kkY.js","../chunks/rVEKg0Ak.js","../chunks/CwBTqcbj.js","../chunks/Bt3-Z7H1.js","../chunks/B1kE5jmt.js","../chunks/Be4iUAB0.js","../chunks/CJ8q7g9Y.js","../chunks/Cit9MuSg.js","../chunks/BKz6FZdB.js","../chunks/IYPwzKs_.js","../chunks/BpaMqo9O.js","../chunks/CHV2KnPr.js","../chunks/DBk3zeq4.js","../assets/Button.cBruH0aD.css","../assets/0.CnXRuPt4.css","../nodes/1.N4gjrCnX.js","../nodes/2.D9yQNzK8.js","../assets/2.CGnCsn5q.css","../nodes/3.CBC5WvNb.js","../chunks/oc0we5Us.js","../assets/Badge.DLLowvEA.css","../assets/3.BVnUajEa.css","../nodes/4.BU6UZHSE.js","../assets/4.DBhBrHFz.css","../nodes/5.Dzzfrntl.js","../assets/5.D93VAB-w.css"])))=>i.map(i=>d[i]);
19
- var U=r=>{throw TypeError(r)};var G=(r,e,s)=>e.has(r)||U("Cannot "+s);var l=(r,e,s)=>(G(r,e,"read from private field"),s?s.call(r):e.get(r)),C=(r,e,s)=>e.has(r)?U("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,s),S=(r,e,s,n)=>(G(r,e,"write to private field"),n?n.call(r,s):e.set(r,s),s);import{m as L,aa as Q,A as v,aI as X,a4 as Z,a1 as M,h as K,a as $,b as ee,E as te,j as re,p as se,k as ae,l as ne,J as oe,K as ie,o as ce,aA as le,x as O,v as ue,y as de,aJ as p,B as fe,C as me,D as he,O as D}from"../chunks/B0bn91RF.js";import{h as _e,m as ve,u as ge,a as R,c as I,t as W,b as ye,s as Ee}from"../chunks/DFJLQFic.js";import{i as j}from"../chunks/CwBTqcbj.js";import{p as V,b as be}from"../chunks/Be4iUAB0.js";import{b as B}from"../chunks/CHV2KnPr.js";const Pe="modulepreload",Re=function(r,e){return new URL(r,e).href},N={},k=function(e,s,n){let o=Promise.resolve();if(s&&s.length>0){const a=document.getElementsByTagName("link"),t=document.querySelector("meta[property=csp-nonce]"),f=(t==null?void 0:t.nonce)||(t==null?void 0:t.getAttribute("nonce"));o=Promise.allSettled(s.map(u=>{if(u=Re(u,n),u in N)return;N[u]=!0;const y=u.endsWith(".css"),T=y?'[rel="stylesheet"]':"";if(!!n)for(let E=a.length-1;E>=0;E--){const i=a[E];if(i.href===u&&(!y||i.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${u}"]${T}`))return;const h=document.createElement("link");if(h.rel=y?"stylesheet":Pe,y||(h.as="script"),h.crossOrigin="",h.href=u,f&&h.setAttribute("nonce",f),document.head.appendChild(h),y)return new Promise((E,i)=>{h.addEventListener("load",E),h.addEventListener("error",()=>i(new Error(`Unable to preload CSS for ${u}`)))})}))}function c(a){const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=a,window.dispatchEvent(t),!t.defaultPrevented)throw a}return o.then(a=>{for(const t of a||[])t.status==="rejected"&&c(t.reason);return e().catch(c)})},Be={};function ke(r){return class extends we{constructor(e){super({component:r,...e})}}}var g,d;class we{constructor(e){C(this,g);C(this,d);var c;var s=new Map,n=(a,t)=>{var f=M(t);return s.set(a,f),f};const o=new Proxy({...e.props||{},$$events:{}},{get(a,t){return v(s.get(t)??n(t,Reflect.get(a,t)))},has(a,t){return t===Q?!0:(v(s.get(t)??n(t,Reflect.get(a,t))),Reflect.has(a,t))},set(a,t,f){return L(s.get(t)??n(t,f),f),Reflect.set(a,t,f)}});S(this,d,(e.hydrate?_e:ve)(e.component,{target:e.target,anchor:e.anchor,props:o,context:e.context,intro:e.intro??!1,recover:e.recover})),(!((c=e==null?void 0:e.props)!=null&&c.$$host)||e.sync===!1)&&X(),S(this,g,o.$$events);for(const a of Object.keys(l(this,d)))a==="$set"||a==="$destroy"||a==="$on"||Z(this,a,{get(){return l(this,d)[a]},set(t){l(this,d)[a]=t},enumerable:!0});l(this,d).$set=a=>{Object.assign(o,a)},l(this,d).$destroy=()=>{ge(l(this,d))}}$set(e){l(this,d).$set(e)}$on(e,s){l(this,g)[e]=l(this,g)[e]||[];const n=(...o)=>s.call(this,...o);return l(this,g)[e].push(n),()=>{l(this,g)[e]=l(this,g)[e].filter(o=>o!==n)}}$destroy(){l(this,d).$destroy()}}g=new WeakMap,d=new WeakMap;function q(r,e,s){K&&$();var n=r,o,c;ee(()=>{o!==(o=e())&&(c&&(se(c),c=null),o&&(c=re(()=>s(n,o))))},te),K&&(n=ae)}var xe=W('<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>'),Ae=W("<!> <!>",1);function Oe(r,e){ne(e,!0);let s=V(e,"components",23,()=>[]),n=V(e,"data_0",3,null),o=V(e,"data_1",3,null);oe(()=>e.stores.page.set(e.page)),ie(()=>{e.stores,e.page,e.constructors,s(),e.form,n(),o(),e.stores.page.notify()});let c=p(!1),a=p(!1),t=p(null);ce(()=>{const i=e.stores.page.subscribe(()=>{v(c)&&(L(a,!0),le().then(()=>{L(t,be(document.title||"untitled page"))}))});return L(c,!0),i});const f=D(()=>e.constructors[1]);var u=Ae(),y=O(u);{var T=i=>{var _=I();const w=D(()=>e.constructors[0]);var x=O(_);q(x,()=>v(w),(b,P)=>{B(P(b,{get data(){return n()},get form(){return e.form},children:(m,Ce)=>{var J=I(),Y=O(J);q(Y,()=>v(f),(z,H)=>{B(H(z,{get data(){return o()},get form(){return e.form}}),A=>s()[1]=A,()=>{var A;return(A=s())==null?void 0:A[1]})}),R(m,J)},$$slots:{default:!0}}),m=>s()[0]=m,()=>{var m;return(m=s())==null?void 0:m[0]})}),R(i,_)},F=i=>{var _=I();const w=D(()=>e.constructors[0]);var x=O(_);q(x,()=>v(w),(b,P)=>{B(P(b,{get data(){return n()},get form(){return e.form}}),m=>s()[0]=m,()=>{var m;return(m=s())==null?void 0:m[0]})}),R(i,_)};j(y,i=>{e.constructors[1]?i(T):i(F,!1)})}var h=ue(y,2);{var E=i=>{var _=xe(),w=fe(_);{var x=b=>{var P=ye();he(()=>Ee(P,v(t))),R(b,P)};j(w,b=>{v(a)&&b(x)})}me(_),R(i,_)};j(h,i=>{v(c)&&i(E)})}R(r,u),de()}const qe=ke(Oe),Fe=[()=>k(()=>import("../nodes/0.BsCYK-Tn.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]),import.meta.url),()=>k(()=>import("../nodes/1.N4gjrCnX.js"),__vite__mapDeps([18,1,2,3,10]),import.meta.url),()=>k(()=>import("../nodes/2.D9yQNzK8.js"),__vite__mapDeps([19,1,2,3,5,6,7,11,12,20]),import.meta.url),()=>k(()=>import("../nodes/3.CBC5WvNb.js"),__vite__mapDeps([21,1,2,3,5,6,13,22,4,8,23,24]),import.meta.url),()=>k(()=>import("../nodes/4.BU6UZHSE.js"),__vite__mapDeps([25,1,2,3,5,6,7,8,9,10,13,22,4,23,26]),import.meta.url),()=>k(()=>import("../nodes/5.Dzzfrntl.js"),__vite__mapDeps([27,1,2,3,5,6,7,11,8,15,4,16,22,23,28]),import.meta.url)],Je=[],Ue={"/":[2],"/reports":[3],"/reports/[slug]":[4],"/scheduled-tests":[5]},Le={handleError:({error:r})=>{console.error(r)},reroute:()=>{},transport:{}},Te=Object.fromEntries(Object.entries(Le.transport).map(([r,e])=>[r,e.decode])),Ge=!1,Ke=(r,e)=>Te[r](e);export{Ke as decode,Te as decoders,Ue as dictionary,Ge as hash,Le as hooks,Be as matchers,Fe as nodes,qe as root,Je as server_loads};
@@ -1,21 +0,0 @@
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
- import{e as H,a as v,t as x,s as K,n as et,b as Me,c as kt}from"../chunks/DFJLQFic.js";import{i as Le}from"../chunks/DTUE7kkY.js";import{w as Et,l as Pe,D as S,y as qe,B as p,v as _,C as u,A as c,m as U,z as V,aW as Rt,aM as xt,o as Tt,n as J,t as At,F as He,u as Ke,G as Ot,x as We}from"../chunks/B0bn91RF.js";import{s as tt}from"../chunks/rVEKg0Ak.js";import{i as ne}from"../chunks/CwBTqcbj.js";import{e as de,i as ye,s as F,t as A,r as Ct}from"../chunks/Bt3-Z7H1.js";import{t as xe,s as st,b as St}from"../chunks/B1kE5jmt.js";import{s as nt,a as re,p as Bt,c as Nt}from"../chunks/Be4iUAB0.js";import{p as Lt}from"../chunks/CJ8q7g9Y.js";import{b as Pt}from"../chunks/BKz6FZdB.js";import{s as qt,a as be,p as ze,r as we,t as Ye}from"../chunks/IYPwzKs_.js";import{b as $t,r as Dt}from"../chunks/BpaMqo9O.js";import{b as It}from"../chunks/CHV2KnPr.js";import{B as Je}from"../chunks/DBk3zeq4.js";const rt="plum-theme",Ut=localStorage.getItem(rt)??"light",Te=Et(Ut);Te.subscribe(n=>{localStorage.setItem(rt,n),document.documentElement.setAttribute("data-theme",n)});var Ft=x('<a class="link svelte-6bgush"> </a>'),Vt=et('<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg>'),Mt=et('<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg>'),Ht=x('<a class="mobile-link svelte-6bgush"> </a>'),Kt=x('<div class="mobile-menu svelte-6bgush"></div>'),Wt=x('<nav class="nav svelte-6bgush"><div class="inner svelte-6bgush"><a href="/" class="brand svelte-6bgush"><span class="brand-serif svelte-6bgush">Pl</span><span class="brand-sans svelte-6bgush">um</span></a> <div class="links svelte-6bgush"></div> <div class="actions svelte-6bgush"><button class="theme-btn svelte-6bgush" aria-label="Toggle theme"><!></button> <button class="hamburger svelte-6bgush"><span class="svelte-6bgush"></span> <span class="svelte-6bgush"></span> <span class="svelte-6bgush"></span></button></div></div> <!></nav>');function zt(n,e){Pe(e,!1);const[t,s]=nt(),r=()=>re(Lt,"$page",t),i=()=>re(Te,"$theme",t);let o=V(!1);const a=[{href:"/",label:"Run Tests"},{href:"/reports",label:"Reports"},{href:"/scheduled-tests",label:"Scheduled"}];function h(){Te.update(b=>b==="light"?"dark":"light")}function g(){U(o,!1)}Le();var m=Wt(),w=p(m),C=p(w),Q=_(C,2);de(Q,5,()=>a,ye,(b,k)=>{var D=Ft(),f=p(D,!0);u(D),S(()=>{F(D,"href",c(k).href),A(D,"active",r().url.pathname===c(k).href),K(f,c(k).label)}),v(b,D)}),u(Q);var ie=_(Q,2),q=p(ie),j=p(q);{var G=b=>{var k=Vt();v(b,k)},Z=b=>{var k=Mt();v(b,k)};ne(j,b=>{i()==="light"?b(G):b(Z,!1)})}u(q);var $=_(q,2),oe=p($),ae=_(oe,2),_e=_(ae,2);u($),u(ie),u(w);var W=_(w,2);{var z=b=>{var k=Kt();de(k,5,()=>a,ye,(D,f)=>{var d=Ht(),E=p(d,!0);u(d),S(()=>{F(d,"href",c(f).href),A(d,"active",r().url.pathname===c(f).href),K(E,c(f).label)}),H("click",d,g),v(D,d)}),u(k),xe(3,k,()=>st,()=>({duration:200})),v(b,k)};ne(W,b=>{c(o)&&b(z)})}u(m),S(()=>{F($,"aria-label",c(o)?"Close menu":"Open menu"),F($,"aria-expanded",c(o)),A(oe,"rotated",c(o)),A(ae,"hidden",c(o)),A(_e,"rotated-reverse",c(o))}),H("click",C,g),H("click",q,h),H("click",$,()=>U(o,!c(o))),v(n,m),qe(),s()}var Yt=x('<main class="shell svelte-28zx1m"><!></main>');function Jt(n,e){var t=Yt(),s=p(t);tt(s,e,"default",{}),u(t),v(n,t)}const P=Object.create(null);P.open="0";P.close="1";P.ping="2";P.pong="3";P.message="4";P.upgrade="5";P.noop="6";const le=Object.create(null);Object.keys(P).forEach(n=>{le[P[n]]=n});const Ae={type:"error",data:"parser error"},it=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",ot=typeof ArrayBuffer=="function",at=n=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(n):n&&n.buffer instanceof ArrayBuffer,$e=({type:n,data:e},t,s)=>it&&e instanceof Blob?t?s(e):Xe(e,s):ot&&(e instanceof ArrayBuffer||at(e))?t?s(e):Xe(new Blob([e]),s):s(P[n]+(e||"")),Xe=(n,e)=>{const t=new FileReader;return t.onload=function(){const s=t.result.split(",")[1];e("b"+(s||""))},t.readAsDataURL(n)};function Qe(n){return n instanceof Uint8Array?n:n instanceof ArrayBuffer?new Uint8Array(n):new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}let ke;function Xt(n,e){if(it&&n.data instanceof Blob)return n.data.arrayBuffer().then(Qe).then(e);if(ot&&(n.data instanceof ArrayBuffer||at(n.data)))return e(Qe(n.data));$e(n,!1,t=>{ke||(ke=new TextEncoder),e(ke.encode(t))})}const je="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",se=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let n=0;n<je.length;n++)se[je.charCodeAt(n)]=n;const Qt=n=>{let e=n.length*.75,t=n.length,s,r=0,i,o,a,h;n[n.length-1]==="="&&(e--,n[n.length-2]==="="&&e--);const g=new ArrayBuffer(e),m=new Uint8Array(g);for(s=0;s<t;s+=4)i=se[n.charCodeAt(s)],o=se[n.charCodeAt(s+1)],a=se[n.charCodeAt(s+2)],h=se[n.charCodeAt(s+3)],m[r++]=i<<2|o>>4,m[r++]=(o&15)<<4|a>>2,m[r++]=(a&3)<<6|h&63;return g},jt=typeof ArrayBuffer=="function",De=(n,e)=>{if(typeof n!="string")return{type:"message",data:ct(n,e)};const t=n.charAt(0);return t==="b"?{type:"message",data:Gt(n.substring(1),e)}:le[t]?n.length>1?{type:le[t],data:n.substring(1)}:{type:le[t]}:Ae},Gt=(n,e)=>{if(jt){const t=Qt(n);return ct(t,e)}else return{base64:!0,data:n}},ct=(n,e)=>{switch(e){case"blob":return n instanceof Blob?n:new Blob([n]);case"arraybuffer":default:return n instanceof ArrayBuffer?n:n.buffer}},ht="",Zt=(n,e)=>{const t=n.length,s=new Array(t);let r=0;n.forEach((i,o)=>{$e(i,!1,a=>{s[o]=a,++r===t&&e(s.join(ht))})})},es=(n,e)=>{const t=n.split(ht),s=[];for(let r=0;r<t.length;r++){const i=De(t[r],e);if(s.push(i),i.type==="error")break}return s};function ts(){return new TransformStream({transform(n,e){Xt(n,t=>{const s=t.length;let r;if(s<126)r=new Uint8Array(1),new DataView(r.buffer).setUint8(0,s);else if(s<65536){r=new Uint8Array(3);const i=new DataView(r.buffer);i.setUint8(0,126),i.setUint16(1,s)}else{r=new Uint8Array(9);const i=new DataView(r.buffer);i.setUint8(0,127),i.setBigUint64(1,BigInt(s))}n.data&&typeof n.data!="string"&&(r[0]|=128),e.enqueue(r),e.enqueue(t)})}})}let Ee;function ce(n){return n.reduce((e,t)=>e+t.length,0)}function he(n,e){if(n[0].length===e)return n.shift();const t=new Uint8Array(e);let s=0;for(let r=0;r<e;r++)t[r]=n[0][s++],s===n[0].length&&(n.shift(),s=0);return n.length&&s<n[0].length&&(n[0]=n[0].slice(s)),t}function ss(n,e){Ee||(Ee=new TextDecoder);const t=[];let s=0,r=-1,i=!1;return new TransformStream({transform(o,a){for(t.push(o);;){if(s===0){if(ce(t)<1)break;const h=he(t,1);i=(h[0]&128)===128,r=h[0]&127,r<126?s=3:r===126?s=1:s=2}else if(s===1){if(ce(t)<2)break;const h=he(t,2);r=new DataView(h.buffer,h.byteOffset,h.length).getUint16(0),s=3}else if(s===2){if(ce(t)<8)break;const h=he(t,8),g=new DataView(h.buffer,h.byteOffset,h.length),m=g.getUint32(0);if(m>Math.pow(2,21)-1){a.enqueue(Ae);break}r=m*Math.pow(2,32)+g.getUint32(4),s=3}else{if(ce(t)<r)break;const h=he(t,r);a.enqueue(De(i?h:Ee.decode(h),e)),s=0}if(r===0||r>n){a.enqueue(Ae);break}}}})}const lt=4;function y(n){if(n)return ns(n)}function ns(n){for(var e in y.prototype)n[e]=y.prototype[e];return n}y.prototype.on=y.prototype.addEventListener=function(n,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+n]=this._callbacks["$"+n]||[]).push(e),this};y.prototype.once=function(n,e){function t(){this.off(n,t),e.apply(this,arguments)}return t.fn=e,this.on(n,t),this};y.prototype.off=y.prototype.removeListener=y.prototype.removeAllListeners=y.prototype.removeEventListener=function(n,e){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var t=this._callbacks["$"+n];if(!t)return this;if(arguments.length==1)return delete this._callbacks["$"+n],this;for(var s,r=0;r<t.length;r++)if(s=t[r],s===e||s.fn===e){t.splice(r,1);break}return t.length===0&&delete this._callbacks["$"+n],this};y.prototype.emit=function(n){this._callbacks=this._callbacks||{};for(var e=new Array(arguments.length-1),t=this._callbacks["$"+n],s=1;s<arguments.length;s++)e[s-1]=arguments[s];if(t){t=t.slice(0);for(var s=0,r=t.length;s<r;++s)t[s].apply(this,e)}return this};y.prototype.emitReserved=y.prototype.emit;y.prototype.listeners=function(n){return this._callbacks=this._callbacks||{},this._callbacks["$"+n]||[]};y.prototype.hasListeners=function(n){return!!this.listeners(n).length};const me=typeof Promise=="function"&&typeof Promise.resolve=="function"?e=>Promise.resolve().then(e):(e,t)=>t(e,0),O=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),rs="arraybuffer";function ut(n,...e){return e.reduce((t,s)=>(n.hasOwnProperty(s)&&(t[s]=n[s]),t),{})}const is=O.setTimeout,os=O.clearTimeout;function ge(n,e){e.useNativeTimers?(n.setTimeoutFn=is.bind(O),n.clearTimeoutFn=os.bind(O)):(n.setTimeoutFn=O.setTimeout.bind(O),n.clearTimeoutFn=O.clearTimeout.bind(O))}const as=1.33;function cs(n){return typeof n=="string"?hs(n):Math.ceil((n.byteLength||n.size)*as)}function hs(n){let e=0,t=0;for(let s=0,r=n.length;s<r;s++)e=n.charCodeAt(s),e<128?t+=1:e<2048?t+=2:e<55296||e>=57344?t+=3:(s++,t+=4);return t}function ft(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function ls(n){let e="";for(let t in n)n.hasOwnProperty(t)&&(e.length&&(e+="&"),e+=encodeURIComponent(t)+"="+encodeURIComponent(n[t]));return e}function us(n){let e={},t=n.split("&");for(let s=0,r=t.length;s<r;s++){let i=t[s].split("=");e[decodeURIComponent(i[0])]=decodeURIComponent(i[1])}return e}class fs extends Error{constructor(e,t,s){super(e),this.description=t,this.context=s,this.type="TransportError"}}class Ie extends y{constructor(e){super(),this.writable=!1,ge(this,e),this.opts=e,this.query=e.query,this.socket=e.socket,this.supportsBinary=!e.forceBase64}onError(e,t,s){return super.emitReserved("error",new fs(e,t,s)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(e){this.readyState==="open"&&this.write(e)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(e){const t=De(e,this.socket.binaryType);this.onPacket(t)}onPacket(e){super.emitReserved("packet",e)}onClose(e){this.readyState="closed",super.emitReserved("close",e)}pause(e){}createUri(e,t={}){return e+"://"+this._hostname()+this._port()+this.opts.path+this._query(t)}_hostname(){const e=this.opts.hostname;return e.indexOf(":")===-1?e:"["+e+"]"}_port(){return this.opts.port&&(this.opts.secure&&+(this.opts.port!==443)||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(e){const t=ls(e);return t.length?"?"+t:""}}class ps extends Ie{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(e){this.readyState="pausing";const t=()=>{this.readyState="paused",e()};if(this._polling||!this.writable){let s=0;this._polling&&(s++,this.once("pollComplete",function(){--s||t()})),this.writable||(s++,this.once("drain",function(){--s||t()}))}else t()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(e){const t=s=>{if(this.readyState==="opening"&&s.type==="open"&&this.onOpen(),s.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(s)};es(e,this.socket.binaryType).forEach(t),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const e=()=>{this.write([{type:"close"}])};this.readyState==="open"?e():this.once("open",e)}write(e){this.writable=!1,Zt(e,t=>{this.doWrite(t,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const e=this.opts.secure?"https":"http",t=this.query||{};return this.opts.timestampRequests!==!1&&(t[this.opts.timestampParam]=ft()),!this.supportsBinary&&!t.sid&&(t.b64=1),this.createUri(e,t)}}let pt=!1;try{pt=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const ds=pt;function ys(){}class ms extends ps{constructor(e){if(super(e),typeof location<"u"){const t=location.protocol==="https:";let s=location.port;s||(s=t?"443":"80"),this.xd=typeof location<"u"&&e.hostname!==location.hostname||s!==e.port}}doWrite(e,t){const s=this.request({method:"POST",data:e});s.on("success",t),s.on("error",(r,i)=>{this.onError("xhr post error",r,i)})}doPoll(){const e=this.request();e.on("data",this.onData.bind(this)),e.on("error",(t,s)=>{this.onError("xhr poll error",t,s)}),this.pollXhr=e}}class L extends y{constructor(e,t,s){super(),this.createRequest=e,ge(this,s),this._opts=s,this._method=s.method||"GET",this._uri=t,this._data=s.data!==void 0?s.data:null,this._create()}_create(){var e;const t=ut(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");t.xdomain=!!this._opts.xd;const s=this._xhr=this.createRequest(t);try{s.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){s.setDisableHeaderCheck&&s.setDisableHeaderCheck(!0);for(let r in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(r)&&s.setRequestHeader(r,this._opts.extraHeaders[r])}}catch{}if(this._method==="POST")try{s.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{s.setRequestHeader("Accept","*/*")}catch{}(e=this._opts.cookieJar)===null||e===void 0||e.addCookies(s),"withCredentials"in s&&(s.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(s.timeout=this._opts.requestTimeout),s.onreadystatechange=()=>{var r;s.readyState===3&&((r=this._opts.cookieJar)===null||r===void 0||r.parseCookies(s.getResponseHeader("set-cookie"))),s.readyState===4&&(s.status===200||s.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof s.status=="number"?s.status:0)},0))},s.send(this._data)}catch(r){this.setTimeoutFn(()=>{this._onError(r)},0);return}typeof document<"u"&&(this._index=L.requestsCount++,L.requests[this._index]=this)}_onError(e){this.emitReserved("error",e,this._xhr),this._cleanup(!0)}_cleanup(e){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=ys,e)try{this._xhr.abort()}catch{}typeof document<"u"&&delete L.requests[this._index],this._xhr=null}}_onLoad(){const e=this._xhr.responseText;e!==null&&(this.emitReserved("data",e),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}L.requestsCount=0;L.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",Ge);else if(typeof addEventListener=="function"){const n="onpagehide"in O?"pagehide":"unload";addEventListener(n,Ge,!1)}}function Ge(){for(let n in L.requests)L.requests.hasOwnProperty(n)&&L.requests[n].abort()}const gs=function(){const n=dt({xdomain:!1});return n&&n.responseType!==null}();class _s extends ms{constructor(e){super(e);const t=e&&e.forceBase64;this.supportsBinary=gs&&!t}request(e={}){return Object.assign(e,{xd:this.xd},this.opts),new L(dt,this.uri(),e)}}function dt(n){const e=n.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!e||ds))return new XMLHttpRequest}catch{}if(!e)try{return new O[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const yt=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class vs extends Ie{get name(){return"websocket"}doOpen(){const e=this.uri(),t=this.opts.protocols,s=yt?{}:ut(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(s.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(e,t,s)}catch(r){return this.emitReserved("error",r)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=e=>this.onClose({description:"websocket connection closed",context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError("websocket error",e)}write(e){this.writable=!1;for(let t=0;t<e.length;t++){const s=e[t],r=t===e.length-1;$e(s,this.supportsBinary,i=>{try{this.doWrite(s,i)}catch{}r&&me(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){const e=this.opts.secure?"wss":"ws",t=this.query||{};return this.opts.timestampRequests&&(t[this.opts.timestampParam]=ft()),this.supportsBinary||(t.b64=1),this.createUri(e,t)}}const Re=O.WebSocket||O.MozWebSocket;class bs extends vs{createSocket(e,t,s){return yt?new Re(e,t,s):t?new Re(e,t):new Re(e)}doWrite(e,t){this.ws.send(t)}}class ws extends Ie{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(e){return this.emitReserved("error",e)}this._transport.closed.then(()=>{this.onClose()}).catch(e=>{this.onError("webtransport error",e)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(e=>{const t=ss(Number.MAX_SAFE_INTEGER,this.socket.binaryType),s=e.readable.pipeThrough(t).getReader(),r=ts();r.readable.pipeTo(e.writable),this._writer=r.writable.getWriter();const i=()=>{s.read().then(({done:a,value:h})=>{a||(this.onPacket(h),i())}).catch(a=>{})};i();const o={type:"open"};this.query.sid&&(o.data=`{"sid":"${this.query.sid}"}`),this._writer.write(o).then(()=>this.onOpen())})})}write(e){this.writable=!1;for(let t=0;t<e.length;t++){const s=e[t],r=t===e.length-1;this._writer.write(s).then(()=>{r&&me(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var e;(e=this._transport)===null||e===void 0||e.close()}}const ks={websocket:bs,webtransport:ws,polling:_s},Es=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,Rs=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function Oe(n){if(n.length>8e3)throw"URI too long";const e=n,t=n.indexOf("["),s=n.indexOf("]");t!=-1&&s!=-1&&(n=n.substring(0,t)+n.substring(t,s).replace(/:/g,";")+n.substring(s,n.length));let r=Es.exec(n||""),i={},o=14;for(;o--;)i[Rs[o]]=r[o]||"";return t!=-1&&s!=-1&&(i.source=e,i.host=i.host.substring(1,i.host.length-1).replace(/;/g,":"),i.authority=i.authority.replace("[","").replace("]","").replace(/;/g,":"),i.ipv6uri=!0),i.pathNames=xs(i,i.path),i.queryKey=Ts(i,i.query),i}function xs(n,e){const t=/\/{2,9}/g,s=e.replace(t,"/").split("/");return(e.slice(0,1)=="/"||e.length===0)&&s.splice(0,1),e.slice(-1)=="/"&&s.splice(s.length-1,1),s}function Ts(n,e){const t={};return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(s,r,i){r&&(t[r]=i)}),t}const Ce=typeof addEventListener=="function"&&typeof removeEventListener=="function",ue=[];Ce&&addEventListener("offline",()=>{ue.forEach(n=>n())},!1);class M extends y{constructor(e,t){if(super(),this.binaryType=rs,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,e&&typeof e=="object"&&(t=e,e=null),e){const s=Oe(e);t.hostname=s.host,t.secure=s.protocol==="https"||s.protocol==="wss",t.port=s.port,s.query&&(t.query=s.query)}else t.host&&(t.hostname=Oe(t.host).host);ge(this,t),this.secure=t.secure!=null?t.secure:typeof location<"u"&&location.protocol==="https:",t.hostname&&!t.port&&(t.port=this.secure?"443":"80"),this.hostname=t.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=t.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},t.transports.forEach(s=>{const r=s.prototype.name;this.transports.push(r),this._transportsByName[r]=s}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},t),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=us(this.opts.query)),Ce&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},ue.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(e){const t=Object.assign({},this.opts.query);t.EIO=lt,t.transport=e,this.id&&(t.sid=this.id);const s=Object.assign({},this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new this._transportsByName[e](s)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const e=this.opts.rememberUpgrade&&M.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const t=this.createTransport(e);t.open(),this.setTransport(t)}setTransport(e){this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",t=>this._onClose("transport close",t))}onOpen(){this.readyState="open",M.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(e){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",e),this.emitReserved("heartbeat"),e.type){case"open":this.onHandshake(JSON.parse(e.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const t=new Error("server error");t.code=e.data,this._onError(t);break;case"message":this.emitReserved("data",e.data),this.emitReserved("message",e.data);break}}onHandshake(e){this.emitReserved("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this._pingInterval=e.pingInterval,this._pingTimeout=e.pingTimeout,this._maxPayload=e.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const e=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+e,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},e),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const e=this._getWritablePackets();this.transport.send(e),this._prevBufferLen=e.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let t=1;for(let s=0;s<this.writeBuffer.length;s++){const r=this.writeBuffer[s].data;if(r&&(t+=cs(r)),s>0&&t>this._maxPayload)return this.writeBuffer.slice(0,s);t+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const e=Date.now()>this._pingTimeoutTime;return e&&(this._pingTimeoutTime=0,me(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),e}write(e,t,s){return this._sendPacket("message",e,t,s),this}send(e,t,s){return this._sendPacket("message",e,t,s),this}_sendPacket(e,t,s,r){if(typeof t=="function"&&(r=t,t=void 0),typeof s=="function"&&(r=s,s=null),this.readyState==="closing"||this.readyState==="closed")return;s=s||{},s.compress=s.compress!==!1;const i={type:e,data:t,options:s};this.emitReserved("packetCreate",i),this.writeBuffer.push(i),r&&this.once("flush",r),this.flush()}close(){const e=()=>{this._onClose("forced close"),this.transport.close()},t=()=>{this.off("upgrade",t),this.off("upgradeError",t),e()},s=()=>{this.once("upgrade",t),this.once("upgradeError",t)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?s():e()}):this.upgrading?s():e()),this}_onError(e){if(M.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",e),this._onClose("transport error",e)}_onClose(e,t){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),Ce&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const s=ue.indexOf(this._offlineEventListener);s!==-1&&ue.splice(s,1)}this.readyState="closed",this.id=null,this.emitReserved("close",e,t),this.writeBuffer=[],this._prevBufferLen=0}}}M.protocol=lt;class As extends M{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let e=0;e<this._upgrades.length;e++)this._probe(this._upgrades[e])}_probe(e){let t=this.createTransport(e),s=!1;M.priorWebsocketSuccess=!1;const r=()=>{s||(t.send([{type:"ping",data:"probe"}]),t.once("packet",w=>{if(!s)if(w.type==="pong"&&w.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",t),!t)return;M.priorWebsocketSuccess=t.name==="websocket",this.transport.pause(()=>{s||this.readyState!=="closed"&&(m(),this.setTransport(t),t.send([{type:"upgrade"}]),this.emitReserved("upgrade",t),t=null,this.upgrading=!1,this.flush())})}else{const C=new Error("probe error");C.transport=t.name,this.emitReserved("upgradeError",C)}}))};function i(){s||(s=!0,m(),t.close(),t=null)}const o=w=>{const C=new Error("probe error: "+w);C.transport=t.name,i(),this.emitReserved("upgradeError",C)};function a(){o("transport closed")}function h(){o("socket closed")}function g(w){t&&w.name!==t.name&&i()}const m=()=>{t.removeListener("open",r),t.removeListener("error",o),t.removeListener("close",a),this.off("close",h),this.off("upgrading",g)};t.once("open",r),t.once("error",o),t.once("close",a),this.once("close",h),this.once("upgrading",g),this._upgrades.indexOf("webtransport")!==-1&&e!=="webtransport"?this.setTimeoutFn(()=>{s||t.open()},200):t.open()}onHandshake(e){this._upgrades=this._filterUpgrades(e.upgrades),super.onHandshake(e)}_filterUpgrades(e){const t=[];for(let s=0;s<e.length;s++)~this.transports.indexOf(e[s])&&t.push(e[s]);return t}}let Os=class extends As{constructor(e,t={}){const s=typeof e=="object"?e:t;(!s.transports||s.transports&&typeof s.transports[0]=="string")&&(s.transports=(s.transports||["polling","websocket","webtransport"]).map(r=>ks[r]).filter(r=>!!r)),super(e,s)}};function Cs(n,e="",t){let s=n;t=t||typeof location<"u"&&location,n==null&&(n=t.protocol+"//"+t.host),typeof n=="string"&&(n.charAt(0)==="/"&&(n.charAt(1)==="/"?n=t.protocol+n:n=t.host+n),/^(https?|wss?):\/\//.test(n)||(typeof t<"u"?n=t.protocol+"//"+n:n="https://"+n),s=Oe(n)),s.port||(/^(http|ws)$/.test(s.protocol)?s.port="80":/^(http|ws)s$/.test(s.protocol)&&(s.port="443")),s.path=s.path||"/";const i=s.host.indexOf(":")!==-1?"["+s.host+"]":s.host;return s.id=s.protocol+"://"+i+":"+s.port+e,s.href=s.protocol+"://"+i+(t&&t.port===s.port?"":":"+s.port),s}const Ss=typeof ArrayBuffer=="function",Bs=n=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(n):n.buffer instanceof ArrayBuffer,mt=Object.prototype.toString,Ns=typeof Blob=="function"||typeof Blob<"u"&&mt.call(Blob)==="[object BlobConstructor]",Ls=typeof File=="function"||typeof File<"u"&&mt.call(File)==="[object FileConstructor]";function Ue(n){return Ss&&(n instanceof ArrayBuffer||Bs(n))||Ns&&n instanceof Blob||Ls&&n instanceof File}function fe(n,e){if(!n||typeof n!="object")return!1;if(Array.isArray(n)){for(let t=0,s=n.length;t<s;t++)if(fe(n[t]))return!0;return!1}if(Ue(n))return!0;if(n.toJSON&&typeof n.toJSON=="function"&&arguments.length===1)return fe(n.toJSON(),!0);for(const t in n)if(Object.prototype.hasOwnProperty.call(n,t)&&fe(n[t]))return!0;return!1}function Ps(n){const e=[],t=n.data,s=n;return s.data=Se(t,e),s.attachments=e.length,{packet:s,buffers:e}}function Se(n,e){if(!n)return n;if(Ue(n)){const t={_placeholder:!0,num:e.length};return e.push(n),t}else if(Array.isArray(n)){const t=new Array(n.length);for(let s=0;s<n.length;s++)t[s]=Se(n[s],e);return t}else if(typeof n=="object"&&!(n instanceof Date)){const t={};for(const s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=Se(n[s],e));return t}return n}function qs(n,e){return n.data=Be(n.data,e),delete n.attachments,n}function Be(n,e){if(!n)return n;if(n&&n._placeholder===!0){if(typeof n.num=="number"&&n.num>=0&&n.num<e.length)return e[n.num];throw new Error("illegal attachments")}else if(Array.isArray(n))for(let t=0;t<n.length;t++)n[t]=Be(n[t],e);else if(typeof n=="object")for(const t in n)Object.prototype.hasOwnProperty.call(n,t)&&(n[t]=Be(n[t],e));return n}const $s=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];var l;(function(n){n[n.CONNECT=0]="CONNECT",n[n.DISCONNECT=1]="DISCONNECT",n[n.EVENT=2]="EVENT",n[n.ACK=3]="ACK",n[n.CONNECT_ERROR=4]="CONNECT_ERROR",n[n.BINARY_EVENT=5]="BINARY_EVENT",n[n.BINARY_ACK=6]="BINARY_ACK"})(l||(l={}));class Ds{constructor(e){this.replacer=e}encode(e){return(e.type===l.EVENT||e.type===l.ACK)&&fe(e)?this.encodeAsBinary({type:e.type===l.EVENT?l.BINARY_EVENT:l.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id}):[this.encodeAsString(e)]}encodeAsString(e){let t=""+e.type;return(e.type===l.BINARY_EVENT||e.type===l.BINARY_ACK)&&(t+=e.attachments+"-"),e.nsp&&e.nsp!=="/"&&(t+=e.nsp+","),e.id!=null&&(t+=e.id),e.data!=null&&(t+=JSON.stringify(e.data,this.replacer)),t}encodeAsBinary(e){const t=Ps(e),s=this.encodeAsString(t.packet),r=t.buffers;return r.unshift(s),r}}function Ze(n){return Object.prototype.toString.call(n)==="[object Object]"}class Fe extends y{constructor(e){super(),this.reviver=e}add(e){let t;if(typeof e=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");t=this.decodeString(e);const s=t.type===l.BINARY_EVENT;s||t.type===l.BINARY_ACK?(t.type=s?l.EVENT:l.ACK,this.reconstructor=new Is(t),t.attachments===0&&super.emitReserved("decoded",t)):super.emitReserved("decoded",t)}else if(Ue(e)||e.base64)if(this.reconstructor)t=this.reconstructor.takeBinaryData(e),t&&(this.reconstructor=null,super.emitReserved("decoded",t));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+e)}decodeString(e){let t=0;const s={type:Number(e.charAt(0))};if(l[s.type]===void 0)throw new Error("unknown packet type "+s.type);if(s.type===l.BINARY_EVENT||s.type===l.BINARY_ACK){const i=t+1;for(;e.charAt(++t)!=="-"&&t!=e.length;);const o=e.substring(i,t);if(o!=Number(o)||e.charAt(t)!=="-")throw new Error("Illegal attachments");s.attachments=Number(o)}if(e.charAt(t+1)==="/"){const i=t+1;for(;++t&&!(e.charAt(t)===","||t===e.length););s.nsp=e.substring(i,t)}else s.nsp="/";const r=e.charAt(t+1);if(r!==""&&Number(r)==r){const i=t+1;for(;++t;){const o=e.charAt(t);if(o==null||Number(o)!=o){--t;break}if(t===e.length)break}s.id=Number(e.substring(i,t+1))}if(e.charAt(++t)){const i=this.tryParse(e.substr(t));if(Fe.isPayloadValid(s.type,i))s.data=i;else throw new Error("invalid payload")}return s}tryParse(e){try{return JSON.parse(e,this.reviver)}catch{return!1}}static isPayloadValid(e,t){switch(e){case l.CONNECT:return Ze(t);case l.DISCONNECT:return t===void 0;case l.CONNECT_ERROR:return typeof t=="string"||Ze(t);case l.EVENT:case l.BINARY_EVENT:return Array.isArray(t)&&(typeof t[0]=="number"||typeof t[0]=="string"&&$s.indexOf(t[0])===-1);case l.ACK:case l.BINARY_ACK:return Array.isArray(t)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class Is{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){const t=qs(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const Us=Object.freeze(Object.defineProperty({__proto__:null,Decoder:Fe,Encoder:Ds,get PacketType(){return l}},Symbol.toStringTag,{value:"Module"}));function B(n,e,t){return n.on(e,t),function(){n.off(e,t)}}const Fs=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class gt extends y{constructor(e,t,s){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=e,this.nsp=t,s&&s.auth&&(this.auth=s.auth),this._opts=Object.assign({},s),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const e=this.io;this.subs=[B(e,"open",this.onopen.bind(this)),B(e,"packet",this.onpacket.bind(this)),B(e,"error",this.onerror.bind(this)),B(e,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...e){return e.unshift("message"),this.emit.apply(this,e),this}emit(e,...t){var s,r,i;if(Fs.hasOwnProperty(e))throw new Error('"'+e.toString()+'" is a reserved event name');if(t.unshift(e),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(t),this;const o={type:l.EVENT,data:t};if(o.options={},o.options.compress=this.flags.compress!==!1,typeof t[t.length-1]=="function"){const m=this.ids++,w=t.pop();this._registerAckCallback(m,w),o.id=m}const a=(r=(s=this.io.engine)===null||s===void 0?void 0:s.transport)===null||r===void 0?void 0:r.writable,h=this.connected&&!(!((i=this.io.engine)===null||i===void 0)&&i._hasPingExpired());return this.flags.volatile&&!a||(h?(this.notifyOutgoingListeners(o),this.packet(o)):this.sendBuffer.push(o)),this.flags={},this}_registerAckCallback(e,t){var s;const r=(s=this.flags.timeout)!==null&&s!==void 0?s:this._opts.ackTimeout;if(r===void 0){this.acks[e]=t;return}const i=this.io.setTimeoutFn(()=>{delete this.acks[e];for(let a=0;a<this.sendBuffer.length;a++)this.sendBuffer[a].id===e&&this.sendBuffer.splice(a,1);t.call(this,new Error("operation has timed out"))},r),o=(...a)=>{this.io.clearTimeoutFn(i),t.apply(this,a)};o.withError=!0,this.acks[e]=o}emitWithAck(e,...t){return new Promise((s,r)=>{const i=(o,a)=>o?r(o):s(a);i.withError=!0,t.push(i),this.emit(e,...t)})}_addToQueue(e){let t;typeof e[e.length-1]=="function"&&(t=e.pop());const s={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((r,...i)=>s!==this._queue[0]?void 0:(r!==null?s.tryCount>this._opts.retries&&(this._queue.shift(),t&&t(r)):(this._queue.shift(),t&&t(null,...i)),s.pending=!1,this._drainQueue())),this._queue.push(s),this._drainQueue()}_drainQueue(e=!1){if(!this.connected||this._queue.length===0)return;const t=this._queue[0];t.pending&&!e||(t.pending=!0,t.tryCount++,this.flags=t.flags,this.emit.apply(this,t.args))}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){typeof this.auth=="function"?this.auth(e=>{this._sendConnectPacket(e)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:l.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved("connect_error",e)}onclose(e,t){this.connected=!1,delete this.id,this.emitReserved("disconnect",e,t),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(e=>{if(!this.sendBuffer.some(s=>String(s.id)===e)){const s=this.acks[e];delete this.acks[e],s.withError&&s.call(this,new Error("socket has been disconnected"))}})}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case l.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case l.EVENT:case l.BINARY_EVENT:this.onevent(e);break;case l.ACK:case l.BINARY_ACK:this.onack(e);break;case l.DISCONNECT:this.ondisconnect();break;case l.CONNECT_ERROR:this.destroy();const s=new Error(e.data.message);s.data=e.data.data,this.emitReserved("connect_error",s);break}}onevent(e){const t=e.data||[];e.id!=null&&t.push(this.ack(e.id)),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){const t=this._anyListeners.slice();for(const s of t)s.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&typeof e[e.length-1]=="string"&&(this._lastOffset=e[e.length-1])}ack(e){const t=this;let s=!1;return function(...r){s||(s=!0,t.packet({type:l.ACK,id:e,data:r}))}}onack(e){const t=this.acks[e.id];typeof t=="function"&&(delete this.acks[e.id],t.withError&&e.data.unshift(null),t.apply(this,e.data))}onconnect(e,t){this.id=e,this.recovered=t&&this._pid===t,this._pid=t,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(e=>this.emitEvent(e)),this.receiveBuffer=[],this.sendBuffer.forEach(e=>{this.notifyOutgoingListeners(e),this.packet(e)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(e=>e()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:l.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){const t=this._anyListeners;for(let s=0;s<t.length;s++)if(e===t[s])return t.splice(s,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(e),this}prependAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(e),this}offAnyOutgoing(e){if(!this._anyOutgoingListeners)return this;if(e){const t=this._anyOutgoingListeners;for(let s=0;s<t.length;s++)if(e===t[s])return t.splice(s,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const t=this._anyOutgoingListeners.slice();for(const s of t)s.apply(this,e.data)}}}function X(n){n=n||{},this.ms=n.min||100,this.max=n.max||1e4,this.factor=n.factor||2,this.jitter=n.jitter>0&&n.jitter<=1?n.jitter:0,this.attempts=0}X.prototype.duration=function(){var n=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),t=Math.floor(e*this.jitter*n);n=Math.floor(e*10)&1?n+t:n-t}return Math.min(n,this.max)|0};X.prototype.reset=function(){this.attempts=0};X.prototype.setMin=function(n){this.ms=n};X.prototype.setMax=function(n){this.max=n};X.prototype.setJitter=function(n){this.jitter=n};class Ne extends y{constructor(e,t){var s;super(),this.nsps={},this.subs=[],e&&typeof e=="object"&&(t=e,e=void 0),t=t||{},t.path=t.path||"/socket.io",this.opts=t,ge(this,t),this.reconnection(t.reconnection!==!1),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor((s=t.randomizationFactor)!==null&&s!==void 0?s:.5),this.backoff=new X({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(t.timeout==null?2e4:t.timeout),this._readyState="closed",this.uri=e;const r=t.parser||Us;this.encoder=new r.Encoder,this.decoder=new r.Decoder,this._autoConnect=t.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,e||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(e){return e===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var t;return e===void 0?this._reconnectionDelay:(this._reconnectionDelay=e,(t=this.backoff)===null||t===void 0||t.setMin(e),this)}randomizationFactor(e){var t;return e===void 0?this._randomizationFactor:(this._randomizationFactor=e,(t=this.backoff)===null||t===void 0||t.setJitter(e),this)}reconnectionDelayMax(e){var t;return e===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,(t=this.backoff)===null||t===void 0||t.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(e){if(~this._readyState.indexOf("open"))return this;this.engine=new Os(this.uri,this.opts);const t=this.engine,s=this;this._readyState="opening",this.skipReconnect=!1;const r=B(t,"open",function(){s.onopen(),e&&e()}),i=a=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",a),e?e(a):this.maybeReconnectOnOpen()},o=B(t,"error",i);if(this._timeout!==!1){const a=this._timeout,h=this.setTimeoutFn(()=>{r(),i(new Error("timeout")),t.close()},a);this.opts.autoUnref&&h.unref(),this.subs.push(()=>{this.clearTimeoutFn(h)})}return this.subs.push(r),this.subs.push(o),this}connect(e){return this.open(e)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const e=this.engine;this.subs.push(B(e,"ping",this.onping.bind(this)),B(e,"data",this.ondata.bind(this)),B(e,"error",this.onerror.bind(this)),B(e,"close",this.onclose.bind(this)),B(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(e){try{this.decoder.add(e)}catch(t){this.onclose("parse error",t)}}ondecoded(e){me(()=>{this.emitReserved("packet",e)},this.setTimeoutFn)}onerror(e){this.emitReserved("error",e)}socket(e,t){let s=this.nsps[e];return s?this._autoConnect&&!s.active&&s.connect():(s=new gt(this,e,t),this.nsps[e]=s),s}_destroy(e){const t=Object.keys(this.nsps);for(const s of t)if(this.nsps[s].active)return;this._close()}_packet(e){const t=this.encoder.encode(e);for(let s=0;s<t.length;s++)this.engine.write(t[s],e.options)}cleanup(){this.subs.forEach(e=>e()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(e,t){var s;this.cleanup(),(s=this.engine)===null||s===void 0||s.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e,t),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const e=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const t=this.backoff.duration();this._reconnecting=!0;const s=this.setTimeoutFn(()=>{e.skipReconnect||(this.emitReserved("reconnect_attempt",e.backoff.attempts),!e.skipReconnect&&e.open(r=>{r?(e._reconnecting=!1,e.reconnect(),this.emitReserved("reconnect_error",r)):e.onreconnect()}))},t);this.opts.autoUnref&&s.unref(),this.subs.push(()=>{this.clearTimeoutFn(s)})}}onreconnect(){const e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}const te={};function pe(n,e){typeof n=="object"&&(e=n,n=void 0),e=e||{};const t=Cs(n,e.path||"/socket.io"),s=t.source,r=t.id,i=t.path,o=te[r]&&i in te[r].nsps,a=e.forceNew||e["force new connection"]||e.multiplex===!1||o;let h;return a?h=new Ne(s,e):(te[r]||(te[r]=new Ne(s,e)),h=te[r]),t.query&&!e.query&&(e.query=t.queryKey),h.socket(t.path,e)}Object.assign(pe,{Manager:Ne,Socket:gt,io:pe,connect:pe});var Vs=x('<div class="terminal-wrap svelte-olniy1"><div class="terminal-bar svelte-olniy1"><span class="dot red svelte-olniy1"></span> <span class="dot yellow svelte-olniy1"></span> <span class="dot green svelte-olniy1"></span></div> <pre class="terminal svelte-olniy1"> </pre></div>');function Ms(n,e){Pe(e,!1);let t=Bt(e,"output",8,""),s=V();Rt(()=>{c(s)&&xt(s,c(s).scrollTop=c(s).scrollHeight)}),Le();var r=Vs(),i=_(p(r),2),o=p(i,!0);u(i),It(i,a=>U(s,a),()=>c(s)),u(r),S(()=>K(o,t())),v(n,r),qe()}var Hs=x('<span class="run-id svelte-ynu3lh"> </span>'),Ks=x('<span class="dot svelte-ynu3lh"></span>'),Ws=x('<button class="worker-btn svelte-ynu3lh"> </button>'),zs=x('<div class="report-row svelte-ynu3lh"><a target="_blank" rel="noopener noreferrer" class="svelte-ynu3lh"><!></a></div>'),Ys=x('<div class="body svelte-ynu3lh"><div class="controls svelte-ynu3lh"><input type="text" class="field-input run-input svelte-ynu3lh" placeholder="@test-1 or @suite-login or blank for all"> <div class="workers-control svelte-ynu3lh"></div> <!></div> <!> <!></div>'),Js=x('<div class="panel svelte-ynu3lh"><div class="bar svelte-ynu3lh"><div class="bar-left svelte-ynu3lh"><span class="status-dot svelte-ynu3lh"></span> <span class="status-label svelte-ynu3lh"> </span> <!></div> <div class="bar-dots svelte-ynu3lh"></div> <button class="expand-btn svelte-ynu3lh"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-ynu3lh"><polyline points="18 15 12 9 6 15" class="svelte-ynu3lh"></polyline></svg></button></div> <!></div>');function Xs(n,e){Pe(e,!1);const[t,s]=nt(),r=()=>re(be,"$runnerState",t),i=()=>re(we,"$runnerConfig",t),o=()=>re(ze,"$panelExpanded",t),a=V(),h=V(),g=V(),m=V(),w=V(),C=V(),Q=[1,2,4,8];Tt(()=>{const f=pe("http://localhost:3001");return qt.set(f),f.on("log",d=>{be.update(E=>({...E,output:E.output+d+`
19
- `}))}),f.on("done",async d=>{const E=await $t().catch(()=>null),R=d===0;be.update(Y=>({...Y,output:Y.output+(R?`✓ All tests passed
20
- `:`✗ Some tests failed
21
- `),running:!1,testCompleted:!0,latestReport:E,status:R?"pass":"fail"}))}),()=>f.disconnect()});function ie(f){f.key==="Enter"&&!c(a).running&&Ye()}J(()=>r(),()=>{U(a,r())}),J(()=>i(),()=>{U(h,i())}),J(()=>c(h),()=>{U(g,Math.min(c(h).workers,4))}),J(()=>c(g),()=>{U(m,Array.from({length:c(g)}))}),J(()=>c(a),()=>{U(w,c(a).status==="pass"?"var(--pass)":c(a).status==="fail"?"var(--fail)":c(a).status==="running"?"var(--accent)":"var(--border)")}),J(()=>c(a),()=>{U(C,c(a).status==="running"?"running":c(a).status==="pass"?"passed":c(a).status==="fail"?"failed":"ready")}),At(),Le();var q=Js(),j=p(q),G=p(j),Z=p(G),$=_(Z,2),oe=p($,!0);u($);var ae=_($,2);{var _e=f=>{var d=Hs(),E=p(d,!0);u(d),S(()=>K(E,c(a).lastRunId||"(all)")),v(f,d)};ne(ae,f=>{c(a).lastRunId&&f(_e)})}u(G);var W=_(G,2);de(W,5,()=>c(m),ye,(f,d,E)=>{var R=Ks();F(R,"style",`animation-delay: ${E*180}ms`),S(()=>{A(R,"running",c(a).running),A(R,"pass",c(a).status==="pass"),A(R,"fail",c(a).status==="fail")}),v(f,R)}),u(W);var z=_(W,2),b=p(z);u(z),u(j);var k=_(j,2);{var D=f=>{var d=Ys(),E=p(d),R=p(E);Ct(R);var Y=_(R,2);de(Y,5,()=>Q,ye,(I,N)=>{var T=Ws(),ve=p(T,!0);u(T),S(()=>{A(T,"active",c(h).workers===c(N)),K(ve,c(N)===1?"Off":c(N))}),H("click",T,()=>we.update(ee=>({...ee,workers:c(N)}))),v(I,T)}),u(Y);var _t=_(Y,2);Je(_t,{get disabled(){return c(a).running},$$events:{click:()=>Ye()},children:(I,N)=>{He();var T=Me();S(()=>K(T,c(a).running?"Running…":"Run")),v(I,T)},$$slots:{default:!0}}),u(E);var Ve=_(E,2);Ms(Ve,{get output(){return c(a).output}});var vt=_(Ve,2);{var bt=I=>{var N=zs(),T=p(N),ve=p(T);Je(ve,{variant:"outline",size:"sm",children:(ee,js)=>{He();var wt=Me("View Report →");v(ee,wt)},$$slots:{default:!0}}),u(T),u(N),S(ee=>F(T,"href",ee),[()=>Dt(c(a).latestReport)],Ot),xe(3,N,()=>St,()=>({y:6,duration:200})),v(I,N)};ne(vt,I=>{c(a).testCompleted&&c(a).latestReport&&I(bt)})}u(d),S(()=>R.disabled=c(a).running),Pt(R,()=>i().testID,I=>Nt(we,Ke(i).testID=I,Ke(i))),H("keydown",R,ie),xe(3,d,()=>st,()=>({duration:220})),v(f,d)};ne(k,f=>{o()&&f(D)})}u(q),S(()=>{A(q,"expanded",o()),F(Z,"style",`background: ${c(w)??""}`),A(Z,"pulse",c(a).running),K(oe,c(C)),F(W,"title",`${c(h).workers??""} worker${(c(h).workers!==1?"s":"")??""}`),F(z,"aria-label",o()?"Collapse panel":"Expand panel"),A(b,"rotated",o())}),H("click",z,()=>ze.update(f=>!f)),v(n,q),qe(),s()}var Qs=x("<!> <!> <!>",1);function dn(n,e){var t=Qs(),s=We(t);zt(s,{});var r=_(s,2);Jt(r,{children:(o,a)=>{var h=kt(),g=We(h);tt(g,e,"default",{}),v(o,h)},$$slots:{default:!0}});var i=_(r,2);Xs(i,{}),v(n,t)}export{dn as component};
@@ -1,18 +0,0 @@
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
- import{a as i,t as n,b as Se,s as p,e as N}from"../chunks/DFJLQFic.js";import{i as We}from"../chunks/DTUE7kkY.js";import{l as Xe,o as Ye,m as h,Q as Ze,n as J,t as et,x as tt,A as e,y as st,z as y,v,B as r,C as s,D as u,G as K}from"../chunks/B0bn91RF.js";import{i as T}from"../chunks/CwBTqcbj.js";import{r as at,e as x,s as g,i as w,t as de}from"../chunks/Bt3-Z7H1.js";import{t as rt,s as lt}from"../chunks/B1kE5jmt.js";import{b as ot}from"../chunks/BKz6FZdB.js";import{r as it,t as vt}from"../chunks/IYPwzKs_.js";const nt="http://localhost:3001";async function ct(){const P=await fetch(`${nt}/tests`),{suites:U}=await P.json();return U.suites??[]}var dt=n('<button class="search-clear svelte-10529e9" aria-label="Clear search"><svg width="12" height="12" viewBox="0 0 14 14" fill="none" class="svelte-10529e9"><path d="M1 1l12 12M13 1L1 13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" class="svelte-10529e9"></path></svg></button>'),pt=n('<p class="empty svelte-10529e9"> </p>'),ut=n('<button class="id-pill svelte-10529e9"> </button>'),_t=n('<button class="id-pill svelte-10529e9"> </button>'),ht=n('<span class="outline-badge svelte-10529e9">outline</span>'),ft=n('<button class="steps-toggle svelte-10529e9"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-10529e9"><polyline points="9 18 15 12 9 6" class="svelte-10529e9"></polyline></svg> </button>'),mt=n('<li class="step svelte-10529e9"> </li>'),gt=n('<th class="svelte-10529e9"> </th>'),bt=n('<td class="svelte-10529e9"> </td>'),yt=n('<tr class="svelte-10529e9"></tr>'),xt=n('<div class="examples svelte-10529e9"><span class="examples-label svelte-10529e9">Examples</span> <div class="examples-table-wrap svelte-10529e9"><table class="examples-table svelte-10529e9"><thead class="svelte-10529e9"><tr class="svelte-10529e9"></tr></thead><tbody class="svelte-10529e9"></tbody></table></div></div>'),wt=n('<div class="steps svelte-10529e9"><ol class="step-list svelte-10529e9"></ol> <!></div>'),kt=n('<div class="test-row svelte-10529e9"><div class="test-main svelte-10529e9"><button class="run-icon-btn svelte-10529e9"><svg width="10" height="10" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-10529e9"><polygon points="5,3 19,12 5,21" class="svelte-10529e9"></polygon></svg></button> <div class="test-ids svelte-10529e9"></div> <span class="test-name svelte-10529e9"> <!></span> <!></div> <!></div>'),Ct=n('<div class="suite svelte-10529e9"><div class="suite-header svelte-10529e9"><div class="suite-meta svelte-10529e9"><div class="suite-badges svelte-10529e9"></div> <span class="suite-name svelte-10529e9"> </span> <span class="suite-count svelte-10529e9"> </span></div> <button class="run-btn suite-run svelte-10529e9" title="Run suite"><svg width="11" height="11" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-10529e9"><polygon points="5,3 19,12 5,21" class="svelte-10529e9"></polygon></svg> Run suite</button></div> <div class="tests svelte-10529e9"></div></div>'),$t=n('<div class="suites svelte-10529e9"></div>'),It=n('<div class="page-header svelte-10529e9"><div class="header-top svelte-10529e9"><div class="svelte-10529e9"><h1 class="svelte-10529e9">Tests</h1> <p class="subtitle svelte-10529e9"><!></p></div></div> <div class="search-row svelte-10529e9"><div class="search-wrap svelte-10529e9"><svg class="search-icon svelte-10529e9" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8" class="svelte-10529e9"></circle><line x1="21" y1="21" x2="16.65" y2="16.65" class="svelte-10529e9"></line></svg> <input type="text" class="search-input svelte-10529e9" placeholder="Search suites or tests…"> <!></div></div></div> <!>',1);function Dt(P,U){Xe(U,!1);const b=y(),D=y(),z=y(),pe=y();let k=y([]),C=y(""),A=y(new Set),_=y(new Set);const j=new Map;Ye(async()=>{try{h(k,await ct())}catch(t){console.error("Failed to fetch suites",t)}});function ue(t){return Array.isArray(t.suiteId)?t.suiteId:[t.suiteId]}function _e(t){return Array.isArray(t.id)?t.id:[t.id]}function Te(t){return Array.isArray(t.id)?t.id[0]:t.id}function Ae(t){e(A).has(t)?e(A).delete(t):e(A).add(t),h(A,e(A))}function he(t){it.update(a=>({...a,testID:t})),vt(t)}function Be(t){const a=ue(t)[0];he(a)}async function fe(t){await navigator.clipboard.writeText(t),e(_).add(t),h(_,e(_)),j.has(t)&&clearTimeout(j.get(t)),j.set(t,setTimeout(()=>{e(_).delete(t),h(_,e(_)),j.delete(t)},1400))}Ze(()=>{for(const t of j.values())clearTimeout(t)}),J(()=>e(C),()=>{h(b,e(C).trim().toLowerCase())}),J(()=>(e(k),e(b)),()=>{h(D,e(k).map(t=>{if(!e(b))return t;const a=t.suiteName.toLowerCase().includes(e(b)),B=t.tests.filter(f=>f.testCase.toLowerCase().includes(e(b))||_e(f).some(F=>F.toLowerCase().includes(e(b))));return!a&&B.length===0?null:{...t,tests:a?t.tests:B}}).filter(Boolean))}),J(()=>e(k),()=>{h(z,e(k).reduce((t,a)=>t+a.tests.length,0))}),J(()=>e(D),()=>{h(pe,e(D).reduce((t,a)=>t+a.tests.length,0))}),et(),We();var me=It(),V=tt(me),W=r(V),ge=r(W),be=v(r(ge),2),Le=r(be);{var Me=t=>{var a=Se();u(()=>p(a,`${e(pe)??""} of ${e(z)??""} tests`)),i(t,a)},Re=t=>{var a=Se();u(()=>p(a,`${e(k).length??""} suite${(e(k).length!==1?"s":"")??""} · ${e(z)??""} test${(e(z)!==1?"s":"")??""}`)),i(t,a)};T(Le,t=>{e(b)?t(Me):t(Re,!1)})}s(be),s(ge),s(W);var ye=v(W,2),xe=r(ye),X=v(r(xe),2);at(X);var Ne=v(X,2);{var De=t=>{var a=dt();N("click",a,()=>h(C,"")),i(t,a)};T(Ne,t=>{e(C)&&t(De)})}s(xe),s(ye),s(V);var je=v(V,2);{var qe=t=>{var a=pt(),B=r(a,!0);s(a),u(()=>p(B,e(b)?`No tests matching "${e(C)}"`:"No test suites found.")),i(t,a)},Ee=t=>{var a=$t();x(a,5,()=>e(D),w,(B,f,F)=>{var G=Ct();g(G,"style",`animation-delay: ${F*55}ms`);var Y=r(G),Z=r(Y),ee=r(Z);x(ee,5,()=>ue(e(f)),w,(se,o)=>{var m=ut(),L=r(m,!0);s(m),u(($,M)=>{g(m,"title",$),g(m,"aria-label",$),de(m,"copied",M),p(L,e(o))},[()=>e(_).has(e(o))?`Copied ${e(o)}`:`Copy ${e(o)}`,()=>e(_).has(e(o))],K),N("click",m,()=>fe(e(o))),i(se,m)}),s(ee);var te=v(ee,2),ze=r(te,!0);s(te);var we=v(te,2),Fe=r(we);s(we),s(Z);var Ge=v(Z,2);s(Y);var ke=v(Y,2);x(ke,5,()=>e(f).tests,w,(se,o,m)=>{var L=kt();const $=K(()=>Te(e(o))),M=K(()=>e(A).has(e($)));g(L,"style",`animation-delay: ${(F*4+m)*30}ms`);var ae=r(L),H=r(ae),re=v(H,2);x(re,5,()=>_e(e(o)),w,(d,l)=>{var c=_t(),q=r(c,!0);s(c),u((O,I)=>{g(c,"title",O),g(c,"aria-label",O),de(c,"copied",I),p(q,e(l))},[()=>e(_).has(e(l))?`Copied ${e(l)}`:`Copy ${e(l)}`,()=>e(_).has(e(l))],K),N("click",c,()=>fe(e(l))),i(d,c)}),s(re);var le=v(re,2),Ce=r(le),He=v(Ce);{var Oe=d=>{var l=ht();i(d,l)};T(He,d=>{e(o).type==="outline"&&d(Oe)})}s(le);var Qe=v(le,2);{var Je=d=>{var l=ft(),c=r(l),q=v(c);s(l),u(()=>{g(l,"aria-expanded",e(M)),de(c,"rotated",e(M)),p(q,` ${(e(M)?"Hide":"Steps")??""}`)}),N("click",l,()=>Ae(e($))),i(d,l)};T(Qe,d=>{var l;((l=e(o).steps)==null?void 0:l.length)>0&&d(Je)})}s(ae);var Ke=v(ae,2);{var Pe=d=>{var l=wt(),c=r(l);x(c,5,()=>e(o).steps,w,(I,E)=>{var R=mt(),Q=r(R,!0);s(R),u(()=>p(Q,e(E))),i(I,R)}),s(c);var q=v(c,2);{var O=I=>{var E=xt(),R=v(r(E),2),Q=r(R),oe=r(Q),$e=r(oe);x($e,5,()=>e(o).examples.headers,w,(ie,ve)=>{var S=gt(),ne=r(S,!0);s(S),u(()=>p(ne,e(ve))),i(ie,S)}),s($e),s(oe);var Ie=v(oe);x(Ie,5,()=>e(o).examples.rows,w,(ie,ve)=>{var S=yt();x(S,5,()=>e(ve),w,(ne,Ue)=>{var ce=bt(),Ve=r(ce,!0);s(ce),u(()=>p(Ve,e(Ue))),i(ne,ce)}),s(S),i(ie,S)}),s(Ie),s(Q),s(R),s(E),i(I,E)};T(q,I=>{e(o).examples&&I(O)})}s(l),rt(3,l,()=>lt,()=>({duration:180})),i(d,l)};T(Ke,d=>{var l;e(M)&&((l=e(o).steps)==null?void 0:l.length)>0&&d(Pe)})}s(L),u(()=>{g(H,"title",`Run ${e($)??""}`),g(H,"aria-label",`Run ${e(o).testCase??""}`),p(Ce,`${e(o).testCase??""} `)}),N("click",H,()=>he(e($))),i(se,L)}),s(ke),s(G),u(()=>{p(ze,e(f).suiteName),p(Fe,`${e(f).tests.length??""} test${(e(f).tests.length!==1?"s":"")??""}`)}),N("click",Ge,()=>Be(e(f))),i(B,G)}),s(a),i(t,a)};T(je,t=>{e(D).length===0?t(qe):t(Ee,!1)})}ot(X,()=>e(C),t=>h(C,t)),i(P,me),st()}export{Dt as component};
@@ -1,18 +0,0 @@
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
- import{c as Pa,a as o,e as Y,t as p,s as b,b as ia}from"../chunks/DFJLQFic.js";import{i as oa}from"../chunks/DTUE7kkY.js";import{l as da,az as Aa,x as O,y as ca,B as s,v as i,D as w,C as t,o as ka,m,aA as Ca,n as E,t as Ra,z as x,A as a,F as I,G as Z}from"../chunks/B0bn91RF.js";import{i as T}from"../chunks/CwBTqcbj.js";import{e as aa,t as u,i as ea,s as L}from"../chunks/Bt3-Z7H1.js";import{a as Ba}from"../chunks/BpaMqo9O.js";import{B as la}from"../chunks/oc0we5Us.js";import{p as va}from"../chunks/Be4iUAB0.js";var Ma=p('<button class="page svelte-tsubiy"></button>'),Ea=p('<div class="pagination svelte-tsubiy"><button class="arrow svelte-tsubiy" aria-label="Previous">←</button> <!> <button class="arrow svelte-tsubiy" aria-label="Next">→</button></div>');function Na(Q,N){da(N,!1);let _=va(N,"current",8,1),A=va(N,"total",8,1);const h=Aa();function B(l){l<1||l>A()||h("change",l)}oa();var f=Pa(),q=O(f);{var r=l=>{var k=Ea(),M=s(k),U=i(M,2);aa(U,1,()=>Array(A()),ea,(j,H,C)=>{var $=Ma();$.textContent=C+1,w(()=>u($,"active",_()===C+1)),Y("click",$,()=>B(C+1)),o(j,$)});var V=i(U,2);t(k),w(()=>{M.disabled=_()===1,V.disabled=_()===A()}),Y("click",M,()=>B(_()-1)),Y("click",V,()=>B(_()+1)),o(l,k)};T(q,l=>{A()>1&&l(r)})}o(Q,f),ca()}var za=p('<div class="rate-display svelte-wxbf05"><span class="rate-number svelte-wxbf05"> </span> <span class="rate-label svelte-wxbf05">passing</span></div>'),Da=p('<span class="trend-dot svelte-wxbf05"></span>'),Fa=p('<div class="stats-bar svelte-wxbf05"><div class="pass-bar-track svelte-wxbf05"><div class="pass-bar-fill svelte-wxbf05"></div></div> <div class="bar-legend svelte-wxbf05"><span class="legend-pass svelte-wxbf05"> </span> <span class="legend-fail svelte-wxbf05"> </span></div></div> <div class="trend-row svelte-wxbf05"><span class="trend-label svelte-wxbf05">Recent</span> <div class="trend-dots svelte-wxbf05"></div> <span class="trend-hint svelte-wxbf05">← older · newer →</span></div>',1),Ga=p('<p class="empty svelte-wxbf05">No reports yet. Run a test to generate one.</p>'),Ia=p('<a class="report-item svelte-wxbf05"><div class="item-left svelte-wxbf05"><span class="status-mark svelte-wxbf05"> </span> <div class="item-meta svelte-wxbf05"><span class="item-tags svelte-wxbf05"> </span> <div class="item-badges svelte-wxbf05"><!> <!></div></div></div> <div class="item-right svelte-wxbf05"><span class="item-date svelte-wxbf05"> </span> <svg class="item-arrow svelte-wxbf05" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg></div></a>'),La=p('<div class="pagination-wrap svelte-wxbf05"><!></div>'),Ta=p('<div class="report-list svelte-wxbf05"></div> <!>',1),qa=p('<div class="page-header svelte-wxbf05"><div class="header-top svelte-wxbf05"><div><h1 class="svelte-wxbf05">Reports</h1> <p class="subtitle svelte-wxbf05"> </p></div> <!></div> <!></div> <!>',1);function Wa(Q,N){da(N,!1);const _=x(),A=x(),h=x(),B=x(),f=x(),q=x();let r=x([]),l=x(1);const k=15;let M=x(!1);function U(e){return e==="manual-trigger"?"Manual":e==="command-line-trigger"||e==="undefined"?"CLI":"Scheduled"}function V(e){return e==="manual-trigger"?"tag":e==="command-line-trigger"||e==="undefined"?"neutral":"schedule"}ka(async()=>{try{m(r,await Ba()),await Ca(),m(M,!0)}catch(e){console.error("Failed to fetch reports",e)}}),E(()=>a(r),()=>{m(_,Math.ceil(a(r).length/k))}),E(()=>(a(r),a(l)),()=>{m(A,a(r).slice((a(l)-1)*k,a(l)*k))}),E(()=>a(r),()=>{m(h,a(r).filter(e=>e.status==="PASS").length)}),E(()=>(a(r),a(h)),()=>{m(B,a(r).length-a(h))}),E(()=>(a(r),a(h)),()=>{m(f,a(r).length?Math.round(a(h)/a(r).length*100):0)}),E(()=>a(r),()=>{m(q,a(r).slice(0,12).reverse())}),Ra(),oa();var j=qa(),H=O(j),C=s(H),$=s(C),ta=i(s($),2),fa=s(ta);t(ta),t($);var ua=i($,2);{var pa=e=>{var c=za(),v=s(c),R=s(v);t(v),I(2),t(c),w(()=>{u(v,"pass",a(f)>=80),u(v,"warn",a(f)<80&&a(f)>=50),u(v,"fail",a(f)<50),b(R,`${a(f)??""}%`)}),o(e,c)};T(ua,e=>{a(r).length>0&&e(pa)})}t(C);var _a=i(C,2);{var ga=e=>{var c=Fa(),v=O(c),R=s(v),W=s(R);t(R);var y=i(R,2),n=s(y),z=s(n);t(n);var d=i(n,2),D=s(d);t(d),t(y),t(v);var S=i(v,2),J=i(s(S),2);aa(J,5,()=>a(q),ea,(K,g,X)=>{var P=Da();L(P,"style",`animation-delay: ${X*35}ms`),w(()=>{L(P,"title",`${a(g).status??""} · ${a(g).tags??""} · ${a(g).date??""}`),u(P,"pass",a(g).status==="PASS"),u(P,"fail",a(g).status!=="PASS")}),o(K,P)}),t(J),I(2),t(S),w(()=>{L(W,"style",`width: ${(a(M)?a(f)+"%":"0")??""}`),b(z,`${a(h)??""} passed`),b(D,`${a(B)??""} failed`)}),o(e,c)};T(_a,e=>{a(r).length>0&&e(ga)})}t(H);var ba=i(H,2);{var ma=e=>{var c=Ga();o(e,c)},xa=e=>{var c=Ta(),v=O(c);aa(v,5,()=>a(A),ea,(y,n,z)=>{var d=Ia();L(d,"style",`animation-delay: ${z*45}ms`);var D=s(d),S=s(D),J=s(S,!0);t(S);var K=i(S,2),g=s(K),X=s(g,!0);t(g);var P=i(g,2),sa=s(P);const wa=Z(()=>V(a(n).triggerType));la(sa,{get variant(){return a(wa)},children:(F,ya)=>{I();var G=ia();w(Sa=>b(G,Sa),[()=>U(a(n).triggerType)],Z),o(F,G)},$$slots:{default:!0}});var ha=i(sa,2);la(ha,{variant:"neutral",children:(F,ya)=>{I();var G=ia();w(()=>b(G,`${a(n).runners??""} runner${(a(n).runners!==1?"s":"")??""}`)),o(F,G)},$$slots:{default:!0}}),t(P),t(K),t(D);var ra=i(D,2),na=s(ra),$a=s(na,!0);t(na),I(2),t(ra),t(d),w(F=>{L(d,"href",`/reports/${F??""}`),u(d,"is-pass",a(n).status==="PASS"),u(d,"is-fail",a(n).status!=="PASS"),u(S,"pass",a(n).status==="PASS"),u(S,"fail",a(n).status!=="PASS"),b(J,a(n).status==="PASS"?"✓":"✗"),b(X,a(n).tags),b($a,a(n).date)},[()=>encodeURIComponent(a(n).fileName)],Z),o(y,d)}),t(v);var R=i(v,2);{var W=y=>{var n=La(),z=s(n);Na(z,{get current(){return a(l)},get total(){return a(_)},$$events:{change:d=>m(l,d.detail)}}),t(n),o(y,n)};T(R,y=>{a(_)>1&&y(W)})}o(e,c)};T(ba,e=>{a(r).length===0?e(ma):e(xa,!1)})}w(()=>b(fa,`${a(r).length??""} run${(a(r).length!==1?"s":"")??""} recorded`)),o(Q,j),ca()}export{Wa as component};
@@ -1,19 +0,0 @@
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
- import{a as v,t as d,s as l,c as Cs,b as G,e as Ga}from"../chunks/DFJLQFic.js";import{i as Ia}from"../chunks/DTUE7kkY.js";import{l as La,o as qa,m as M,n as E,t as za,v as n,x as H,y as Na,z as B,A as s,B as r,C as a,D as y,F as Y,G as I}from"../chunks/B0bn91RF.js";import{i as m}from"../chunks/CwBTqcbj.js";import{e as Z,s as Ss,i as ss,t as $,a as Ua}from"../chunks/Bt3-Z7H1.js";import{t as ja,s as Ea}from"../chunks/B1kE5jmt.js";import{s as Ha,a as Ja}from"../chunks/Be4iUAB0.js";import{p as Ka}from"../chunks/CJ8q7g9Y.js";import{p as Oa,f as Qa}from"../chunks/BpaMqo9O.js";import{B as Va}from"../chunks/oc0we5Us.js";var Wa=d('<div class="error-state svelte-pys2u"> </div>'),Xa=d('<div class="loading-state svelte-pys2u"><div class="loading-dots svelte-pys2u"><span class="svelte-pys2u"></span><span class="svelte-pys2u"></span><span class="svelte-pys2u"></span></div></div>'),Ya=d('<p class="header-meta svelte-pys2u"><span class="mono svelte-pys2u"> </span> · <!> </p>'),Za=d('<div class="stat svelte-pys2u"><span class="stat-num fail-color svelte-pys2u"> </span> <span class="stat-label svelte-pys2u">failed</span></div>'),se=d('<div class="stat svelte-pys2u"><span class="stat-num muted-color svelte-pys2u"> </span> <span class="stat-label svelte-pys2u">skipped</span></div>'),ae=d('<div class="stat svelte-pys2u"><span class="stat-num svelte-pys2u"> </span> <span class="stat-label svelte-pys2u"> </span></div>'),ee=d('<span class="scenario-count svelte-pys2u"> </span>'),te=d('<span class="tag-chip svelte-pys2u"> </span>'),re=d('<div class="example-header svelte-pys2u"><span class="scenario-status-dot svelte-pys2u"></span> <span class="svelte-pys2u"></span> <span class="scenario-duration svelte-pys2u"> </span></div>'),ne=d('<pre class="step-error svelte-pys2u"> </pre>'),ve=d('<details class="screenshot-wrap svelte-pys2u"><summary class="screenshot-toggle svelte-pys2u">Screenshot</summary> <img class="screenshot svelte-pys2u" alt="Failure screenshot"></details>'),le=d('<div class="step svelte-pys2u"><div class="step-row svelte-pys2u"><span class="step-status-icon svelte-pys2u"><!></span> <span> </span> <span class="step-name svelte-pys2u"> </span> <span class="step-duration svelte-pys2u"> </span></div> <!> <!></div>'),ie=d("<!> <!>",1),oe=d('<div class="steps svelte-pys2u"></div>'),pe=d('<div class="scenario svelte-pys2u"><button class="scenario-header svelte-pys2u"><span class="scenario-status-dot svelte-pys2u"></span> <span class="scenario-name svelte-pys2u"> <!></span> <div class="scenario-tags svelte-pys2u"></div> <span class="scenario-duration svelte-pys2u"> </span> <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="chevron svelte-pys2u"><polyline points="9 18 15 12 9 6" class="svelte-pys2u"></polyline></svg></button> <!></div>'),ue=d('<div class="feature svelte-pys2u"><div class="feature-header svelte-pys2u"><!> <h2 class="feature-name svelte-pys2u"> </h2> <span class="feature-file svelte-pys2u"> </span></div> <div class="scenarios svelte-pys2u"></div></div>'),de=d('<div class="report-header svelte-pys2u"><div class="header-main svelte-pys2u"><div class="header-status svelte-pys2u"><span class="status-icon svelte-pys2u"> </span> <div class="svelte-pys2u"><h1 class="svelte-pys2u"> </h1> <!></div></div> <div class="header-stats svelte-pys2u"><div class="stat svelte-pys2u"><span class="stat-num pass-color svelte-pys2u"> </span> <span class="stat-label svelte-pys2u">passed</span></div> <!> <!> <div class="stat svelte-pys2u"><span class="stat-num svelte-pys2u"> </span> <span class="stat-label svelte-pys2u">total</span></div> <!></div></div></div> <!>',1),ce=d('<div class="back-row svelte-pys2u"><a href="/reports" class="back-link svelte-pys2u"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-pys2u"><line x1="19" y1="12" x2="5" y2="12" class="svelte-pys2u"></line><polyline points="12 19 5 12 12 5" class="svelte-pys2u"></polyline></svg> Reports</a></div> <!>',1);function $e(Os,Qs){La(Qs,!1);const[Vs,Ws]=Ha(),Xs=()=>Ja(Ka,"$page",Vs),Ts=B(),is=B(),os=B(),Ms=B(),J=B(),Bs=B(),Fs=decodeURIComponent(Xs().params.slug),g=Oa(Fs);let x=B(null),ps=B(null),L=B(new Set);qa(async()=>{try{M(x,await Qa(Fs))}catch{M(ps,"Could not load report.")}});function Ys(t){s(L).has(t)?s(L).delete(t):s(L).add(t),M(L,s(L))}function as(t){return t>=1e3?(t/1e3).toFixed(2)+"s":t+"ms"}function Zs(t){const e=t.toLowerCase();return e==="given"?"kw-given":e==="when"?"kw-when":e==="then"?"kw-then":"kw-and"}function Ds(t){return t.tags.find(e=>/^@test[\w-]*/i.test(e))}function sa(t){const e=Ds(t);return e?[e]:t.tags.filter(o=>o!==(g==null?void 0:g.tags)&&!o.includes("suite"))}function aa(t){const e={failed:3,pending:2,skipped:1,passed:0};return t.reduce((o,K)=>(e[K.status]??0)>(e[o]??0)?K.status:o,"passed")}function ea(t){const e=new Map;for(const o of t){const q=Ds(o)||`${o.keyword}:${o.name}`;e.has(q)||e.set(q,{key:q,name:o.name,tags:sa(o),scenarios:[],duration:0,status:o.status});const w=e.get(q);w.scenarios.push(o),w.duration+=o.duration,w.status=aa(w.scenarios)}return Array.from(e.values())}E(()=>s(x),()=>{var t;M(Ts,((t=s(x))==null?void 0:t.features.flatMap(e=>e.scenarios).filter(e=>e.status==="passed").length)??0)}),E(()=>s(x),()=>{var t;M(is,((t=s(x))==null?void 0:t.features.flatMap(e=>e.scenarios).filter(e=>e.status==="failed").length)??0)}),E(()=>s(x),()=>{var t;M(os,((t=s(x))==null?void 0:t.features.flatMap(e=>e.scenarios).filter(e=>e.status==="skipped"||e.status==="pending").length)??0)}),E(()=>s(x),()=>{var t;M(Ms,((t=s(x))==null?void 0:t.features.flatMap(e=>e.scenarios).reduce((e,o)=>e+o.duration,0))??0)}),E(()=>{},()=>{M(J,(g==null?void 0:g.status)==="PASS")}),E(()=>s(x),()=>{var t;M(Bs,((t=s(x))==null?void 0:t.features.map(e=>({...e,scenarioGroups:ea(e.scenarios)})))??[])}),za(),Ia();var Ps=ce(),ta=n(H(Ps),2);{var ra=t=>{var e=Wa(),o=r(e,!0);a(e),y(()=>l(o,s(ps))),v(t,e)},na=t=>{var e=Cs(),o=H(e);{var K=w=>{var es=Xa();v(w,es)},q=w=>{var es=de(),O=H(es),Rs=r(O),us=r(Rs),ds=r(us),va=r(ds,!0);a(ds);var As=n(ds,2),cs=r(As),la=r(cs,!0);a(cs);var ia=n(cs,2);{var oa=u=>{var i=Ya(),c=r(i),k=r(c,!0);a(c);var T=n(c,2);{var z=F=>{var R=G("Manual");v(F,R)},ys=F=>{var R=Cs(),ms=H(R);{var ts=p=>{var D=G("CLI");v(p,D)},V=p=>{var D=G("Scheduled");v(p,D)};m(ms,p=>{g.triggerType==="undefined"?p(ts):p(V,!1)},!0)}v(F,R)};m(T,F=>{g.triggerType==="manual-trigger"?F(z):F(ys,!1)})}var Q=n(T);a(i),y(()=>{l(k,g.tags),l(Q,` ·
19
- ${g.date??""}`)}),v(u,i)};m(ia,u=>{g&&u(oa)})}a(As),a(us);var Gs=n(us,2),_s=r(Gs),Is=r(_s),pa=r(Is,!0);a(Is),Y(2),a(_s);var Ls=n(_s,2);{var ua=u=>{var i=Za(),c=r(i),k=r(c,!0);a(c),Y(2),a(i),y(()=>l(k,s(is))),v(u,i)};m(Ls,u=>{s(is)>0&&u(ua)})}var qs=n(Ls,2);{var da=u=>{var i=se(),c=r(i),k=r(c,!0);a(c),Y(2),a(i),y(()=>l(k,s(os))),v(u,i)};m(qs,u=>{s(os)>0&&u(da)})}var fs=n(qs,2),zs=r(fs),ca=r(zs,!0);a(zs),Y(2),a(fs);var _a=n(fs,2);{var fa=u=>{var i=ae(),c=r(i),k=r(c,!0);a(c);var T=n(c,2),z=r(T);a(T),a(i),y(()=>{l(k,g.runners),l(z,`runner${(g.runners!==1?"s":"")??""}`)}),v(u,i)};m(_a,u=>{g&&u(fa)})}a(Gs),a(Rs),a(O);var ya=n(O,2);Z(ya,1,()=>s(Bs),ss,(u,i,c)=>{var k=ue();Ss(k,"style",`animation-delay: ${c*60}ms`);var T=r(k),z=r(T);const ys=I(()=>s(i).status==="passed"?"pass":"fail");Va(z,{get variant(){return s(ys)},children:(V,p)=>{Y();var D=G();y(()=>l(D,s(i).status)),v(V,D)},$$slots:{default:!0}});var Q=n(z,2),F=r(Q,!0);a(Q);var R=n(Q,2),ms=r(R,!0);a(R),a(T);var ts=n(T,2);Z(ts,5,()=>s(i).scenarioGroups,ss,(V,p,D)=>{var rs=pe();const Ns=I(()=>`${c}-${s(p).key}`),Us=I(()=>s(L).has(s(Ns)));Ss(rs,"style",`animation-delay: ${(c*5+D)*40}ms`);var ns=r(rs),vs=r(ns),gs=n(vs,2),js=r(gs),ma=n(js);{var ga=b=>{var C=ee(),A=r(C);a(C),y(()=>l(A,`${s(p).scenarios.length??""} cases`)),v(b,C)};m(ma,b=>{s(p).scenarios.length>1&&b(ga)})}a(gs);var hs=n(gs,2);Z(hs,5,()=>s(p).tags,ss,(b,C)=>{var A=te(),P=r(A,!0);a(A),y(()=>l(P,s(C))),v(b,A)}),a(hs);var xs=n(hs,2),ha=r(xs,!0);a(xs);var xa=n(xs,2);a(ns);var ka=n(ns,2);{var wa=b=>{var C=oe();Z(C,5,()=>s(p).scenarios,ss,(A,P,ba)=>{var Es=ie(),Hs=H(Es);{var $a=W=>{var _=re(),S=r(_),N=n(S,2);N.textContent=`Case ${ba+1}`;var U=n(N,2),ks=r(U,!0);a(U),a(_),y(ws=>{$(S,"pass",s(P).status==="passed"),$(S,"fail",s(P).status==="failed"),$(S,"skip",s(P).status==="skipped"||s(P).status==="pending"),l(ks,ws)},[()=>as(s(P).duration)],I),v(W,_)};m(Hs,W=>{s(p).scenarios.length>1&&W($a)})}var Ca=n(Hs,2);Z(Ca,1,()=>s(P).steps,ss,(W,_)=>{var S=le(),N=r(S),U=r(N),ks=r(U);{var ws=f=>{var h=G("✓");v(f,h)},Sa=f=>{var h=Cs(),X=H(h);{var Ra=j=>{var $s=G("✗");v(j,$s)},Aa=j=>{var $s=G("−");v(j,$s)};m(X,j=>{s(_).status==="failed"?j(Ra):j(Aa,!1)},!0)}v(f,h)};m(ks,f=>{s(_).status==="passed"?f(ws):f(Sa,!1)})}a(U);var ls=n(U,2),Ta=r(ls,!0);a(ls);var bs=n(ls,2),Ma=r(bs,!0);a(bs);var Js=n(bs,2),Ba=r(Js,!0);a(Js),a(N);var Ks=n(N,2);{var Fa=f=>{var h=ne(),X=r(h,!0);a(h),y(()=>l(X,s(_).error)),v(f,h)};m(Ks,f=>{s(_).error&&f(Fa)})}var Da=n(Ks,2);{var Pa=f=>{var h=ve(),X=n(r(h),2);a(h),y(()=>Ss(X,"src",`data:image/png;base64,${s(_).screenshot??""}`)),v(f,h)};m(Da,f=>{s(_).screenshot&&f(Pa)})}a(S),y((f,h)=>{$(S,"step-fail",s(_).status==="failed"),$(S,"step-skip",s(_).status==="skipped"||s(_).status==="pending"),Ua(ls,`kw ${f??""} svelte-pys2u`),l(Ta,s(_).keyword),l(Ma,s(_).name),l(Ba,h)},[()=>Zs(s(_).keyword),()=>as(s(_).duration)],I),v(W,S)}),v(A,Es)}),a(C),ja(3,C,()=>Ea,()=>({duration:200})),v(b,C)};m(ka,b=>{s(Us)&&b(wa)})}a(rs),y(b=>{$(vs,"pass",s(p).status==="passed"),$(vs,"fail",s(p).status==="failed"),$(vs,"skip",s(p).status==="skipped"||s(p).status==="pending"),l(js,`${s(p).name??""} `),l(ha,b),$(xa,"rotated",s(Us))},[()=>as(s(p).duration)],I),Ga("click",ns,()=>Ys(s(Ns))),v(V,rs)}),a(ts),a(k),y(()=>{l(F,s(i).name),l(ms,s(i).uri)}),v(u,k)}),y(u=>{$(O,"pass",s(J)),$(O,"fail",!s(J)),l(va,s(J)?"✓":"✗"),l(la,s(J)?"Passed":"Failed"),l(pa,s(Ts)),l(ca,u)},[()=>as(s(Ms))],I),v(w,es)};m(o,w=>{s(x)?w(q,!1):w(K)},!0)}v(t,e)};m(ta,t=>{s(ps)?t(ra):t(na,!1)})}v(Os,Ps),Na(),Ws()}export{$e as component};
@@ -1,18 +0,0 @@
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
- import{l as Me,c as qe,e as K,a as f,s as C,t as S,b as F}from"../chunks/DFJLQFic.js";import{i as Je}from"../chunks/DTUE7kkY.js";import{e as xe,x as ie,aK as Oe,B as o,C as s,v as i,D as T,l as Ae,o as Be,m as n,y as je,z as J,A as e,aL as Le,F as B,aM as ne,G as he}from"../chunks/B0bn91RF.js";import{i as Z}from"../chunks/CwBTqcbj.js";import{s as we,r as me,e as ge,i as be,a as ze}from"../chunks/Bt3-Z7H1.js";import{t as de,a as Fe,f as Ie,b as Re}from"../chunks/B1kE5jmt.js";import{b as ye}from"../chunks/BKz6FZdB.js";import{i as Ue,p as $e}from"../chunks/Be4iUAB0.js";import{B as R}from"../chunks/DBk3zeq4.js";import{B as Ge}from"../chunks/oc0we5Us.js";import{s as Ke}from"../chunks/rVEKg0Ak.js";function Xe(t){return function(...r){var u=r[0];return u.preventDefault(),t==null?void 0:t.apply(this,r)}}function Ee(t,r,u){if(t.multiple)return Ve(t,r);for(var v of t.options){var d=X(v);if(Ue(d,r)){v.selected=!0;return}}(!u||r!==void 0)&&(t.selectedIndex=-1)}function He(t,r){xe(()=>{var u=new MutationObserver(()=>{var v=t.__value;Ee(t,v)});return u.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),()=>{u.disconnect()}})}function Qe(t,r,u=r){var v=!0;Me(t,"change",d=>{var _=d?"[selected]":":checked",y;if(t.multiple)y=[].map.call(t.querySelectorAll(_),X);else{var k=t.querySelector(_)??t.querySelector("option:not([disabled])");y=k&&X(k)}u(y)}),xe(()=>{var d=r();if(Ee(t,d,v),v&&d===void 0){var _=t.querySelector(":checked");_!==null&&(d=X(_),u(d))}t.__value=d,v=!1}),He(t)}function Ve(t,r){for(var u of t.options)u.selected=~r.indexOf(X(u))}function X(t){return"__value"in t?t.__value:t.value}const H="http://localhost:3001";async function We(){const t=await fetch(`${H}/schedules`),{schedules:r}=await t.json();return r??[]}async function le(){const t=await fetch(`${H}/cron-jobs`),{cronJobs:r}=await t.json();return r??[]}async function Ye({taskName:t,cronExpression:r,tags:u,isEditing:v,editTaskName:d}){const _=u.replace(/\sOR\s/gi,j=>j.toLowerCase()),y=v?`${H}/cron-jobs/${d}`:`${H}/cron-jobs`;return(await fetch(y,{method:v?"PUT":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cronExpression:r,taskName:t,tags:_})})).json()}async function Ze(t){return(await fetch(`${H}/cron-jobs/${t}`,{method:"DELETE"})).json()}function et(t){const r=t-1;return r*r*r+1}var tt=S('<div class="backdrop svelte-aus6t7" role="presentation"><div class="panel svelte-aus6t7" role="dialog" aria-modal="true"><div class="header svelte-aus6t7"><h3 class="title svelte-aus6t7"> </h3> <button class="close-btn svelte-aus6t7" aria-label="Close"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M1 1l12 12M13 1L1 13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg></button></div> <div class="body svelte-aus6t7"><!></div></div></div>');function ke(t,r){let u=$e(r,"open",12,!1),v=$e(r,"title",8,"");function d(){u(!1)}function _(g){g.target===g.currentTarget&&d()}function y(g){g.key==="Escape"&&d()}var k=qe();K("keydown",Oe,y);var x=ie(k);{var j=g=>{var l=tt(),b=o(l),O=o(b),U=o(O),ee=o(U,!0);s(U);var te=i(U,2);s(O);var Q=i(O,2),ae=o(Q);Ke(ae,r,"default",{}),s(Q),s(b),s(l),T(()=>{we(b,"aria-label",v()),C(ee,v())}),K("click",te,d),de(3,b,()=>Fe,()=>({start:.96,duration:260,easing:et})),K("click",l,_),K("keydown",l,se=>se.key==="Escape"&&d()),de(3,l,()=>Ie,()=>({duration:200})),f(g,l)};Z(x,g=>{u()&&g(j)})}f(t,k)}var at=S("<option> </option>"),st=S('<p class="form-error svelte-1ugkbyh"> </p>'),rt=S('<form class="modal-form svelte-1ugkbyh"><div class="field"><div class="field-label"><span>Task Name</span> <span class="field-hint"> </span></div> <input type="text" class="field-input" placeholder="nightly-login-suite" required></div> <div class="field"><div class="field-label"><span>Schedule</span></div> <select class="field-input" required><option disabled selected>Select a schedule</option><!></select></div> <div class="field"><div class="field-label"><span>Tags</span> <span class="field-hint">Multiple: @test-1 or @test-2</span></div> <input type="text" class="field-input" placeholder="@suite-login" required></div> <!> <!></form>'),ot=S('<p class="confirm-text svelte-1ugkbyh">Are you sure you want to delete <strong class="svelte-1ugkbyh"> </strong>? This cannot be undone.</p> <div class="confirm-actions svelte-1ugkbyh"><!> <!></div>',1),nt=S("<div> </div>"),lt=S('<p class="empty svelte-1ugkbyh">No scheduled tests yet. Create one to get started.</p>'),it=S('<tr class="job-row svelte-1ugkbyh"><td class="job-name svelte-1ugkbyh"> </td><td><!></td><td><span class="tag-text svelte-1ugkbyh"> </span></td><td class="actions-cell svelte-1ugkbyh"><!> <!></td></tr>'),dt=S('<div class="table-wrap svelte-1ugkbyh"><table class="data-table"><thead><tr><th>Name</th><th>Schedule</th><th>Tags</th><th>Actions</th></tr></thead><tbody></tbody></table></div>'),vt=S('<!> <!> <div class="page-header svelte-1ugkbyh"><div class="header-row svelte-1ugkbyh"><div><h1 class="svelte-1ugkbyh">Scheduled Tests</h1> <p class="subtitle svelte-1ugkbyh">Manage recurring test runs via cron jobs</p></div> <!></div></div> <!> <div class="card" style="padding: 0; overflow: hidden;"><!></div>',1);function kt(t,r){Ae(r,!1);const u=/^(\*|([0-5]?[0-9])) (\*|([01]?[0-9]|2[0-3])) (\*|([01]?[0-9]|3[01])) (\*|([1-9]|1[0-2])) (\*|[0-6])$/;let v=J([]),d=J([]),_=J(null),y=J(!1),k=J(!1),x=J(!1),j="",g=J(""),l=J({taskName:"",cronExpression:"",tags:""}),b=J("");function O(a,c){n(_,{type:a,message:c}),setTimeout(()=>n(_,null),4e3)}function U(){n(x,!1),j="",n(l,{taskName:"",cronExpression:"",tags:""}),n(b,""),n(y,!0)}function ee(a){n(x,!0),j=a.taskName,n(l,{taskName:a.taskName,cronExpression:a.cronExpression,tags:a.tags}),n(b,""),n(y,!0)}function te(a){n(g,a),n(k,!0)}async function Q(){if(!e(l).taskName||!e(l).cronExpression||!e(l).tags){n(b,"All fields are required.");return}if(!u.test(e(l).cronExpression)){n(b,"Invalid cron expression.");return}n(b,"");try{(await Ye({...e(l),isEditing:e(x),editTaskName:j})).message?(O("success",`${e(x)?"Updated":"Added"}: ${e(l).taskName}`),n(y,!1),n(v,await le())):n(b,"Failed to save. Please try again.")}catch{n(b,"Network error.")}}async function ae(){try{(await Ze(e(g))).message?(O("success",`Deleted: ${e(g)}`),n(v,await le())):O("error","Could not delete cron job.")}catch{O("error","Network error.")}n(k,!1),n(g,"")}function se(a){var c;return((c=e(d).find(p=>p.value===a))==null?void 0:c.label)??a}Be(async()=>{await(async a=>(n(v,a[0]),n(d,a[1])))(await Promise.all([le(),We()]))}),Je();var ve=vt(),ue=ie(ve);const Ne=he(()=>e(x)?"Edit Cron Job":"New Cron Job");ke(ue,{get title(){return e(Ne)},get open(){return e(y)},set open(a){n(y,a)},children:(a,c)=>{var p=rt(),E=o(p),A=o(E),N=i(o(A),2),I=o(N,!0);s(N),s(A);var w=i(A,2);me(w),s(E);var P=i(E,2),D=i(o(P),2);T(()=>{e(l),Le(()=>{e(d)})});var M=o(D);M.value=((M.__value="")==null,"");var L=i(M);ge(L,1,()=>e(d),be,(h,m)=>{var $=at(),q={},oe=o($,!0);s($),T(()=>{q!==(q=e(m).value)&&($.value=($.__value=e(m).value)==null?"":e(m).value),C(oe,e(m).label)}),f(h,$)}),s(D),s(P);var z=i(P,2),G=i(o(z),2);me(G),s(z);var V=i(z,2);{var W=h=>{var m=st(),$=o(m,!0);s(m),T(()=>C($,e(b))),f(h,m)};Z(V,h=>{e(b)&&h(W)})}var Y=i(V,2);R(Y,{type:"submit",size:"md",children:(h,m)=>{B();var $=F();T(()=>C($,e(x)?"Save Changes":"Add Cron Job")),f(h,$)},$$slots:{default:!0}}),s(p),T(()=>{C(I,e(x)?"Name is the ID — cannot be changed":"Use a unique, meaningful name"),w.disabled=e(x)}),ye(w,()=>e(l).taskName,h=>ne(l,e(l).taskName=h)),Qe(D,()=>e(l).cronExpression,h=>ne(l,e(l).cronExpression=h)),ye(G,()=>e(l).tags,h=>ne(l,e(l).tags=h)),K("submit",p,Xe(Q)),f(a,p)},$$slots:{default:!0},$$legacy:!0});var ce=i(ue,2);ke(ce,{title:"Delete Cron Job",get open(){return e(k)},set open(a){n(k,a)},children:(a,c)=>{var p=ot(),E=ie(p),A=i(o(E)),N=o(A,!0);s(A),B(),s(E);var I=i(E,2),w=o(I);R(w,{variant:"danger",$$events:{click:ae},children:(D,M)=>{B();var L=F("Delete");f(D,L)},$$slots:{default:!0}});var P=i(w,2);R(P,{variant:"ghost",$$events:{click:()=>n(k,!1)},children:(D,M)=>{B();var L=F("Cancel");f(D,L)},$$slots:{default:!0}}),s(I),T(()=>C(N,e(g))),f(a,p)},$$slots:{default:!0},$$legacy:!0});var re=i(ce,2),fe=o(re),Ce=i(o(fe),2);R(Ce,{$$events:{click:U},children:(a,c)=>{B();var p=F("+ New Job");f(a,p)},$$slots:{default:!0}}),s(fe),s(re);var pe=i(re,2);{var Te=a=>{var c=nt(),p=o(c,!0);s(c),T(()=>{ze(c,`toast alert alert-${e(_).type??""} svelte-1ugkbyh`),C(p,e(_).message)}),de(3,c,()=>Re,()=>({y:-8,duration:240})),f(a,c)};Z(pe,a=>{e(_)&&a(Te)})}var _e=i(pe,2),Se=o(_e);{var Pe=a=>{var c=lt();f(a,c)},De=a=>{var c=dt(),p=o(c),E=i(o(p));ge(E,5,()=>e(v),be,(A,N,I)=>{var w=it();we(w,"style",`animation-delay: ${I*45}ms`);var P=o(w),D=o(P,!0);s(P);var M=i(P),L=o(M);Ge(L,{variant:"schedule",children:(m,$)=>{B();var q=F();T(oe=>C(q,oe),[()=>se(e(N).cronExpression)],he),f(m,q)},$$slots:{default:!0}}),s(M);var z=i(M),G=o(z),V=o(G,!0);s(G),s(z);var W=i(z),Y=o(W);R(Y,{variant:"ghost",size:"sm",$$events:{click:()=>ee(e(N))},children:(m,$)=>{B();var q=F("Edit");f(m,q)},$$slots:{default:!0}});var h=i(Y,2);R(h,{variant:"danger",size:"sm",$$events:{click:()=>te(e(N).taskName)},children:(m,$)=>{B();var q=F("Delete");f(m,q)},$$slots:{default:!0}}),s(W),s(w),T(()=>{C(D,e(N).taskName),C(V,e(N).tags)}),f(A,w)}),s(E),s(p),s(c),f(a,c)};Z(Se,a=>{e(v).length===0?a(Pe):a(De,!1)})}s(_e),f(t,ve),je()}export{kt as component};
@@ -1,34 +0,0 @@
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
-
21
- Plum is free software: you can redistribute it and/or modify
22
- it under the terms of the GNU General Public License as published by
23
- the Free Software Foundation, either version 3 of the License, or
24
- (at your option) any later version.
25
-
26
- Plum is distributed in the hope that it will be useful,
27
- but WITHOUT ANY WARRANTY; without even the implied warranty of
28
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29
- GNU General Public License for more details.
30
-
31
- You should have received a copy of the GNU General Public License
32
- along with Plum. If not, see https://www.gnu.org/licenses/.
33
- */
34
- .badge.svelte-imjoo5{display:inline-flex;align-items:center;font-size:.68rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;padding:.2rem .6rem;border-radius:100px;white-space:nowrap}.pass.svelte-imjoo5{background:var(--pass-soft);color:var(--pass)}.fail.svelte-imjoo5{background:var(--fail-soft);color:var(--fail)}.tag.svelte-imjoo5{background:var(--accent-soft);color:var(--accent)}.schedule.svelte-imjoo5{background:var(--warn-soft);color:var(--warn)}.neutral.svelte-imjoo5{background:var(--bg-subtle);color:var(--text-muted);border:1px solid var(--border)}