plum-e2e 2.10.0 → 2.12.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 (650) hide show
  1. package/.env +1 -1
  2. package/CLAUDE.md +1 -1
  3. package/README.md +7 -7
  4. package/backend/app.js +1 -1
  5. package/backend/lib/csv.js +21 -0
  6. package/backend/lib/exportResponse.js +37 -0
  7. package/backend/lib/serverBootstrap.js +2 -2
  8. package/backend/lib/serverConfig.js +5 -3
  9. package/backend/mcp/server.js +44 -0
  10. package/backend/middleware/runnerOrAdmin.js +1 -1
  11. package/backend/package.json +1 -1
  12. package/backend/routes/reports.routes.js +19 -0
  13. package/backend/routes/runners.routes.js +1 -1
  14. package/backend/routes/test-cases.routes.js +12 -0
  15. package/backend/routes/test-runs.routes.js +17 -0
  16. package/backend/routes/test-suites.routes.js +34 -0
  17. package/backend/scripts/{manage-runners.mjs → manage-nodes.mjs} +67 -52
  18. package/backend/services/exportService.js +339 -0
  19. package/backend/services/testImportService.js +87 -0
  20. package/bin/plum.js +174 -68
  21. package/docker-compose.yml +1 -1
  22. package/frontend/.svelte-kit/adapter-node/.vite/manifest.json +48 -40
  23. package/frontend/.svelte-kit/{output/server/_app/immutable/assets/Toast.DENwYn3g.css → adapter-node/_app/immutable/assets/Button.C1zsJAUG.css} +1 -1
  24. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/ExportMenu.DsJQ1Qua.css +6 -0
  25. package/frontend/{build/client/_app/immutable/assets/_layout.HkPnpRl9.css → .svelte-kit/adapter-node/_app/immutable/assets/_layout.B4TT3qNx.css} +1 -1
  26. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.4bPj83tb.css +6 -0
  27. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BwgtEi_a.css +6 -0
  28. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.DOC8fPSI.css +6 -0
  29. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.Dm1nSEgE.css +6 -0
  30. package/frontend/.svelte-kit/adapter-node/chunks/{Toast.js → Button.js} +2 -17
  31. package/frontend/.svelte-kit/adapter-node/chunks/ConfirmModal.js +1 -1
  32. package/frontend/.svelte-kit/adapter-node/chunks/EmptyState.js +1 -1
  33. package/frontend/.svelte-kit/adapter-node/chunks/common.js +11 -4
  34. package/frontend/.svelte-kit/adapter-node/chunks/constants.js +1 -1
  35. package/frontend/.svelte-kit/adapter-node/chunks/internal.js +1 -1
  36. package/frontend/.svelte-kit/adapter-node/chunks/repository.js +21 -17
  37. package/frontend/.svelte-kit/adapter-node/entries/pages/_layout.svelte.js +2 -0
  38. package/frontend/.svelte-kit/adapter-node/entries/pages/reports/_id_/_page.svelte.js +11 -2
  39. package/frontend/.svelte-kit/adapter-node/entries/pages/scheduled-tests/_page.svelte.js +2 -5
  40. package/frontend/.svelte-kit/adapter-node/entries/pages/settings/_page.svelte.js +300 -253
  41. package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/_page.svelte.js +55 -36
  42. package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/runs/_id_/_page.svelte.js +3 -6
  43. package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/suites/_id_/_page.svelte.js +15 -17
  44. package/frontend/.svelte-kit/adapter-node/manifest-full.js +1 -1
  45. package/frontend/.svelte-kit/adapter-node/manifest.js +1 -1
  46. package/frontend/.svelte-kit/adapter-node/nodes/0.js +2 -2
  47. package/frontend/.svelte-kit/adapter-node/nodes/1.js +1 -1
  48. package/frontend/.svelte-kit/adapter-node/nodes/10.js +2 -2
  49. package/frontend/.svelte-kit/adapter-node/nodes/11.js +2 -2
  50. package/frontend/.svelte-kit/adapter-node/nodes/12.js +2 -2
  51. package/frontend/.svelte-kit/adapter-node/nodes/2.js +1 -1
  52. package/frontend/.svelte-kit/adapter-node/nodes/3.js +1 -1
  53. package/frontend/.svelte-kit/adapter-node/nodes/4.js +1 -1
  54. package/frontend/.svelte-kit/adapter-node/nodes/5.js +1 -1
  55. package/frontend/.svelte-kit/adapter-node/nodes/6.js +2 -2
  56. package/frontend/.svelte-kit/adapter-node/nodes/7.js +2 -2
  57. package/frontend/.svelte-kit/adapter-node/nodes/8.js +2 -2
  58. package/frontend/.svelte-kit/adapter-node/nodes/9.js +1 -1
  59. package/frontend/.svelte-kit/generated/server/internal.js +1 -1
  60. package/frontend/.svelte-kit/output/client/.vite/manifest.json +459 -412
  61. package/frontend/.svelte-kit/output/client/_app/immutable/assets/{0.CmJTG5mP.css → 0.BEqlRAtD.css} +1 -1
  62. package/frontend/.svelte-kit/output/client/_app/immutable/assets/10.DC0wD6w_.css +6 -0
  63. package/frontend/.svelte-kit/output/client/_app/immutable/assets/12.Dm1nSEgE.css +6 -0
  64. package/frontend/.svelte-kit/output/client/_app/immutable/assets/6.DdQVxyZK.css +6 -0
  65. package/frontend/.svelte-kit/output/client/_app/immutable/assets/8.DOC8fPSI.css +6 -0
  66. package/frontend/.svelte-kit/{adapter-node/_app/immutable/assets/Toast.DENwYn3g.css → output/client/_app/immutable/assets/Button.C1zsJAUG.css} +1 -1
  67. package/frontend/.svelte-kit/output/client/_app/immutable/assets/ExportMenu.DsJQ1Qua.css +6 -0
  68. package/frontend/.svelte-kit/output/client/_app/immutable/assets/{_layout.HkPnpRl9.css → _layout.B4TT3qNx.css} +1 -1
  69. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.4bPj83tb.css +6 -0
  70. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BwgtEi_a.css +6 -0
  71. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.DOC8fPSI.css +6 -0
  72. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.Dm1nSEgE.css +6 -0
  73. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{C2_rQ4aY.js → 3MBVX4Yb.js} +1 -1
  74. package/frontend/{build/client/_app/immutable/chunks/CfkUW1vA.js → .svelte-kit/output/client/_app/immutable/chunks/6VDMVB5U.js} +1 -1
  75. package/frontend/{build/client/_app/immutable/chunks/B0_HKFXV.js → .svelte-kit/output/client/_app/immutable/chunks/B2lVGNml.js} +1 -1
  76. package/frontend/{build/client/_app/immutable/chunks/CboYYxrf.js → .svelte-kit/output/client/_app/immutable/chunks/BCh31ecr.js} +1 -1
  77. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BDb8hZHu.js +6 -0
  78. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{CeH-RgMb.js → BIf7lHIm.js} +1 -1
  79. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BIjh3jiU.js +8 -0
  80. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BTV7EXZb.js +11 -0
  81. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{DAmOMhaf.js → BWGoOYU0.js} +1 -1
  82. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BdBJfKUi.js +6 -0
  83. package/frontend/{build/client/_app/immutable/chunks/BAvTKHxT.js → .svelte-kit/output/client/_app/immutable/chunks/BnXsGCy3.js} +1 -1
  84. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BtTNggoY.js +8 -0
  85. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/C4Z3p6jE.js +6 -0
  86. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CNpD-yNH.js +6 -0
  87. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CUPWZLIN.js +6 -0
  88. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{Ck6C3Fl0.js → CXQhSK1T.js} +1 -1
  89. package/frontend/{build/client/_app/immutable/chunks/C00jnSU2.js → .svelte-kit/output/client/_app/immutable/chunks/CtgCYzu5.js} +1 -1
  90. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/D72giPTu.js +6 -0
  91. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{GDjpV3r7.js → DDx3no2z.js} +1 -1
  92. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/D_thT6pZ.js +6 -0
  93. package/frontend/{build/client/_app/immutable/chunks/C8S7qQjQ.js → .svelte-kit/output/client/_app/immutable/chunks/DeiVAbyn.js} +1 -1
  94. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DiexacSB.js +6 -0
  95. package/frontend/{build/client/_app/immutable/chunks/d2K3c8Kx.js → .svelte-kit/output/client/_app/immutable/chunks/Dlymnwnf.js} +1 -1
  96. package/frontend/{build/client/_app/immutable/chunks/Cgw8TOOy.js → .svelte-kit/output/client/_app/immutable/chunks/gCgJ3Cwu.js} +1 -1
  97. package/frontend/{build/client/_app/immutable/chunks/BJ_ypKl3.js → .svelte-kit/output/client/_app/immutable/chunks/htkwR9b-.js} +1 -1
  98. package/frontend/{build/client/_app/immutable/chunks/C7uEQ-LH.js → .svelte-kit/output/client/_app/immutable/chunks/iL4SCrvY.js} +1 -1
  99. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{CoTEzvLa.js → kFFd6Oo5.js} +1 -1
  100. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/pNZogwkM.js +6 -0
  101. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{DWzEJYIF.js → prk8PJfA.js} +1 -1
  102. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/qvxlSGpD.js +6 -0
  103. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/r_d1Iu0W.js +6 -0
  104. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{B00vxw57.js → tsOANt55.js} +1 -1
  105. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/zXSLr47H.js +6 -0
  106. package/frontend/.svelte-kit/output/client/_app/immutable/entry/app.DgdSwPuN.js +7 -0
  107. package/frontend/{build/client/_app/immutable/entry/start.BXOLyf9R.js → .svelte-kit/output/client/_app/immutable/entry/start.D_lhI48n.js} +1 -1
  108. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/0.D2F-i1I5.js +6 -0
  109. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{1.BI97il3r.js → 1.JIF2GfHq.js} +1 -1
  110. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/10.A0AHLfOt.js +6 -0
  111. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/11.CVSPxlqY.js +6 -0
  112. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/12.CnAR0AQb.js +6 -0
  113. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{2.Dr6yugXz.js → 2.Bno00fr8.js} +1 -1
  114. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/3.B6KwaCsM.js +6 -0
  115. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{4.DDADylfF.js → 4.BX70m3v6.js} +1 -1
  116. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/5.UIFh06yr.js +6 -0
  117. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/6.DZ1OV24V.js +10 -0
  118. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/7.B_XntBZ1.js +6 -0
  119. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/8.CVHgJw-E.js +9 -0
  120. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{9.BOK0GNF_.js → 9.DDDQPmMj.js} +1 -1
  121. package/frontend/.svelte-kit/output/client/_app/version.json +1 -1
  122. package/frontend/.svelte-kit/output/server/.vite/manifest.json +48 -40
  123. package/frontend/{build/client/_app/immutable/assets/Toast.DENwYn3g.css → .svelte-kit/output/server/_app/immutable/assets/Button.C1zsJAUG.css} +1 -1
  124. package/frontend/.svelte-kit/output/server/_app/immutable/assets/ExportMenu.DsJQ1Qua.css +6 -0
  125. package/frontend/.svelte-kit/{adapter-node/_app/immutable/assets/_layout.HkPnpRl9.css → output/server/_app/immutable/assets/_layout.B4TT3qNx.css} +1 -1
  126. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.4bPj83tb.css +6 -0
  127. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BwgtEi_a.css +6 -0
  128. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.DOC8fPSI.css +6 -0
  129. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Dm1nSEgE.css +6 -0
  130. package/frontend/.svelte-kit/output/server/chunks/{Toast.js → Button.js} +2 -17
  131. package/frontend/.svelte-kit/output/server/chunks/ConfirmModal.js +1 -1
  132. package/frontend/.svelte-kit/output/server/chunks/EmptyState.js +1 -1
  133. package/frontend/.svelte-kit/output/server/chunks/common.js +11 -4
  134. package/frontend/.svelte-kit/output/server/chunks/constants.js +1 -1
  135. package/frontend/.svelte-kit/output/server/chunks/internal.js +1 -1
  136. package/frontend/.svelte-kit/output/server/chunks/repository.js +21 -17
  137. package/frontend/.svelte-kit/output/server/entries/pages/_layout.svelte.js +2 -0
  138. package/frontend/.svelte-kit/output/server/entries/pages/reports/_id_/_page.svelte.js +11 -2
  139. package/frontend/.svelte-kit/output/server/entries/pages/scheduled-tests/_page.svelte.js +2 -5
  140. package/frontend/.svelte-kit/output/server/entries/pages/settings/_page.svelte.js +300 -253
  141. package/frontend/.svelte-kit/output/server/entries/pages/test-repository/_page.svelte.js +55 -36
  142. package/frontend/.svelte-kit/output/server/entries/pages/test-repository/runs/_id_/_page.svelte.js +3 -6
  143. package/frontend/.svelte-kit/output/server/entries/pages/test-repository/suites/_id_/_page.svelte.js +15 -17
  144. package/frontend/.svelte-kit/output/server/manifest-full.js +1 -1
  145. package/frontend/.svelte-kit/output/server/manifest.js +1 -1
  146. package/frontend/.svelte-kit/output/server/nodes/0.js +2 -2
  147. package/frontend/.svelte-kit/output/server/nodes/1.js +1 -1
  148. package/frontend/.svelte-kit/output/server/nodes/10.js +2 -2
  149. package/frontend/.svelte-kit/output/server/nodes/11.js +2 -2
  150. package/frontend/.svelte-kit/output/server/nodes/12.js +2 -2
  151. package/frontend/.svelte-kit/output/server/nodes/2.js +1 -1
  152. package/frontend/.svelte-kit/output/server/nodes/3.js +1 -1
  153. package/frontend/.svelte-kit/output/server/nodes/4.js +1 -1
  154. package/frontend/.svelte-kit/output/server/nodes/5.js +1 -1
  155. package/frontend/.svelte-kit/output/server/nodes/6.js +2 -2
  156. package/frontend/.svelte-kit/output/server/nodes/7.js +2 -2
  157. package/frontend/.svelte-kit/output/server/nodes/8.js +2 -2
  158. package/frontend/.svelte-kit/output/server/nodes/9.js +1 -1
  159. package/frontend/build/client/_app/immutable/assets/{0.CmJTG5mP.css → 0.BEqlRAtD.css} +1 -1
  160. package/frontend/build/client/_app/immutable/assets/0.BEqlRAtD.css.br +0 -0
  161. package/frontend/build/client/_app/immutable/assets/0.BEqlRAtD.css.gz +0 -0
  162. package/frontend/build/client/_app/immutable/assets/10.DC0wD6w_.css +6 -0
  163. package/frontend/build/client/_app/immutable/assets/10.DC0wD6w_.css.br +0 -0
  164. package/frontend/build/client/_app/immutable/assets/10.DC0wD6w_.css.gz +0 -0
  165. package/frontend/build/client/_app/immutable/assets/12.Dm1nSEgE.css +6 -0
  166. package/frontend/build/client/_app/immutable/assets/12.Dm1nSEgE.css.br +0 -0
  167. package/frontend/build/client/_app/immutable/assets/12.Dm1nSEgE.css.gz +0 -0
  168. package/frontend/build/client/_app/immutable/assets/6.DdQVxyZK.css +6 -0
  169. package/frontend/build/client/_app/immutable/assets/6.DdQVxyZK.css.br +0 -0
  170. package/frontend/build/client/_app/immutable/assets/6.DdQVxyZK.css.gz +0 -0
  171. package/frontend/build/client/_app/immutable/assets/8.DOC8fPSI.css +6 -0
  172. package/frontend/build/client/_app/immutable/assets/8.DOC8fPSI.css.br +0 -0
  173. package/frontend/build/client/_app/immutable/assets/8.DOC8fPSI.css.gz +0 -0
  174. package/frontend/{.svelte-kit/output/client/_app/immutable/assets/Toast.DENwYn3g.css → build/client/_app/immutable/assets/Button.C1zsJAUG.css} +1 -1
  175. package/frontend/build/client/_app/immutable/assets/Button.C1zsJAUG.css.br +0 -0
  176. package/frontend/build/client/_app/immutable/assets/Button.C1zsJAUG.css.gz +0 -0
  177. package/frontend/build/client/_app/immutable/assets/ExportMenu.DsJQ1Qua.css +6 -0
  178. package/frontend/build/client/_app/immutable/assets/ExportMenu.DsJQ1Qua.css.br +0 -0
  179. package/frontend/build/client/_app/immutable/assets/ExportMenu.DsJQ1Qua.css.gz +0 -0
  180. package/frontend/{.svelte-kit/output/server/_app/immutable/assets/_layout.HkPnpRl9.css → build/client/_app/immutable/assets/_layout.B4TT3qNx.css} +1 -1
  181. package/frontend/build/client/_app/immutable/assets/_layout.B4TT3qNx.css.br +0 -0
  182. package/frontend/build/client/_app/immutable/assets/_layout.B4TT3qNx.css.gz +0 -0
  183. package/frontend/build/client/_app/immutable/assets/_page.4bPj83tb.css +6 -0
  184. package/frontend/build/client/_app/immutable/assets/_page.4bPj83tb.css.br +0 -0
  185. package/frontend/build/client/_app/immutable/assets/_page.4bPj83tb.css.gz +0 -0
  186. package/frontend/build/client/_app/immutable/assets/_page.BwgtEi_a.css +6 -0
  187. package/frontend/build/client/_app/immutable/assets/_page.BwgtEi_a.css.br +0 -0
  188. package/frontend/build/client/_app/immutable/assets/_page.BwgtEi_a.css.gz +0 -0
  189. package/frontend/build/client/_app/immutable/assets/_page.DOC8fPSI.css +6 -0
  190. package/frontend/build/client/_app/immutable/assets/_page.DOC8fPSI.css.br +0 -0
  191. package/frontend/build/client/_app/immutable/assets/_page.DOC8fPSI.css.gz +0 -0
  192. package/frontend/build/client/_app/immutable/assets/_page.Dm1nSEgE.css +6 -0
  193. package/frontend/build/client/_app/immutable/assets/_page.Dm1nSEgE.css.br +0 -0
  194. package/frontend/build/client/_app/immutable/assets/_page.Dm1nSEgE.css.gz +0 -0
  195. package/frontend/build/client/_app/immutable/chunks/{C2_rQ4aY.js → 3MBVX4Yb.js} +1 -1
  196. package/frontend/build/client/_app/immutable/chunks/3MBVX4Yb.js.br +0 -0
  197. package/frontend/build/client/_app/immutable/chunks/3MBVX4Yb.js.gz +0 -0
  198. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/CfkUW1vA.js → build/client/_app/immutable/chunks/6VDMVB5U.js} +1 -1
  199. package/frontend/build/client/_app/immutable/chunks/6VDMVB5U.js.br +0 -0
  200. package/frontend/build/client/_app/immutable/chunks/6VDMVB5U.js.gz +0 -0
  201. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/B0_HKFXV.js → build/client/_app/immutable/chunks/B2lVGNml.js} +1 -1
  202. package/frontend/build/client/_app/immutable/chunks/B2lVGNml.js.br +0 -0
  203. package/frontend/build/client/_app/immutable/chunks/B2lVGNml.js.gz +0 -0
  204. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/CboYYxrf.js → build/client/_app/immutable/chunks/BCh31ecr.js} +1 -1
  205. package/frontend/build/client/_app/immutable/chunks/BCh31ecr.js.br +6 -0
  206. package/frontend/build/client/_app/immutable/chunks/BCh31ecr.js.gz +0 -0
  207. package/frontend/build/client/_app/immutable/chunks/BDb8hZHu.js +6 -0
  208. package/frontend/build/client/_app/immutable/chunks/BDb8hZHu.js.br +0 -0
  209. package/frontend/build/client/_app/immutable/chunks/BDb8hZHu.js.gz +0 -0
  210. package/frontend/build/client/_app/immutable/chunks/{CeH-RgMb.js → BIf7lHIm.js} +1 -1
  211. package/frontend/build/client/_app/immutable/chunks/BIf7lHIm.js.br +0 -0
  212. package/frontend/build/client/_app/immutable/chunks/{CeH-RgMb.js.gz → BIf7lHIm.js.gz} +0 -0
  213. package/frontend/build/client/_app/immutable/chunks/BIjh3jiU.js +8 -0
  214. package/frontend/build/client/_app/immutable/chunks/BIjh3jiU.js.br +0 -0
  215. package/frontend/build/client/_app/immutable/chunks/BIjh3jiU.js.gz +0 -0
  216. package/frontend/build/client/_app/immutable/chunks/BTV7EXZb.js +11 -0
  217. package/frontend/build/client/_app/immutable/chunks/BTV7EXZb.js.br +0 -0
  218. package/frontend/build/client/_app/immutable/chunks/BTV7EXZb.js.gz +0 -0
  219. package/frontend/build/client/_app/immutable/chunks/{DAmOMhaf.js → BWGoOYU0.js} +1 -1
  220. package/frontend/build/client/_app/immutable/chunks/BWGoOYU0.js.br +0 -0
  221. package/frontend/build/client/_app/immutable/chunks/BWGoOYU0.js.gz +0 -0
  222. package/frontend/build/client/_app/immutable/chunks/BdBJfKUi.js +6 -0
  223. package/frontend/build/client/_app/immutable/chunks/BdBJfKUi.js.br +0 -0
  224. package/frontend/build/client/_app/immutable/chunks/BdBJfKUi.js.gz +0 -0
  225. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/BAvTKHxT.js → build/client/_app/immutable/chunks/BnXsGCy3.js} +1 -1
  226. package/frontend/build/client/_app/immutable/chunks/BnXsGCy3.js.br +0 -0
  227. package/frontend/build/client/_app/immutable/chunks/BnXsGCy3.js.gz +0 -0
  228. package/frontend/build/client/_app/immutable/chunks/BtTNggoY.js +8 -0
  229. package/frontend/build/client/_app/immutable/chunks/BtTNggoY.js.br +0 -0
  230. package/frontend/build/client/_app/immutable/chunks/BtTNggoY.js.gz +0 -0
  231. package/frontend/build/client/_app/immutable/chunks/C4Z3p6jE.js +6 -0
  232. package/frontend/build/client/_app/immutable/chunks/C4Z3p6jE.js.br +0 -0
  233. package/frontend/build/client/_app/immutable/chunks/C4Z3p6jE.js.gz +0 -0
  234. package/frontend/build/client/_app/immutable/chunks/CNpD-yNH.js +6 -0
  235. package/frontend/build/client/_app/immutable/chunks/CNpD-yNH.js.br +0 -0
  236. package/frontend/build/client/_app/immutable/chunks/CNpD-yNH.js.gz +0 -0
  237. package/frontend/build/client/_app/immutable/chunks/CUPWZLIN.js +6 -0
  238. package/frontend/build/client/_app/immutable/chunks/CUPWZLIN.js.br +0 -0
  239. package/frontend/build/client/_app/immutable/chunks/CUPWZLIN.js.gz +0 -0
  240. package/frontend/build/client/_app/immutable/chunks/{Ck6C3Fl0.js → CXQhSK1T.js} +1 -1
  241. package/frontend/build/client/_app/immutable/chunks/CXQhSK1T.js.br +0 -0
  242. package/frontend/build/client/_app/immutable/chunks/CXQhSK1T.js.gz +0 -0
  243. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/C00jnSU2.js → build/client/_app/immutable/chunks/CtgCYzu5.js} +1 -1
  244. package/frontend/build/client/_app/immutable/chunks/CtgCYzu5.js.br +0 -0
  245. package/frontend/build/client/_app/immutable/chunks/CtgCYzu5.js.gz +0 -0
  246. package/frontend/build/client/_app/immutable/chunks/D72giPTu.js +6 -0
  247. package/frontend/build/client/_app/immutable/chunks/D72giPTu.js.br +0 -0
  248. package/frontend/build/client/_app/immutable/chunks/D72giPTu.js.gz +0 -0
  249. package/frontend/build/client/_app/immutable/chunks/{GDjpV3r7.js → DDx3no2z.js} +1 -1
  250. package/frontend/build/client/_app/immutable/chunks/DDx3no2z.js.br +0 -0
  251. package/frontend/build/client/_app/immutable/chunks/DDx3no2z.js.gz +0 -0
  252. package/frontend/build/client/_app/immutable/chunks/D_thT6pZ.js +6 -0
  253. package/frontend/build/client/_app/immutable/chunks/D_thT6pZ.js.br +0 -0
  254. package/frontend/build/client/_app/immutable/chunks/D_thT6pZ.js.gz +0 -0
  255. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/C8S7qQjQ.js → build/client/_app/immutable/chunks/DeiVAbyn.js} +1 -1
  256. package/frontend/build/client/_app/immutable/chunks/DeiVAbyn.js.br +6 -0
  257. package/frontend/build/client/_app/immutable/chunks/DeiVAbyn.js.gz +0 -0
  258. package/frontend/build/client/_app/immutable/chunks/DiexacSB.js +6 -0
  259. package/frontend/build/client/_app/immutable/chunks/DiexacSB.js.br +0 -0
  260. package/frontend/build/client/_app/immutable/chunks/DiexacSB.js.gz +0 -0
  261. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/d2K3c8Kx.js → build/client/_app/immutable/chunks/Dlymnwnf.js} +1 -1
  262. package/frontend/build/client/_app/immutable/chunks/Dlymnwnf.js.br +0 -0
  263. package/frontend/build/client/_app/immutable/chunks/Dlymnwnf.js.gz +0 -0
  264. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/Cgw8TOOy.js → build/client/_app/immutable/chunks/gCgJ3Cwu.js} +1 -1
  265. package/frontend/build/client/_app/immutable/chunks/gCgJ3Cwu.js.br +0 -0
  266. package/frontend/build/client/_app/immutable/chunks/gCgJ3Cwu.js.gz +0 -0
  267. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/BJ_ypKl3.js → build/client/_app/immutable/chunks/htkwR9b-.js} +1 -1
  268. package/frontend/build/client/_app/immutable/chunks/htkwR9b-.js.br +0 -0
  269. package/frontend/build/client/_app/immutable/chunks/htkwR9b-.js.gz +0 -0
  270. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/C7uEQ-LH.js → build/client/_app/immutable/chunks/iL4SCrvY.js} +1 -1
  271. package/frontend/build/client/_app/immutable/chunks/iL4SCrvY.js.br +0 -0
  272. package/frontend/build/client/_app/immutable/chunks/iL4SCrvY.js.gz +0 -0
  273. package/frontend/build/client/_app/immutable/chunks/{CoTEzvLa.js → kFFd6Oo5.js} +1 -1
  274. package/frontend/build/client/_app/immutable/chunks/kFFd6Oo5.js.br +0 -0
  275. package/frontend/build/client/_app/immutable/chunks/kFFd6Oo5.js.gz +0 -0
  276. package/frontend/build/client/_app/immutable/chunks/pNZogwkM.js +6 -0
  277. package/frontend/build/client/_app/immutable/chunks/pNZogwkM.js.br +0 -0
  278. package/frontend/build/client/_app/immutable/chunks/pNZogwkM.js.gz +0 -0
  279. package/frontend/build/client/_app/immutable/chunks/{DWzEJYIF.js → prk8PJfA.js} +1 -1
  280. package/frontend/build/client/_app/immutable/chunks/prk8PJfA.js.br +0 -0
  281. package/frontend/build/client/_app/immutable/chunks/prk8PJfA.js.gz +0 -0
  282. package/frontend/build/client/_app/immutable/chunks/qvxlSGpD.js +6 -0
  283. package/frontend/build/client/_app/immutable/chunks/qvxlSGpD.js.br +0 -0
  284. package/frontend/build/client/_app/immutable/chunks/qvxlSGpD.js.gz +0 -0
  285. package/frontend/build/client/_app/immutable/chunks/r_d1Iu0W.js +6 -0
  286. package/frontend/build/client/_app/immutable/chunks/r_d1Iu0W.js.br +0 -0
  287. package/frontend/build/client/_app/immutable/chunks/r_d1Iu0W.js.gz +0 -0
  288. package/frontend/build/client/_app/immutable/chunks/{B00vxw57.js → tsOANt55.js} +1 -1
  289. package/frontend/build/client/_app/immutable/chunks/tsOANt55.js.br +0 -0
  290. package/frontend/build/client/_app/immutable/chunks/tsOANt55.js.gz +0 -0
  291. package/frontend/build/client/_app/immutable/chunks/zXSLr47H.js +6 -0
  292. package/frontend/build/client/_app/immutable/chunks/zXSLr47H.js.br +0 -0
  293. package/frontend/build/client/_app/immutable/chunks/zXSLr47H.js.gz +0 -0
  294. package/frontend/build/client/_app/immutable/entry/app.DgdSwPuN.js +7 -0
  295. package/frontend/build/client/_app/immutable/entry/app.DgdSwPuN.js.br +0 -0
  296. package/frontend/build/client/_app/immutable/entry/app.DgdSwPuN.js.gz +0 -0
  297. package/frontend/{.svelte-kit/output/client/_app/immutable/entry/start.BXOLyf9R.js → build/client/_app/immutable/entry/start.D_lhI48n.js} +1 -1
  298. package/frontend/build/client/_app/immutable/entry/{start.BXOLyf9R.js.br → start.D_lhI48n.js.br} +1 -1
  299. package/frontend/build/client/_app/immutable/entry/{start.BXOLyf9R.js.gz → start.D_lhI48n.js.gz} +0 -0
  300. package/frontend/build/client/_app/immutable/nodes/0.D2F-i1I5.js +6 -0
  301. package/frontend/build/client/_app/immutable/nodes/0.D2F-i1I5.js.br +0 -0
  302. package/frontend/build/client/_app/immutable/nodes/0.D2F-i1I5.js.gz +0 -0
  303. package/frontend/build/client/_app/immutable/nodes/{1.BI97il3r.js → 1.JIF2GfHq.js} +1 -1
  304. package/frontend/build/client/_app/immutable/nodes/1.JIF2GfHq.js.br +5 -0
  305. package/frontend/build/client/_app/immutable/nodes/1.JIF2GfHq.js.gz +0 -0
  306. package/frontend/build/client/_app/immutable/nodes/10.A0AHLfOt.js +6 -0
  307. package/frontend/build/client/_app/immutable/nodes/10.A0AHLfOt.js.br +0 -0
  308. package/frontend/build/client/_app/immutable/nodes/10.A0AHLfOt.js.gz +0 -0
  309. package/frontend/build/client/_app/immutable/nodes/11.CVSPxlqY.js +6 -0
  310. package/frontend/build/client/_app/immutable/nodes/11.CVSPxlqY.js.br +0 -0
  311. package/frontend/build/client/_app/immutable/nodes/11.CVSPxlqY.js.gz +0 -0
  312. package/frontend/build/client/_app/immutable/nodes/12.CnAR0AQb.js +6 -0
  313. package/frontend/build/client/_app/immutable/nodes/12.CnAR0AQb.js.br +0 -0
  314. package/frontend/build/client/_app/immutable/nodes/12.CnAR0AQb.js.gz +0 -0
  315. package/frontend/build/client/_app/immutable/nodes/{2.Dr6yugXz.js → 2.Bno00fr8.js} +1 -1
  316. package/frontend/build/client/_app/immutable/nodes/2.Bno00fr8.js.br +0 -0
  317. package/frontend/build/client/_app/immutable/nodes/2.Bno00fr8.js.gz +0 -0
  318. package/frontend/build/client/_app/immutable/nodes/3.B6KwaCsM.js +6 -0
  319. package/frontend/build/client/_app/immutable/nodes/3.B6KwaCsM.js.br +0 -0
  320. package/frontend/build/client/_app/immutable/nodes/3.B6KwaCsM.js.gz +0 -0
  321. package/frontend/build/client/_app/immutable/nodes/{4.DDADylfF.js → 4.BX70m3v6.js} +1 -1
  322. package/frontend/build/client/_app/immutable/nodes/4.BX70m3v6.js.br +0 -0
  323. package/frontend/build/client/_app/immutable/nodes/4.BX70m3v6.js.gz +0 -0
  324. package/frontend/build/client/_app/immutable/nodes/5.UIFh06yr.js +6 -0
  325. package/frontend/build/client/_app/immutable/nodes/5.UIFh06yr.js.br +0 -0
  326. package/frontend/build/client/_app/immutable/nodes/5.UIFh06yr.js.gz +0 -0
  327. package/frontend/build/client/_app/immutable/nodes/6.DZ1OV24V.js +10 -0
  328. package/frontend/build/client/_app/immutable/nodes/6.DZ1OV24V.js.br +0 -0
  329. package/frontend/build/client/_app/immutable/nodes/6.DZ1OV24V.js.gz +0 -0
  330. package/frontend/build/client/_app/immutable/nodes/7.B_XntBZ1.js +6 -0
  331. package/frontend/build/client/_app/immutable/nodes/7.B_XntBZ1.js.br +0 -0
  332. package/frontend/build/client/_app/immutable/nodes/7.B_XntBZ1.js.gz +0 -0
  333. package/frontend/build/client/_app/immutable/nodes/8.CVHgJw-E.js +9 -0
  334. package/frontend/build/client/_app/immutable/nodes/8.CVHgJw-E.js.br +0 -0
  335. package/frontend/build/client/_app/immutable/nodes/8.CVHgJw-E.js.gz +0 -0
  336. package/frontend/build/client/_app/immutable/nodes/{9.BOK0GNF_.js → 9.DDDQPmMj.js} +1 -1
  337. package/frontend/build/client/_app/immutable/nodes/9.DDDQPmMj.js.br +0 -0
  338. package/frontend/build/client/_app/immutable/nodes/9.DDDQPmMj.js.gz +0 -0
  339. package/frontend/build/client/_app/version.json +1 -1
  340. package/frontend/build/client/_app/version.json.br +0 -0
  341. package/frontend/build/client/_app/version.json.gz +0 -0
  342. package/frontend/build/server/chunks/0-38cvTs44.js +22 -0
  343. package/frontend/build/server/chunks/0-38cvTs44.js.map +5 -0
  344. package/frontend/build/server/chunks/{1-B3HpigzL.js → 1-CcYsajvR.js} +2 -2
  345. package/frontend/build/server/chunks/{1-B3HpigzL.js.map → 1-CcYsajvR.js.map} +1 -1
  346. package/frontend/build/server/chunks/10-CFR2MUJt.js +14 -0
  347. package/frontend/build/server/chunks/10-CFR2MUJt.js.map +5 -0
  348. package/frontend/build/server/chunks/11-BmkiRQ9D.js +14 -0
  349. package/frontend/build/server/chunks/11-BmkiRQ9D.js.map +5 -0
  350. package/frontend/build/server/chunks/12-BphJAwnL.js +14 -0
  351. package/frontend/build/server/chunks/12-BphJAwnL.js.map +5 -0
  352. package/frontend/build/server/chunks/2-Dalgd2D4.js +14 -0
  353. package/frontend/build/server/chunks/{2-DioMbKbC.js.map → 2-Dalgd2D4.js.map} +1 -1
  354. package/frontend/build/server/chunks/3-BvsmdXCj.js +14 -0
  355. package/frontend/build/server/chunks/{3-CgiZg_9v.js.map → 3-BvsmdXCj.js.map} +1 -1
  356. package/frontend/build/server/chunks/4-CN18WCEn.js +14 -0
  357. package/frontend/build/server/chunks/{4-BM-49dbE.js.map → 4-CN18WCEn.js.map} +1 -1
  358. package/frontend/build/server/chunks/5-BwLYF3xL.js +14 -0
  359. package/frontend/build/server/chunks/{5-Brx_KOzy.js.map → 5-BwLYF3xL.js.map} +1 -1
  360. package/frontend/build/server/chunks/6-DTM2N_k3.js +14 -0
  361. package/frontend/build/server/chunks/6-DTM2N_k3.js.map +5 -0
  362. package/frontend/build/server/chunks/7-DTNbErSe.js +14 -0
  363. package/frontend/build/server/chunks/7-DTNbErSe.js.map +5 -0
  364. package/frontend/build/server/chunks/8-BfCbb7pl.js +14 -0
  365. package/frontend/build/server/chunks/8-BfCbb7pl.js.map +5 -0
  366. package/frontend/build/server/chunks/9-CQKepnMw.js +14 -0
  367. package/frontend/build/server/chunks/{9-BMAKiAem.js.map → 9-CQKepnMw.js.map} +1 -1
  368. package/frontend/build/server/chunks/{Toast-CHB87F8k.js → Button-B9h9viZX.js} +3 -17
  369. package/frontend/build/server/chunks/Button-B9h9viZX.js.map +5 -0
  370. package/frontend/build/server/chunks/{ConfirmModal-CtGWHl0v.js → ConfirmModal-C6Cz898n.js} +2 -2
  371. package/frontend/build/server/chunks/{ConfirmModal-CtGWHl0v.js.map → ConfirmModal-C6Cz898n.js.map} +1 -1
  372. package/frontend/build/server/chunks/{EmptyState-Zpm9tJe1.js → EmptyState-CRtsJIv6.js} +2 -2
  373. package/frontend/build/server/chunks/{EmptyState-Zpm9tJe1.js.map → EmptyState-CRtsJIv6.js.map} +1 -1
  374. package/frontend/build/server/chunks/{_layout.svelte-C_6nsIpT.js → _layout.svelte-B8vZGefg.js} +6 -7
  375. package/frontend/build/server/chunks/_layout.svelte-B8vZGefg.js.map +5 -0
  376. package/frontend/build/server/chunks/{_page.svelte-CTebwzwy.js → _page.svelte-BrnXHxJ4.js} +14 -7
  377. package/frontend/build/server/chunks/_page.svelte-BrnXHxJ4.js.map +5 -0
  378. package/frontend/build/server/chunks/_page.svelte-C2WqvInJ.js +898 -0
  379. package/frontend/build/server/chunks/_page.svelte-C2WqvInJ.js.map +5 -0
  380. package/frontend/build/server/chunks/{_page.svelte-Bamoq11m.js → _page.svelte-CP6jA1ex.js} +6 -6
  381. package/frontend/build/server/chunks/{_page.svelte-Bamoq11m.js.map → _page.svelte-CP6jA1ex.js.map} +1 -1
  382. package/frontend/build/server/chunks/{_page.svelte-CbTrCeeX.js → _page.svelte-D6b-klLK.js} +9 -9
  383. package/frontend/build/server/chunks/{_page.svelte-CbTrCeeX.js.map → _page.svelte-D6b-klLK.js.map} +1 -1
  384. package/frontend/build/server/chunks/{_page.svelte-CmJKt3-H.js → _page.svelte-DBjTpquQ.js} +18 -21
  385. package/frontend/build/server/chunks/_page.svelte-DBjTpquQ.js.map +5 -0
  386. package/frontend/build/server/chunks/{_page.svelte-DHZhNTPg.js → _page.svelte-DM1_y4Oq.js} +60 -42
  387. package/frontend/build/server/chunks/_page.svelte-DM1_y4Oq.js.map +5 -0
  388. package/frontend/build/server/chunks/{_page.svelte-DObTHQe2.js → _page.svelte-Mo-O3HJ5.js} +7 -7
  389. package/frontend/build/server/chunks/{_page.svelte-DObTHQe2.js.map → _page.svelte-Mo-O3HJ5.js.map} +1 -1
  390. package/frontend/build/server/chunks/{_page.svelte-CAlhaCzS.js → _page.svelte-mZF4NrfU.js} +9 -12
  391. package/frontend/build/server/chunks/_page.svelte-mZF4NrfU.js.map +5 -0
  392. package/frontend/build/server/chunks/{_page.svelte-BNwU9zza.js → _page.svelte-nrlgIFaU.js} +8 -11
  393. package/frontend/build/server/chunks/_page.svelte-nrlgIFaU.js.map +5 -0
  394. package/frontend/build/server/chunks/{common-DYYTVHPw.js → common-DS-Z0UFe.js} +7 -2
  395. package/frontend/build/server/chunks/common-DS-Z0UFe.js.map +5 -0
  396. package/frontend/build/server/chunks/{constants-BYVkTZ-O.js → constants-OmHysD51.js} +2 -2
  397. package/frontend/build/server/chunks/{constants-BYVkTZ-O.js.map → constants-OmHysD51.js.map} +1 -1
  398. package/frontend/build/server/chunks/{format-2pqy61MU.js → format-Bqb0as15.js} +2 -2
  399. package/frontend/build/server/chunks/{format-2pqy61MU.js.map → format-Bqb0as15.js.map} +1 -1
  400. package/frontend/build/server/chunks/{reports-WuXG6tj3.js → reports-chCHCDzB.js} +2 -2
  401. package/frontend/build/server/chunks/{reports-WuXG6tj3.js.map → reports-chCHCDzB.js.map} +1 -1
  402. package/frontend/build/server/chunks/{reports2-CCpI0xkQ.js → reports2-Dr3zu9CD.js} +2 -2
  403. package/frontend/build/server/chunks/{reports2-CCpI0xkQ.js.map → reports2-Dr3zu9CD.js.map} +1 -1
  404. package/frontend/build/server/chunks/{repository-TYWcFuWP.js → repository-DSsWVKEb.js} +5 -3
  405. package/frontend/build/server/chunks/repository-DSsWVKEb.js.map +5 -0
  406. package/frontend/build/server/chunks/{runner-D5yCWOsy.js → runner-aaUtOqck.js} +3 -3
  407. package/frontend/build/server/chunks/{runner-D5yCWOsy.js.map → runner-aaUtOqck.js.map} +1 -1
  408. package/frontend/build/server/index.js +1 -1
  409. package/frontend/build/server/index.js.map +1 -1
  410. package/frontend/build/server/manifest.js +14 -14
  411. package/frontend/build/server/manifest.js.map +1 -1
  412. package/frontend/package-lock.json +14 -0
  413. package/frontend/package.json +2 -0
  414. package/frontend/src/lib/api/reports.js +7 -0
  415. package/frontend/src/lib/api/repository.js +28 -0
  416. package/frontend/src/lib/components/layout/RunnerPanel.svelte +2 -1
  417. package/frontend/src/lib/components/reports/RecordingPlayer.svelte +172 -2
  418. package/frontend/src/lib/components/ui/ExportMenu.svelte +154 -0
  419. package/frontend/src/lib/components/ui/NotificationStack.svelte +177 -0
  420. package/frontend/src/lib/constants.js +1 -1
  421. package/frontend/src/lib/copy/common.js +9 -0
  422. package/frontend/src/lib/copy/reports.js +20 -0
  423. package/frontend/src/lib/copy/repository.js +4 -0
  424. package/frontend/src/lib/copy/settings.js +15 -0
  425. package/frontend/src/lib/stores/notifications.js +23 -0
  426. package/frontend/src/lib/stores/replayVideo.js +51 -0
  427. package/frontend/src/lib/utils/download.js +28 -0
  428. package/frontend/src/lib/utils/replayCapture.js +91 -0
  429. package/frontend/src/lib/utils/replayVideo.js +111 -0
  430. package/frontend/src/routes/+layout.svelte +2 -0
  431. package/frontend/src/routes/reports/[id]/+page.svelte +38 -3
  432. package/frontend/src/routes/scheduled-tests/+page.svelte +9 -17
  433. package/frontend/src/routes/settings/+page.svelte +140 -56
  434. package/frontend/src/routes/test-repository/+page.svelte +44 -16
  435. package/frontend/src/routes/test-repository/runs/[id]/+page.svelte +14 -23
  436. package/frontend/src/routes/test-repository/suites/[id]/+page.svelte +38 -22
  437. package/package.json +1 -1
  438. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.5IJAEAjc.css +0 -6
  439. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.B9H_IpSU.css +0 -6
  440. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.COwSGmmy.css +0 -6
  441. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.Dp6vaGRc.css +0 -6
  442. package/frontend/.svelte-kit/generated/client/nodes/13.js +0 -6
  443. package/frontend/.svelte-kit/output/client/_app/immutable/assets/10.CdaQUS6U.css +0 -6
  444. package/frontend/.svelte-kit/output/client/_app/immutable/assets/12.B9H_IpSU.css +0 -6
  445. package/frontend/.svelte-kit/output/client/_app/immutable/assets/6.BN5XbLUX.css +0 -6
  446. package/frontend/.svelte-kit/output/client/_app/immutable/assets/8.COwSGmmy.css +0 -6
  447. package/frontend/.svelte-kit/output/client/_app/immutable/assets/Button.FOWXxvc7.css +0 -6
  448. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.5IJAEAjc.css +0 -6
  449. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.B9H_IpSU.css +0 -6
  450. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.COwSGmmy.css +0 -6
  451. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.Dp6vaGRc.css +0 -6
  452. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/2-KCkWZO.js +0 -6
  453. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BbYY_TzB.js +0 -6
  454. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Beula-TH.js +0 -11
  455. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CZWchtW8.js +0 -6
  456. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CegSvdD-.js +0 -6
  457. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Cfmt4_tJ.js +0 -6
  458. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DB3YXVFP.js +0 -6
  459. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DgQy0SB2.js +0 -6
  460. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DiVmSEJa.js +0 -8
  461. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Dl-F6VCo.js +0 -6
  462. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DuAVKaL3.js +0 -6
  463. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/K1h4wprj.js +0 -6
  464. package/frontend/.svelte-kit/output/client/_app/immutable/entry/app.DRjRA71t.js +0 -7
  465. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/0.CRb8Nyce.js +0 -6
  466. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/10.kyazROhw.js +0 -6
  467. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/11.B3vMgT2v.js +0 -6
  468. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/12.DkPcIrgW.js +0 -6
  469. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/3.DUiL7fb5.js +0 -6
  470. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/5.N4CeDeoD.js +0 -6
  471. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/6.DWd93Bv5.js +0 -10
  472. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/7.c8d1cQQM.js +0 -6
  473. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/8.Cvd3MauU.js +0 -9
  474. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.5IJAEAjc.css +0 -6
  475. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.B9H_IpSU.css +0 -6
  476. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.COwSGmmy.css +0 -6
  477. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Dp6vaGRc.css +0 -6
  478. package/frontend/build/client/_app/immutable/assets/0.CmJTG5mP.css.br +0 -0
  479. package/frontend/build/client/_app/immutable/assets/0.CmJTG5mP.css.gz +0 -0
  480. package/frontend/build/client/_app/immutable/assets/10.CdaQUS6U.css +0 -6
  481. package/frontend/build/client/_app/immutable/assets/10.CdaQUS6U.css.br +0 -0
  482. package/frontend/build/client/_app/immutable/assets/10.CdaQUS6U.css.gz +0 -0
  483. package/frontend/build/client/_app/immutable/assets/12.B9H_IpSU.css +0 -6
  484. package/frontend/build/client/_app/immutable/assets/12.B9H_IpSU.css.br +0 -0
  485. package/frontend/build/client/_app/immutable/assets/12.B9H_IpSU.css.gz +0 -0
  486. package/frontend/build/client/_app/immutable/assets/6.BN5XbLUX.css +0 -6
  487. package/frontend/build/client/_app/immutable/assets/6.BN5XbLUX.css.br +0 -0
  488. package/frontend/build/client/_app/immutable/assets/6.BN5XbLUX.css.gz +0 -0
  489. package/frontend/build/client/_app/immutable/assets/8.COwSGmmy.css +0 -6
  490. package/frontend/build/client/_app/immutable/assets/8.COwSGmmy.css.br +0 -0
  491. package/frontend/build/client/_app/immutable/assets/8.COwSGmmy.css.gz +0 -0
  492. package/frontend/build/client/_app/immutable/assets/Button.FOWXxvc7.css +0 -6
  493. package/frontend/build/client/_app/immutable/assets/Button.FOWXxvc7.css.br +0 -0
  494. package/frontend/build/client/_app/immutable/assets/Button.FOWXxvc7.css.gz +0 -0
  495. package/frontend/build/client/_app/immutable/assets/Toast.DENwYn3g.css.br +0 -0
  496. package/frontend/build/client/_app/immutable/assets/Toast.DENwYn3g.css.gz +0 -0
  497. package/frontend/build/client/_app/immutable/assets/_layout.HkPnpRl9.css.br +0 -0
  498. package/frontend/build/client/_app/immutable/assets/_layout.HkPnpRl9.css.gz +0 -0
  499. package/frontend/build/client/_app/immutable/assets/_page.5IJAEAjc.css +0 -6
  500. package/frontend/build/client/_app/immutable/assets/_page.5IJAEAjc.css.br +0 -0
  501. package/frontend/build/client/_app/immutable/assets/_page.5IJAEAjc.css.gz +0 -0
  502. package/frontend/build/client/_app/immutable/assets/_page.B9H_IpSU.css +0 -6
  503. package/frontend/build/client/_app/immutable/assets/_page.B9H_IpSU.css.br +0 -0
  504. package/frontend/build/client/_app/immutable/assets/_page.B9H_IpSU.css.gz +0 -0
  505. package/frontend/build/client/_app/immutable/assets/_page.COwSGmmy.css +0 -6
  506. package/frontend/build/client/_app/immutable/assets/_page.COwSGmmy.css.br +0 -0
  507. package/frontend/build/client/_app/immutable/assets/_page.COwSGmmy.css.gz +0 -0
  508. package/frontend/build/client/_app/immutable/assets/_page.Dp6vaGRc.css +0 -6
  509. package/frontend/build/client/_app/immutable/assets/_page.Dp6vaGRc.css.br +0 -0
  510. package/frontend/build/client/_app/immutable/assets/_page.Dp6vaGRc.css.gz +0 -0
  511. package/frontend/build/client/_app/immutable/chunks/2-KCkWZO.js +0 -6
  512. package/frontend/build/client/_app/immutable/chunks/2-KCkWZO.js.br +0 -0
  513. package/frontend/build/client/_app/immutable/chunks/2-KCkWZO.js.gz +0 -0
  514. package/frontend/build/client/_app/immutable/chunks/B00vxw57.js.br +0 -0
  515. package/frontend/build/client/_app/immutable/chunks/B00vxw57.js.gz +0 -0
  516. package/frontend/build/client/_app/immutable/chunks/B0_HKFXV.js.br +0 -0
  517. package/frontend/build/client/_app/immutable/chunks/B0_HKFXV.js.gz +0 -0
  518. package/frontend/build/client/_app/immutable/chunks/BAvTKHxT.js.br +0 -0
  519. package/frontend/build/client/_app/immutable/chunks/BAvTKHxT.js.gz +0 -0
  520. package/frontend/build/client/_app/immutable/chunks/BJ_ypKl3.js.br +0 -0
  521. package/frontend/build/client/_app/immutable/chunks/BJ_ypKl3.js.gz +0 -0
  522. package/frontend/build/client/_app/immutable/chunks/BbYY_TzB.js +0 -6
  523. package/frontend/build/client/_app/immutable/chunks/BbYY_TzB.js.br +0 -0
  524. package/frontend/build/client/_app/immutable/chunks/BbYY_TzB.js.gz +0 -0
  525. package/frontend/build/client/_app/immutable/chunks/Beula-TH.js +0 -11
  526. package/frontend/build/client/_app/immutable/chunks/Beula-TH.js.br +0 -0
  527. package/frontend/build/client/_app/immutable/chunks/Beula-TH.js.gz +0 -0
  528. package/frontend/build/client/_app/immutable/chunks/C00jnSU2.js.br +0 -0
  529. package/frontend/build/client/_app/immutable/chunks/C00jnSU2.js.gz +0 -0
  530. package/frontend/build/client/_app/immutable/chunks/C2_rQ4aY.js.br +0 -0
  531. package/frontend/build/client/_app/immutable/chunks/C2_rQ4aY.js.gz +0 -0
  532. package/frontend/build/client/_app/immutable/chunks/C7uEQ-LH.js.br +0 -0
  533. package/frontend/build/client/_app/immutable/chunks/C7uEQ-LH.js.gz +0 -0
  534. package/frontend/build/client/_app/immutable/chunks/C8S7qQjQ.js.br +0 -0
  535. package/frontend/build/client/_app/immutable/chunks/C8S7qQjQ.js.gz +0 -0
  536. package/frontend/build/client/_app/immutable/chunks/CZWchtW8.js +0 -6
  537. package/frontend/build/client/_app/immutable/chunks/CZWchtW8.js.br +0 -0
  538. package/frontend/build/client/_app/immutable/chunks/CZWchtW8.js.gz +0 -0
  539. package/frontend/build/client/_app/immutable/chunks/CboYYxrf.js.br +0 -6
  540. package/frontend/build/client/_app/immutable/chunks/CboYYxrf.js.gz +0 -0
  541. package/frontend/build/client/_app/immutable/chunks/CeH-RgMb.js.br +0 -0
  542. package/frontend/build/client/_app/immutable/chunks/CegSvdD-.js +0 -6
  543. package/frontend/build/client/_app/immutable/chunks/CegSvdD-.js.br +0 -0
  544. package/frontend/build/client/_app/immutable/chunks/CegSvdD-.js.gz +0 -0
  545. package/frontend/build/client/_app/immutable/chunks/CfkUW1vA.js.br +0 -0
  546. package/frontend/build/client/_app/immutable/chunks/CfkUW1vA.js.gz +0 -0
  547. package/frontend/build/client/_app/immutable/chunks/Cfmt4_tJ.js +0 -6
  548. package/frontend/build/client/_app/immutable/chunks/Cfmt4_tJ.js.br +0 -0
  549. package/frontend/build/client/_app/immutable/chunks/Cfmt4_tJ.js.gz +0 -0
  550. package/frontend/build/client/_app/immutable/chunks/Cgw8TOOy.js.br +0 -0
  551. package/frontend/build/client/_app/immutable/chunks/Cgw8TOOy.js.gz +0 -0
  552. package/frontend/build/client/_app/immutable/chunks/Ck6C3Fl0.js.br +0 -0
  553. package/frontend/build/client/_app/immutable/chunks/Ck6C3Fl0.js.gz +0 -0
  554. package/frontend/build/client/_app/immutable/chunks/CoTEzvLa.js.br +0 -0
  555. package/frontend/build/client/_app/immutable/chunks/CoTEzvLa.js.gz +0 -0
  556. package/frontend/build/client/_app/immutable/chunks/DAmOMhaf.js.br +0 -0
  557. package/frontend/build/client/_app/immutable/chunks/DAmOMhaf.js.gz +0 -0
  558. package/frontend/build/client/_app/immutable/chunks/DB3YXVFP.js +0 -6
  559. package/frontend/build/client/_app/immutable/chunks/DB3YXVFP.js.br +0 -0
  560. package/frontend/build/client/_app/immutable/chunks/DB3YXVFP.js.gz +0 -0
  561. package/frontend/build/client/_app/immutable/chunks/DWzEJYIF.js.br +0 -7
  562. package/frontend/build/client/_app/immutable/chunks/DWzEJYIF.js.gz +0 -0
  563. package/frontend/build/client/_app/immutable/chunks/DgQy0SB2.js +0 -6
  564. package/frontend/build/client/_app/immutable/chunks/DgQy0SB2.js.br +0 -0
  565. package/frontend/build/client/_app/immutable/chunks/DgQy0SB2.js.gz +0 -0
  566. package/frontend/build/client/_app/immutable/chunks/DiVmSEJa.js +0 -8
  567. package/frontend/build/client/_app/immutable/chunks/DiVmSEJa.js.br +0 -0
  568. package/frontend/build/client/_app/immutable/chunks/DiVmSEJa.js.gz +0 -0
  569. package/frontend/build/client/_app/immutable/chunks/Dl-F6VCo.js +0 -6
  570. package/frontend/build/client/_app/immutable/chunks/Dl-F6VCo.js.br +0 -0
  571. package/frontend/build/client/_app/immutable/chunks/Dl-F6VCo.js.gz +0 -0
  572. package/frontend/build/client/_app/immutable/chunks/DuAVKaL3.js +0 -6
  573. package/frontend/build/client/_app/immutable/chunks/DuAVKaL3.js.br +0 -0
  574. package/frontend/build/client/_app/immutable/chunks/DuAVKaL3.js.gz +0 -0
  575. package/frontend/build/client/_app/immutable/chunks/GDjpV3r7.js.br +0 -0
  576. package/frontend/build/client/_app/immutable/chunks/GDjpV3r7.js.gz +0 -0
  577. package/frontend/build/client/_app/immutable/chunks/K1h4wprj.js +0 -6
  578. package/frontend/build/client/_app/immutable/chunks/K1h4wprj.js.br +0 -0
  579. package/frontend/build/client/_app/immutable/chunks/K1h4wprj.js.gz +0 -0
  580. package/frontend/build/client/_app/immutable/chunks/d2K3c8Kx.js.br +0 -0
  581. package/frontend/build/client/_app/immutable/chunks/d2K3c8Kx.js.gz +0 -0
  582. package/frontend/build/client/_app/immutable/entry/app.DRjRA71t.js +0 -7
  583. package/frontend/build/client/_app/immutable/entry/app.DRjRA71t.js.br +0 -0
  584. package/frontend/build/client/_app/immutable/entry/app.DRjRA71t.js.gz +0 -0
  585. package/frontend/build/client/_app/immutable/nodes/0.CRb8Nyce.js +0 -6
  586. package/frontend/build/client/_app/immutable/nodes/0.CRb8Nyce.js.br +0 -0
  587. package/frontend/build/client/_app/immutable/nodes/0.CRb8Nyce.js.gz +0 -0
  588. package/frontend/build/client/_app/immutable/nodes/1.BI97il3r.js.br +0 -0
  589. package/frontend/build/client/_app/immutable/nodes/1.BI97il3r.js.gz +0 -0
  590. package/frontend/build/client/_app/immutable/nodes/10.kyazROhw.js +0 -6
  591. package/frontend/build/client/_app/immutable/nodes/10.kyazROhw.js.br +0 -0
  592. package/frontend/build/client/_app/immutable/nodes/10.kyazROhw.js.gz +0 -0
  593. package/frontend/build/client/_app/immutable/nodes/11.B3vMgT2v.js +0 -6
  594. package/frontend/build/client/_app/immutable/nodes/11.B3vMgT2v.js.br +0 -0
  595. package/frontend/build/client/_app/immutable/nodes/11.B3vMgT2v.js.gz +0 -0
  596. package/frontend/build/client/_app/immutable/nodes/12.DkPcIrgW.js +0 -6
  597. package/frontend/build/client/_app/immutable/nodes/12.DkPcIrgW.js.br +0 -0
  598. package/frontend/build/client/_app/immutable/nodes/12.DkPcIrgW.js.gz +0 -0
  599. package/frontend/build/client/_app/immutable/nodes/2.Dr6yugXz.js.br +0 -0
  600. package/frontend/build/client/_app/immutable/nodes/2.Dr6yugXz.js.gz +0 -0
  601. package/frontend/build/client/_app/immutable/nodes/3.DUiL7fb5.js +0 -6
  602. package/frontend/build/client/_app/immutable/nodes/3.DUiL7fb5.js.br +0 -0
  603. package/frontend/build/client/_app/immutable/nodes/3.DUiL7fb5.js.gz +0 -0
  604. package/frontend/build/client/_app/immutable/nodes/4.DDADylfF.js.br +0 -0
  605. package/frontend/build/client/_app/immutable/nodes/4.DDADylfF.js.gz +0 -0
  606. package/frontend/build/client/_app/immutable/nodes/5.N4CeDeoD.js +0 -6
  607. package/frontend/build/client/_app/immutable/nodes/5.N4CeDeoD.js.br +0 -0
  608. package/frontend/build/client/_app/immutable/nodes/5.N4CeDeoD.js.gz +0 -0
  609. package/frontend/build/client/_app/immutable/nodes/6.DWd93Bv5.js +0 -10
  610. package/frontend/build/client/_app/immutable/nodes/6.DWd93Bv5.js.br +0 -0
  611. package/frontend/build/client/_app/immutable/nodes/6.DWd93Bv5.js.gz +0 -0
  612. package/frontend/build/client/_app/immutable/nodes/7.c8d1cQQM.js +0 -6
  613. package/frontend/build/client/_app/immutable/nodes/7.c8d1cQQM.js.br +0 -0
  614. package/frontend/build/client/_app/immutable/nodes/7.c8d1cQQM.js.gz +0 -0
  615. package/frontend/build/client/_app/immutable/nodes/8.Cvd3MauU.js +0 -9
  616. package/frontend/build/client/_app/immutable/nodes/8.Cvd3MauU.js.br +0 -0
  617. package/frontend/build/client/_app/immutable/nodes/8.Cvd3MauU.js.gz +0 -0
  618. package/frontend/build/client/_app/immutable/nodes/9.BOK0GNF_.js.br +0 -0
  619. package/frontend/build/client/_app/immutable/nodes/9.BOK0GNF_.js.gz +0 -0
  620. package/frontend/build/server/chunks/0-_rljpEay.js +0 -22
  621. package/frontend/build/server/chunks/0-_rljpEay.js.map +0 -5
  622. package/frontend/build/server/chunks/10-BQBBYpxV.js +0 -14
  623. package/frontend/build/server/chunks/10-BQBBYpxV.js.map +0 -5
  624. package/frontend/build/server/chunks/11-10xw0TIP.js +0 -14
  625. package/frontend/build/server/chunks/11-10xw0TIP.js.map +0 -5
  626. package/frontend/build/server/chunks/12-CZ3_Uw3c.js +0 -14
  627. package/frontend/build/server/chunks/12-CZ3_Uw3c.js.map +0 -5
  628. package/frontend/build/server/chunks/2-DioMbKbC.js +0 -14
  629. package/frontend/build/server/chunks/3-CgiZg_9v.js +0 -14
  630. package/frontend/build/server/chunks/4-BM-49dbE.js +0 -14
  631. package/frontend/build/server/chunks/5-Brx_KOzy.js +0 -14
  632. package/frontend/build/server/chunks/6-C5swINND.js +0 -14
  633. package/frontend/build/server/chunks/6-C5swINND.js.map +0 -5
  634. package/frontend/build/server/chunks/7-B8e4y3CB.js +0 -14
  635. package/frontend/build/server/chunks/7-B8e4y3CB.js.map +0 -5
  636. package/frontend/build/server/chunks/8-BZtkZMIZ.js +0 -14
  637. package/frontend/build/server/chunks/8-BZtkZMIZ.js.map +0 -5
  638. package/frontend/build/server/chunks/9-BMAKiAem.js +0 -14
  639. package/frontend/build/server/chunks/Toast-CHB87F8k.js.map +0 -5
  640. package/frontend/build/server/chunks/_layout.svelte-C_6nsIpT.js.map +0 -5
  641. package/frontend/build/server/chunks/_page.svelte-BNwU9zza.js.map +0 -5
  642. package/frontend/build/server/chunks/_page.svelte-CAlhaCzS.js.map +0 -5
  643. package/frontend/build/server/chunks/_page.svelte-CTebwzwy.js.map +0 -5
  644. package/frontend/build/server/chunks/_page.svelte-CmJKt3-H.js.map +0 -5
  645. package/frontend/build/server/chunks/_page.svelte-DHZhNTPg.js.map +0 -5
  646. package/frontend/build/server/chunks/_page.svelte-ywHy9KCh.js +0 -852
  647. package/frontend/build/server/chunks/_page.svelte-ywHy9KCh.js.map +0 -5
  648. package/frontend/build/server/chunks/common-DYYTVHPw.js.map +0 -5
  649. package/frontend/build/server/chunks/repository-TYWcFuWP.js.map +0 -5
  650. package/frontend/src/lib/components/ui/Toast.svelte +0 -24
@@ -0,0 +1,8 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ * Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+
6
+ import{w as ie,ab as oe}from"./BIf7lHIm.js";import{a as se}from"./DiexacSB.js";function ce(e,t){if(e.match(/^[a-z]+:\/\//i))return e;if(e.match(/^\/\//))return window.location.protocol+e;if(e.match(/^[a-z]+:/i))return e;const n=document.implementation.createHTMLDocument(),a=n.createElement("base"),r=n.createElement("a");return n.head.appendChild(a),n.body.appendChild(r),t&&(a.href=t),r.href=e,r.href}const ue=(()=>{let e=0;const t=()=>`0000${(Math.random()*36**4<<0).toString(36)}`.slice(-4);return()=>(e+=1,`u${t()}${e}`)})();function S(e){const t=[];for(let n=0,a=e.length;n<a;n++)t.push(e[n]);return t}let U=null;function j(e={}){return U||(e.includeStyleProperties?(U=e.includeStyleProperties,U):(U=S(window.getComputedStyle(document.documentElement)),U))}function D(e,t){const a=(e.ownerDocument.defaultView||window).getComputedStyle(e).getPropertyValue(t);return a?parseFloat(a.replace("px","")):0}function le(e){const t=D(e,"border-left-width"),n=D(e,"border-right-width");return e.clientWidth+t+n}function me(e){const t=D(e,"border-top-width"),n=D(e,"border-bottom-width");return e.clientHeight+t+n}function K(e,t={}){const n=t.width||le(e),a=t.height||me(e);return{width:n,height:a}}function ye(){let e,t;try{t=process}catch{}const n=t&&t.env?t.env.devicePixelRatio:null;return n&&(e=parseInt(n,10),Number.isNaN(e)&&(e=1)),e||window.devicePixelRatio||1}const x=16384;function fe(e){(e.width>x||e.height>x)&&(e.width>x&&e.height>x?e.width>e.height?(e.height*=x/e.width,e.width=x):(e.width*=x/e.height,e.height=x):e.width>x?(e.height*=x/e.width,e.width=x):(e.width*=x/e.height,e.height=x))}function pe(e,t={}){return e.toBlob?new Promise(n=>{e.toBlob(n,t.type?t.type:"image/png",t.quality?t.quality:1)}):new Promise(n=>{const a=window.atob(e.toDataURL(t.type?t.type:void 0,t.quality?t.quality:void 0).split(",")[1]),r=a.length,i=new Uint8Array(r);for(let o=0;o<r;o+=1)i[o]=a.charCodeAt(o);n(new Blob([i],{type:t.type?t.type:"image/png"}))})}function B(e){return new Promise((t,n)=>{const a=new Image;a.onload=()=>{a.decode().then(()=>{requestAnimationFrame(()=>t(a))})},a.onerror=n,a.crossOrigin="anonymous",a.decoding="async",a.src=e})}async function he(e){return Promise.resolve().then(()=>new XMLSerializer().serializeToString(e)).then(encodeURIComponent).then(t=>`data:image/svg+xml;charset=utf-8,${t}`)}async function de(e,t,n){const a="http://www.w3.org/2000/svg",r=document.createElementNS(a,"svg"),i=document.createElementNS(a,"foreignObject");return r.setAttribute("width",`${t}`),r.setAttribute("height",`${n}`),r.setAttribute("viewBox",`0 0 ${t} ${n}`),i.setAttribute("width","100%"),i.setAttribute("height","100%"),i.setAttribute("x","0"),i.setAttribute("y","0"),i.setAttribute("externalResourcesRequired","true"),r.appendChild(i),i.appendChild(e),he(r)}const g=(e,t)=>{if(e instanceof t)return!0;const n=Object.getPrototypeOf(e);return n===null?!1:n.constructor.name===t.name||g(n,t)};function ge(e){const t=e.getPropertyValue("content");return`${e.cssText} content: '${t.replace(/'|"/g,"")}';`}function xe(e,t){return j(t).map(n=>{const a=e.getPropertyValue(n),r=e.getPropertyPriority(n);return`${n}: ${a}${r?" !important":""};`}).join(" ")}function we(e,t,n,a){const r=`.${e}:${t}`,i=n.cssText?ge(n):xe(n,a);return document.createTextNode(`${r}{${i}}`)}function $(e,t,n,a){const r=window.getComputedStyle(e,n),i=r.getPropertyValue("content");if(i===""||i==="none")return;const o=ue();try{t.className=`${t.className} ${o}`}catch{return}const s=document.createElement("style");s.appendChild(we(o,n,r,a)),t.appendChild(s)}function Se(e,t,n){$(e,t,":before",n),$(e,t,":after",n)}const V="application/font-woff",W="image/jpeg",Ce={woff:V,woff2:V,ttf:"application/font-truetype",eot:"application/vnd.ms-fontobject",png:"image/png",jpg:W,jpeg:W,gif:"image/gif",tiff:"image/tiff",svg:"image/svg+xml",webp:"image/webp"};function be(e){const t=/\.([^./]*?)$/g.exec(e);return t?t[1]:""}function I(e){const t=be(e).toLowerCase();return Ce[t]||""}function Ue(e){return e.split(/,/)[1]}function v(e){return e.search(/^(data:)/)!==-1}function Te(e,t){return`data:${t};base64,${e}`}async function J(e,t,n){const a=await fetch(e,t);if(a.status===404)throw new Error(`Resource "${a.url}" not found`);const r=await a.blob();return new Promise((i,o)=>{const s=new FileReader;s.onerror=o,s.onloadend=()=>{try{i(n({res:a,result:s.result}))}catch(m){o(m)}},s.readAsDataURL(r)})}const R={};function Ee(e,t,n){let a=e.replace(/\?.*/,"");return n&&(a=e),/ttf|otf|eot|woff2?/i.test(a)&&(a=a.replace(/.*\//,"")),t?`[${t}]${a}`:a}async function P(e,t,n){const a=Ee(e,t,n.includeQueryParams);if(R[a]!=null)return R[a];n.cacheBust&&(e+=(/\?/.test(e)?"&":"?")+new Date().getTime());let r;try{const i=await J(e,n.fetchRequestInit,({res:o,result:s})=>(t||(t=o.headers.get("Content-Type")||""),Ue(s)));r=Te(i,t)}catch(i){r=n.imagePlaceholder||"";let o=`Failed to fetch resource: ${e}`;i&&(o=typeof i=="string"?i:i.message),o&&console.warn(o)}return R[a]=r,r}async function De(e){const t=e.toDataURL();return t==="data:,"?e.cloneNode(!1):B(t)}async function Be(e,t){if(e.currentSrc){const i=document.createElement("canvas"),o=i.getContext("2d");i.width=e.clientWidth,i.height=e.clientHeight,o==null||o.drawImage(e,0,0,i.width,i.height);const s=i.toDataURL();return B(s)}const n=e.poster,a=I(n),r=await P(n,a,t);return B(r)}async function Fe(e,t){var n;try{if(!((n=e==null?void 0:e.contentDocument)===null||n===void 0)&&n.body)return await F(e.contentDocument.body,t,!0)}catch{}return e.cloneNode(!1)}async function Re(e,t){return g(e,HTMLCanvasElement)?De(e):g(e,HTMLVideoElement)?Be(e,t):g(e,HTMLIFrameElement)?Fe(e,t):e.cloneNode(X(e))}const ke=e=>e.tagName!=null&&e.tagName.toUpperCase()==="SLOT",X=e=>e.tagName!=null&&e.tagName.toUpperCase()==="SVG";async function ve(e,t,n){var a,r;if(X(t))return t;let i=[];return ke(e)&&e.assignedNodes?i=S(e.assignedNodes()):g(e,HTMLIFrameElement)&&(!((a=e.contentDocument)===null||a===void 0)&&a.body)?i=S(e.contentDocument.body.childNodes):i=S(((r=e.shadowRoot)!==null&&r!==void 0?r:e).childNodes),i.length===0||g(e,HTMLVideoElement)||await i.reduce((o,s)=>o.then(()=>F(s,n)).then(m=>{m&&t.appendChild(m)}),Promise.resolve()),t}function Ie(e,t,n){const a=t.style;if(!a)return;const r=window.getComputedStyle(e);r.cssText?(a.cssText=r.cssText,a.transformOrigin=r.transformOrigin):j(n).forEach(i=>{let o=r.getPropertyValue(i);i==="font-size"&&o.endsWith("px")&&(o=`${Math.floor(parseFloat(o.substring(0,o.length-2)))-.1}px`),g(e,HTMLIFrameElement)&&i==="display"&&o==="inline"&&(o="block"),i==="d"&&t.getAttribute("d")&&(o=`path(${t.getAttribute("d")})`),a.setProperty(i,o,r.getPropertyPriority(i))})}function Pe(e,t){g(e,HTMLTextAreaElement)&&(t.innerHTML=e.value),g(e,HTMLInputElement)&&t.setAttribute("value",e.value)}function Ae(e,t){if(g(e,HTMLSelectElement)){const n=t,a=Array.from(n.children).find(r=>e.value===r.getAttribute("value"));a&&a.setAttribute("selected","")}}function Le(e,t,n){return g(t,Element)&&(Ie(e,t,n),Se(e,t,n),Pe(e,t),Ae(e,t)),t}async function Me(e,t){const n=e.querySelectorAll?e.querySelectorAll("use"):[];if(n.length===0)return e;const a={};for(let i=0;i<n.length;i++){const s=n[i].getAttribute("xlink:href");if(s){const m=e.querySelector(s),p=document.querySelector(s);!m&&p&&!a[s]&&(a[s]=await F(p,t,!0))}}const r=Object.values(a);if(r.length){const i="http://www.w3.org/1999/xhtml",o=document.createElementNS(i,"svg");o.setAttribute("xmlns",i),o.style.position="absolute",o.style.width="0",o.style.height="0",o.style.overflow="hidden",o.style.display="none";const s=document.createElementNS(i,"defs");o.appendChild(s);for(let m=0;m<r.length;m++)s.appendChild(r[m]);e.appendChild(o)}return e}async function F(e,t,n){return!n&&t.filter&&!t.filter(e)?null:Promise.resolve(e).then(a=>Re(a,t)).then(a=>ve(e,a,t)).then(a=>Le(e,a,t)).then(a=>Me(a,t))}const Q=/url\((['"]?)([^'"]+?)\1\)/g,$e=/url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g,Ve=/src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;function We(e){const t=e.replace(/([.*+?^${}()|\[\]\/\\])/g,"\\$1");return new RegExp(`(url\\(['"]?)(${t})(['"]?\\))`,"g")}function He(e){const t=[];return e.replace(Q,(n,a,r)=>(t.push(r),n)),t.filter(n=>!v(n))}async function Oe(e,t,n,a,r){try{const i=n?ce(t,n):t,o=I(t);let s;return r||(s=await P(i,o,a)),e.replace(We(t),`$1${s}$3`)}catch{}return e}function _e(e,{preferredFontFormat:t}){return t?e.replace(Ve,n=>{for(;;){const[a,,r]=$e.exec(n)||[];if(!r)return"";if(r===t)return`src: ${a};`}}):e}function Y(e){return e.search(Q)!==-1}async function Z(e,t,n){if(!Y(e))return e;const a=_e(e,n);return He(a).reduce((i,o)=>i.then(s=>Oe(s,o,t,n)),Promise.resolve(a))}async function T(e,t,n){var a;const r=(a=t.style)===null||a===void 0?void 0:a.getPropertyValue(e);if(r){const i=await Z(r,null,n);return t.style.setProperty(e,i,t.style.getPropertyPriority(e)),!0}return!1}async function qe(e,t){await T("background",e,t)||await T("background-image",e,t),await T("mask",e,t)||await T("-webkit-mask",e,t)||await T("mask-image",e,t)||await T("-webkit-mask-image",e,t)}async function ze(e,t){const n=g(e,HTMLImageElement);if(!(n&&!v(e.src))&&!(g(e,SVGImageElement)&&!v(e.href.baseVal)))return;const a=n?e.src:e.href.baseVal,r=await P(a,I(a),t);await new Promise((i,o)=>{e.onload=i,e.onerror=t.onImageErrorHandler?(...m)=>{try{i(t.onImageErrorHandler(...m))}catch(p){o(p)}}:o;const s=e;s.decode&&(s.decode=i),s.loading==="lazy"&&(s.loading="eager"),n?(e.srcset="",e.src=r):e.href.baseVal=r})}async function Ge(e,t){const a=S(e.childNodes).map(r=>N(r,t));await Promise.all(a).then(()=>e)}async function N(e,t){g(e,Element)&&(await qe(e,t),await ze(e,t),await Ge(e,t))}function je(e,t){const{style:n}=e;t.backgroundColor&&(n.backgroundColor=t.backgroundColor),t.width&&(n.width=`${t.width}px`),t.height&&(n.height=`${t.height}px`);const a=t.style;return a!=null&&Object.keys(a).forEach(r=>{n[r]=a[r]}),e}const H={};async function O(e){let t=H[e];if(t!=null)return t;const a=await(await fetch(e)).text();return t={url:e,cssText:a},H[e]=t,t}async function _(e,t){let n=e.cssText;const a=/url\(["']?([^"')]+)["']?\)/g,i=(n.match(/url\([^)]+\)/g)||[]).map(async o=>{let s=o.replace(a,"$1");return s.startsWith("https://")||(s=new URL(s,e.url).href),J(s,t.fetchRequestInit,({result:m})=>(n=n.replace(o,`url(${m})`),[o,m]))});return Promise.all(i).then(()=>n)}function q(e){if(e==null)return[];const t=[],n=/(\/\*[\s\S]*?\*\/)/gi;let a=e.replace(n,"");const r=new RegExp("((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})","gi");for(;;){const m=r.exec(a);if(m===null)break;t.push(m[0])}a=a.replace(r,"");const i=/@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi,o="((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})",s=new RegExp(o,"gi");for(;;){let m=i.exec(a);if(m===null){if(m=s.exec(a),m===null)break;i.lastIndex=s.lastIndex}else s.lastIndex=i.lastIndex;t.push(m[0])}return t}async function Ke(e,t){const n=[],a=[];return e.forEach(r=>{if("cssRules"in r)try{S(r.cssRules||[]).forEach((i,o)=>{if(i.type===CSSRule.IMPORT_RULE){let s=o+1;const m=i.href,p=O(m).then(c=>_(c,t)).then(c=>q(c).forEach(l=>{try{r.insertRule(l,l.startsWith("@import")?s+=1:r.cssRules.length)}catch(u){console.error("Error inserting rule from remote css",{rule:l,error:u})}})).catch(c=>{console.error("Error loading remote css",c.toString())});a.push(p)}})}catch(i){const o=e.find(s=>s.href==null)||document.styleSheets[0];r.href!=null&&a.push(O(r.href).then(s=>_(s,t)).then(s=>q(s).forEach(m=>{o.insertRule(m,o.cssRules.length)})).catch(s=>{console.error("Error loading remote stylesheet",s)})),console.error("Error inlining remote css file",i)}}),Promise.all(a).then(()=>(e.forEach(r=>{if("cssRules"in r)try{S(r.cssRules||[]).forEach(i=>{n.push(i)})}catch(i){console.error(`Error while reading CSS rules from ${r.href}`,i)}}),n))}function Je(e){return e.filter(t=>t.type===CSSRule.FONT_FACE_RULE).filter(t=>Y(t.style.getPropertyValue("src")))}async function Xe(e,t){if(e.ownerDocument==null)throw new Error("Provided element is not within a Document");const n=S(e.ownerDocument.styleSheets),a=await Ke(n,t);return Je(a)}function ee(e){return e.trim().replace(/["']/g,"")}function Qe(e){const t=new Set;function n(a){(a.style.fontFamily||getComputedStyle(a).fontFamily).split(",").forEach(i=>{t.add(ee(i))}),Array.from(a.children).forEach(i=>{i instanceof HTMLElement&&n(i)})}return n(e),t}async function Ye(e,t){const n=await Xe(e,t),a=Qe(e);return(await Promise.all(n.filter(i=>a.has(ee(i.style.fontFamily))).map(i=>{const o=i.parentStyleSheet?i.parentStyleSheet.href:null;return Z(i.cssText,o,t)}))).join(`
7
+ `)}async function Ze(e,t){const n=t.fontEmbedCSS!=null?t.fontEmbedCSS:t.skipFonts?null:await Ye(e,t);if(n){const a=document.createElement("style"),r=document.createTextNode(n);a.appendChild(r),e.firstChild?e.insertBefore(a,e.firstChild):e.appendChild(a)}}async function Ne(e,t={}){const{width:n,height:a}=K(e,t),r=await F(e,t,!0);return await Ze(r,t),await N(r,t),je(r,t),await de(r,n,a)}async function te(e,t={}){const{width:n,height:a}=K(e,t),r=await Ne(e,t),i=await B(r),o=document.createElement("canvas"),s=o.getContext("2d"),m=t.pixelRatio||ye(),p=t.canvasWidth||n,c=t.canvasHeight||a;return o.width=p*m,o.height=c*m,t.skipAutoScale||fe(o),o.style.width=`${p}`,o.style.height=`${c}`,t.backgroundColor&&(s.fillStyle=t.backgroundColor,s.fillRect(0,0,o.width,o.height)),s.drawImage(i,0,0,o.width,o.height),o}async function et(e,t={}){const n=await te(e,t);return await pe(n)}function tt(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var k={exports:{}},z;function nt(){return z||(z=1,function(e){(function(t,n){e.exports?e.exports=n():window.ysFixWebmDuration=n()})("fix-webm-duration",function(){var t={172351395:{name:"EBML",type:"Container"},646:{name:"EBMLVersion",type:"Uint"},759:{name:"EBMLReadVersion",type:"Uint"},754:{name:"EBMLMaxIDLength",type:"Uint"},755:{name:"EBMLMaxSizeLength",type:"Uint"},642:{name:"DocType",type:"String"},647:{name:"DocTypeVersion",type:"Uint"},645:{name:"DocTypeReadVersion",type:"Uint"},108:{name:"Void",type:"Binary"},63:{name:"CRC-32",type:"Binary"},190023271:{name:"SignatureSlot",type:"Container"},16010:{name:"SignatureAlgo",type:"Uint"},16026:{name:"SignatureHash",type:"Uint"},16037:{name:"SignaturePublicKey",type:"Binary"},16053:{name:"Signature",type:"Binary"},15963:{name:"SignatureElements",type:"Container"},15995:{name:"SignatureElementList",type:"Container"},9522:{name:"SignedElement",type:"Binary"},139690087:{name:"Segment",type:"Container"},21863284:{name:"SeekHead",type:"Container"},3515:{name:"Seek",type:"Container"},5035:{name:"SeekID",type:"Binary"},5036:{name:"SeekPosition",type:"Uint"},88713574:{name:"Info",type:"Container"},13220:{name:"SegmentUID",type:"Binary"},13188:{name:"SegmentFilename",type:"String"},1882403:{name:"PrevUID",type:"Binary"},1868715:{name:"PrevFilename",type:"String"},2013475:{name:"NextUID",type:"Binary"},1999803:{name:"NextFilename",type:"String"},1092:{name:"SegmentFamily",type:"Binary"},10532:{name:"ChapterTranslate",type:"Container"},10748:{name:"ChapterTranslateEditionUID",type:"Uint"},10687:{name:"ChapterTranslateCodec",type:"Uint"},10661:{name:"ChapterTranslateID",type:"Binary"},710577:{name:"TimecodeScale",type:"Uint"},1161:{name:"Duration",type:"Float"},1121:{name:"DateUTC",type:"Date"},15273:{name:"Title",type:"String"},3456:{name:"MuxingApp",type:"String"},5953:{name:"WritingApp",type:"String"},103:{name:"Timecode",type:"Uint"},6228:{name:"SilentTracks",type:"Container"},6359:{name:"SilentTrackNumber",type:"Uint"},39:{name:"Position",type:"Uint"},43:{name:"PrevSize",type:"Uint"},35:{name:"SimpleBlock",type:"Binary"},32:{name:"BlockGroup",type:"Container"},33:{name:"Block",type:"Binary"},34:{name:"BlockVirtual",type:"Binary"},13729:{name:"BlockAdditions",type:"Container"},38:{name:"BlockMore",type:"Container"},110:{name:"BlockAddID",type:"Uint"},37:{name:"BlockAdditional",type:"Binary"},27:{name:"BlockDuration",type:"Uint"},122:{name:"ReferencePriority",type:"Uint"},123:{name:"ReferenceBlock",type:"Int"},125:{name:"ReferenceVirtual",type:"Int"},36:{name:"CodecState",type:"Binary"},13730:{name:"DiscardPadding",type:"Int"},14:{name:"Slices",type:"Container"},104:{name:"TimeSlice",type:"Container"},76:{name:"LaceNumber",type:"Uint"},77:{name:"FrameNumber",type:"Uint"},75:{name:"BlockAdditionID",type:"Uint"},78:{name:"Delay",type:"Uint"},79:{name:"SliceDuration",type:"Uint"},72:{name:"ReferenceFrame",type:"Container"},73:{name:"ReferenceOffset",type:"Uint"},74:{name:"ReferenceTimeCode",type:"Uint"},47:{name:"EncryptedBlock",type:"Binary"},106212971:{name:"Tracks",type:"Container"},46:{name:"TrackEntry",type:"Container"},87:{name:"TrackNumber",type:"Uint"},13253:{name:"TrackUID",type:"Uint"},3:{name:"TrackType",type:"Uint"},57:{name:"FlagEnabled",type:"Uint"},8:{name:"FlagDefault",type:"Uint"},5546:{name:"FlagForced",type:"Uint"},28:{name:"FlagLacing",type:"Uint"},11751:{name:"MinCache",type:"Uint"},11768:{name:"MaxCache",type:"Uint"},254851:{name:"DefaultDuration",type:"Uint"},216698:{name:"DefaultDecodedFieldDuration",type:"Uint"},209231:{name:"TrackTimecodeScale",type:"Float"},4991:{name:"TrackOffset",type:"Int"},5614:{name:"MaxBlockAdditionID",type:"Uint"},4974:{name:"Name",type:"String"},177564:{name:"Language",type:"String"},6:{name:"CodecID",type:"String"},9122:{name:"CodecPrivate",type:"Binary"},362120:{name:"CodecName",type:"String"},13382:{name:"AttachmentLink",type:"Uint"},1742487:{name:"CodecSettings",type:"String"},1785920:{name:"CodecInfoURL",type:"String"},438848:{name:"CodecDownloadURL",type:"String"},42:{name:"CodecDecodeAll",type:"Uint"},12203:{name:"TrackOverlay",type:"Uint"},5802:{name:"CodecDelay",type:"Uint"},5819:{name:"SeekPreRoll",type:"Uint"},9764:{name:"TrackTranslate",type:"Container"},9980:{name:"TrackTranslateEditionUID",type:"Uint"},9919:{name:"TrackTranslateCodec",type:"Uint"},9893:{name:"TrackTranslateTrackID",type:"Binary"},96:{name:"Video",type:"Container"},26:{name:"FlagInterlaced",type:"Uint"},5048:{name:"StereoMode",type:"Uint"},5056:{name:"AlphaMode",type:"Uint"},5049:{name:"OldStereoMode",type:"Uint"},48:{name:"PixelWidth",type:"Uint"},58:{name:"PixelHeight",type:"Uint"},5290:{name:"PixelCropBottom",type:"Uint"},5307:{name:"PixelCropTop",type:"Uint"},5324:{name:"PixelCropLeft",type:"Uint"},5341:{name:"PixelCropRight",type:"Uint"},5296:{name:"DisplayWidth",type:"Uint"},5306:{name:"DisplayHeight",type:"Uint"},5298:{name:"DisplayUnit",type:"Uint"},5299:{name:"AspectRatioType",type:"Uint"},963876:{name:"ColourSpace",type:"Binary"},1029411:{name:"GammaValue",type:"Float"},230371:{name:"FrameRate",type:"Float"},97:{name:"Audio",type:"Container"},53:{name:"SamplingFrequency",type:"Float"},14517:{name:"OutputSamplingFrequency",type:"Float"},31:{name:"Channels",type:"Uint"},15739:{name:"ChannelPositions",type:"Binary"},8804:{name:"BitDepth",type:"Uint"},98:{name:"TrackOperation",type:"Container"},99:{name:"TrackCombinePlanes",type:"Container"},100:{name:"TrackPlane",type:"Container"},101:{name:"TrackPlaneUID",type:"Uint"},102:{name:"TrackPlaneType",type:"Uint"},105:{name:"TrackJoinBlocks",type:"Container"},109:{name:"TrackJoinUID",type:"Uint"},64:{name:"TrickTrackUID",type:"Uint"},65:{name:"TrickTrackSegmentUID",type:"Binary"},70:{name:"TrickTrackFlag",type:"Uint"},71:{name:"TrickMasterTrackUID",type:"Uint"},68:{name:"TrickMasterTrackSegmentUID",type:"Binary"},11648:{name:"ContentEncodings",type:"Container"},8768:{name:"ContentEncoding",type:"Container"},4145:{name:"ContentEncodingOrder",type:"Uint"},4146:{name:"ContentEncodingScope",type:"Uint"},4147:{name:"ContentEncodingType",type:"Uint"},4148:{name:"ContentCompression",type:"Container"},596:{name:"ContentCompAlgo",type:"Uint"},597:{name:"ContentCompSettings",type:"Binary"},4149:{name:"ContentEncryption",type:"Container"},2017:{name:"ContentEncAlgo",type:"Uint"},2018:{name:"ContentEncKeyID",type:"Binary"},2019:{name:"ContentSignature",type:"Binary"},2020:{name:"ContentSigKeyID",type:"Binary"},2021:{name:"ContentSigAlgo",type:"Uint"},2022:{name:"ContentSigHashAlgo",type:"Uint"},206814059:{name:"Cues",type:"Container"},59:{name:"CuePoint",type:"Container"},51:{name:"CueTime",type:"Uint"},55:{name:"CueTrackPositions",type:"Container"},119:{name:"CueTrack",type:"Uint"},113:{name:"CueClusterPosition",type:"Uint"},112:{name:"CueRelativePosition",type:"Uint"},50:{name:"CueDuration",type:"Uint"},4984:{name:"CueBlockNumber",type:"Uint"},106:{name:"CueCodecState",type:"Uint"},91:{name:"CueReference",type:"Container"},22:{name:"CueRefTime",type:"Uint"},23:{name:"CueRefCluster",type:"Uint"},4959:{name:"CueRefNumber",type:"Uint"},107:{name:"CueRefCodecState",type:"Uint"},155296873:{name:"Attachments",type:"Container"},8615:{name:"AttachedFile",type:"Container"},1662:{name:"FileDescription",type:"String"},1646:{name:"FileName",type:"String"},1632:{name:"FileMimeType",type:"String"},1628:{name:"FileData",type:"Binary"},1710:{name:"FileUID",type:"Uint"},1653:{name:"FileReferral",type:"Binary"},1633:{name:"FileUsedStartTime",type:"Uint"},1634:{name:"FileUsedEndTime",type:"Uint"},4433776:{name:"Chapters",type:"Container"},1465:{name:"EditionEntry",type:"Container"},1468:{name:"EditionUID",type:"Uint"},1469:{name:"EditionFlagHidden",type:"Uint"},1499:{name:"EditionFlagDefault",type:"Uint"},1501:{name:"EditionFlagOrdered",type:"Uint"},54:{name:"ChapterAtom",type:"Container"},13252:{name:"ChapterUID",type:"Uint"},5716:{name:"ChapterStringUID",type:"String"},17:{name:"ChapterTimeStart",type:"Uint"},18:{name:"ChapterTimeEnd",type:"Uint"},24:{name:"ChapterFlagHidden",type:"Uint"},1432:{name:"ChapterFlagEnabled",type:"Uint"},11879:{name:"ChapterSegmentUID",type:"Binary"},11964:{name:"ChapterSegmentEditionUID",type:"Uint"},9155:{name:"ChapterPhysicalEquiv",type:"Uint"},15:{name:"ChapterTrack",type:"Container"},9:{name:"ChapterTrackNumber",type:"Uint"},0:{name:"ChapterDisplay",type:"Container"},5:{name:"ChapString",type:"String"},892:{name:"ChapLanguage",type:"String"},894:{name:"ChapCountry",type:"String"},10564:{name:"ChapProcess",type:"Container"},10581:{name:"ChapProcessCodecID",type:"Uint"},1293:{name:"ChapProcessPrivate",type:"Binary"},10513:{name:"ChapProcessCommand",type:"Container"},10530:{name:"ChapProcessTime",type:"Uint"},10547:{name:"ChapProcessData",type:"Binary"},39109479:{name:"Tags",type:"Container"},13171:{name:"Tag",type:"Container"},9152:{name:"Targets",type:"Container"},10442:{name:"TargetTypeValue",type:"Uint"},9162:{name:"TargetType",type:"String"},9157:{name:"TagTrackUID",type:"Uint"},9161:{name:"TagEditionUID",type:"Uint"},9156:{name:"TagChapterUID",type:"Uint"},9158:{name:"TagAttachmentUID",type:"Uint"},10184:{name:"SimpleTag",type:"Container"},1443:{name:"TagName",type:"String"},1146:{name:"TagLanguage",type:"String"},1156:{name:"TagDefault",type:"Uint"},1159:{name:"TagString",type:"String"},1157:{name:"TagBinary",type:"Binary"}};function n(c,l){c.prototype=Object.create(l.prototype),c.prototype.constructor=c}function a(c,l){this.name=c||"Unknown",this.type=l||"Unknown"}a.prototype.updateBySource=function(){},a.prototype.setSource=function(c){this.source=c,this.updateBySource()},a.prototype.updateByData=function(){},a.prototype.setData=function(c){this.data=c,this.updateByData()};function r(c,l){a.call(this,c,l||"Uint")}n(r,a);function i(c){return c.length%2===1?"0"+c:c}r.prototype.updateBySource=function(){this.data="";for(var c=0;c<this.source.length;c++){var l=this.source[c].toString(16);this.data+=i(l)}},r.prototype.updateByData=function(){var c=this.data.length/2;this.source=new Uint8Array(c);for(var l=0;l<c;l++){var u=this.data.substr(l*2,2);this.source[l]=parseInt(u,16)}},r.prototype.getValue=function(){return parseInt(this.data,16)},r.prototype.setValue=function(c){this.setData(i(c.toString(16)))};function o(c,l){a.call(this,c,l||"Float")}n(o,a),o.prototype.getFloatArrayType=function(){return this.source&&this.source.length===4?Float32Array:Float64Array},o.prototype.updateBySource=function(){var c=this.source.reverse(),l=this.getFloatArrayType(),u=new l(c.buffer);this.data=u[0]},o.prototype.updateByData=function(){var c=this.getFloatArrayType(),l=new c([this.data]),u=new Uint8Array(l.buffer);this.source=u.reverse()},o.prototype.getValue=function(){return this.data},o.prototype.setValue=function(c){this.setData(c)};function s(c,l){a.call(this,c,l||"Container")}n(s,a),s.prototype.readByte=function(){return this.source[this.offset++]},s.prototype.readUint=function(){for(var c=this.readByte(),l=8-c.toString(2).length,u=c-(1<<7-l),y=0;y<l;y++)u*=256,u+=this.readByte();return u},s.prototype.updateBySource=function(){for(this.data=[],this.offset=0;this.offset<this.source.length;this.offset=u){var c=this.readUint(),l=this.readUint(),u=Math.min(this.offset+l,this.source.length),y=this.source.slice(this.offset,u),f=t[c]||{name:"Unknown",type:"Unknown"},h=a;switch(f.type){case"Container":h=s;break;case"Uint":h=r;break;case"Float":h=o;break}var d=new h(f.name,f.type);d.setSource(y),this.data.push({id:c,idHex:c.toString(16),data:d})}},s.prototype.writeUint=function(c,l){for(var u=1,y=128;c>=y&&u<8;u++,y*=128);if(!l)for(var f=y+c,h=u-1;h>=0;h--){var d=f%256;this.source[this.offset+h]=d,f=(f-d)/256}this.offset+=u},s.prototype.writeSections=function(c){this.offset=0;for(var l=0;l<this.data.length;l++){var u=this.data[l],y=u.data.source,f=y.length;this.writeUint(u.id,c),this.writeUint(f,c),c||this.source.set(y,this.offset),this.offset+=f}return this.offset},s.prototype.updateByData=function(){var c=this.writeSections("draft");this.source=new Uint8Array(c),this.writeSections()},s.prototype.getSectionById=function(c){for(var l=0;l<this.data.length;l++){var u=this.data[l];if(u.id===c)return u.data}return null};function m(c){s.call(this,"File","File"),this.setSource(c)}n(m,s),m.prototype.fixDuration=function(c,l){var u=l&&l.logger;u===void 0?u=function(C){console.log(C)}:u||(u=function(){});var y=this.getSectionById(139690087);if(!y)return u("[fix-webm-duration] Segment section is missing"),!1;var f=y.getSectionById(88713574);if(!f)return u("[fix-webm-duration] Info section is missing"),!1;var h=f.getSectionById(710577);if(!h)return u("[fix-webm-duration] TimecodeScale section is missing"),!1;var d=f.getSectionById(1161);if(d)if(d.getValue()<=0)u(`[fix-webm-duration] Duration section is present, but the value is ${d.getValue()}`),d.setValue(c);else return u(`[fix-webm-duration] Duration section is present, and the value is ${d.getValue()}`),!1;else u("[fix-webm-duration] Duration section is missing"),d=new o("Duration","Float"),d.setValue(c),f.data.push({id:1161,data:d});return h.setValue(1e6),f.updateByData(),y.updateByData(),this.updateByData(),!0},m.prototype.toBlob=function(c){return new Blob([this.source.buffer],{type:c||"video/webm"})};function p(c,l,u,y){if(typeof u=="object"&&(y=u,u=void 0),!u)return new Promise(function(h){p(c,l,h,y)});try{var f=new FileReader;f.onloadend=function(){try{var h=new m(new Uint8Array(f.result));h.fixDuration(l,y)&&(c=h.toBlob(c.type))}catch{}u(c)},f.readAsArrayBuffer(c)}catch{u(c)}}return p.default=p,p})}(k)),k.exports}var at=nt();const rt=tt(at);function it(e){const t=new Uint8Array(e);let n="";for(let a=0;a<t.length;a+=32768)n+=String.fromCharCode.apply(null,t.subarray(a,a+32768));return btoa(n)}const ot=e=>e.includes("woff2")?"font/woff2":e.includes("woff")?"font/woff":"font/ttf",st=/@font-face\s*{[^}]*}/g;async function G(e){if(!e)return[];try{return(await fetch(e).then(n=>n.text())).match(st)??[]}catch{return[]}}async function ne(e){var r;const t=[];for(const i of e.styleSheets){let o;try{o=i.cssRules}catch{t.push(...await G(i.href));continue}for(const s of o)if(s.type===5||((r=s.constructor)==null?void 0:r.name)==="CSSFontFaceRule")t.push(s.cssText);else if(s.type===3&&s.href){let m=!0;try{s.styleSheet.cssRules}catch{m=!1}m||t.push(...await G(s.href))}}const n=new Map,a=[];for(let i of t){const o=[...i.matchAll(/url\((['"]?)(https?:\/\/[^'")]+)\1\)/g)].map(s=>s[2]);for(const s of o)try{if(!n.has(s)){const m=await fetch(s).then(p=>p.arrayBuffer());n.set(s,`data:${ot(s)};base64,${it(m)}`)}i=i.split(s).join(n.get(s))}catch{}a.push(i)}return a.join(`
8
+ `)}async function pt(e){var r;const t=(r=e==null?void 0:e.iframe)==null?void 0:r.contentDocument;if(!(t!=null&&t.documentElement))throw new Error("Nothing to capture yet — let the replay load first.");const n=await ne(t).catch(()=>""),a=await et(t.documentElement,{backgroundColor:"#ffffff",fontEmbedCSS:n});if(!a)throw new Error("Could not capture this frame.");return a}const ct=12,ut=400,lt=()=>["video/webm;codecs=vp9","video/webm;codecs=vp8","video/webm"].find(e=>MediaRecorder.isTypeSupported(e));async function mt({replayer:e,durationMs:t,onProgress:n,shouldCancel:a}){var L;const r=e==null?void 0:e.iframe;if(!((L=r==null?void 0:r.contentDocument)!=null&&L.documentElement))throw new Error("The replay is not ready yet.");if(!t||t<200)throw new Error("This recording is too short to record.");if(typeof MediaRecorder>"u")throw new Error("This browser can't record video.");const i=lt();if(!i)throw new Error("This browser can't record WebM video.");const o=Math.max(320,r.offsetWidth||1280),s=Math.max(240,r.offsetHeight||720),m=document.createElement("canvas");m.width=o,m.height=s;const p=m.getContext("2d"),c=()=>{p.fillStyle="#ffffff",p.fillRect(0,0,o,s)};c();const l=await ne(r.contentDocument).catch(()=>""),u=new MediaRecorder(m.captureStream(ct),{mimeType:i,videoBitsPerSecond:35e5}),y=[];u.ondataavailable=b=>b.data.size&&y.push(b.data);const f=new Promise(b=>u.onstop=b);u.start(250),e.play(0);const h=performance.now();let d=!1,C=0;try{await new Promise((b,ae)=>{function M(){if(a!=null&&a())return ae(new Error("Cancelled."));C=performance.now()-h,n==null||n(Math.min(1,C/t)),d||(d=!0,te(r.contentDocument.documentElement,{width:o,height:s,backgroundColor:"#ffffff",fontEmbedCSS:l}).then(re=>{c(),p.drawImage(re,0,0,o,s)}).catch(()=>{}).finally(()=>{d=!1})),C>=t+ut?b():requestAnimationFrame(M)}requestAnimationFrame(M)})}finally{u.stop(),await f;try{e.pause(0)}catch{}}n==null||n(1);const A=new Blob(y,{type:i});return rt(A,Math.round(C),{logger:!1}).catch(()=>A)}const w=ie(null);let E=!1;function ht(){E=!0}function dt(){w.set(null)}async function gt({replayer:e,durationMs:t,filename:n}){var a;if(((a=oe(w))==null?void 0:a.status)!=="rendering"){E=!1,w.set({status:"rendering",progress:0,filename:n});try{const r=await mt({replayer:e,durationMs:t,onProgress:i=>w.update(o=>o&&{...o,progress:i}),shouldCancel:()=>E});if(E){w.set(null);return}se(r,n),w.set({status:"done",progress:1,filename:n}),setTimeout(()=>w.update(i=>(i==null?void 0:i.status)==="done"?null:i),6e3)}catch(r){if(E||r.message==="Cancelled."){w.set(null);return}w.set({status:"error",progress:0,filename:n,error:r.message})}}}export{ht as a,pt as c,dt as d,w as r,gt as s};
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ * Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+
6
+ import{J as e,h as n,al as L,am as A,an as i}from"./BIf7lHIm.js";import{d as S}from"./6VDMVB5U.js";function f(s){if(n){var a=!1,o=()=>{if(!a){if(a=!0,s.hasAttribute("value")){var t=s.value;c(s,"value",null),s.value=t}if(s.hasAttribute("checked")){var r=s.checked;c(s,"checked",null),s.checked=r}}};s.__on_r=o,A(o),S()}}function I(s,a){var o=s.__attributes??(s.__attributes={});o.value===(o.value=a??void 0)||s.value===a&&(a!==0||s.nodeName!=="PROGRESS")||(s.value=a??"")}function N(s,a){var o=s.__attributes??(s.__attributes={});o.checked!==(o.checked=a??void 0)&&(s.checked=a)}function c(s,a,o,t){var r=s.__attributes??(s.__attributes={});n&&(r[a]=s.getAttribute(a),a==="src"||a==="srcset"||a==="href"&&s.nodeName==="LINK")||r[a]!==(r[a]=o)&&(a==="style"&&"__styles"in s&&(s.__styles={}),a==="loading"&&(s[i]=o),o==null?s.removeAttribute(a):typeof o!="string"&&d(s).includes(a)?s[a]=o:s.setAttribute(a,o))}var E=new Map;function d(s){var a=E.get(s.nodeName);if(a)return a;E.set(s.nodeName,a=[]);for(var o,t=s,r=Element.prototype;r!==t;){o=L(t);for(var _ in o)o[_].set&&a.push(_);t=e(t)}return a}const B="http://localhost:3001",C=[{id:"chromium",label:"Chrome"},{id:"firefox",label:"Firefox"}],O=Object.freeze({MANUAL:"manual-trigger",CLI:"command-line-trigger",MCP:"mcp-trigger",EXTERNAL:"external-trigger",CRON:"cron"}),l=15,u=20,h=20,g=1400,M=8e3,v=3e3,p=1,P=10,D=5,G=200,U=20,k="built-in",b="Built-in",x="all tests",y="Automated",w="Confirm",F="Delete",K="Cancel",W="Working…",X="Nothing here yet.",Y="Save",H="Edit",J="Close",j="Delete",z="Clear",V="Discord",$="Slack",q="Email",m="Password",Q="Export",Z=[{id:"csv",label:"CSV",hint:"Download report"},{id:"json",label:"JSON",hint:"Download JSON. Re-importable"}],ss=s=>`Could not export ${s}.`,as=s=>`${s} exported.`,os="Clear search",ts="Sort by",rs="Loading…",_s="Saving…",cs="Creating…",Es="Searching…",ns="? This cannot be undone.";function es(s,a,o=`${a}s`){return s===1?a:o}export{B as A,C as B,K as C,j as D,q as E,g as F,v as G,x as H,V as I,$ as J,H as K,rs as L,D as M,I as N,G as O,m as P,p as Q,u as R,ts as S,M as T,P as U,W,O as a,os as b,ss as c,Es as d,as as e,h as f,ns as g,cs as h,_s as i,Y as j,z as k,y as l,J as m,U as n,l as o,es as p,N as q,f as r,c as s,Q as t,Z as u,X as v,w,F as x,k as y,b as z};
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ * Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+
6
+ import{c as M,a as r,s as c,t as d,b as j}from"./6VDMVB5U.js";import"./CtgCYzu5.js";import{f as G,d as v,k as m,j as P,t as o}from"./BIf7lHIm.js";import{i as g}from"./D_thT6pZ.js";import{s as u,c as Y}from"./BTV7EXZb.js";import{p as l}from"./D72giPTu.js";import{v as q}from"./C4Z3p6jE.js";var w=d('<p class="empty-desc svelte-iaevnx"> </p>'),B=d('<div><p class="empty-title svelte-iaevnx"> </p> <!></div>'),C=d("<p><!></p>");function N(S,a){let n=l(a,"title",8,""),x=l(a,"description",8,""),b=l(a,"message",8,q),E=l(a,"size",8,"md");var y=M(),T=G(y);{var h=e=>{var t=B(),s=v(t),p=v(s,!0);m(s);var i=P(s,2);{var z=f=>{var _=w(),A=v(_,!0);m(_),o(()=>c(A,x())),r(f,_)};g(i,f=>{x()&&f(z)})}m(t),o(()=>{u(t,`empty ${E()??""} svelte-iaevnx`),c(p,n())}),r(e,t)},k=e=>{var t=C(),s=v(t);Y(s,a,"default",{},p=>{var i=j();o(()=>c(i,b())),r(p,i)}),m(t),o(()=>u(t,`empty ${E()??""} svelte-iaevnx`)),r(e,t)};g(T,e=>{n()?e(h):e(k,!1)})}r(S,y)}export{N as E};
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ * Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+
6
+ import{c as T,e as o,a as k,s as j,t as K}from"./6VDMVB5U.js";import"./CtgCYzu5.js";import{f as L,B as q,d as s,k as i,j as b,t as z}from"./BIf7lHIm.js";import{i as A}from"./D_thT6pZ.js";import{c as D,a as g,d as F,g as G}from"./BTV7EXZb.js";import{s as H}from"./C4Z3p6jE.js";import{p as h}from"./D72giPTu.js";function I(l){const t=l-1;return t*t*t+1}var J=K('<div class="backdrop svelte-v85iae" role="presentation"><div class="panel svelte-v85iae" role="dialog" aria-modal="true"><div class="header svelte-v85iae"><h3 class="title svelte-v85iae"> </h3> <button class="close-btn svelte-v85iae" 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-v85iae"><!></div></div></div>');function W(l,t){let v=h(t,"open",12,!1),f=h(t,"title",8,""),u=!1;function r(){v(!1)}function w(e){u=e.target===e.currentTarget}function _(e){e.target===e.currentTarget&&u&&r()}function y(e){e.key==="Escape"&&r()}var p=T();o("keydown",q,y);var B=L(p);{var M=e=>{var a=J(),n=s(a),d=s(n),c=s(d),x=s(c,!0);i(c);var C=b(c,2);i(d);var m=b(d,2),E=s(m);D(E,t,"default",{},null),i(m),i(n),i(a),z(()=>{H(n,"aria-label",f()),j(x,f())}),o("click",C,r),g(3,n,()=>F,()=>({start:.96,duration:260,easing:I})),o("mousedown",a,w),o("click",a,_),o("keydown",a,O=>O.key==="Escape"&&r()),g(3,a,()=>G,()=>({duration:200})),k(e,a)};A(B,e=>{v()&&e(M)})}k(l,p)}export{W as M,I as c};
@@ -3,4 +3,4 @@
3
3
  * Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
5
 
6
- import{w as u}from"./CeH-RgMb.js";const e="plum:token",l="plum:user";function s(){let o=null,r=null;try{o=typeof localStorage<"u"?localStorage.getItem(e):null;const t=typeof localStorage<"u"?localStorage.getItem(l):null;r=t?JSON.parse(t):null}catch{}const{subscribe:c,set:a,update:g}=u({token:o,user:r});return{subscribe:c,login(t,n){try{localStorage.setItem(e,t),localStorage.setItem(l,JSON.stringify(n))}catch{}a({token:t,user:n})},logout(){try{localStorage.removeItem(e),localStorage.removeItem(l)}catch{}a({token:null,user:null})},getToken(){try{return localStorage.getItem(e)}catch{return null}}}}const m=s();export{m as a};
6
+ import{w as u}from"./BIf7lHIm.js";const e="plum:token",l="plum:user";function s(){let o=null,r=null;try{o=typeof localStorage<"u"?localStorage.getItem(e):null;const t=typeof localStorage<"u"?localStorage.getItem(l):null;r=t?JSON.parse(t):null}catch{}const{subscribe:c,set:a,update:g}=u({token:o,user:r});return{subscribe:c,login(t,n){try{localStorage.setItem(e,t),localStorage.setItem(l,JSON.stringify(n))}catch{}a({token:t,user:n})},logout(){try{localStorage.removeItem(e),localStorage.removeItem(l)}catch{}a({token:null,user:null})},getToken(){try{return localStorage.getItem(e)}catch{return null}}}}const m=s();export{m as a};
@@ -3,4 +3,4 @@
3
3
  * Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
5
 
6
- import{ad as g,ae as d,af as c,ag as i,u as m,ah as b,g as p,ai as h,T as v,aj as k}from"./CeH-RgMb.js";function x(t=!1){const a=g,e=a.l.u;if(!e)return;let o=()=>h(a.s);if(t){let n=0,s={};const _=v(()=>{let l=!1;const r=a.s;for(const f in r)r[f]!==s[f]&&(s[f]=r[f],l=!0);return l&&n++,n});o=()=>p(_)}e.b.length&&d(()=>{u(a,o),i(e.b)}),c(()=>{const n=m(()=>e.m.map(b));return()=>{for(const s of n)typeof s=="function"&&s()}}),e.a.length&&c(()=>{u(a,o),i(e.a)})}function u(t,a){if(t.l.s)for(const e of t.l.s)p(e);a()}k();export{x as i};
6
+ import{ae as g,af as d,ag as c,ah as i,u as m,ai as b,g as p,aj as h,V as k,ak as v}from"./BIf7lHIm.js";function x(t=!1){const a=g,e=a.l.u;if(!e)return;let o=()=>h(a.s);if(t){let n=0,s={};const _=k(()=>{let l=!1;const r=a.s;for(const f in r)r[f]!==s[f]&&(s[f]=r[f],l=!0);return l&&n++,n});o=()=>p(_)}e.b.length&&d(()=>{u(a,o),i(e.b)}),c(()=>{const n=m(()=>e.m.map(b));return()=>{for(const s of n)typeof s=="function"&&s()}}),e.a.length&&c(()=>{u(a,o),i(e.a)})}function u(t,a){if(t.l.s)for(const e of t.l.s)p(e);a()}v();export{x as i};
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ * Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+
6
+ import{S as h,C as B,D as C,E as o,F as G,g as c,U as l,s as b,G as A,H as K,I as V,J as Z,i as $,K as z,L as F,P as H,M as J,u as U,N as Q,O as W,Q as X,R as k,T as p,V as Y,W as ee,X as re,x as ne,Y as te}from"./BIf7lHIm.js";import{c as ae}from"./D_thT6pZ.js";function O(n,v=null,R){if(typeof n!="object"||n===null||h in n)return n;const P=Z(n);if(P!==B&&P!==C)return n;var f=new Map,g=$(n),y=o(0);g&&f.set("length",o(n.length));var m;return new Proxy(n,{defineProperty(i,e,r){(!("value"in r)||r.configurable===!1||r.enumerable===!1||r.writable===!1)&&V();var a=f.get(e);return a===void 0?(a=o(r.value),f.set(e,a)):b(a,O(r.value,m)),!0},deleteProperty(i,e){var r=f.get(e);if(r===void 0)e in i&&f.set(e,o(l));else{if(g&&typeof e=="string"){var a=f.get("length"),t=Number(e);Number.isInteger(t)&&t<a.v&&b(a,t)}b(r,l),j(y)}return!0},get(i,e,r){var d;if(e===h)return n;var a=f.get(e),t=e in i;if(a===void 0&&(!t||(d=A(i,e))!=null&&d.writable)&&(a=o(O(t?i[e]:l,m)),f.set(e,a)),a!==void 0){var u=c(a);return u===l?void 0:u}return Reflect.get(i,e,r)},getOwnPropertyDescriptor(i,e){var r=Reflect.getOwnPropertyDescriptor(i,e);if(r&&"value"in r){var a=f.get(e);a&&(r.value=c(a))}else if(r===void 0){var t=f.get(e),u=t==null?void 0:t.v;if(t!==void 0&&u!==l)return{enumerable:!0,configurable:!0,value:u,writable:!0}}return r},has(i,e){var u;if(e===h)return!0;var r=f.get(e),a=r!==void 0&&r.v!==l||Reflect.has(i,e);if(r!==void 0||K!==null&&(!a||(u=A(i,e))!=null&&u.writable)){r===void 0&&(r=o(a?O(i[e],m):l),f.set(e,r));var t=c(r);if(t===l)return!1}return a},set(i,e,r,a){var w;var t=f.get(e),u=e in i;if(g&&e==="length")for(var d=r;d<t.v;d+=1){var I=f.get(d+"");I!==void 0?b(I,l):d in i&&(I=o(l),f.set(d+"",I))}t===void 0?(!u||(w=A(i,e))!=null&&w.writable)&&(t=o(void 0),b(t,O(r,m)),f.set(e,t)):(u=t.v!==l,b(t,O(r,m)));var _=Reflect.getOwnPropertyDescriptor(i,e);if(_!=null&&_.set&&_.set.call(a,r),!u){if(g&&typeof e=="string"){var E=f.get("length"),D=Number(e);Number.isInteger(D)&&D>=E.v&&b(E,D+1)}j(y)}return!0},ownKeys(i){c(y);var e=Reflect.ownKeys(i).filter(t=>{var u=f.get(t);return u===void 0||u.v!==l});for(var[r,a]of f)a.v!==l&&!(r in i)&&e.push(r);return e},setPrototypeOf(){G()}})}function j(n,v=1){b(n,n.v+v)}function q(n){return n!==null&&typeof n=="object"&&h in n?n[h]:n}function ue(n,v){return Object.is(q(n),q(v))}function se(n,v,R,P){var M;var f=(R&p)!==0,g=!X||(R&k)!==0,y=(R&Q)!==0,m=(R&re)!==0,i=!1,e;y?[e,i]=ae(()=>n[v]):e=n[v];var r=h in n||W in n,a=y&&(((M=A(n,v))==null?void 0:M.set)??(r&&v in n&&(s=>n[v]=s)))||void 0,t=P,u=!0,d=!1,I=()=>(d=!0,u&&(u=!1,m?t=U(P):t=P),t);e===void 0&&P!==void 0&&(a&&g&&z(),e=I(),a&&a(e));var _;if(g)_=()=>{var s=n[v];return s===void 0?I():(u=!0,d=!1,s)};else{var E=(f?Y:ne)(()=>n[v]);E.f|=F,_=()=>{var s=c(E);return s!==void 0&&(t=void 0),s===void 0?t:s}}if(!(R&H))return _;if(a){var D=n.$$legacy;return function(s,S){return arguments.length>0?((!g||!S||D||i)&&a(S?_():s),s):_()}}var w=!1,L=!1,x=ee(e),N=Y(()=>{var s=_(),S=c(x);return w?(w=!1,L=!0,S):(L=!1,x.v=s)});return f||(N.equals=J),function(s,S){if(te!==null&&(w=L,_(),c(x)),arguments.length>0){const T=S?c(N):g&&y?O(s):s;return N.equals(T)||(w=!0,b(x,T),d&&t!==void 0&&(t=T),U(()=>c(N))),s}return c(N)}}export{O as a,ue as i,se as p};
@@ -3,4 +3,4 @@
3
3
  * Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
5
 
6
- import{A as r}from"./DuAVKaL3.js";const i=8e3;async function s(o,e={}){const a=new AbortController,t=setTimeout(()=>a.abort(),i);try{return await fetch(o,{...e,signal:a.signal})}finally{clearTimeout(t)}}async function u(){const o=await s(`${r}/auth/needs-setup`);return o.ok?(await o.json()).needsSetup:!1}async function d({name:o,email:e,password:a}){const t=await s(`${r}/auth/setup`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:o,email:e,password:a})}),n=await t.json();if(!t.ok)throw new Error(n.error??"Setup failed");return n}async function p({email:o,password:e}){const a=await s(`${r}/auth/login`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:o,password:e})}),t=await a.json();if(!a.ok)throw new Error(t.error??"Login failed");return t}async function h({token:o,name:e,email:a}){const t=await s(`${r}/auth/update-profile`,{method:"PUT",headers:{"Content-Type":"application/json",Authorization:`Bearer ${o}`},body:JSON.stringify({name:e,email:a})}),n=await t.json();if(!t.ok)throw new Error(n.error??"Failed to update profile");return n}async function f({token:o,currentPassword:e,newPassword:a}){const t=await s(`${r}/auth/change-password`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${o}`},body:JSON.stringify({currentPassword:e,newPassword:a})}),n=await t.json();if(!t.ok)throw new Error(n.error??"Failed to change password");return n}export{f as a,u as c,p as l,d as s,h as u};
6
+ import{A as r}from"./C4Z3p6jE.js";const i=8e3;async function s(o,e={}){const a=new AbortController,t=setTimeout(()=>a.abort(),i);try{return await fetch(o,{...e,signal:a.signal})}finally{clearTimeout(t)}}async function u(){const o=await s(`${r}/auth/needs-setup`);return o.ok?(await o.json()).needsSetup:!1}async function d({name:o,email:e,password:a}){const t=await s(`${r}/auth/setup`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:o,email:e,password:a})}),n=await t.json();if(!t.ok)throw new Error(n.error??"Setup failed");return n}async function p({email:o,password:e}){const a=await s(`${r}/auth/login`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:o,password:e})}),t=await a.json();if(!a.ok)throw new Error(t.error??"Login failed");return t}async function h({token:o,name:e,email:a}){const t=await s(`${r}/auth/update-profile`,{method:"PUT",headers:{"Content-Type":"application/json",Authorization:`Bearer ${o}`},body:JSON.stringify({name:e,email:a})}),n=await t.json();if(!t.ok)throw new Error(n.error??"Failed to update profile");return n}async function f({token:o,currentPassword:e,newPassword:a}){const t=await s(`${r}/auth/change-password`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${o}`},body:JSON.stringify({currentPassword:e,newPassword:a})}),n=await t.json();if(!t.ok)throw new Error(n.error??"Failed to change password");return n}export{f as a,u as c,p as l,d as s,h as u};
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ * Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+
6
+ import{Z as I,h as o,_ as m,a0 as A,a1 as S,a2 as R,a3 as U,a4 as v,a5 as h,a6 as p,a7 as g,U as D,a8 as x,a9 as y,W as F,aa as L,ab as O,g as Z,ac as k,ad as q,s as w}from"./BIf7lHIm.js";function H(a,s,n=!1){o&&m();var e=a,r=null,t=null,i=D,T=n?A:0,l=!1;const E=(c,u=!0)=>{l=!0,b(u,c)},b=(c,u)=>{if(i===(i=c))return;let d=!1;if(o){const N=e.data===S;!!i===N&&(e=R(),U(e),v(!1),d=!0)}i?(r?h(r):u&&(r=p(()=>u(e))),t&&g(t,()=>{t=null})):(t?h(t):u&&(t=p(()=>u(e))),r&&g(r,()=>{r=null})),d&&v(!0)};I(()=>{l=!1,s(E),l||b(null,null)},T),o&&(e=x)}let f=!1,_=Symbol();function M(a,s,n){const e=n[s]??(n[s]={store:null,source:F(void 0),unsubscribe:y});if(e.store!==a&&!(_ in n))if(e.unsubscribe(),e.store=a??null,a==null)e.source.v=void 0,e.unsubscribe=y;else{var r=!0;e.unsubscribe=L(a,t=>{r?e.source.v=t:w(e.source,t)}),r=!1}return a&&_ in n?O(a):Z(e.source)}function P(){const a={};function s(){k(()=>{for(var n in a)a[n].unsubscribe();q(a,_,{enumerable:!1,value:!0})})}return[a,s]}function W(a){var s=f;try{return f=!1,[a(),f]}finally{f=s}}export{M as a,W as c,H as i,P as s};
@@ -3,4 +3,4 @@
3
3
  * Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
5
 
6
- import{a as o,t as p}from"./CfkUW1vA.js";import"./C00jnSU2.js";import{d as l,k as m,t as n}from"./CeH-RgMb.js";import{c as f,s as i}from"./Beula-TH.js";import{p as d}from"./DB3YXVFP.js";var v=p("<span><!></span>");function _(e,t){let r=d(t,"variant",8,"neutral");var a=v(),s=l(a);f(s,t,"default",{},null),m(a),n(()=>i(a,`badge ${r()??""} svelte-f4flx`)),o(e,a)}export{_ as B};
6
+ import{a as o,t as p}from"./6VDMVB5U.js";import"./CtgCYzu5.js";import{d as l,k as m,t as n}from"./BIf7lHIm.js";import{c as f,s as i}from"./BTV7EXZb.js";import{p as d}from"./D72giPTu.js";var v=p("<span><!></span>");function _(e,t){let r=d(t,"variant",8,"neutral");var a=v(),s=l(a);f(s,t,"default",{},null),m(a),n(()=>i(a,`badge ${r()??""} svelte-f4flx`)),o(e,a)}export{_ as B};
@@ -0,0 +1,6 @@
1
+ /*
2
+ This file is part of Plum.
3
+ Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+ x d˶z�j ���TO�,w~��I_)�jm����<�� <-��ƞ�8�P���pn$!%"�4J�Ia6��z|�z��2����;J���:[
6
+ P�eG<!�o/�5���+�B:'���_�N�?e�I%��Eú�ܞ�|'Dx�X��7Ӏ����C�Sj\-�)���:�5��$��H��(і� � .��t|��'�ig�B��eI541lb��=�N$���T_����X�N+{�_?�z
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ * Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+
6
+ function c(t,n){const e=URL.createObjectURL(t),o=document.createElement("a");o.href=e,o.download=n,document.body.appendChild(o),o.click(),o.remove(),setTimeout(()=>URL.revokeObjectURL(e),1e3)}function i(t,n){const e=/filename="?([^"]+)"?/.exec(t??"");return e?e[1]:n}async function r(t,{headers:n={},fallbackName:e="export"}={}){const o=await fetch(t,{headers:n});if(!o.ok)throw new Error("Export failed");const a=await o.blob();c(a,i(o.headers.get("Content-Disposition"),e))}export{c as a,r as d};
@@ -3,4 +3,4 @@
3
3
  * Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
5
 
6
- import{s as e}from"./DiVmSEJa.js";const r=()=>{const s=e;return{page:{subscribe:s.page.subscribe},navigating:{subscribe:s.navigating.subscribe},updated:s.updated}},b={subscribe(s){return r().page.subscribe(s)}};export{b as p};
6
+ import{s as e}from"./BIjh3jiU.js";const r=()=>{const s=e;return{page:{subscribe:s.page.subscribe},navigating:{subscribe:s.navigating.subscribe},updated:s.updated}},b={subscribe(s){return r().page.subscribe(s)}};export{b as p};
@@ -3,4 +3,4 @@
3
3
  * Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
5
 
6
- import{A as e}from"./DuAVKaL3.js";import{a}from"./Ck6C3Fl0.js";function n(){return{Authorization:`Bearer ${a.getToken()}`}}async function i(){const t=await fetch(`${e}/active-runs`,{headers:n()});if(!t.ok)return[];const{runs:r}=await t.json();return r??[]}export{i as f};
6
+ import{A as e}from"./C4Z3p6jE.js";import{a}from"./CXQhSK1T.js";function n(){return{Authorization:`Bearer ${a.getToken()}`}}async function i(){const t=await fetch(`${e}/active-runs`,{headers:n()});if(!t.ok)return[];const{runs:r}=await t.json();return r??[]}export{i as f};
@@ -3,4 +3,4 @@
3
3
  * Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
5
 
6
- import{w as r,aa as u}from"./CeH-RgMb.js";import{u as A,v as B,B as U,T as L}from"./DuAVKaL3.js";import{t as S}from"./B0_HKFXV.js";import{a as b}from"./Ck6C3Fl0.js";const N=Object.freeze({RUN_TEST:"run-test",CANCEL_TEST:"cancel-test",BG_RUN_QUEUED:"bg-run-queued",BG_RUN_START:"bg-run-start",BG_RUN_LOG:"bg-run-log",BG_RUN_DONE:"bg-run-done",BG_RUN_LANES_INIT:"bg-run-lanes-init",BG_RUN_LANE_LOG:"bg-run-lane-log",BG_RUN_LANE_STATUS:"bg-run-lane-status",BG_RUN_LANE_RRWEB_BATCH:"bg-run-lane-rrweb-batch",REPORT_READY:"report-ready"}),G="Run all tests?",h="Run all tests",v="No tag or filter is set. This will run",$="every test",F="in the suite, which may take a while.",Q="View Report",V="Test Run",W="Clear test run",m="None",M="No active test runs",P="Workers",Y="Browser",x="Runners",j="Notify",K="No automated cases in this run",q="Run",O="Manual run",z="No tests currently running",H="Queued",X="Cancel run",J=n=>`${n} automated`,Z=n=>n?"Discord notification on":"Discord notification off",nn=n=>n?"Slack notification on":"Slack notification off",sn=n=>`${S(n)} run`,tn=n=>`started by ${n}`,en=n=>n?"Collapse panel":"Expand panel",rn=n=>n>0?`Queued · #${n}`:"Queued";function on({running:n,queued:t,verdict:s}){return n>0&&t>0?`${n} running · ${t} queued`:n>0?n===1?"Running":`${n} running`:t>0?t===1?"Queued":`${t} queued`:s==="pass"?"Passed":s==="fail"?"Failed":"Ready"}function an(n,t){var s;return n.selectedRunners.length===1&&n.selectedRunners[0]===A?B:n.selectedRunners.length===1?((s=t.find(e=>e.id===n.selectedRunners[0]))==null?void 0:s.name)??"1 node":`${n.selectedRunners.length} nodes`}const d=r(null),p=r({});function C({kind:n,label:t,meta:s,status:e}){return{kind:n,label:t,status:e,testCompleted:!1,latestReportId:null,verdict:"idle",output:"",lanes:[],currentRun:{tag:(s==null?void 0:s.tag)??"",workers:s==null?void 0:s.workers,browser:s==null?void 0:s.browser,runTitle:t,startedBy:(s==null?void 0:s.startedBy)??null},rrwebByLane:{}}}function un(n,{id:t,workerId:s,events:e}){const o=n[t]??{},a=o[s]??{events:[]};return{...n,[t]:{...o,[s]:{events:[...a.events,...e]}}}}const g=r({workers:1,testID:"",browser:U[0].id,selectedRunners:["built-in"]}),I=r(!1),cn=r(!0),ln=r(0),Rn=r(0);function _n(n,t,s={},e=null){var E;const o=u(d);if(!o)return null;const{workers:a,testID:T,browser:R,selectedRunners:f}=u(g),c=(n!==void 0?n:T).trim().replace(/\sOR\s/gi,l=>l.toLowerCase()),i=crypto.randomUUID(),_=((E=u(b).user)==null?void 0:E.name)??null;return p.update(l=>({...l,[i]:C({kind:L.MANUAL,label:e||c||O,meta:{tag:c,workers:a,browser:R,startedBy:_},status:"queued"})})),I.set(!0),o.emit(N.RUN_TEST,{runId:i,tag:c,workers:a,browser:R,runners:f,testRunId:t??null,notifyDiscord:s.notifyDiscord??!1,notifySlack:s.notifySlack??!1,runTitle:e,startedBy:_}),i}function En(n){const t=u(d);t&&n&&t.emit(N.CANCEL_TEST,{runId:n})}function Ln(n,t){return Object.values(n).find(s=>s.kind===L.CRON&&s.label===t&&s.status!=="done")}export{tn as A,Y as B,W as C,M as D,Z as E,nn as F,z as G,J as H,O as M,m as N,H as Q,h as R,N as S,V as T,Q as V,P as W,ln as a,g as b,p as c,En as d,cn as e,Ln as f,un as g,on as h,an as i,G as j,v as k,$ as l,C as m,F as n,q as o,I as p,en as q,Rn as r,d as s,_n as t,K as u,x as v,j as w,X as x,rn as y,sn as z};
6
+ import{w as r,ab as u}from"./BIf7lHIm.js";import{y as A,z as B,B as U,a as L}from"./C4Z3p6jE.js";import{t as S}from"./B2lVGNml.js";import{a as b}from"./CXQhSK1T.js";const N=Object.freeze({RUN_TEST:"run-test",CANCEL_TEST:"cancel-test",BG_RUN_QUEUED:"bg-run-queued",BG_RUN_START:"bg-run-start",BG_RUN_LOG:"bg-run-log",BG_RUN_DONE:"bg-run-done",BG_RUN_LANES_INIT:"bg-run-lanes-init",BG_RUN_LANE_LOG:"bg-run-lane-log",BG_RUN_LANE_STATUS:"bg-run-lane-status",BG_RUN_LANE_RRWEB_BATCH:"bg-run-lane-rrweb-batch",REPORT_READY:"report-ready"}),G="Run all tests?",h="Run all tests",$="No tag or filter is set. This will run",v="every test",F="in the suite, which may take a while.",Q="View Report",V="Test Run",W="Clear test run",m="None",M="No active test runs",P="Workers",Y="Browser",x="Runners",j="Notify",z="No automated cases in this run",K="Run",O="Manual run",q="No tests currently running",H="Queued",X="Cancel run",J=n=>`${n} automated`,Z=n=>n?"Discord notification on":"Discord notification off",nn=n=>n?"Slack notification on":"Slack notification off",sn=n=>`${S(n)} run`,tn=n=>`started by ${n}`,en=n=>n?"Collapse panel":"Expand panel",rn=n=>n>0?`Queued · #${n}`:"Queued";function on({running:n,queued:t,verdict:s}){return n>0&&t>0?`${n} running · ${t} queued`:n>0?n===1?"Running":`${n} running`:t>0?t===1?"Queued":`${t} queued`:s==="pass"?"Passed":s==="fail"?"Failed":"Ready"}function an(n,t){var s;return n.selectedRunners.length===1&&n.selectedRunners[0]===A?B:n.selectedRunners.length===1?((s=t.find(e=>e.id===n.selectedRunners[0]))==null?void 0:s.name)??"1 node":`${n.selectedRunners.length} nodes`}const d=r(null),p=r({});function C({kind:n,label:t,meta:s,status:e}){return{kind:n,label:t,status:e,testCompleted:!1,latestReportId:null,verdict:"idle",output:"",lanes:[],currentRun:{tag:(s==null?void 0:s.tag)??"",workers:s==null?void 0:s.workers,browser:s==null?void 0:s.browser,runTitle:t,startedBy:(s==null?void 0:s.startedBy)??null},rrwebByLane:{}}}function un(n,{id:t,workerId:s,events:e}){const o=n[t]??{},a=o[s]??{events:[]};return{...n,[t]:{...o,[s]:{events:[...a.events,...e]}}}}const g=r({workers:1,testID:"",browser:U[0].id,selectedRunners:["built-in"]}),I=r(!1),cn=r(!0),ln=r(0),Rn=r(0);function _n(n,t,s={},e=null){var E;const o=u(d);if(!o)return null;const{workers:a,testID:T,browser:R,selectedRunners:f}=u(g),c=(n!==void 0?n:T).trim().replace(/\sOR\s/gi,l=>l.toLowerCase()),i=crypto.randomUUID(),_=((E=u(b).user)==null?void 0:E.name)??null;return p.update(l=>({...l,[i]:C({kind:L.MANUAL,label:e||c||O,meta:{tag:c,workers:a,browser:R,startedBy:_},status:"queued"})})),I.set(!0),o.emit(N.RUN_TEST,{runId:i,tag:c,workers:a,browser:R,runners:f,testRunId:t??null,notifyDiscord:s.notifyDiscord??!1,notifySlack:s.notifySlack??!1,runTitle:e,startedBy:_}),i}function En(n){const t=u(d);t&&n&&t.emit(N.CANCEL_TEST,{runId:n})}function Ln(n,t){return Object.values(n).find(s=>s.kind===L.CRON&&s.label===t&&s.status!=="done")}export{tn as A,Y as B,W as C,M as D,Z as E,nn as F,q as G,J as H,O as M,m as N,H as Q,h as R,N as S,V as T,Q as V,P as W,ln as a,g as b,p as c,En as d,cn as e,Ln as f,un as g,on as h,an as i,G as j,$ as k,v as l,C as m,F as n,K as o,I as p,en as q,Rn as r,d as s,_n as t,z as u,x as v,j as w,X as x,rn as y,sn as z};
@@ -3,4 +3,4 @@
3
3
  * Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
5
 
6
- import{w as o}from"./CeH-RgMb.js";const e="plum-theme",m=localStorage.getItem(e)??"light",a=o(m);a.subscribe(t=>{localStorage.setItem(e,t),document.documentElement.setAttribute("data-theme",t)});export{a as t};
6
+ import{w as o}from"./BIf7lHIm.js";const e="plum-theme",m=localStorage.getItem(e)??"light",a=o(m);a.subscribe(t=>{localStorage.setItem(e,t),document.documentElement.setAttribute("data-theme",t)});export{a as t};
@@ -3,4 +3,4 @@
3
3
  * Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
5
 
6
- import{A as n}from"./DuAVKaL3.js";import{a as c}from"./Ck6C3Fl0.js";function s(){return{Authorization:`Bearer ${c.getToken()}`}}async function p(){const e=await fetch(`${n}/settings/project`,{headers:s()});return e.ok?e.json():{name:"",logoUrl:"",timezone:"UTC",maxRetries:0}}async function h({name:e,logoUrl:t,timezone:a,maxRetries:o}){return(await fetch(`${n}/settings/project`,{method:"POST",headers:{"Content-Type":"application/json",...s()},body:JSON.stringify({name:e,logoUrl:t,timezone:a,maxRetries:o})})).json()}async function d(){const e=await fetch(`${n}/backup/export`,{headers:s()});if(!e.ok)throw new Error("Export failed");return e.json()}async function y(e){return(await fetch(`${n}/backup/import`,{method:"POST",headers:{"Content-Type":"application/json",...s()},body:JSON.stringify(e)})).json()}async function k(){const e=await fetch(`${n}/backup/config`,{headers:s()});return e.ok?e.json():{backupEnabled:!1,backupCron:"0 2 * * *",backupS3Endpoint:"",backupS3Region:"",backupS3Bucket:"",backupS3AccessKey:"",backupS3SecretKeySet:!1,backupS3Prefix:"",backupLastRunAt:null,backupLastStatus:"",backupIncludeReports:!1}}async function b(e){return(await fetch(`${n}/backup/config`,{method:"POST",headers:{"Content-Type":"application/json",...s()},body:JSON.stringify(e)})).json()}async function j(e){return(await fetch(`${n}/backup/test-s3`,{method:"POST",headers:{"Content-Type":"application/json",...s()},body:JSON.stringify(e)})).json()}async function S(){return(await fetch(`${n}/backup/run-now`,{method:"POST",headers:s()})).json()}async function g(){return(await fetch(`${n}/backup/s3-backups`,{headers:s()})).json()}async function m(e){return(await fetch(`${n}/backup/s3-restore`,{method:"POST",headers:{"Content-Type":"application/json",...s()},body:JSON.stringify({key:e})})).json()}async function $(){const e=await fetch(`${n}/settings/integrations`,{headers:s()});return e.ok?e.json():{discordWebhookUrl:"",slackWebhookUrl:"",notifyPublicUrl:""}}async function w({discordWebhookUrl:e,slackWebhookUrl:t,notifyPublicUrl:a}){return(await fetch(`${n}/settings/integrations`,{method:"POST",headers:{"Content-Type":"application/json",...s()},body:JSON.stringify({discordWebhookUrl:e,slackWebhookUrl:t,notifyPublicUrl:a})})).json()}async function l(){const e=await fetch(`${n}/settings/mcp`,{headers:s()});return e.ok?e.json():{mcpKeySet:!1,mcpKey:""}}async function T(){const e=await fetch(`${n}/settings/mcp/generate`,{method:"POST",headers:s()});if(!e.ok)throw new Error("Failed to generate key");return e.json()}function r(){return{Authorization:`Bearer ${c.getToken()}`}}async function O(){const e=await fetch(`${n}/runners`,{headers:r()}),{runners:t}=await e.json();return t}async function P(e){return(await fetch(`${n}/runners`,{method:"POST",headers:{"Content-Type":"application/json",...r()},body:JSON.stringify(e)})).json()}async function C(e){return(await fetch(`${n}/runners/${e}`,{method:"DELETE",headers:r()})).json()}async function R(e,t){return(await fetch(`${n}/runners/${e}`,{method:"PUT",headers:{"Content-Type":"application/json",...r()},body:JSON.stringify(t)})).json()}async function B(e){return(await fetch(`${n}/runners/${e}/ping`,{method:"POST",headers:r()})).json()}async function N(e){return(await fetch(`${n}/runners/${e}/stop`,{method:"POST",headers:r()})).json()}async function E(e){return(await fetch(`${n}/runners/${e}/restart`,{method:"POST",headers:r()})).json()}async function J(e,t){return(await fetch(`${n}/runners/probe`,{method:"POST",headers:{"Content-Type":"application/json",...r()},body:JSON.stringify({url:e,token:t})})).json()}export{$ as a,p as b,l as c,k as d,g as e,O as f,J as g,N as h,C as i,P as j,w as k,T as l,d as m,y as n,b as o,B as p,m as q,E as r,h as s,j as t,R as u,S as v};
6
+ import{A as n}from"./C4Z3p6jE.js";import{a as c}from"./CXQhSK1T.js";function s(){return{Authorization:`Bearer ${c.getToken()}`}}async function p(){const e=await fetch(`${n}/settings/project`,{headers:s()});return e.ok?e.json():{name:"",logoUrl:"",timezone:"UTC",maxRetries:0}}async function h({name:e,logoUrl:t,timezone:a,maxRetries:o}){return(await fetch(`${n}/settings/project`,{method:"POST",headers:{"Content-Type":"application/json",...s()},body:JSON.stringify({name:e,logoUrl:t,timezone:a,maxRetries:o})})).json()}async function d(){const e=await fetch(`${n}/backup/export`,{headers:s()});if(!e.ok)throw new Error("Export failed");return e.json()}async function y(e){return(await fetch(`${n}/backup/import`,{method:"POST",headers:{"Content-Type":"application/json",...s()},body:JSON.stringify(e)})).json()}async function k(){const e=await fetch(`${n}/backup/config`,{headers:s()});return e.ok?e.json():{backupEnabled:!1,backupCron:"0 2 * * *",backupS3Endpoint:"",backupS3Region:"",backupS3Bucket:"",backupS3AccessKey:"",backupS3SecretKeySet:!1,backupS3Prefix:"",backupLastRunAt:null,backupLastStatus:"",backupIncludeReports:!1}}async function b(e){return(await fetch(`${n}/backup/config`,{method:"POST",headers:{"Content-Type":"application/json",...s()},body:JSON.stringify(e)})).json()}async function j(e){return(await fetch(`${n}/backup/test-s3`,{method:"POST",headers:{"Content-Type":"application/json",...s()},body:JSON.stringify(e)})).json()}async function S(){return(await fetch(`${n}/backup/run-now`,{method:"POST",headers:s()})).json()}async function g(){return(await fetch(`${n}/backup/s3-backups`,{headers:s()})).json()}async function m(e){return(await fetch(`${n}/backup/s3-restore`,{method:"POST",headers:{"Content-Type":"application/json",...s()},body:JSON.stringify({key:e})})).json()}async function $(){const e=await fetch(`${n}/settings/integrations`,{headers:s()});return e.ok?e.json():{discordWebhookUrl:"",slackWebhookUrl:"",notifyPublicUrl:""}}async function w({discordWebhookUrl:e,slackWebhookUrl:t,notifyPublicUrl:a}){return(await fetch(`${n}/settings/integrations`,{method:"POST",headers:{"Content-Type":"application/json",...s()},body:JSON.stringify({discordWebhookUrl:e,slackWebhookUrl:t,notifyPublicUrl:a})})).json()}async function l(){const e=await fetch(`${n}/settings/mcp`,{headers:s()});return e.ok?e.json():{mcpKeySet:!1,mcpKey:""}}async function T(){const e=await fetch(`${n}/settings/mcp/generate`,{method:"POST",headers:s()});if(!e.ok)throw new Error("Failed to generate key");return e.json()}function r(){return{Authorization:`Bearer ${c.getToken()}`}}async function O(){const e=await fetch(`${n}/runners`,{headers:r()}),{runners:t}=await e.json();return t}async function P(e){return(await fetch(`${n}/runners`,{method:"POST",headers:{"Content-Type":"application/json",...r()},body:JSON.stringify(e)})).json()}async function C(e){return(await fetch(`${n}/runners/${e}`,{method:"DELETE",headers:r()})).json()}async function R(e,t){return(await fetch(`${n}/runners/${e}`,{method:"PUT",headers:{"Content-Type":"application/json",...r()},body:JSON.stringify(t)})).json()}async function B(e){return(await fetch(`${n}/runners/${e}/ping`,{method:"POST",headers:r()})).json()}async function N(e){return(await fetch(`${n}/runners/${e}/stop`,{method:"POST",headers:r()})).json()}async function E(e){return(await fetch(`${n}/runners/${e}/restart`,{method:"POST",headers:r()})).json()}async function J(e,t){return(await fetch(`${n}/runners/probe`,{method:"POST",headers:{"Content-Type":"application/json",...r()},body:JSON.stringify({url:e,token:t})})).json()}export{$ as a,p as b,l as c,k as d,g as e,O as f,J as g,N as h,C as i,P as j,w as k,T as l,d as m,y as n,b as o,B as p,m as q,E as r,h as s,j as t,R as u,S as v};
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ * Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+
6
+ import{A as t,o as L,p as r}from"./C4Z3p6jE.js";import{d as T}from"./DiexacSB.js";function n(s){return{...s,date:new Date(s.createdAt).toLocaleString()}}async function p({page:s=1,limit:e=L}={}){const a=new URLSearchParams({page:s,limit:e}),o=await fetch(`${t}/reports?${a}`),{reports:E,total:c,passCount:i,failCount:l,trend:_}=await o.json();return{reports:E.map(n),total:c,passCount:i,failCount:l,trend:_.map(n)}}function A(s){return`/reports/${s}`}async function S(s){const e=await fetch(`${t}/reports/${s}`);if(!e.ok)throw new Error("Report not found");return e.json()}async function N(s){const e=await fetch(`${t}/reports/${s}/recordings`);if(!e.ok)throw new Error("Failed to fetch recordings");return e.json()}async function u(s,e){const a=await fetch(`${t}/reports/${s}/recordings/${e}/events`);if(!a.ok)throw new Error("Failed to fetch recording events");const{events:o}=await a.json();return o}async function I(s,e){await T(`${t}/reports/${s}/export?format=${e}`,{fallbackName:`report-${s}.${e}`})}async function D(s){const e=await fetch(`${t}/reports/${s}`,{method:"DELETE"});if(!e.ok)throw new Error("Failed to delete report");return e.json()}async function O(s){const e=await fetch(`${t}/reports/bulk`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:s})});if(!e.ok)throw new Error("Failed to delete reports");return e.json()}const f="Reports",h="Passed",w="Failed",P="Reports — Plum",$="Reports",m="passing",C="Recent",B="← older · newer →",y="No reports yet. Run a test to generate one.",g="Select all on this page",b="Select",U="Screenshots have been replaced by full session replay. Reports created before this change no longer have screenshots — steps and logs are still available.",v="Dismiss",G="Delete report",k=s=>s===1?"Delete report?":`Delete ${s} reports?`,F=s=>s===1?"This will permanently remove the report and its data file.":`This will permanently remove ${s} reports and their data files.`,H=s=>`${s} ${r(s,"run")} recorded`,V=s=>`${s} passed`,M=s=>`${s} failed`,W=(s,e,a)=>`${s} · ${e} · ${a}`,j=s=>`Delete (${s})`,K="Report — Plum",Y="Could not load report.",x="passed",q="failed",z="skipped",J="duration",Q="Run Logs",X="Failed and was automatically retried before the final result",Z="Watch replay",ss="Replay",es=s=>`${s} runners`,ts=s=>`${s} cases`,as=s=>`${s} attempts`,os=s=>`Case ${s}`,ns="Could not load this recording.",rs="Inspect element",Es=[{id:"csv",label:"CSV",hint:"Download report"},{id:"json",label:"JSON",hint:"Structured summary"}],cs="Download",is="Screenshot",ls="PNG of the current frame",_s="Record video",Ls="WebM — experimental, stays in your browser",Ts="Video export is only available for single-tab replays.",ds="Screenshot saved.",Rs="Could not capture this frame.",ps="Rendering replay video…",As="Replay video downloaded",Ss="Replay video render failed",Ns="Experimental — quality varies. Nothing is uploaded.",us="Dismiss",Is="Restart replay",Ds="Steps",Os="Inspector",fs="Click an element in the replay to inspect it.",hs="Attributes",ws="Size",Ps=s=>s===0?"Main tab":`Tab/Window ${s+1}`,$s="Live Run — Plum",ms="View past reports →",Cs="Live",Bs="Cancel run",ys="All tests passed",gs="Some tests failed",bs="View Report Now",Us="Awaiting stream...",vs="No stream...",Gs="Runner",ks="Running…",Fs="Finished",Hs="(waiting for output…)",Vs="Unknown runner",Ms=s=>`Worker ${s}`,Ws=s=>`${s} ${r(s,"worker")}`,js=s=>`Redirecting in ${s}s…`,Ks="Waiting for a runner",Ys="This run starts as soon as every runner it needs is free.",xs="Run not found",qs="This run has finished or was never started. Check the reports list for its results.",zs="Run skipped",Js=s=>s>0?`Position ${s} in the queue`:"Next up";export{u as $,Us as A,vs as B,Bs as C,v as D,Gs as E,ks as F,Fs as G,$ as H,h as I,w as J,es as K,P as L,ys as M,y as N,gs as O,m as P,Ks as Q,C as R,g as S,B as T,Ds as U,ms as V,Hs as W,Os as X,ws as Y,fs as Z,hs as _,D as a,rs as a0,cs as a1,Ps as a2,Is as a3,is as a4,ls as a5,_s as a6,Ls as a7,ds as a8,Rs as a9,Ts as aa,ns as ab,S as ac,N as ad,K as ae,Y as af,Es as ag,I as ah,x as ai,J as aj,Vs as ak,ts as al,X as am,as as an,Z as ao,ss as ap,q as aq,z as ar,Q as as,os as at,us as au,Ns as av,ps as aw,As as ax,Ss as ay,O as b,k as c,F as d,U as e,p as f,M as g,b as h,G as i,A as j,j as k,$s as l,f as m,xs as n,qs as o,V as p,Ys as q,H as r,Js as s,W as t,zs as u,Cs as v,Ws as w,bs as x,js as y,Ms as z};
@@ -3,4 +3,4 @@
3
3
  * Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
5
 
6
- import{c as w,a as c,e as v,t as _}from"./CfkUW1vA.js";import{i as A}from"./C00jnSU2.js";import{p as j,A as y,f as C,c as D,d as E,j as p,t as u,k as N}from"./CeH-RgMb.js";import{i as q}from"./CegSvdD-.js";import{e as z,t as B,i as F}from"./Beula-TH.js";import{p as d}from"./DB3YXVFP.js";var G=_('<button class="page svelte-1a7b06a"></button>'),H=_('<div class="pagination svelte-1a7b06a"><button class="arrow svelte-1a7b06a" aria-label="Previous">←</button> <!> <button class="arrow svelte-1a7b06a" aria-label="Next">→</button></div>');function R(g,o){j(o,!1);let t=d(o,"current",8,1),e=d(o,"total",8,1);const h=y();function s(a){a<1||a>e()||h("change",a)}A();var b=w(),k=C(b);{var x=a=>{var i=H(),n=E(i),f=p(n,2);z(f,1,()=>Array(e()),F,(P,I,l)=>{var r=G();r.textContent=l+1,u(()=>B(r,"active",t()===l+1)),v("click",r,()=>s(l+1)),c(P,r)});var m=p(f,2);N(i),u(()=>{n.disabled=t()===1,m.disabled=t()===e()}),v("click",n,()=>s(t()-1)),v("click",m,()=>s(t()+1)),c(a,i)};q(k,a=>{e()>1&&a(x)})}c(g,b),D()}export{R as P};
6
+ import{c as w,a as c,e as v,t as _}from"./6VDMVB5U.js";import{i as A}from"./CtgCYzu5.js";import{p as j,A as y,f as C,c as D,d as E,j as p,t as u,k as N}from"./BIf7lHIm.js";import{i as q}from"./D_thT6pZ.js";import{e as z,t as B,i as F}from"./BTV7EXZb.js";import{p as d}from"./D72giPTu.js";var G=_('<button class="page svelte-1a7b06a"></button>'),H=_('<div class="pagination svelte-1a7b06a"><button class="arrow svelte-1a7b06a" aria-label="Previous">←</button> <!> <button class="arrow svelte-1a7b06a" aria-label="Next">→</button></div>');function R(g,o){j(o,!1);let t=d(o,"current",8,1),e=d(o,"total",8,1);const h=y();function s(a){a<1||a>e()||h("change",a)}A();var b=w(),k=C(b);{var x=a=>{var i=H(),n=E(i),f=p(n,2);z(f,1,()=>Array(e()),F,(P,I,l)=>{var r=G();r.textContent=l+1,u(()=>B(r,"active",t()===l+1)),v("click",r,()=>s(l+1)),c(P,r)});var m=p(f,2);N(i),u(()=>{n.disabled=t()===1,m.disabled=t()===e()}),v("click",n,()=>s(t()-1)),v("click",m,()=>s(t()+1)),c(a,i)};q(k,a=>{e()>1&&a(x)})}c(g,b),D()}export{R as P};
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ * Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+
6
+ import{e as v,u as m,t as b,d as c,k as _}from"./BIf7lHIm.js";import{l as p,e as y,a as h,t as k}from"./6VDMVB5U.js";import{i as q,p as s}from"./D72giPTu.js";import"./CtgCYzu5.js";import{c as S,s as x}from"./BTV7EXZb.js";import{s as g}from"./C4Z3p6jE.js";import{b as z}from"./tsOANt55.js";function f(e,t,r){if(e.multiple)return O(e,t);for(var n of e.options){var a=l(n);if(q(a,t)){n.selected=!0;return}}(!r||t!==void 0)&&(e.selectedIndex=-1)}function B(e,t){let r=!0;v(()=>{t&&f(e,m(t),r),r=!1;var n=new MutationObserver(()=>{var a=e.__value;f(e,a)});return n.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),()=>{n.disconnect()}})}function D(e,t,r=t){var n=!0;p(e,"change",a=>{var u=a?"[selected]":":checked",i;if(e.multiple)i=[].map.call(e.querySelectorAll(u),l);else{var o=e.querySelector(u)??e.querySelector("option:not([disabled])");i=o&&l(o)}r(i)}),v(()=>{var a=t();if(f(e,a,n),n&&a===void 0){var u=e.querySelector(":checked");u!==null&&(a=l(u),r(a))}e.__value=a,n=!1}),B(e)}function O(e,t){for(var r of e.options)r.selected=~t.indexOf(l(r))}function l(e){return"__value"in e?e.__value:e.value}var w=k("<button><!></button>");function E(e,t){let r=s(t,"variant",8,"primary"),n=s(t,"size",8,"md"),a=s(t,"type",8,"button"),u=s(t,"disabled",8,!1);var i=w(),o=c(i);S(o,t,"default",{},null),_(i),b(()=>{g(i,"type",a()),i.disabled=u(),x(i,`btn ${r()??""} ${n()??""} svelte-m1euen`)}),y("click",i,function(d){z.call(this,t,d)}),h(e,i)}export{E as B,D as b,B as i,f as s};
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ * Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+
6
+ import{p as t}from"./C4Z3p6jE.js";const E="Test Repository",o="Name",_="Description",T="Priority",n="Title",c="Name is required.",L="Title is required.",A="Test Repository — Plum",S="Test Repository",i="Manage test suites, cases, and track manual test runs.",D="+ New Suite",I="+ New Run",d="Import from file",R="/settings?section=testcases",O="Test cases",u="Suite",C="Suites",N="Test Runs",r="Search by ID or name…",l="No results",U="Cases",p="Suites",B="automated",P="Delete suite",b="Delete run",M="Duplicate run",m="No test suites yet",F="Create your first suite to start organising test cases.",g="No test runs yet",$="Create a test run to start executing and tracking manual tests.",h="New Test Suite",H="New Test Run",y="Login flows",v="What this suite covers…",G="Sprint 12 regression",f="Duplicate Run",k="Duplicate",W="? A copy will be added at the top of the list.",Y="Failed to load data",w="Failed to delete suite.",x="Failed to duplicate run.",X="Failed to delete run.",K=s=>`Nothing matches "${s}".`,V=s=>`by ${s}`,q=s=>`${s} ${t(s,"case")}`,z=s=>s?"Creating…":"Create Suite",Q=s=>s?"Creating…":"Create Run",j=s=>`Delete ${s==="suite"?"Suite":"Run"}`,J=s=>`Suite "${s}" created.`,Z=s=>`Suite "${s}" deleted.`,ss=s=>`Duplicated as "${s}".`,ts=s=>`Run "${s}" deleted.`,as="Delete Test Case",es="New Test Case",Es="User can log in with valid credentials",os="What this case verifies…",_s="Create Case",Ts="Edit Suite",ns="Edit suite",cs="Edit case",Ls="Test Cases",As="+ Add Case",Ss="Filter by ID or name…",is="No cases yet",Ds="Add your first test case to this suite.",Is="No cases match",ds="Date",Rs="Step",Os="Action",us="Test Data",Cs="Expected Output",Ns="Describe the action…",rs="Optional",ls="What should happen…",Us='No steps. Click "+ Add step" to begin.',ps="+ Add step",Bs="Edit Steps",Ps='No steps defined. Click "Edit Steps" to add them.',bs="Steps",Ms="History",ms="No history yet. Results appear after test runs or automated builds.",Fs="Automated run ↗",gs="Report not found",$s="Run not found",hs="Failed to load suite",Hs="Failed to load case",ys="Failed to delete case.",vs="Test case updated.",Gs="Steps saved.",fs="Suite updated.",ks="Move to suite",Ws="Move Test Case",Ys="Move to suite",ws="Failed to move case.",xs=s=>`${s?`${s.displayId} — ${s.name}`:"Suite"} — Plum`,Xs=s=>`Created by ${s}`,Ks=s=>`${s} created.`,Vs=s=>`${s} deleted.`,qs=(s,a)=>`${s} moved to ${a}.`,zs=s=>`${s} ${t(s,"step")}`,Qs=s=>s?"Saving…":"Save Steps",js=s=>s?"Moving…":"Move",Js=s=>`${s} ↗`,Zs="Edit Run",st="Edit run",tt="Reopen",at="Start Execution",et="Stop Execution",Et="← Edit Run",ot="Mark Complete",_t="Build",Tt="Execute",nt="In this run",ct="locked",Lt="No cases in this run.",At="Unassigned",St="Suite browser",it="Search cases…",Dt="No matching cases",It="No cases in this suite",dt="All cases added",Rt="No suites available.",Ot="This run is not in progress — start execution to record results.",ut="Toggle steps",Ct="Assign to me",Nt="In Progress",rt="Pass",lt="Fail",Ut="Blocked",pt="Skip",Bt="Reset to pending",Pt="↩ Reset",bt="Failed to add case.",Mt="Run updated.",mt="Run saved.",Ft="Run marked as complete.",gt="Run reopened.",$t=s=>`${(s==null?void 0:s.title)??"Test Run"} — Plum`,ht=s=>`${s} passed`,Ht=s=>`${s} failed`,yt=s=>`${s} remaining`,vt=s=>`Data: ${s}`,Gt=s=>`Expected: ${s}`;export{es as $,l as A,F as B,m as C,k as D,O as E,Y as F,P as G,S as H,R as I,q as J,V as K,$ as L,g as M,h as N,M as O,A as P,b as Q,N as R,C as S,n as T,K as U,U as V,B as W,p as X,hs as Y,xs as Z,as as _,i as a,St as a$,Es as a0,os as a1,Ts as a2,Ws as a3,Vs as a4,ys as a5,_s as a6,js as a7,Rt as a8,Ys as a9,Fs as aA,Gs as aB,Us as aC,Rs as aD,Ns as aE,us as aF,rs as aG,Cs as aH,ls as aI,Os as aJ,Ps as aK,gs as aL,Js as aM,$s as aN,$t as aO,Zs as aP,Mt as aQ,st as aR,_t as aS,Tt as aT,tt as aU,nt as aV,ut as aW,gt as aX,ct as aY,Lt as aZ,At as a_,Ks as aa,fs as ab,qs as ac,ws as ad,E as ae,ns as af,Ls as ag,As as ah,Xs as ai,u as aj,Ss as ak,ds as al,Ds as am,is as an,Is as ao,ks as ap,zs as aq,Hs as ar,bs as as,Ms as at,cs as au,vs as av,Bs as aw,Qs as ax,ps as ay,ms as az,f as b,it as b0,Ot as b1,ht as b2,Ht as b3,yt as b4,Nt as b5,rt as b6,lt as b7,Ut as b8,pt as b9,Bt as ba,Pt as bb,vt as bc,Gt as bd,Ct as be,mt as bf,bt as bg,at as bh,et as bi,Et as bj,ot as bk,Dt as bl,It as bm,dt as bn,Ft as bo,W as c,o as d,y as e,_ as f,v as g,T as h,z as i,H as j,G as k,Q as l,r as m,w as n,X as o,j as p,ss as q,ts as r,Z as s,x as t,c as u,J as v,L as w,d as x,D as y,I as z};
@@ -3,4 +3,4 @@
3
3
  * Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
5
 
6
- import{i}from"./CeH-RgMb.js";function b(l,r){var e;var a=(e=l.$$events)==null?void 0:e[r.type],s=i(a)?a.slice():a==null?[]:[a];for(var t of s)t.call(this,r)}export{b};
6
+ import{i}from"./BIf7lHIm.js";function b(l,r){var e;var a=(e=l.$$events)==null?void 0:e[r.type],s=i(a)?a.slice():a==null?[]:[a];for(var t of s)t.call(this,r)}export{b};
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ * Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+
6
+ import{e as f,s as y,a as m,t as h}from"./6VDMVB5U.js";import{i as G}from"./CtgCYzu5.js";import{p as J,A as K,B as T,s as n,d as l,j as E,k as i,g as t,t as b,c as Q,m as j}from"./BIf7lHIm.js";import{i as A}from"./D_thT6pZ.js";import{t as C,e as V}from"./BTV7EXZb.js";import{t as Y,u as Z,s as $}from"./C4Z3p6jE.js";import{b as tt}from"./BCh31ecr.js";import{p as r}from"./D72giPTu.js";var et=h('<span class="item-hint svelte-uuhpp9"> </span>'),at=h('<button type="button" class="item svelte-uuhpp9" role="menuitem"><span class="item-label svelte-uuhpp9"> </span> <!></button>'),st=h('<div class="popover svelte-uuhpp9" role="menu"></div>'),it=h('<div class="export-menu svelte-uuhpp9"><button type="button" class="trigger svelte-uuhpp9" aria-haspopup="menu"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg> <span> </span></button> <!></div>');function dt(L,o){J(o,!1);let O=r(o,"label",8,Y),P=r(o,"items",8,Z),w=r(o,"busy",8,!1),M=r(o,"disabled",8,!1),R=r(o,"align",8,"right");const X=K();let a=j(!1),p=j();function D(){!M()&&!w()&&n(a,!t(a))}function H(e){n(a,!1),X("select",e)}function I(e){t(a)&&t(p)&&!t(p).contains(e.target)&&n(a,!1)}G();var u=it();f("click",T,I),f("keydown",T,e=>e.key==="Escape"&&n(a,!1));var s=l(u),B=E(l(s),2),N=l(B,!0);i(B),i(s);var S=E(s,2);{var U=e=>{var v=st();V(v,5,P,_=>_.id,(_,c)=>{var d=at(),g=l(d),W=l(g,!0);i(g);var q=E(g,2);{var z=k=>{var x=et(),F=l(x,!0);i(x),b(()=>y(F,t(c).hint)),m(k,x)};A(q,k=>{t(c).hint&&k(z)})}i(d),b(()=>y(W,t(c).label)),f("click",d,()=>H(t(c).id)),m(_,d)}),i(v),b(()=>C(v,"left",R()==="left")),m(e,v)};A(S,e=>{t(a)&&e(U)})}i(u),tt(u,e=>n(p,e),()=>t(p)),b(()=>{s.disabled=M(),$(s,"aria-expanded",t(a)),C(s,"open",t(a)),y(N,w()?"…":O())}),f("click",s,D),m(L,u),Q()}export{dt as E};
@@ -0,0 +1,7 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ * Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+
6
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.D2F-i1I5.js","../chunks/6VDMVB5U.js","../chunks/BIf7lHIm.js","../chunks/CtgCYzu5.js","../chunks/D_thT6pZ.js","../chunks/BTV7EXZb.js","../chunks/BIjh3jiU.js","../chunks/Dlymnwnf.js","../chunks/C4Z3p6jE.js","../chunks/CXQhSK1T.js","../chunks/kFFd6Oo5.js","../chunks/htkwR9b-.js","../chunks/B2lVGNml.js","../chunks/pNZogwkM.js","../chunks/DiexacSB.js","../chunks/BdBJfKUi.js","../chunks/gCgJ3Cwu.js","../chunks/BWGoOYU0.js","../chunks/D72giPTu.js","../chunks/CUPWZLIN.js","../assets/Modal.BZpm0HP8.css","../assets/ConfirmModal.Dd3uP-Sk.css","../chunks/DeiVAbyn.js","../assets/Badge.D1SV0Gv7.css","../chunks/BDb8hZHu.js","../chunks/BtTNggoY.js","../chunks/DDx3no2z.js","../assets/0.BEqlRAtD.css","../nodes/1.JIF2GfHq.js","../nodes/2.Bno00fr8.js","../chunks/BnXsGCy3.js","../chunks/CNpD-yNH.js","../assets/EmptyState.DUDM4P19.css","../assets/2.C1TbMUws.css","../nodes/3.B6KwaCsM.js","../chunks/BCh31ecr.js","../chunks/3MBVX4Yb.js","../assets/BackLink.DRrgBGDC.css","../assets/3.Be5c3USL.css","../nodes/4.BX70m3v6.js","../chunks/iL4SCrvY.js","../chunks/Dlnxgs49.js","../assets/4.BR3wgXcZ.css","../nodes/5.UIFh06yr.js","../chunks/prk8PJfA.js","../assets/Pagination.DZmi2Po-.css","../assets/5.ClS4XkkN.css","../nodes/6.DZ1OV24V.js","../chunks/Bfc47y5P.js","../chunks/tsOANt55.js","../chunks/zXSLr47H.js","../assets/ExportMenu.DsJQ1Qua.css","../assets/6.DdQVxyZK.css","../nodes/7.B_XntBZ1.js","../chunks/qvxlSGpD.js","../assets/Button.C1zsJAUG.css","../assets/7.CBHi6pzT.css","../nodes/8.CVHgJw-E.js","../assets/8.DOC8fPSI.css","../nodes/9.DDDQPmMj.js","../assets/9._h2o67kg.css","../nodes/10.A0AHLfOt.js","../chunks/r_d1Iu0W.js","../assets/10.DC0wD6w_.css","../nodes/11.CVSPxlqY.js","../assets/11.BWAH0Beh.css","../nodes/12.CnAR0AQb.js","../assets/12.Dm1nSEgE.css"])))=>i.map(i=>d[i]);
7
+ var W=r=>{throw TypeError(r)};var z=(r,t,s)=>t.has(r)||W("Cannot "+s);var u=(r,t,s)=>(z(r,t,"read from private field"),s?s.call(r):t.get(r)),w=(r,t,s)=>t.has(r)?W("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(r):t.set(r,s),D=(r,t,s,a)=>(z(r,t,"write to private field"),a?a.call(r,s):t.set(r,s),s);import{s as V,O as K,g as E,ar as Q,ad as X,W as M,h as G,_ as $,Z as tt,a0 as et,a6 as rt,a7 as st,a8 as ot,p as at,af as nt,ag as it,o as ct,z as ut,f as T,j as lt,c as _t,as as I,d as mt,k as dt,t as ft,V as x}from"../chunks/BIf7lHIm.js";import{f as ht,m as vt,u as Et,a as b,c as S,t as Y,b as gt,s as yt}from"../chunks/6VDMVB5U.js";import{i as C}from"../chunks/D_thT6pZ.js";import{p as j,a as Pt}from"../chunks/D72giPTu.js";import{b as B}from"../chunks/BCh31ecr.js";const pt="modulepreload",Rt=function(r,t){return new URL(r,t).href},N={},l=function(t,s,a){let n=Promise.resolve();if(s&&s.length>0){const o=document.getElementsByTagName("link"),e=document.querySelector("meta[property=csp-nonce]"),d=(e==null?void 0:e.nonce)||(e==null?void 0:e.getAttribute("nonce"));n=Promise.allSettled(s.map(_=>{if(_=Rt(_,a),_ in N)return;N[_]=!0;const y=_.endsWith(".css"),k=y?'[rel="stylesheet"]':"";if(!!a)for(let P=o.length-1;P>=0;P--){const i=o[P];if(i.href===_&&(!y||i.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${_}"]${k}`))return;const h=document.createElement("link");if(h.rel=y?"stylesheet":pt,y||(h.as="script"),h.crossOrigin="",h.href=_,d&&h.setAttribute("nonce",d),document.head.appendChild(h),y)return new Promise((P,i)=>{h.addEventListener("load",P),h.addEventListener("error",()=>i(new Error(`Unable to preload CSS for ${_}`)))})}))}function c(o){const e=new Event("vite:preloadError",{cancelable:!0});if(e.payload=o,window.dispatchEvent(e),!e.defaultPrevented)throw o}return n.then(o=>{for(const e of o||[])e.status==="rejected"&&c(e.reason);return t().catch(c)})},Bt={};function bt(r){return class extends Ot{constructor(t){super({component:r,...t})}}}var g,m;class Ot{constructor(t){w(this,g);w(this,m);var c;var s=new Map,a=(o,e)=>{var d=M(e);return s.set(o,d),d};const n=new Proxy({...t.props||{},$$events:{}},{get(o,e){return E(s.get(e)??a(e,Reflect.get(o,e)))},has(o,e){return e===K?!0:(E(s.get(e)??a(e,Reflect.get(o,e))),Reflect.has(o,e))},set(o,e,d){return V(s.get(e)??a(e,d),d),Reflect.set(o,e,d)}});D(this,m,(t.hydrate?ht:vt)(t.component,{target:t.target,anchor:t.anchor,props:n,context:t.context,intro:t.intro??!1,recover:t.recover})),(!((c=t==null?void 0:t.props)!=null&&c.$$host)||t.sync===!1)&&Q(),D(this,g,n.$$events);for(const o of Object.keys(u(this,m)))o==="$set"||o==="$destroy"||o==="$on"||X(this,o,{get(){return u(this,m)[o]},set(e){u(this,m)[o]=e},enumerable:!0});u(this,m).$set=o=>{Object.assign(n,o)},u(this,m).$destroy=()=>{Et(u(this,m))}}$set(t){u(this,m).$set(t)}$on(t,s){u(this,g)[t]=u(this,g)[t]||[];const a=(...n)=>s.call(this,...n);return u(this,g)[t].push(a),()=>{u(this,g)[t]=u(this,g)[t].filter(n=>n!==a)}}$destroy(){u(this,m).$destroy()}}g=new WeakMap,m=new WeakMap;function q(r,t,s){G&&$();var a=r,n,c;tt(()=>{n!==(n=t())&&(c&&(st(c),c=null),n&&(c=rt(()=>s(a,n))))},et),G&&(a=ot)}var At=Y('<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>'),Lt=Y("<!> <!>",1);function Tt(r,t){at(t,!0);let s=j(t,"components",23,()=>[]),a=j(t,"data_0",3,null),n=j(t,"data_1",3,null);nt(()=>t.stores.page.set(t.page)),it(()=>{t.stores,t.page,t.constructors,s(),t.form,a(),n(),t.stores.page.notify()});let c=I(!1),o=I(!1),e=I(null);ct(()=>{const i=t.stores.page.subscribe(()=>{E(c)&&(V(o,!0),ut().then(()=>{V(e,Pt(document.title||"untitled page"))}))});return V(c,!0),i});const d=x(()=>t.constructors[1]);var _=Lt(),y=T(_);{var k=i=>{var v=S();const O=x(()=>t.constructors[0]);var A=T(v);q(A,()=>E(O),(p,R)=>{B(R(p,{get data(){return a()},get form(){return t.form},children:(f,wt)=>{var U=S(),Z=T(U);q(Z,()=>E(d),(H,J)=>{B(J(H,{get data(){return n()},get form(){return t.form}}),L=>s()[1]=L,()=>{var L;return(L=s())==null?void 0:L[1]})}),b(f,U)},$$slots:{default:!0}}),f=>s()[0]=f,()=>{var f;return(f=s())==null?void 0:f[0]})}),b(i,v)},F=i=>{var v=S();const O=x(()=>t.constructors[0]);var A=T(v);q(A,()=>E(O),(p,R)=>{B(R(p,{get data(){return a()},get form(){return t.form}}),f=>s()[0]=f,()=>{var f;return(f=s())==null?void 0:f[0]})}),b(i,v)};C(y,i=>{t.constructors[1]?i(k):i(F,!1)})}var h=lt(y,2);{var P=i=>{var v=At(),O=mt(v);{var A=p=>{var R=gt();ft(()=>yt(R,E(e))),b(p,R)};C(O,p=>{E(o)&&p(A)})}dt(v),b(i,v)};C(h,i=>{E(c)&&i(P)})}b(r,_),_t()}const qt=bt(Tt),Ft=[()=>l(()=>import("../nodes/0.D2F-i1I5.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]),import.meta.url),()=>l(()=>import("../nodes/1.JIF2GfHq.js"),__vite__mapDeps([28,1,2,3,6]),import.meta.url),()=>l(()=>import("../nodes/2.Bno00fr8.js"),__vite__mapDeps([29,1,2,3,4,5,8,30,11,12,9,31,18,32,33]),import.meta.url),()=>l(()=>import("../nodes/3.B6KwaCsM.js"),__vite__mapDeps([34,1,2,3,4,5,35,6,7,11,8,12,9,16,13,14,18,36,37,22,23,38]),import.meta.url),()=>l(()=>import("../nodes/4.BX70m3v6.js"),__vite__mapDeps([39,1,2,3,4,8,30,6,9,26,40,41,42]),import.meta.url),()=>l(()=>import("../nodes/5.UIFh06yr.js"),__vite__mapDeps([43,1,2,3,4,5,8,13,14,11,12,9,22,18,23,44,45,17,19,20,21,31,32,46]),import.meta.url),()=>l(()=>import("../nodes/6.DZ1OV24V.js"),__vite__mapDeps([47,1,2,3,4,5,8,48,49,7,6,13,14,12,24,22,18,23,36,37,50,35,51,25,52]),import.meta.url),()=>l(()=>import("../nodes/7.B_XntBZ1.js"),__vite__mapDeps([53,1,2,3,4,5,8,30,54,18,49,55,48,10,9,11,12,22,23,19,20,17,21,24,31,32,56]),import.meta.url),()=>l(()=>import("../nodes/8.CVHgJw-E.js"),__vite__mapDeps([57,1,2,3,4,5,8,30,54,18,49,55,35,6,7,10,9,15,14,26,11,12,40,24,17,19,20,21,22,23,58]),import.meta.url),()=>l(()=>import("../nodes/9.DDDQPmMj.js"),__vite__mapDeps([59,1,2,3,4,8,30,6,26,9,40,41,60]),import.meta.url),()=>l(()=>import("../nodes/10.A0AHLfOt.js"),__vite__mapDeps([61,1,2,3,4,5,8,30,54,18,49,55,15,9,14,50,35,51,62,11,12,44,45,31,32,17,19,20,21,24,63]),import.meta.url),()=>l(()=>import("../nodes/11.CVSPxlqY.js"),__vite__mapDeps([64,1,2,3,4,5,8,30,54,18,49,55,7,6,15,9,14,11,12,19,20,24,31,32,62,65]),import.meta.url),()=>l(()=>import("../nodes/12.CnAR0AQb.js"),__vite__mapDeps([66,1,2,3,4,5,8,30,54,18,49,55,48,7,6,15,9,14,50,35,51,62,31,32,17,19,20,21,24,44,45,67]),import.meta.url)],Ut=[],Wt={"/":[2],"/live/[id]":[3],"/login":[4],"/reports":[5],"/reports/[id]":[6],"/scheduled-tests":[7],"/settings":[8],"/setup":[9],"/test-repository":[10],"/test-repository/runs/[id]":[11],"/test-repository/suites/[id]":[12]},Vt={handleError:({error:r})=>{console.error(r)},reroute:()=>{},transport:{}},kt=Object.fromEntries(Object.entries(Vt.transport).map(([r,t])=>[r,t.decode])),zt=!1,Gt=(r,t)=>kt[r](t);export{Gt as decode,kt as decoders,Wt as dictionary,zt as hash,Vt as hooks,Bt as matchers,Ft as nodes,qt as root,Ut as server_loads};
@@ -3,4 +3,4 @@
3
3
  * Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
5
 
6
- import{a as t}from"../chunks/DiVmSEJa.js";export{t as start};
6
+ import{a as t}from"../chunks/BIjh3jiU.js";export{t as start};
@@ -2,5 +2,5 @@
2
2
  This file is part of Plum.
3
3
  Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
- ��import{a as t}from"../chunks/DiVmSEJa.js";export{t as start};
5
+ ��import{a as t}from"../chunks/BIjh3jiU.js";export{t as start};
6
6