plum-e2e 2.6.8 → 2.6.9
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.
- package/.env +5 -0
- package/backend/lib/runnerProcess.js +29 -15
- package/backend/logs/runner-cmqneqerz0000qq01i5ap2rvl.log +4 -0
- package/backend/logs/runner-cmqnfv7kr0000r101aeocm8eu.log +4 -0
- package/backend/logs/runner-cmqnfvb560001r101qoi0phau.log +4 -0
- package/backend/logs/runner-cmqnfvlm20002r101gsyqb837.log +4 -0
- package/backend/logs/runner-cmqnfvqfy0003r101fh41pzx3.log +4 -0
- package/backend/logs/runner-cmqnfvvwo0004r101q4dtqxd2.log +4 -0
- package/backend/logs/runner-cmr8o2x3n0000mg01410tpuck.log +4 -0
- package/backend/logs/runner-cmr90hvcx0000n2016edtmrtv.log +4 -0
- package/backend/logs/runner-cmr90i7h20001n201g2wg6v3n.log +4 -0
- package/backend/logs/runner-cmr90iilm0002n201mmisva95.log +4 -0
- package/backend/logs/runner-cmr90j70r0003n201xz8525dz.log +4 -0
- package/backend/logs/runner-cmr90yup70000qp017ianc2gp.log +4 -0
- package/backend/logs/runner-cmr90zbtm0001qp01u9tfdkh1.log +4 -0
- package/backend/logs/runner-cmr91a3mw0000tb01414rd1df.log +4 -0
- package/backend/logs/runner-cmr91dhla0001tb01jp7thjnl.log +4 -0
- package/backend/logs/runner-cmrkk6fcl0000qj012kve79f4.log +4 -0
- package/backend/logs/runner-cmrkl8sym0000qy01euz4270n.log +4 -0
- package/backend/logs/runner-cmrkl9oyx0001qy0137nzr94d.log +4 -0
- package/bin/plum.js +13 -0
- package/bin/postinstall.js +46 -0
- package/frontend/.svelte-kit/adapter-node/.vite/manifest.json +95 -39
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/BackLink.CvWWuO3h.css +5 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/Badge.D1SV0Gv7.css +5 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/ConfirmModal.Dd3uP-Sk.css +23 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/EmptyState.DUDM4P19.css +23 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/{ConfirmModal.CdhOYVBb.css → Modal.BuaCfdLj.css} +6 -1
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/Pagination.DZmi2Po-.css +5 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/Toast.DENwYn3g.css +5 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_layout.BuhMvMUj.css +5 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.0Eln51hV.css +5 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.5IJAEAjc.css +5 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BR3wgXcZ.css +5 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BWAH0Beh.css +23 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BZfe6nWe.css +5 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.Bj_a_5lv.css +5 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BwgOqeMo.css +23 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.CBHi6pzT.css +5 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.CFnbmY-D.css +5 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.CrXpMrqh.css +5 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page._h2o67kg.css +5 -0
- package/frontend/.svelte-kit/adapter-node/chunks/BackLink.js +5 -0
- package/frontend/.svelte-kit/adapter-node/chunks/Badge.js +5 -0
- package/frontend/.svelte-kit/adapter-node/chunks/ConfirmModal.js +12 -20
- package/frontend/.svelte-kit/adapter-node/chunks/EmptyState.js +29 -7
- package/frontend/.svelte-kit/adapter-node/chunks/Modal.js +43 -0
- package/frontend/.svelte-kit/adapter-node/chunks/Toast.js +17 -1
- package/frontend/.svelte-kit/adapter-node/chunks/attributes.js +5 -0
- package/frontend/.svelte-kit/adapter-node/chunks/auth.js +5 -0
- package/frontend/.svelte-kit/adapter-node/{_app/immutable/assets/EmptyState.BdO1q9cJ.css → chunks/auth2.js} +13 -1
- package/frontend/.svelte-kit/adapter-node/chunks/client.js +5 -0
- package/frontend/.svelte-kit/adapter-node/chunks/common.js +56 -0
- package/frontend/.svelte-kit/adapter-node/chunks/constants.js +9 -2
- package/frontend/.svelte-kit/adapter-node/chunks/escaping.js +5 -0
- package/frontend/.svelte-kit/adapter-node/chunks/exports.js +5 -0
- package/frontend/.svelte-kit/adapter-node/chunks/format.js +5 -0
- package/frontend/.svelte-kit/adapter-node/chunks/index-server.js +5 -0
- package/frontend/.svelte-kit/adapter-node/chunks/index.js +5 -0
- package/frontend/.svelte-kit/adapter-node/chunks/index2.js +5 -0
- package/frontend/.svelte-kit/adapter-node/chunks/internal.js +7 -2
- package/frontend/.svelte-kit/adapter-node/chunks/reports.js +5 -0
- package/frontend/.svelte-kit/adapter-node/chunks/reports2.js +109 -0
- package/frontend/.svelte-kit/adapter-node/chunks/repository.js +111 -0
- package/frontend/.svelte-kit/adapter-node/chunks/runner.js +12 -0
- package/frontend/.svelte-kit/adapter-node/chunks/stores.js +5 -0
- package/frontend/.svelte-kit/adapter-node/chunks/theme.js +5 -0
- package/frontend/.svelte-kit/adapter-node/entries/fallbacks/error.svelte.js +5 -0
- package/frontend/.svelte-kit/adapter-node/entries/pages/_layout.js +5 -0
- package/frontend/.svelte-kit/adapter-node/entries/pages/_layout.svelte.js +7 -0
- package/frontend/.svelte-kit/adapter-node/entries/pages/_page.svelte.js +35 -12
- package/frontend/.svelte-kit/adapter-node/entries/pages/login/_page.svelte.js +9 -2
- package/frontend/.svelte-kit/adapter-node/entries/pages/reports/_id_/_page.svelte.js +9 -2
- package/frontend/.svelte-kit/adapter-node/entries/pages/reports/_page.svelte.js +21 -25
- package/frontend/.svelte-kit/adapter-node/entries/pages/reports/live/_page.svelte.js +31 -24
- package/frontend/.svelte-kit/adapter-node/entries/pages/scheduled-tests/_page.svelte.js +72 -32
- package/frontend/.svelte-kit/adapter-node/entries/pages/settings/_page.svelte.js +276 -95
- package/frontend/.svelte-kit/adapter-node/entries/pages/setup/_page.svelte.js +9 -2
- package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/_page.svelte.js +43 -36
- package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/runs/_id_/_page.svelte.js +66 -13
- package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/suites/_id_/_page.svelte.js +23 -17
- package/frontend/.svelte-kit/adapter-node/index.js +5 -0
- package/frontend/.svelte-kit/adapter-node/internal.js +5 -0
- package/frontend/.svelte-kit/adapter-node/manifest-full.js +6 -1
- package/frontend/.svelte-kit/adapter-node/manifest.js +6 -1
- package/frontend/.svelte-kit/adapter-node/nodes/0.js +7 -2
- package/frontend/.svelte-kit/adapter-node/nodes/1.js +6 -1
- package/frontend/.svelte-kit/adapter-node/nodes/10.js +7 -2
- package/frontend/.svelte-kit/adapter-node/nodes/11.js +7 -2
- package/frontend/.svelte-kit/adapter-node/nodes/12.js +7 -2
- package/frontend/.svelte-kit/adapter-node/nodes/2.js +7 -2
- package/frontend/.svelte-kit/adapter-node/nodes/3.js +6 -1
- package/frontend/.svelte-kit/adapter-node/nodes/4.js +7 -2
- package/frontend/.svelte-kit/adapter-node/nodes/5.js +6 -1
- package/frontend/.svelte-kit/adapter-node/nodes/6.js +6 -1
- package/frontend/.svelte-kit/adapter-node/nodes/7.js +7 -2
- package/frontend/.svelte-kit/adapter-node/nodes/8.js +7 -2
- package/frontend/.svelte-kit/adapter-node/nodes/9.js +6 -1
- package/frontend/.svelte-kit/ambient.d.ts +5 -4
- package/frontend/.svelte-kit/generated/client/app.js +5 -0
- package/frontend/.svelte-kit/generated/client/matchers.js +5 -0
- package/frontend/.svelte-kit/generated/client/nodes/0.js +5 -0
- package/frontend/.svelte-kit/generated/client/nodes/1.js +5 -0
- package/frontend/.svelte-kit/generated/client/nodes/10.js +5 -0
- package/frontend/.svelte-kit/generated/client/nodes/11.js +5 -0
- package/frontend/.svelte-kit/generated/client/nodes/12.js +5 -0
- package/frontend/.svelte-kit/generated/client/nodes/2.js +5 -0
- package/frontend/.svelte-kit/generated/client/nodes/3.js +5 -0
- package/frontend/.svelte-kit/generated/client/nodes/4.js +5 -0
- package/frontend/.svelte-kit/generated/client/nodes/5.js +5 -0
- package/frontend/.svelte-kit/generated/client/nodes/6.js +5 -0
- package/frontend/.svelte-kit/generated/client/nodes/7.js +5 -0
- package/frontend/.svelte-kit/generated/client/nodes/8.js +5 -0
- package/frontend/.svelte-kit/generated/client/nodes/9.js +5 -0
- package/frontend/.svelte-kit/generated/client-optimized/app.js +5 -0
- package/frontend/.svelte-kit/generated/client-optimized/matchers.js +5 -0
- package/frontend/.svelte-kit/generated/client-optimized/nodes/0.js +5 -0
- package/frontend/.svelte-kit/generated/client-optimized/nodes/1.js +5 -0
- package/frontend/.svelte-kit/generated/client-optimized/nodes/10.js +5 -0
- package/frontend/.svelte-kit/generated/client-optimized/nodes/11.js +5 -0
- package/frontend/.svelte-kit/generated/client-optimized/nodes/12.js +5 -0
- package/frontend/.svelte-kit/generated/client-optimized/nodes/2.js +5 -0
- package/frontend/.svelte-kit/generated/client-optimized/nodes/3.js +5 -0
- package/frontend/.svelte-kit/generated/client-optimized/nodes/4.js +5 -0
- package/frontend/.svelte-kit/generated/client-optimized/nodes/5.js +5 -0
- package/frontend/.svelte-kit/generated/client-optimized/nodes/6.js +5 -0
- package/frontend/.svelte-kit/generated/client-optimized/nodes/7.js +5 -0
- package/frontend/.svelte-kit/generated/client-optimized/nodes/8.js +5 -0
- package/frontend/.svelte-kit/generated/client-optimized/nodes/9.js +5 -0
- package/frontend/.svelte-kit/generated/root.js +5 -0
- package/frontend/.svelte-kit/generated/root.svelte +5 -0
- package/frontend/.svelte-kit/generated/server/internal.js +7 -2
- package/frontend/.svelte-kit/non-ambient.d.ts +5 -0
- package/frontend/.svelte-kit/output/client/.vite/manifest.json +404 -351
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/0.BhSG-jZH.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/10.CdaQUS6U.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/11.BWAH0Beh.css +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/12.Bj_a_5lv.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/2.CrXpMrqh.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/3.BR3wgXcZ.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/4.0Eln51hV.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/5.DFV9OgAu.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/6.CFnbmY-D.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/7.CBHi6pzT.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/8.BwgOqeMo.css +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/9._h2o67kg.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/BackLink.CvWWuO3h.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/Badge.D1SV0Gv7.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/Button.FOWXxvc7.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/ConfirmModal.Dd3uP-Sk.css +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/EmptyState.DUDM4P19.css +23 -0
- package/frontend/{build/client/_app/immutable/assets/ConfirmModal.DmxkcwXv.css → .svelte-kit/output/client/_app/immutable/assets/Modal.BZpm0HP8.css} +6 -1
- package/frontend/{build/client/_app/immutable/assets/ConfirmModal.CdhOYVBb.css → .svelte-kit/output/client/_app/immutable/assets/Modal.BuaCfdLj.css} +6 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/Pagination.DZmi2Po-.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/Toast.DENwYn3g.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_layout.BuhMvMUj.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.0Eln51hV.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.5IJAEAjc.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BR3wgXcZ.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BWAH0Beh.css +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BZfe6nWe.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.Bj_a_5lv.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BwgOqeMo.css +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.CBHi6pzT.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.CFnbmY-D.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.CrXpMrqh.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page._h2o67kg.css +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{BLAiBE__.js → 2zMvi6fR.js} +6 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/3IV-uqHa.js +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/4N1zIH8t.js +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/B98sHkeB.js +23 -0
- package/frontend/{build/client/_app/immutable/chunks/C67QNx7Z.js → .svelte-kit/output/client/_app/immutable/chunks/BAACMRH5.js} +6 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Bfc47y5P.js +5 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BhvHtTRh.js +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BjUpWNbl.js +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{DIx44H9N.js → C1Vid6wz.js} +6 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/C1sukchk.js +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/C8OURRSs.js +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{DGryW1Vp.js → CKDtmZUQ.js} +6 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CMBQQ9RZ.js +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{C4eeChIU.js → CNdcuGR0.js} +6 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CgnwuKKO.js +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CuqnZUex.js +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/D2cvzNT9.js +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{B0pefNHY.js → D2gYTmAA.js} +6 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{uFRI_bmR.js → DCgHuuvs.js} +6 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{CxTX_lpP.js → DDblTLLE.js} +6 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DW85KPAh.js +24 -0
- package/frontend/{build/client/_app/immutable/chunks/BFgtfHj2.js → .svelte-kit/output/client/_app/immutable/chunks/DW_iTTZe.js} +6 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{BVMec-1T.js → DYlaQsvN.js} +6 -1
- package/frontend/{build/client/_app/immutable/chunks/BFEiffAL.js → .svelte-kit/output/client/_app/immutable/chunks/DkNBSlo2.js} +6 -1
- package/frontend/{build/client/_app/immutable/chunks/BkKmeUbA.js → .svelte-kit/output/client/_app/immutable/chunks/DlNYZJ7K.js} +6 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Dlnxgs49.js +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DtGXv8RA.js +25 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/TOCyHP97.js +28 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{CyQ_oBw2.js → oN0Z3NSF.js} +6 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{raHbXn_9.js → t-La0hgu.js} +6 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{DP6QP4L6.js → w0D4Uzlq.js} +6 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/entry/app.BCWbw5zZ.js +24 -0
- package/frontend/{build/client/_app/immutable/entry/start.MMlC62np.js → .svelte-kit/output/client/_app/immutable/entry/start.2_AF42wj.js} +6 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/0.BAqq2UTE.js +28 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{1.Dbck5ct8.js → 1.D5VvLtGP.js} +6 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/10.Bn4Ma-MU.js +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/11.BacEu7sW.js +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/12.0YGtl1uj.js +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/2.C2jjMA-Z.js +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/3.DHx0kho3.js +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/4.CnaMiirx.js +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/5.B6m-zTVe.js +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/6.BPDag1zv.js +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/7.D7LwxSvT.js +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/8.CCkNX20G.js +26 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/9.HDerA6JV.js +23 -0
- package/frontend/.svelte-kit/output/client/_app/version.json +1 -1
- package/frontend/.svelte-kit/output/server/.vite/manifest.json +95 -39
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/BackLink.CvWWuO3h.css +5 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/Badge.D1SV0Gv7.css +5 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/ConfirmModal.Dd3uP-Sk.css +23 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/EmptyState.DUDM4P19.css +23 -0
- package/frontend/.svelte-kit/output/{client/_app/immutable/assets/ConfirmModal.CdhOYVBb.css → server/_app/immutable/assets/Modal.BuaCfdLj.css} +6 -1
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/Pagination.DZmi2Po-.css +5 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/Toast.DENwYn3g.css +5 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_layout.BuhMvMUj.css +5 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.0Eln51hV.css +5 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.5IJAEAjc.css +5 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BR3wgXcZ.css +5 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BWAH0Beh.css +23 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BZfe6nWe.css +5 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Bj_a_5lv.css +5 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BwgOqeMo.css +23 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CBHi6pzT.css +5 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CFnbmY-D.css +5 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CrXpMrqh.css +5 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page._h2o67kg.css +5 -0
- package/frontend/.svelte-kit/output/server/chunks/BackLink.js +5 -0
- package/frontend/.svelte-kit/output/server/chunks/Badge.js +5 -0
- package/frontend/.svelte-kit/output/server/chunks/ConfirmModal.js +12 -20
- package/frontend/.svelte-kit/output/server/chunks/EmptyState.js +29 -7
- package/frontend/.svelte-kit/output/server/chunks/Modal.js +43 -0
- package/frontend/.svelte-kit/output/server/chunks/Toast.js +17 -1
- package/frontend/.svelte-kit/output/server/chunks/attributes.js +5 -0
- package/frontend/.svelte-kit/output/server/chunks/auth.js +5 -0
- package/frontend/.svelte-kit/output/{client/_app/immutable/assets/EmptyState.BdO1q9cJ.css → server/chunks/auth2.js} +13 -1
- package/frontend/.svelte-kit/output/server/chunks/client.js +5 -0
- package/frontend/.svelte-kit/output/server/chunks/common.js +56 -0
- package/frontend/.svelte-kit/output/server/chunks/constants.js +9 -2
- package/frontend/.svelte-kit/output/server/chunks/escaping.js +5 -0
- package/frontend/.svelte-kit/output/server/chunks/exports.js +5 -0
- package/frontend/.svelte-kit/output/server/chunks/format.js +5 -0
- package/frontend/.svelte-kit/output/server/chunks/index-server.js +5 -0
- package/frontend/.svelte-kit/output/server/chunks/index.js +5 -0
- package/frontend/.svelte-kit/output/server/chunks/index2.js +5 -0
- package/frontend/.svelte-kit/output/server/chunks/internal.js +7 -2
- package/frontend/.svelte-kit/output/server/chunks/reports.js +5 -0
- package/frontend/.svelte-kit/output/server/chunks/reports2.js +109 -0
- package/frontend/.svelte-kit/output/server/chunks/repository.js +111 -0
- package/frontend/.svelte-kit/output/server/chunks/runner.js +12 -0
- package/frontend/.svelte-kit/output/server/chunks/stores.js +5 -0
- package/frontend/.svelte-kit/output/server/chunks/theme.js +5 -0
- package/frontend/.svelte-kit/output/server/entries/fallbacks/error.svelte.js +5 -0
- package/frontend/.svelte-kit/output/server/entries/pages/_layout.js +5 -0
- package/frontend/.svelte-kit/output/server/entries/pages/_layout.svelte.js +7 -0
- package/frontend/.svelte-kit/output/server/entries/pages/_page.svelte.js +35 -12
- package/frontend/.svelte-kit/output/server/entries/pages/login/_page.svelte.js +9 -2
- package/frontend/.svelte-kit/output/server/entries/pages/reports/_id_/_page.svelte.js +9 -2
- package/frontend/.svelte-kit/output/server/entries/pages/reports/_page.svelte.js +21 -25
- package/frontend/.svelte-kit/output/server/entries/pages/reports/live/_page.svelte.js +31 -24
- package/frontend/.svelte-kit/output/server/entries/pages/scheduled-tests/_page.svelte.js +72 -32
- package/frontend/.svelte-kit/output/server/entries/pages/settings/_page.svelte.js +276 -95
- package/frontend/.svelte-kit/output/server/entries/pages/setup/_page.svelte.js +9 -2
- package/frontend/.svelte-kit/output/server/entries/pages/test-repository/_page.svelte.js +43 -36
- package/frontend/.svelte-kit/output/server/entries/pages/test-repository/runs/_id_/_page.svelte.js +66 -13
- package/frontend/.svelte-kit/output/server/entries/pages/test-repository/suites/_id_/_page.svelte.js +23 -17
- package/frontend/.svelte-kit/output/server/index.js +5 -0
- package/frontend/.svelte-kit/output/server/internal.js +5 -0
- package/frontend/.svelte-kit/output/server/manifest-full.js +6 -1
- package/frontend/.svelte-kit/output/server/manifest.js +6 -1
- package/frontend/.svelte-kit/output/server/nodes/0.js +7 -2
- package/frontend/.svelte-kit/output/server/nodes/1.js +6 -1
- package/frontend/.svelte-kit/output/server/nodes/10.js +7 -2
- package/frontend/.svelte-kit/output/server/nodes/11.js +7 -2
- package/frontend/.svelte-kit/output/server/nodes/12.js +7 -2
- package/frontend/.svelte-kit/output/server/nodes/2.js +7 -2
- package/frontend/.svelte-kit/output/server/nodes/3.js +6 -1
- package/frontend/.svelte-kit/output/server/nodes/4.js +7 -2
- package/frontend/.svelte-kit/output/server/nodes/5.js +6 -1
- package/frontend/.svelte-kit/output/server/nodes/6.js +6 -1
- package/frontend/.svelte-kit/output/server/nodes/7.js +7 -2
- package/frontend/.svelte-kit/output/server/nodes/8.js +7 -2
- package/frontend/.svelte-kit/output/server/nodes/9.js +6 -1
- package/frontend/build/client/_app/immutable/assets/0.BhSG-jZH.css +5 -0
- package/frontend/build/client/_app/immutable/assets/0.BhSG-jZH.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/0.BhSG-jZH.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/10.CdaQUS6U.css +5 -0
- package/frontend/build/client/_app/immutable/assets/10.CdaQUS6U.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/10.CdaQUS6U.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/11.BWAH0Beh.css +23 -0
- package/frontend/build/client/_app/immutable/assets/11.BWAH0Beh.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/11.BWAH0Beh.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/12.Bj_a_5lv.css +5 -0
- package/frontend/build/client/_app/immutable/assets/12.Bj_a_5lv.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/12.Bj_a_5lv.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/2.CrXpMrqh.css +5 -0
- package/frontend/build/client/_app/immutable/assets/2.CrXpMrqh.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/2.CrXpMrqh.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/3.BR3wgXcZ.css +5 -0
- package/frontend/build/client/_app/immutable/assets/3.BR3wgXcZ.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/3.BR3wgXcZ.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/4.0Eln51hV.css +5 -0
- package/frontend/build/client/_app/immutable/assets/4.0Eln51hV.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/4.0Eln51hV.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/5.DFV9OgAu.css +5 -0
- package/frontend/build/client/_app/immutable/assets/5.DFV9OgAu.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/5.DFV9OgAu.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/6.CFnbmY-D.css +5 -0
- package/frontend/build/client/_app/immutable/assets/6.CFnbmY-D.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/6.CFnbmY-D.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/7.CBHi6pzT.css +5 -0
- package/frontend/build/client/_app/immutable/assets/7.CBHi6pzT.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/7.CBHi6pzT.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/8.BwgOqeMo.css +23 -0
- package/frontend/build/client/_app/immutable/assets/8.BwgOqeMo.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/8.BwgOqeMo.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/9._h2o67kg.css +5 -0
- package/frontend/build/client/_app/immutable/assets/9._h2o67kg.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/9._h2o67kg.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/BackLink.CvWWuO3h.css +5 -0
- package/frontend/build/client/_app/immutable/assets/BackLink.CvWWuO3h.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/BackLink.CvWWuO3h.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/Badge.D1SV0Gv7.css +5 -0
- package/frontend/build/client/_app/immutable/assets/Badge.D1SV0Gv7.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/Badge.D1SV0Gv7.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/Button.FOWXxvc7.css +5 -0
- package/frontend/build/client/_app/immutable/assets/Button.FOWXxvc7.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/Button.FOWXxvc7.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/ConfirmModal.Dd3uP-Sk.css +23 -0
- package/frontend/build/client/_app/immutable/assets/ConfirmModal.Dd3uP-Sk.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/ConfirmModal.Dd3uP-Sk.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/EmptyState.DUDM4P19.css +23 -0
- package/frontend/build/client/_app/immutable/assets/{EmptyState.BdO1q9cJ.css.gz → EmptyState.DUDM4P19.css.br} +0 -0
- package/frontend/build/client/_app/immutable/assets/EmptyState.DUDM4P19.css.gz +0 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/assets/ConfirmModal.DmxkcwXv.css → build/client/_app/immutable/assets/Modal.BZpm0HP8.css} +6 -1
- package/frontend/build/client/_app/immutable/assets/Modal.BZpm0HP8.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/Modal.BZpm0HP8.css.gz +0 -0
- package/frontend/{.svelte-kit/output/server/_app/immutable/assets/ConfirmModal.CdhOYVBb.css → build/client/_app/immutable/assets/Modal.BuaCfdLj.css} +6 -1
- package/frontend/build/client/_app/immutable/assets/Modal.BuaCfdLj.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/Modal.BuaCfdLj.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/Pagination.DZmi2Po-.css +5 -0
- package/frontend/build/client/_app/immutable/assets/Pagination.DZmi2Po-.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/Pagination.DZmi2Po-.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/Toast.DENwYn3g.css +5 -0
- package/frontend/build/client/_app/immutable/assets/Toast.DENwYn3g.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/Toast.DENwYn3g.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_layout.BuhMvMUj.css +5 -0
- package/frontend/build/client/_app/immutable/assets/_layout.BuhMvMUj.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_layout.BuhMvMUj.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.0Eln51hV.css +5 -0
- package/frontend/build/client/_app/immutable/assets/_page.0Eln51hV.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.0Eln51hV.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.5IJAEAjc.css +5 -0
- package/frontend/build/client/_app/immutable/assets/_page.5IJAEAjc.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.5IJAEAjc.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.BR3wgXcZ.css +5 -0
- package/frontend/build/client/_app/immutable/assets/_page.BR3wgXcZ.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.BR3wgXcZ.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.BWAH0Beh.css +23 -0
- package/frontend/build/client/_app/immutable/assets/_page.BWAH0Beh.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.BWAH0Beh.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.BZfe6nWe.css +5 -0
- package/frontend/build/client/_app/immutable/assets/_page.BZfe6nWe.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.BZfe6nWe.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.Bj_a_5lv.css +5 -0
- package/frontend/build/client/_app/immutable/assets/_page.Bj_a_5lv.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.Bj_a_5lv.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.BwgOqeMo.css +23 -0
- package/frontend/build/client/_app/immutable/assets/_page.BwgOqeMo.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.BwgOqeMo.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.CBHi6pzT.css +5 -0
- package/frontend/build/client/_app/immutable/assets/_page.CBHi6pzT.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.CBHi6pzT.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.CFnbmY-D.css +5 -0
- package/frontend/build/client/_app/immutable/assets/_page.CFnbmY-D.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.CFnbmY-D.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.CrXpMrqh.css +5 -0
- package/frontend/build/client/_app/immutable/assets/_page.CrXpMrqh.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.CrXpMrqh.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page._h2o67kg.css +5 -0
- package/frontend/build/client/_app/immutable/assets/_page._h2o67kg.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page._h2o67kg.css.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{BLAiBE__.js → 2zMvi6fR.js} +6 -1
- package/frontend/build/client/_app/immutable/chunks/2zMvi6fR.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/2zMvi6fR.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/3IV-uqHa.js +23 -0
- package/frontend/build/client/_app/immutable/chunks/3IV-uqHa.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/3IV-uqHa.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/4N1zIH8t.js +23 -0
- package/frontend/build/client/_app/immutable/chunks/4N1zIH8t.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/4N1zIH8t.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/B98sHkeB.js +23 -0
- package/frontend/build/client/_app/immutable/chunks/B98sHkeB.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/B98sHkeB.js.gz +0 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/C67QNx7Z.js → build/client/_app/immutable/chunks/BAACMRH5.js} +6 -1
- package/frontend/build/client/_app/immutable/chunks/BAACMRH5.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BAACMRH5.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/Bfc47y5P.js +5 -0
- package/frontend/build/client/_app/immutable/chunks/Bfc47y5P.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/Bfc47y5P.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/BhvHtTRh.js +23 -0
- package/frontend/build/client/_app/immutable/chunks/BhvHtTRh.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BhvHtTRh.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/BjUpWNbl.js +23 -0
- package/frontend/build/client/_app/immutable/chunks/BjUpWNbl.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BjUpWNbl.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{DIx44H9N.js → C1Vid6wz.js} +6 -1
- package/frontend/build/client/_app/immutable/chunks/C1Vid6wz.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/C1Vid6wz.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/C1sukchk.js +23 -0
- package/frontend/build/client/_app/immutable/chunks/C1sukchk.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/C1sukchk.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/C8OURRSs.js +23 -0
- package/frontend/build/client/_app/immutable/chunks/C8OURRSs.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/C8OURRSs.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{DGryW1Vp.js → CKDtmZUQ.js} +6 -1
- package/frontend/build/client/_app/immutable/chunks/CKDtmZUQ.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/CKDtmZUQ.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/CMBQQ9RZ.js +23 -0
- package/frontend/build/client/_app/immutable/chunks/CMBQQ9RZ.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/CMBQQ9RZ.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{C4eeChIU.js → CNdcuGR0.js} +6 -1
- package/frontend/build/client/_app/immutable/chunks/{BFgtfHj2.js.br → CNdcuGR0.js.br} +0 -0
- package/frontend/build/client/_app/immutable/chunks/CNdcuGR0.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/CgnwuKKO.js +23 -0
- package/frontend/build/client/_app/immutable/chunks/CgnwuKKO.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/CgnwuKKO.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/CuqnZUex.js +23 -0
- package/frontend/build/client/_app/immutable/chunks/CuqnZUex.js.br +21 -0
- package/frontend/build/client/_app/immutable/chunks/CuqnZUex.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/D2cvzNT9.js +23 -0
- package/frontend/build/client/_app/immutable/chunks/D2cvzNT9.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/D2cvzNT9.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{B0pefNHY.js → D2gYTmAA.js} +6 -1
- package/frontend/build/client/_app/immutable/chunks/D2gYTmAA.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/D2gYTmAA.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{uFRI_bmR.js → DCgHuuvs.js} +6 -1
- package/frontend/build/client/_app/immutable/{assets/EmptyState.BdO1q9cJ.css.br → chunks/DCgHuuvs.js.br} +0 -0
- package/frontend/build/client/_app/immutable/chunks/DCgHuuvs.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{CxTX_lpP.js → DDblTLLE.js} +6 -1
- package/frontend/build/client/_app/immutable/chunks/DDblTLLE.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DDblTLLE.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/DW85KPAh.js +24 -0
- package/frontend/build/client/_app/immutable/chunks/DW85KPAh.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DW85KPAh.js.gz +0 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/BFgtfHj2.js → build/client/_app/immutable/chunks/DW_iTTZe.js} +6 -1
- package/frontend/build/client/_app/immutable/chunks/{BFgtfHj2.js.gz → DW_iTTZe.js.br} +0 -0
- package/frontend/build/client/_app/immutable/chunks/DW_iTTZe.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{BVMec-1T.js → DYlaQsvN.js} +6 -1
- package/frontend/build/client/_app/immutable/chunks/DYlaQsvN.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DYlaQsvN.js.gz +0 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/BFEiffAL.js → build/client/_app/immutable/chunks/DkNBSlo2.js} +6 -1
- package/frontend/build/client/_app/immutable/chunks/DkNBSlo2.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DkNBSlo2.js.gz +0 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/BkKmeUbA.js → build/client/_app/immutable/chunks/DlNYZJ7K.js} +6 -1
- package/frontend/build/client/_app/immutable/chunks/DlNYZJ7K.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DlNYZJ7K.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/Dlnxgs49.js +23 -0
- package/frontend/build/client/_app/immutable/chunks/Dlnxgs49.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/Dlnxgs49.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/DtGXv8RA.js +25 -0
- package/frontend/build/client/_app/immutable/chunks/DtGXv8RA.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DtGXv8RA.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/TOCyHP97.js +28 -0
- package/frontend/build/client/_app/immutable/chunks/TOCyHP97.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/TOCyHP97.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{CyQ_oBw2.js → oN0Z3NSF.js} +6 -1
- package/frontend/build/client/_app/immutable/chunks/oN0Z3NSF.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/oN0Z3NSF.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{raHbXn_9.js → t-La0hgu.js} +6 -1
- package/frontend/build/client/_app/immutable/chunks/t-La0hgu.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/t-La0hgu.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{DP6QP4L6.js → w0D4Uzlq.js} +6 -1
- package/frontend/build/client/_app/immutable/chunks/w0D4Uzlq.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/w0D4Uzlq.js.gz +0 -0
- package/frontend/build/client/_app/immutable/entry/app.BCWbw5zZ.js +24 -0
- package/frontend/build/client/_app/immutable/entry/app.BCWbw5zZ.js.br +0 -0
- package/frontend/build/client/_app/immutable/entry/app.BCWbw5zZ.js.gz +0 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/entry/start.MMlC62np.js → build/client/_app/immutable/entry/start.2_AF42wj.js} +6 -1
- package/frontend/build/client/_app/immutable/entry/{start.MMlC62np.js.br → start.2_AF42wj.js.br} +5 -1
- package/frontend/build/client/_app/immutable/entry/{start.MMlC62np.js.gz → start.2_AF42wj.js.gz} +0 -0
- package/frontend/build/client/_app/immutable/nodes/0.BAqq2UTE.js +28 -0
- package/frontend/build/client/_app/immutable/nodes/0.BAqq2UTE.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/0.BAqq2UTE.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/{1.Dbck5ct8.js → 1.D5VvLtGP.js} +6 -1
- package/frontend/build/client/_app/immutable/nodes/1.D5VvLtGP.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/1.D5VvLtGP.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/10.Bn4Ma-MU.js +23 -0
- package/frontend/build/client/_app/immutable/nodes/10.Bn4Ma-MU.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/10.Bn4Ma-MU.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/11.BacEu7sW.js +23 -0
- package/frontend/build/client/_app/immutable/nodes/11.BacEu7sW.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/11.BacEu7sW.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/12.0YGtl1uj.js +23 -0
- package/frontend/build/client/_app/immutable/nodes/12.0YGtl1uj.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/12.0YGtl1uj.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/2.C2jjMA-Z.js +23 -0
- package/frontend/build/client/_app/immutable/nodes/2.C2jjMA-Z.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/2.C2jjMA-Z.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/3.DHx0kho3.js +23 -0
- package/frontend/build/client/_app/immutable/nodes/3.DHx0kho3.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/3.DHx0kho3.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/4.CnaMiirx.js +23 -0
- package/frontend/build/client/_app/immutable/nodes/4.CnaMiirx.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/4.CnaMiirx.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/5.B6m-zTVe.js +23 -0
- package/frontend/build/client/_app/immutable/nodes/5.B6m-zTVe.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/5.B6m-zTVe.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/6.BPDag1zv.js +23 -0
- package/frontend/build/client/_app/immutable/nodes/6.BPDag1zv.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/6.BPDag1zv.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/7.D7LwxSvT.js +23 -0
- package/frontend/build/client/_app/immutable/nodes/7.D7LwxSvT.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/7.D7LwxSvT.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/8.CCkNX20G.js +26 -0
- package/frontend/build/client/_app/immutable/nodes/8.CCkNX20G.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/8.CCkNX20G.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/9.HDerA6JV.js +23 -0
- package/frontend/build/client/_app/immutable/nodes/9.HDerA6JV.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/9.HDerA6JV.js.gz +0 -0
- package/frontend/build/client/_app/version.json +1 -1
- package/frontend/build/client/_app/version.json.br +0 -0
- package/frontend/build/client/_app/version.json.gz +0 -0
- package/frontend/build/env.js +5 -0
- package/frontend/build/handler.js +5 -0
- package/frontend/build/index.js +5 -0
- package/frontend/build/server/chunks/{0-Dzas6zkl.js → 0-Di4jNU9J.js} +9 -4
- package/frontend/build/server/chunks/0-Di4jNU9J.js.map +21 -0
- package/frontend/build/server/chunks/{1-B4EsP8yr.js → 1-DR5YRUTa.js} +7 -2
- package/frontend/build/server/chunks/{1-B4EsP8yr.js.map → 1-DR5YRUTa.js.map} +5 -1
- package/frontend/build/server/chunks/10-Bhe409bL.js +31 -0
- package/frontend/build/server/chunks/10-Bhe409bL.js.map +21 -0
- package/frontend/build/server/chunks/11-DqyXW7n1.js +31 -0
- package/frontend/build/server/chunks/11-DqyXW7n1.js.map +21 -0
- package/frontend/build/server/chunks/12-BCpjMUbs.js +31 -0
- package/frontend/build/server/chunks/12-BCpjMUbs.js.map +21 -0
- package/frontend/build/server/chunks/{2-Bkz8H7CT.js → 2-D-0buH5i.js} +9 -4
- package/frontend/build/server/chunks/{2-Bkz8H7CT.js.map → 2-D-0buH5i.js.map} +5 -1
- package/frontend/build/server/chunks/{3-DDtaiqu7.js → 3-y2kzPO2X.js} +8 -3
- package/frontend/build/server/chunks/3-y2kzPO2X.js.map +21 -0
- package/frontend/build/server/chunks/4-CFrK8HST.js +31 -0
- package/frontend/build/server/chunks/4-CFrK8HST.js.map +21 -0
- package/frontend/build/server/chunks/{5-CK5hY2WF.js → 5-B0lJu5bT.js} +8 -3
- package/frontend/build/server/chunks/5-B0lJu5bT.js.map +21 -0
- package/frontend/build/server/chunks/{6-Cps9fL3Z.js → 6-BD4CEJ3Z.js} +8 -3
- package/frontend/build/server/chunks/6-BD4CEJ3Z.js.map +21 -0
- package/frontend/build/server/chunks/7-DekQfQHu.js +31 -0
- package/frontend/build/server/chunks/7-DekQfQHu.js.map +21 -0
- package/frontend/build/server/chunks/8-BMqmu7WF.js +31 -0
- package/frontend/build/server/chunks/8-BMqmu7WF.js.map +21 -0
- package/frontend/build/server/chunks/{9-CUJxgoIN.js → 9-C5sKo9aY.js} +8 -3
- package/frontend/build/server/chunks/9-C5sKo9aY.js.map +21 -0
- package/frontend/build/server/chunks/BackLink-KxZNqsaq.js +5 -0
- package/frontend/build/server/chunks/BackLink-KxZNqsaq.js.map +4 -0
- package/frontend/build/server/chunks/Badge-B5V-z6pI.js +5 -0
- package/frontend/build/server/chunks/Badge-B5V-z6pI.js.map +4 -0
- package/frontend/build/server/chunks/{ConfirmModal-DBtnLLsU.js → ConfirmModal-Ckkt99Pn.js} +12 -19
- package/frontend/build/server/chunks/ConfirmModal-Ckkt99Pn.js.map +21 -0
- package/frontend/build/server/chunks/EmptyState-BwwbShnX.js +56 -0
- package/frontend/build/server/chunks/EmptyState-BwwbShnX.js.map +21 -0
- package/frontend/build/server/chunks/Modal-DG-6c5si.js +43 -0
- package/frontend/build/server/chunks/Modal-DG-6c5si.js.map +21 -0
- package/frontend/build/server/chunks/{Button-CuacyA7Y.js → Toast-CIG4edEp.js} +22 -3
- package/frontend/build/server/chunks/Toast-CIG4edEp.js.map +21 -0
- package/frontend/build/server/chunks/{_layout.svelte-DoJXDbP1.js → _layout.svelte-BjPrZpoG.js} +10 -3
- package/frontend/build/server/chunks/_layout.svelte-BjPrZpoG.js.map +21 -0
- package/frontend/build/server/chunks/{_page.svelte-DNNyBx4y.js → _page.svelte-B9rjnZWE.js} +10 -4
- package/frontend/build/server/chunks/_page.svelte-B9rjnZWE.js.map +21 -0
- package/frontend/build/server/chunks/{_page.svelte-C0vstY93.js → _page.svelte-BHw14GPR.js} +76 -36
- package/frontend/build/server/chunks/_page.svelte-BHw14GPR.js.map +21 -0
- package/frontend/build/server/chunks/{_page.svelte-LcJmR5du.js → _page.svelte-BbZNxvCl.js} +29 -31
- package/frontend/build/server/chunks/_page.svelte-BbZNxvCl.js.map +21 -0
- package/frontend/build/server/chunks/_page.svelte-CLFpft5D.js +118 -0
- package/frontend/build/server/chunks/_page.svelte-CLFpft5D.js.map +21 -0
- package/frontend/build/server/chunks/_page.svelte-Cr16HubD.js +746 -0
- package/frontend/build/server/chunks/_page.svelte-Cr16HubD.js.map +21 -0
- package/frontend/build/server/chunks/{_page.svelte-DALHRFEX.js → _page.svelte-D1aYn1PL.js} +10 -4
- package/frontend/build/server/chunks/_page.svelte-D1aYn1PL.js.map +21 -0
- package/frontend/build/server/chunks/{_page.svelte-CC27sZag.js → _page.svelte-D2oF79cT.js} +45 -38
- package/frontend/build/server/chunks/_page.svelte-D2oF79cT.js.map +21 -0
- package/frontend/build/server/chunks/{_page.svelte-gnktnXKP.js → _page.svelte-D78qaBDN.js} +35 -28
- package/frontend/build/server/chunks/_page.svelte-D78qaBDN.js.map +21 -0
- package/frontend/build/server/chunks/{_page.svelte-DqWsUJRp.js → _page.svelte-DyyuZN_3.js} +25 -19
- package/frontend/build/server/chunks/_page.svelte-DyyuZN_3.js.map +21 -0
- package/frontend/build/server/chunks/{_page.svelte-CYkOPxn2.js → _page.svelte-sbqebZYx.js} +40 -17
- package/frontend/build/server/chunks/_page.svelte-sbqebZYx.js.map +21 -0
- package/frontend/build/server/chunks/{_page.svelte-BETENC2e.js → _page.svelte-ubW5EUCf.js} +13 -6
- package/frontend/build/server/chunks/_page.svelte-ubW5EUCf.js.map +21 -0
- package/frontend/build/server/chunks/attributes-BeaNKpgU.js +5 -0
- package/frontend/build/server/chunks/attributes-BeaNKpgU.js.map +4 -0
- package/frontend/build/server/chunks/auth-rlH-cIzn.js +5 -0
- package/frontend/build/server/chunks/auth-rlH-cIzn.js.map +4 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/BIRVeCLU.js → build/server/chunks/auth2-C02yYDpz.js} +11 -1
- package/frontend/build/server/chunks/auth2-C02yYDpz.js.map +21 -0
- package/frontend/build/server/chunks/client-DyII78e0.js +5 -0
- package/frontend/build/server/chunks/client-DyII78e0.js.map +4 -0
- package/frontend/build/server/chunks/common-Db-bgKYG.js +42 -0
- package/frontend/build/server/chunks/common-Db-bgKYG.js.map +21 -0
- package/frontend/build/server/chunks/{constants-Drz-Vo39.js → constants-cZ2kUwWa.js} +9 -3
- package/frontend/build/server/chunks/{constants-Drz-Vo39.js.map → constants-cZ2kUwWa.js.map} +5 -1
- package/frontend/build/server/chunks/error.svelte-BDW3iP1O.js +5 -0
- package/frontend/build/server/chunks/error.svelte-BDW3iP1O.js.map +4 -0
- package/frontend/build/server/chunks/escaping-CqgfEcN3.js +5 -0
- package/frontend/build/server/chunks/escaping-CqgfEcN3.js.map +4 -0
- package/frontend/build/server/chunks/exports-D0QHgeSL.js +5 -0
- package/frontend/build/server/chunks/exports-D0QHgeSL.js.map +4 -0
- package/frontend/build/server/chunks/{format-D26ZQccb.js → format-0SSB1oGG.js} +7 -2
- package/frontend/build/server/chunks/{format-D26ZQccb.js.map → format-0SSB1oGG.js.map} +5 -1
- package/frontend/build/server/chunks/index-server-Dr2Nvcmu.js +5 -0
- package/frontend/build/server/chunks/index-server-Dr2Nvcmu.js.map +4 -0
- package/frontend/build/server/chunks/index2-DG8XHU5D.js +5 -0
- package/frontend/build/server/chunks/index2-DG8XHU5D.js.map +4 -0
- package/frontend/build/server/chunks/{reports-Bgi7V5N7.js → reports-DnYbvluH.js} +7 -2
- package/frontend/build/server/chunks/{reports-Bgi7V5N7.js.map → reports-DnYbvluH.js.map} +5 -1
- package/frontend/build/server/chunks/reports2-DR4XlcJg.js +69 -0
- package/frontend/build/server/chunks/reports2-DR4XlcJg.js.map +21 -0
- package/frontend/build/server/chunks/repository-D9Derhnk.js +70 -0
- package/frontend/build/server/chunks/repository-D9Derhnk.js.map +21 -0
- package/frontend/build/server/chunks/{runner-D18Ml_vF.js → runner-DE5sufZH.js} +13 -1
- package/frontend/build/server/chunks/runner-DE5sufZH.js.map +21 -0
- package/frontend/build/server/chunks/stores-DlkXV308.js +5 -0
- package/frontend/build/server/chunks/stores-DlkXV308.js.map +4 -0
- package/frontend/build/server/chunks/theme-D_NKm6iI.js +5 -0
- package/frontend/build/server/chunks/theme-D_NKm6iI.js.map +4 -0
- package/frontend/build/server/index.js +7 -2
- package/frontend/build/server/index.js.map +5 -1
- package/frontend/build/server/manifest.js +19 -14
- package/frontend/build/server/manifest.js.map +5 -1
- package/frontend/build/shims.js +5 -0
- package/package.json +2 -1
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BJ-I1gHO.css +0 -18
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.Bhof07Eg.css +0 -18
- package/frontend/.svelte-kit/adapter-node/chunks/Button.js +0 -33
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/11.BJ-I1gHO.css +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/8.Bhof07Eg.css +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BJ-I1gHO.css +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.Bhof07Eg.css +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BKCNyxZ2.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BeO8veBd.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BgNaeXAp.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/C3SY6-sX.js +0 -19
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CVV6HrFb.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CstKKb9b.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DmRbbcS3.js +0 -23
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/IFIFk6zi.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/KJdjlibc.js +0 -20
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/ll-VsEGv.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/entry/app.Dz_CBZcR.js +0 -19
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/0.CKD9Qja6.js +0 -23
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/10.BfmGpmC1.js +0 -19
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/11.C7l9HPom.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/12.Iu9bcGdC.js +0 -19
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/2.BqQhRvYh.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/3.BZRTKadS.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/4.BfKoPKdM.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/5.B4a2uCWn.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/6.CI508CMS.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/7.3x_eiof1.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/8.BfUuob4H.js +0 -29
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/9.BZhCKRJe.js +0 -18
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/EmptyState.BdO1q9cJ.css +0 -18
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BJ-I1gHO.css +0 -18
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Bhof07Eg.css +0 -18
- package/frontend/.svelte-kit/output/server/chunks/Button.js +0 -33
- package/frontend/build/client/_app/immutable/assets/11.BJ-I1gHO.css +0 -18
- package/frontend/build/client/_app/immutable/assets/11.BJ-I1gHO.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/11.BJ-I1gHO.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/8.Bhof07Eg.css +0 -18
- package/frontend/build/client/_app/immutable/assets/8.Bhof07Eg.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/8.Bhof07Eg.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/ConfirmModal.CdhOYVBb.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/ConfirmModal.CdhOYVBb.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/ConfirmModal.DmxkcwXv.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/ConfirmModal.DmxkcwXv.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/EmptyState.BdO1q9cJ.css +0 -18
- package/frontend/build/client/_app/immutable/assets/_page.BJ-I1gHO.css +0 -18
- package/frontend/build/client/_app/immutable/assets/_page.BJ-I1gHO.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.BJ-I1gHO.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.Bhof07Eg.css +0 -18
- package/frontend/build/client/_app/immutable/assets/_page.Bhof07Eg.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.Bhof07Eg.css.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/B0pefNHY.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/B0pefNHY.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/BFEiffAL.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BFEiffAL.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/BIRVeCLU.js +0 -18
- package/frontend/build/client/_app/immutable/chunks/BIRVeCLU.js.br +0 -20
- package/frontend/build/client/_app/immutable/chunks/BIRVeCLU.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/BKCNyxZ2.js +0 -18
- package/frontend/build/client/_app/immutable/chunks/BKCNyxZ2.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BKCNyxZ2.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/BLAiBE__.js.br +0 -18
- package/frontend/build/client/_app/immutable/chunks/BLAiBE__.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/BVMec-1T.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BVMec-1T.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/BeO8veBd.js +0 -18
- package/frontend/build/client/_app/immutable/chunks/BeO8veBd.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BeO8veBd.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/BgNaeXAp.js +0 -18
- package/frontend/build/client/_app/immutable/chunks/BgNaeXAp.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BgNaeXAp.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/BkKmeUbA.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BkKmeUbA.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/C3SY6-sX.js +0 -19
- package/frontend/build/client/_app/immutable/chunks/C3SY6-sX.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/C3SY6-sX.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/C4eeChIU.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/C4eeChIU.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/C67QNx7Z.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/C67QNx7Z.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/CVV6HrFb.js +0 -18
- package/frontend/build/client/_app/immutable/chunks/CVV6HrFb.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/CVV6HrFb.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/CstKKb9b.js +0 -18
- package/frontend/build/client/_app/immutable/chunks/CstKKb9b.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/CstKKb9b.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/CxTX_lpP.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/CxTX_lpP.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/CyQ_oBw2.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/CyQ_oBw2.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/DGryW1Vp.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DGryW1Vp.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/DIx44H9N.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DIx44H9N.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/DP6QP4L6.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DP6QP4L6.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/DmRbbcS3.js +0 -23
- package/frontend/build/client/_app/immutable/chunks/DmRbbcS3.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DmRbbcS3.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/IFIFk6zi.js +0 -18
- package/frontend/build/client/_app/immutable/chunks/IFIFk6zi.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/IFIFk6zi.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/KJdjlibc.js +0 -20
- package/frontend/build/client/_app/immutable/chunks/KJdjlibc.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/KJdjlibc.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/ll-VsEGv.js +0 -18
- package/frontend/build/client/_app/immutable/chunks/ll-VsEGv.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/ll-VsEGv.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/raHbXn_9.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/raHbXn_9.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/uFRI_bmR.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/uFRI_bmR.js.gz +0 -0
- package/frontend/build/client/_app/immutable/entry/app.Dz_CBZcR.js +0 -19
- package/frontend/build/client/_app/immutable/entry/app.Dz_CBZcR.js.br +0 -0
- package/frontend/build/client/_app/immutable/entry/app.Dz_CBZcR.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/0.CKD9Qja6.js +0 -23
- package/frontend/build/client/_app/immutable/nodes/0.CKD9Qja6.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/0.CKD9Qja6.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/1.Dbck5ct8.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/1.Dbck5ct8.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/10.BfmGpmC1.js +0 -19
- package/frontend/build/client/_app/immutable/nodes/10.BfmGpmC1.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/10.BfmGpmC1.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/11.C7l9HPom.js +0 -18
- package/frontend/build/client/_app/immutable/nodes/11.C7l9HPom.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/11.C7l9HPom.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/12.Iu9bcGdC.js +0 -19
- package/frontend/build/client/_app/immutable/nodes/12.Iu9bcGdC.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/12.Iu9bcGdC.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/2.BqQhRvYh.js +0 -18
- package/frontend/build/client/_app/immutable/nodes/2.BqQhRvYh.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/2.BqQhRvYh.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/3.BZRTKadS.js +0 -18
- package/frontend/build/client/_app/immutable/nodes/3.BZRTKadS.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/3.BZRTKadS.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/4.BfKoPKdM.js +0 -18
- package/frontend/build/client/_app/immutable/nodes/4.BfKoPKdM.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/4.BfKoPKdM.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/5.B4a2uCWn.js +0 -18
- package/frontend/build/client/_app/immutable/nodes/5.B4a2uCWn.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/5.B4a2uCWn.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/6.CI508CMS.js +0 -18
- package/frontend/build/client/_app/immutable/nodes/6.CI508CMS.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/6.CI508CMS.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/7.3x_eiof1.js +0 -18
- package/frontend/build/client/_app/immutable/nodes/7.3x_eiof1.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/7.3x_eiof1.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/8.BfUuob4H.js +0 -29
- package/frontend/build/client/_app/immutable/nodes/8.BfUuob4H.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/8.BfUuob4H.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/9.BZhCKRJe.js +0 -18
- package/frontend/build/client/_app/immutable/nodes/9.BZhCKRJe.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/9.BZhCKRJe.js.gz +0 -0
- package/frontend/build/server/chunks/0-Dzas6zkl.js.map +0 -17
- package/frontend/build/server/chunks/10-UhDQZ5BY.js +0 -26
- package/frontend/build/server/chunks/10-UhDQZ5BY.js.map +0 -17
- package/frontend/build/server/chunks/11-mTH3nQlX.js +0 -26
- package/frontend/build/server/chunks/11-mTH3nQlX.js.map +0 -17
- package/frontend/build/server/chunks/12-9mg6kp53.js +0 -26
- package/frontend/build/server/chunks/12-9mg6kp53.js.map +0 -17
- package/frontend/build/server/chunks/3-DDtaiqu7.js.map +0 -17
- package/frontend/build/server/chunks/4-DbdkTAvS.js +0 -26
- package/frontend/build/server/chunks/4-DbdkTAvS.js.map +0 -17
- package/frontend/build/server/chunks/5-CK5hY2WF.js.map +0 -17
- package/frontend/build/server/chunks/6-Cps9fL3Z.js.map +0 -17
- package/frontend/build/server/chunks/7-CgUpbaJD.js +0 -26
- package/frontend/build/server/chunks/7-CgUpbaJD.js.map +0 -17
- package/frontend/build/server/chunks/8-dilaVKYo.js +0 -26
- package/frontend/build/server/chunks/8-dilaVKYo.js.map +0 -17
- package/frontend/build/server/chunks/9-CUJxgoIN.js.map +0 -17
- package/frontend/build/server/chunks/Button-CuacyA7Y.js.map +0 -17
- package/frontend/build/server/chunks/ConfirmModal-DBtnLLsU.js.map +0 -17
- package/frontend/build/server/chunks/EmptyState-B74-VZ15.js +0 -34
- package/frontend/build/server/chunks/EmptyState-B74-VZ15.js.map +0 -17
- package/frontend/build/server/chunks/Toast-DDF2wi_5.js +0 -37
- package/frontend/build/server/chunks/Toast-DDF2wi_5.js.map +0 -17
- package/frontend/build/server/chunks/_layout.svelte-DoJXDbP1.js.map +0 -17
- package/frontend/build/server/chunks/_page.svelte-BETENC2e.js.map +0 -17
- package/frontend/build/server/chunks/_page.svelte-C0vstY93.js.map +0 -17
- package/frontend/build/server/chunks/_page.svelte-CC27sZag.js.map +0 -17
- package/frontend/build/server/chunks/_page.svelte-CYkOPxn2.js.map +0 -17
- package/frontend/build/server/chunks/_page.svelte-CperUuP9.js +0 -564
- package/frontend/build/server/chunks/_page.svelte-CperUuP9.js.map +0 -17
- package/frontend/build/server/chunks/_page.svelte-CwrCf0C8.js +0 -65
- package/frontend/build/server/chunks/_page.svelte-CwrCf0C8.js.map +0 -17
- package/frontend/build/server/chunks/_page.svelte-DALHRFEX.js.map +0 -17
- package/frontend/build/server/chunks/_page.svelte-DNNyBx4y.js.map +0 -17
- package/frontend/build/server/chunks/_page.svelte-DqWsUJRp.js.map +0 -17
- package/frontend/build/server/chunks/_page.svelte-LcJmR5du.js.map +0 -17
- package/frontend/build/server/chunks/_page.svelte-gnktnXKP.js.map +0 -17
- package/frontend/build/server/chunks/runner-D18Ml_vF.js.map +0 -17
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
*
|
|
4
|
-
* Plum is free software: you can redistribute it and/or modify
|
|
5
|
-
* it under the terms of the GNU General Public License as published by
|
|
6
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
7
|
-
* (at your option) any later version.
|
|
8
|
-
*
|
|
9
|
-
* Plum is distributed in the hope that it will be useful,
|
|
10
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
* GNU General Public License for more details.
|
|
13
|
-
*
|
|
14
|
-
* You should have received a copy of the GNU General Public License
|
|
15
|
-
* along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import{a as i,t as d,s as h,h as nt,c as De,e as M,b as Re,n as it}from"../chunks/ll-VsEGv.js";import{i as As}from"../chunks/DGryW1Vp.js";import{p as ms,l as oe,s as c,al as Ps,b as fs,k as r,n as t,t as w,c as e,d as gs,m as x,o as ct,f as se,$ as lt,j as n,v as xe,z as Is,y as ot}from"../chunks/C67QNx7Z.js";import{i as _,s as vt,a as Es}from"../chunks/CVV6HrFb.js";import{t as I,s as dt,a as ls,f as os,e as Le,i as vs}from"../chunks/DmRbbcS3.js";import{h as ut,b as pt,s as ds,r as _t}from"../chunks/CstKKb9b.js";import{b as mt}from"../chunks/raHbXn_9.js";import{T as ft,B as Ae,i as gt,s as bt}from"../chunks/BkKmeUbA.js";import{p as ht}from"../chunks/BFgtfHj2.js";import{q as us,r as xt,t as wt,v as Ne,w as yt,x as kt}from"../chunks/BFEiffAL.js";import{r as ps}from"../chunks/C3SY6-sX.js";import{a as Ct}from"../chunks/DIx44H9N.js";import{E as $t}from"../chunks/BKCNyxZ2.js";import{p as qe}from"../chunks/BeO8veBd.js";var St=d('<span class="auto-badge svelte-1yr9844"></span>');function Ye(_e){var K=St();K.textContent=ut,i(_e,K)}var Tt=d('<span class="priority-badge svelte-1m066kw"> </span>');function Rs(_e,K){ms(K,!1);const F=x();let Q=qe(K,"priority",8,"Medium"),q=qe(K,"small",8,!1);oe(()=>Ps(Q()),()=>{var Ue;c(F,((Ue=Q())==null?void 0:Ue.toLowerCase())??"medium")}),fs(),As();var W=Tt(),Pe=r(W,!0);t(W),w(()=>{I(W,"critical",e(F)==="critical"),I(W,"high",e(F)==="high"),I(W,"medium",e(F)==="medium"),I(W,"low",e(F)==="low"),I(W,"small",q()),h(Pe,Q())}),i(_e,W),gs()}var It=d('<span class="id-chip svelte-1gmo0py"> </span>');function _s(_e,K){let F=qe(K,"id",8,""),Q=qe(K,"small",8,!1);var q=It(),W=r(q,!0);t(q),w(()=>{I(q,"small",Q()),h(W,F())}),i(_e,q)}var Et=d('<span class="result-chip svelte-1rgb1a1"> </span>');function Ls(_e,K){ms(K,!1);const F=x();let Q=qe(K,"status",8,"pending");oe(()=>Ps(Q()),()=>{c(F,Q()==="pass"?"pass":Q()==="fail"?"fail":Q()==="blocked"?"warn":Q()==="skip"?"muted":"pending")}),fs();var q=Et(),W=r(q,!0);t(q),w(()=>{I(q,"pass",e(F)==="pass"),I(q,"fail",e(F)==="fail"),I(q,"warn",e(F)==="warn"),I(q,"muted",e(F)==="muted"),I(q,"pending",e(F)==="pending"),h(W,Q())}),i(_e,q),gs()}var Rt=d('<div class="loading-state svelte-r8nmcc">Loading…</div>'),Lt=d("<!> <!>",1),At=d("<!> <!> <!>",1),Pt=d('<span class="exec-progress svelte-r8nmcc"> </span>'),Bt=d('<span class="locked-badge svelte-r8nmcc">locked</span>'),Ot=d('<span class="entry-sort-dir svelte-r8nmcc"> </span>'),Mt=d('<button class="entry-sort-chip svelte-r8nmcc"> <!></button>'),Dt=it('<svg class="drag-handle svelte-r8nmcc" width="12" height="12" viewBox="0 0 24 24" fill="currentColor"><circle cx="9" cy="5" r="1.5"></circle><circle cx="15" cy="5" r="1.5"></circle><circle cx="9" cy="12" r="1.5"></circle><circle cx="15" cy="12" r="1.5"></circle><circle cx="9" cy="19" r="1.5"></circle><circle cx="15" cy="19" r="1.5"></circle></svg>'),Nt=d("<option> </option>"),Ut=d('<select class="assignee-select svelte-r8nmcc"><option>Unassigned</option><!></select>'),Ft=d('<button class="icon-btn danger svelte-r8nmcc"><svg width="11" height="11" 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>'),qt=d('<div class="entry-row svelte-r8nmcc" role="listitem"><!> <div class="entry-info svelte-r8nmcc"><div class="entry-badges svelte-r8nmcc"><!> <!></div> <p class="entry-title svelte-r8nmcc"> </p> <span class="entry-suite svelte-r8nmcc"> </span></div> <!> <!></div>'),zt=d('<div class="entry-sort-bar svelte-r8nmcc"></div> <div class="entry-list svelte-r8nmcc" role="list"></div>',1),Jt=d('<button class="browser-case svelte-r8nmcc"><!> <span class="browser-case-title svelte-r8nmcc"> </span> <!> <!></button>'),jt=d('<div class="browser-cases svelte-r8nmcc"></div>'),Ht=d('<p class="browser-empty svelte-r8nmcc"> </p>'),Vt=d('<div class="browser-suite svelte-r8nmcc"><button class="browser-suite-header svelte-r8nmcc"><svg class="chevron svelte-r8nmcc" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="9 18 15 12 9 6"></polyline></svg> <span class="browser-suite-name svelte-r8nmcc"> </span> <span class="browser-suite-count svelte-r8nmcc"> </span></button> <!></div>'),Wt=d('<p class="browser-empty svelte-r8nmcc">No suites available.</p>'),Yt=d('<div class="builder-panel right-panel svelte-r8nmcc"><div class="builder-panel-head svelte-r8nmcc"><h2 class="builder-panel-title svelte-r8nmcc">Suite browser</h2> <input type="text" class="search-input svelte-r8nmcc" placeholder="Search cases…"></div> <div class="suite-browser svelte-r8nmcc"><!> <!></div></div>'),Gt=d('<div class="builder-workspace svelte-r8nmcc"><div class="builder-panel left-panel svelte-r8nmcc"><div class="builder-panel-head svelte-r8nmcc"><h2 class="builder-panel-title svelte-r8nmcc">In this run</h2> <span class="count-chip svelte-r8nmcc"> </span> <!></div> <!></div> <!></div>'),Kt=d('<div class="exec-locked-banner svelte-r8nmcc">This run is not in progress — start execution to record results.</div>'),Qt=d('<div class="progress-bar-wrap svelte-r8nmcc"><div class="progress-stats svelte-r8nmcc"><span class="stat pass svelte-r8nmcc"> </span> <span class="stat fail svelte-r8nmcc"> </span> <span class="stat muted svelte-r8nmcc"> </span></div> <div class="progress-bar svelte-r8nmcc"><div class="progress-fill pass svelte-r8nmcc"></div> <div class="progress-fill fail svelte-r8nmcc"></div></div></div>'),Xt=d('<button class="exec-chevron svelte-r8nmcc" title="Toggle steps"><svg class="chevron svelte-r8nmcc" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="9 18 15 12 9 6"></polyline></svg></button>'),Zt=d('<div class="exec-assignee-row svelte-r8nmcc"><!></div> <div class="exec-assignee-divider svelte-r8nmcc"></div>',1),ea=d('<span class="exec-assignee-name svelte-r8nmcc"> </span>'),sa=d('<button class="exec-assign-me svelte-r8nmcc">Assign to me</button>'),ta=d('<div class="exec-assignee-row svelte-r8nmcc"><!> <!></div> <div class="exec-assignee-divider svelte-r8nmcc"></div>',1),aa=d('<div class="exec-btns svelte-r8nmcc"><button class="exec-btn in-progress svelte-r8nmcc">In Progress</button> <button class="exec-btn pass svelte-r8nmcc">Pass</button> <button class="exec-btn fail svelte-r8nmcc">Fail</button> <button class="exec-btn warn svelte-r8nmcc">Blocked</button> <button class="exec-btn muted svelte-r8nmcc">Skip</button></div>'),ra=d('<div class="exec-btns svelte-r8nmcc"><!> <button class="exec-reset svelte-r8nmcc" title="Reset to pending">↩ Reset</button></div>'),na=d('<p class="exec-step-data svelte-r8nmcc"> </p>'),ia=d('<p class="exec-step-expected svelte-r8nmcc"> </p>'),ca=d('<div class="exec-step svelte-r8nmcc"><span class="exec-step-num svelte-r8nmcc"></span> <div class="exec-step-body svelte-r8nmcc"><p class="exec-step-action svelte-r8nmcc"> </p> <!> <!></div></div>'),la=d('<div class="exec-steps svelte-r8nmcc"></div>'),oa=d('<div class="execute-row svelte-r8nmcc"><div class="execute-row-main svelte-r8nmcc"><div class="exec-info svelte-r8nmcc"><!> <!> <!> <div><p class="exec-title svelte-r8nmcc"> </p> <span class="exec-suite svelte-r8nmcc"> </span></div></div> <div class="exec-actions svelte-r8nmcc"><!> <!></div></div> <!></div>'),va=d('<div class="execute-workspace"><!> <!> <div class="execute-list svelte-r8nmcc"></div></div>'),da=d('<div class="run-header svelte-r8nmcc"><div class="run-header-left svelte-r8nmcc"><h1 class="run-title svelte-r8nmcc"> </h1> <span> </span></div> <div class="run-header-actions svelte-r8nmcc"><!></div></div> <div class="mode-tabs svelte-r8nmcc"><button class="mode-tab svelte-r8nmcc">Build</button> <button class="mode-tab svelte-r8nmcc">Execute <!></button></div> <!>',1),ua=d('<!> <div class="breadcrumb svelte-r8nmcc"><a href="/test-repository" class="bc-link svelte-r8nmcc">Test Repository</a> <span class="bc-sep svelte-r8nmcc">›</span> <span class="bc-current"> </span></div> <!>',1);function Ta(_e,K){ms(K,!1);const[F,Q]=vt(),q=()=>Es(ht,"$page",F),W=()=>Es(Ct,"$auth",F),Pe=x(),Ue=x(),ze=x(),Ge=x(),z=x(),Ke=x(),ye=x(),Qe=x(),Xe=x(),me=q().params.id;let te=x("build"),a=x(null),Je=x([]),bs=x([]),hs=x(!0),Ze=x(null),je=x(!1),He=x(null),ae=x(""),fe=x(new Set);const xs={Critical:0,High:1,Medium:2,Low:3};let E=x((()=>{try{const s=sessionStorage.getItem("plum:run:entries:sort");if(s)return JSON.parse(s)}catch{}return{by:"order",order:"asc"}})());function Bs(s){e(E).by===s?ot(E,e(E).order=e(E).order==="asc"?"desc":"asc"):c(E,{by:s,order:"asc"});try{sessionStorage.setItem("plum:run:entries:sort",JSON.stringify(e(E)))}catch{}}let Be=x(null),Ve=x(null),es=x(null),ws="",ke=x(new Set);function Os(s){e(ke).has(s)?e(ke).delete(s):e(ke).add(s),c(ke,new Set(e(ke)))}function ie(s,o){c(Ze,{type:s,message:o}),setTimeout(()=>c(Ze,null),pt)}ct(async()=>{try{await(async s=>(c(a,s[0]),c(Je,s[1]),c(bs,s[2])))(await Promise.all([us(me),xt(),wt()])),c(fe,new Set(e(Je).map(s=>s.id))),e(a).status==="in-progress"&&c(te,"execute")}catch{ie("error","Failed to load data")}finally{c(hs,!1)}});async function ys(s,o){c(He,s);try{const f=await yt(s,o||null);c(a,{...e(a),entries:e(a).entries.map(k=>k.id===s?{...k,assignedToId:f.assignedToId,assignedTo:f.assignedTo}:k)})}catch(f){ie("error",f.message)}finally{c(He,null)}}async function Ms(s){if(!e(a)||e(ze).has(s.id))return;const o=e(a),f={id:`tmp-${s.id}`,order:e(a).entries.length,status:"pending",notes:"",executedAt:null,executedBy:null,case:s};c(a,{...e(a),entries:[...e(a).entries,f]});try{const k=e(a).entries.map(ve=>ve.case.id);await Ne(me,{caseIds:k}),c(a,await us(me))}catch{c(a,o),ie("error","Failed to add case.")}}function Ds(s){c(a,{...e(a),entries:e(a).entries.filter(o=>o.id!==s)})}async function ks(){c(je,!0);try{const s=e(a).entries.map(f=>f.case.id),o=await Ne(me,{caseIds:s});c(a,await us(me)),ie("success","Run saved.")}catch(s){ie("error",s.message)}finally{c(je,!1)}}async function Ns(){await ks(),await Ne(me,{status:"in-progress"}),c(a,{...e(a),status:"in-progress"}),c(te,"execute")}async function Oe(s,o){c(es,s.id);try{const f=await kt(s.id,{status:o,notes:ws});c(a,{...e(a),entries:e(a).entries.map(k=>k.id===s.id?{...k,...f,status:o}:k)}),ws=""}catch(f){ie("error",f.message)}finally{c(es,null)}}async function Us(){try{await Ne(me,{status:"backlog"}),c(a,{...e(a),status:"backlog"}),c(te,"build"),ps.update(s=>s+1)}catch(s){ie("error",s.message)}}async function Fs(){try{await Ne(me,{status:"complete"}),c(a,{...e(a),status:"complete"}),ps.update(s=>s+1),ie("success","Run marked as complete.")}catch(s){ie("error",s.message)}}async function qs(){try{await Ne(me,{status:"backlog"}),c(a,{...e(a),status:"backlog"}),c(te,"build"),ps.update(s=>s+1),ie("success","Run reopened.")}catch(s){ie("error",s.message)}}function zs(s,o){c(Be,o),s.dataTransfer.effectAllowed="move"}function Js(s,o){s.preventDefault(),c(Ve,o)}function js(s,o){if(s.preventDefault(),!e(Be)||e(Be)===o)return;const f=[...e(a).entries],k=f.findIndex($e=>$e.id===e(Be)),ve=f.findIndex($e=>$e.id===o),[Ce]=f.splice(k,1);f.splice(ve,0,Ce),c(a,{...e(a),entries:f}),c(Be,null),c(Ve,null)}oe(()=>W(),()=>{var s,o;c(Pe,((o=(s=W())==null?void 0:s.user)==null?void 0:o.id)??null)}),oe(()=>(e(a),e(E)),()=>{c(Ue,(()=>{if(!e(a))return[];const s=[...e(a).entries],o=e(E).order==="asc"?1:-1;return e(E).by==="name"?s.sort((f,k)=>o*f.case.title.localeCompare(k.case.title)):e(E).by==="priority"?s.sort((f,k)=>o*((xs[f.case.priority]??99)-(xs[k.case.priority]??99))):e(E).by==="status"?s.sort((f,k)=>o*f.status.localeCompare(k.status)):e(E).by==="suite"?s.sort((f,k)=>{var ve,Ce;return o*(((ve=f.case.suite)==null?void 0:ve.name)??"").localeCompare(((Ce=k.case.suite)==null?void 0:Ce.name)??"")}):s.sort((f,k)=>o*(f.order-k.order))})())}),oe(()=>e(a),()=>{var s;c(ze,new Set(((s=e(a))==null?void 0:s.entries.map(o=>o.case.id))??[]))}),oe(()=>(e(Je),e(ze),e(ae)),()=>{c(Ge,e(Je).map(s=>({...s,_totalCases:(s.cases??[]).length,cases:(s.cases??[]).filter(o=>!e(ze).has(o.id)&&(!e(ae)||s.displayId.toLowerCase().includes(e(ae).toLowerCase())||s.name.toLowerCase().includes(e(ae).toLowerCase())||o.title.toLowerCase().includes(e(ae).toLowerCase())||o.displayId.toLowerCase().includes(e(ae).toLowerCase())))})).filter(s=>!e(ae)||s.cases.length>0||s.displayId.toLowerCase().includes(e(ae).toLowerCase())||s.name.toLowerCase().includes(e(ae).toLowerCase())))}),oe(()=>e(a),()=>{var s;c(z,((s=e(a))==null?void 0:s.status)==="complete")}),oe(()=>e(a),()=>{var s;c(Ke,((s=e(a))==null?void 0:s.entries.filter(o=>o.status!=="pending").length)??0)}),oe(()=>e(a),()=>{var s;c(ye,((s=e(a))==null?void 0:s.entries.length)??0)}),oe(()=>e(a),()=>{var s;c(Qe,((s=e(a))==null?void 0:s.entries.filter(o=>o.status==="pass").length)??0)}),oe(()=>e(a),()=>{var s;c(Xe,((s=e(a))==null?void 0:s.entries.filter(o=>o.status==="fail").length)??0)}),fs(),As();var Cs=ua();nt(s=>{w(()=>{var o;return lt.title=`${((o=e(a))==null?void 0:o.title)??"Test Run"} — Plum`})});var $s=se(Cs);ft($s,{get toast(){return e(Ze)}});var ss=n($s,2),Ss=n(r(ss),4),Hs=r(Ss,!0);t(Ss),t(ss);var Vs=n(ss,2);{var Ws=s=>{var o=Rt();i(s,o)},Ys=s=>{var o=De(),f=se(o);{var k=ve=>{var Ce=da(),$e=se(Ce),ts=r($e),as=r(ts),Gs=r(as,!0);t(as);var rs=n(as,2),Ks=r(rs,!0);t(rs),t(ts);var Ts=n(ts,2),Qs=r(Ts);{var Xs=J=>{Ae(J,{variant:"ghost",$$events:{click:qs},children:(A,ce)=>{xe();var ge=Re("Reopen");i(A,ge)},$$slots:{default:!0}})},Zs=J=>{var A=De(),ce=se(A);{var ge=de=>{var ue=Lt(),D=se(ue);Ae(D,{variant:"ghost",get disabled(){return e(je)},$$events:{click:ks},children:(T,Y)=>{xe();var H=Re();w(()=>h(H,e(je)?"Saving…":"Save")),i(T,H)},$$slots:{default:!0}});var v=n(D,2);{var X=T=>{Ae(T,{$$events:{click:Ns},children:(Y,H)=>{xe();var y=Re("Start Execution");i(Y,y)},$$slots:{default:!0}})};_(v,T=>{e(a).entries.length>0&&T(X)})}i(de,ue)},we=de=>{var ue=De(),D=se(ue);{var v=T=>{var Y=At(),H=se(Y);Ae(H,{variant:"ghost",$$events:{click:Us},children:(N,Z)=>{xe();var L=Re("Stop Execution");i(N,L)},$$slots:{default:!0}});var y=n(H,2);Ae(y,{variant:"ghost",$$events:{click:()=>c(te,"build")},children:(N,Z)=>{xe();var L=Re("← Edit Run");i(N,L)},$$slots:{default:!0}});var V=n(y,2);Ae(V,{$$events:{click:Fs},children:(N,Z)=>{xe();var L=Re("Mark Complete");i(N,L)},$$slots:{default:!0}}),i(T,Y)},X=T=>{Ae(T,{variant:"ghost",$$events:{click:()=>c(te,"build")},children:(Y,H)=>{xe();var y=Re("← Edit Run");i(Y,y)},$$slots:{default:!0}})};_(D,T=>{e(a).status==="in-progress"?T(v):T(X,!1)},!0)}i(de,ue)};_(ce,de=>{e(te)==="build"?de(ge):de(we,!1)},!0)}i(J,A)};_(Qs,J=>{e(z)?J(Xs):J(Zs,!1)})}t(Ts),t($e);var ns=n($e,2),is=r(ns),We=n(is,2),et=n(r(We));{var st=J=>{var A=Pt(),ce=r(A);t(A),w(()=>h(ce,`${e(Ke)??""}/${e(ye)??""}`)),i(J,A)};_(et,J=>{e(ye)>0&&J(st)})}t(We),t(ns);var tt=n(ns,2);{var at=J=>{var A=Gt(),ce=r(A),ge=r(ce),we=n(r(ge),2),de=r(we,!0);t(we);var ue=n(we,2);{var D=y=>{var V=Bt();i(y,V)};_(ue,y=>{e(z)&&y(D)})}t(ge);var v=n(ge,2);{var X=y=>{$t(y,{message:"No cases in this run.",size:"sm"})},T=y=>{var V=zt(),N=se(V);Le(N,4,()=>[["order","Order"],["name","Name"],["priority","Priority"],["status","Status"],["suite","Suite"]],vs,(L,g)=>{let P=()=>g[0],be=()=>g[1];var B=Mt(),$=r(B,!0),re=n($);{var le=pe=>{var ee=Ot(),Se=r(ee,!0);t(ee),w(()=>h(Se,e(E).order==="asc"?" ↑":" ↓")),i(pe,ee)};_(re,pe=>{e(E).by===P()&&pe(le)})}t(B),w(()=>{I(B,"active",e(E).by===P()),h($,be())}),M("click",B,()=>Bs(P())),i(L,B)}),t(N);var Z=n(N,2);Le(Z,5,()=>e(Ue),L=>L.id,(L,g)=>{var P=qt(),be=r(P);{var B=u=>{var l=Dt();i(u,l)};_(be,u=>{!e(z)&&e(E).by==="order"&&u(B)})}var $=n(be,2),re=r($),le=r(re);_s(le,{get id(){return e(g).case.displayId}});var pe=n(le,2);Rs(pe,{get priority(){return e(g).case.priority}}),t(re);var ee=n(re,2),Se=r(ee,!0);t(ee);var Te=n(ee,2),Fe=r(Te,!0);t(Te),t($);var Me=n($,2);{var p=u=>{Ye(u)},C=u=>{var l=Ut();gt(l,()=>e(g).assignedToId??"");var m,S=r(l);S.value=((S.__value="")==null,"");var U=n(S);Le(U,1,()=>e(bs),vs,(ne,G)=>{var O=Nt(),j={},he=r(O,!0);t(O),w(()=>{j!==(j=e(G).id)&&(O.value=(O.__value=e(G).id)==null?"":e(G).id),h(he,e(G).name)}),i(ne,O)}),t(l),w(()=>{m!==(m=e(g).assignedToId??"")&&(l.value=(l.__value=e(g).assignedToId??"")==null?"":e(g).assignedToId??"",bt(l,e(g).assignedToId??"")),l.disabled=e(He)===e(g).id}),M("change",l,ne=>ys(e(g).id,ne.target.value)),i(u,l)};_(Me,u=>{e(g).case.isAutomated?u(p):u(C,!1)})}var R=n(Me,2);{var b=u=>{var l=Ft();M("click",l,()=>Ds(e(g).id)),i(u,l)};_(R,u=>{e(z)||u(b)})}t(P),w(()=>{var u;ds(P,"draggable",!e(z)&&e(E).by==="order"),I(P,"entry-locked",e(z)),I(P,"dragging",e(Be)===e(g).id),I(P,"drag-over",e(Ve)===e(g).id),h(Se,e(g).case.title),h(Fe,((u=e(g).case.suite)==null?void 0:u.name)??"")}),M("dragstart",P,function(...u){var l;(l=e(z)||e(E).by!=="order"?null:m=>zs(m,e(g).id))==null||l.apply(this,u)}),M("dragover",P,function(...u){var l;(l=e(z)||e(E).by!=="order"?null:m=>Js(m,e(g).id))==null||l.apply(this,u)}),M("dragleave",P,function(...u){var l;(l=e(z)||e(E).by!=="order"?null:()=>c(Ve,null))==null||l.apply(this,u)}),M("drop",P,function(...u){var l;(l=e(z)||e(E).by!=="order"?null:m=>js(m,e(g).id))==null||l.apply(this,u)}),i(L,P)}),t(Z),i(y,V)};_(v,y=>{e(a).entries.length===0?y(X):y(T,!1)})}t(ce);var Y=n(ce,2);{var H=y=>{var V=Yt(),N=r(V),Z=n(r(N),2);_t(Z),t(N);var L=n(N,2),g=r(L);Le(g,1,()=>e(Ge),B=>B.id,(B,$)=>{var re=Vt(),le=r(re),pe=r(le),ee=n(pe,2),Se=r(ee,!0);t(ee);var Te=n(ee,2),Fe=r(Te,!0);t(Te),t(le);var Me=n(le,2);{var p=R=>{var b=jt();Le(b,5,()=>e($).cases,u=>u.id,(u,l)=>{var m=Jt(),S=r(m);_s(S,{get id(){return e(l).displayId},small:!0});var U=n(S,2),ne=r(U,!0);t(U);var G=n(U,2);Rs(G,{get priority(){return e(l).priority},small:!0});var O=n(G,2);{var j=he=>{Ye(he)};_(O,he=>{e(l).isAutomated&&he(j)})}t(m),w(()=>h(ne,e(l).title)),M("click",m,()=>Ms(e(l))),i(u,m)}),t(b),ls(3,b,()=>os,()=>({y:-4,duration:120})),i(R,b)},C=R=>{var b=De(),u=se(b);{var l=m=>{var S=Ht(),U=r(S,!0);t(S),w(()=>h(U,e(ae)?"No matching cases":e($)._totalCases===0?"No cases in this suite":"All cases added")),i(m,S)};_(u,m=>{e(fe).has(e($).id)&&m(l)},!0)}i(R,b)};_(Me,R=>{var b;e(fe).has(e($).id)&&((b=e($).cases)==null?void 0:b.length)>0?R(p):R(C,!1)})}t(re),w(R=>{var b;I(pe,"open",R),h(Se,e($).name),h(Fe,((b=e($).cases)==null?void 0:b.length)??0)},[()=>e(fe).has(e($).id)],Is),M("click",le,()=>{e(fe).has(e($).id)?e(fe).delete(e($).id):e(fe).add(e($).id),c(fe,new Set(e(fe)))}),i(B,re)});var P=n(g,2);{var be=B=>{var $=Wt();i(B,$)};_(P,B=>{e(Ge).length===0&&B(be)})}t(L),t(V),mt(Z,()=>e(ae),B=>c(ae,B)),i(y,V)};_(Y,y=>{e(z)||y(H)})}t(A),w(()=>{I(A,"locked-workspace",e(z)),h(de,e(a).entries.length)}),ls(3,A,()=>os,()=>({y:4,duration:150})),i(J,A)},rt=J=>{var A=va(),ce=r(A);{var ge=D=>{var v=Kt();i(D,v)};_(ce,D=>{e(a).status!=="in-progress"&&!e(z)&&D(ge)})}var we=n(ce,2);{var de=D=>{var v=Qt(),X=r(v),T=r(X),Y=r(T);t(T);var H=n(T,2),y=r(H);t(H);var V=n(H,2),N=r(V);t(V),t(X);var Z=n(X,2),L=r(Z),g=n(L,2);t(Z),t(v),w(()=>{h(Y,`${e(Qe)??""} passed`),h(y,`${e(Xe)??""} failed`),h(N,`${e(ye)-e(Ke)} remaining`),ds(L,"style",`width: ${e(Qe)/e(ye)*100}%`),ds(g,"style",`width: ${e(Xe)/e(ye)*100}%`)}),i(D,v)};_(we,D=>{e(ye)>0&&D(de)})}var ue=n(we,2);Le(ue,5,()=>e(a).entries,D=>D.id,(D,v)=>{var X=oa(),T=r(X),Y=r(T),H=r(Y);{var y=p=>{var C=Xt(),R=r(C);t(C),w(b=>I(R,"open",b),[()=>e(ke).has(e(v).id)],Is),M("click",C,()=>Os(e(v).id)),i(p,C)};_(H,p=>{var C;((C=e(v).case.steps)==null?void 0:C.length)>0&&p(y)})}var V=n(H,2);_s(V,{get id(){return e(v).case.displayId}});var N=n(V,2);{var Z=p=>{Ye(p)};_(N,p=>{e(v).case.isAutomated&&p(Z)})}var L=n(N,2),g=r(L),P=r(g,!0);t(g);var be=n(g,2),B=r(be,!0);t(be),t(L),t(Y);var $=n(Y,2),re=r($);{var le=p=>{var C=Zt(),R=se(C),b=r(R);Ye(b),t(R),xe(2),i(p,C)},pe=p=>{var C=De(),R=se(C);{var b=u=>{var l=ta(),m=se(l),S=r(m);{var U=O=>{var j=ea(),he=r(j,!0);t(j),w(()=>h(he,e(v).assignedTo.name)),i(O,j)};_(S,O=>{e(v).assignedTo&&O(U)})}var ne=n(S,2);{var G=O=>{var j=sa();w(()=>j.disabled=e(He)===e(v).id),M("click",j,()=>ys(e(v).id,e(Pe))),i(O,j)};_(ne,O=>{var j;!e(z)&&((j=e(v).assignedTo)==null?void 0:j.id)!==e(Pe)&&O(G)})}t(m),xe(2),i(u,l)};_(R,u=>{var l;(e(v).assignedTo||!e(z)&&((l=e(v).assignedTo)==null?void 0:l.id)!==e(Pe))&&u(b)},!0)}i(p,C)};_(re,p=>{e(v).case.isAutomated?p(le):p(pe,!1)})}var ee=n(re,2);{var Se=p=>{Ls(p,{get status(){return e(v).status}})},Te=p=>{var C=De(),R=se(C);{var b=l=>{var m=aa(),S=r(m),U=n(S,2),ne=n(U,2),G=n(ne,2),O=n(G,2);t(m),w(()=>I(S,"active",e(v).status==="in-progress")),M("click",S,()=>Oe(e(v),"in-progress")),M("click",U,()=>Oe(e(v),"pass")),M("click",ne,()=>Oe(e(v),"fail")),M("click",G,()=>Oe(e(v),"blocked")),M("click",O,()=>Oe(e(v),"skip")),i(l,m)},u=l=>{var m=ra(),S=r(m);Ls(S,{get status(){return e(v).status}});var U=n(S,2);t(m),M("click",U,()=>Oe(e(v),"pending")),i(l,m)};_(R,l=>{e(v).status==="pending"||e(v).status==="in-progress"?l(b):l(u,!1)},!0)}i(p,C)};_(ee,p=>{e(z)||e(a).status!=="in-progress"?p(Se):p(Te,!1)})}t($),t(T);var Fe=n(T,2);{var Me=p=>{var C=la();Le(C,5,()=>e(v).case.steps,vs,(R,b,u)=>{var l=ca(),m=r(l);m.textContent=u+1;var S=n(m,2),U=r(S),ne=r(U,!0);t(U);var G=n(U,2);{var O=Ie=>{var Ee=na(),cs=r(Ee);t(Ee),w(()=>h(cs,`Data: ${e(b).testData??""}`)),i(Ie,Ee)};_(G,Ie=>{e(b).testData&&Ie(O)})}var j=n(G,2);{var he=Ie=>{var Ee=ia(),cs=r(Ee);t(Ee),w(()=>h(cs,`Expected: ${e(b).expectedOutput??""}`)),i(Ie,Ee)};_(j,Ie=>{e(b).expectedOutput&&Ie(he)})}t(S),t(l),w(()=>h(ne,e(b).action)),i(R,l)}),t(C),i(p,C)};_(Fe,p=>{e(v).case.steps&&e(v).case.steps.length>0&&e(ke).has(e(v).id)&&p(Me)})}t(X),w(()=>{var p;I(X,"expanded",e(es)===e(v).id),h(P,e(v).case.title),h(B,((p=e(v).case.suite)==null?void 0:p.name)??"")}),i(D,X)}),t(ue),t(A),ls(3,A,()=>os,()=>({y:4,duration:150})),i(J,A)};_(tt,J=>{e(te)==="build"?J(at):J(rt,!1)})}w(()=>{h(Gs,e(a).title),dt(rs,`run-status-badge ${e(a).status??""} svelte-r8nmcc`),h(Ks,e(a).status),I(is,"active",e(te)==="build"),I(We,"active",e(te)==="execute")}),M("click",is,()=>c(te,"build")),M("click",We,()=>c(te,"execute")),i(ve,Ce)};_(f,ve=>{e(a)&&ve(k)},!0)}i(s,o)};_(Vs,s=>{e(hs)?s(Ws):s(Ys,!1)})}w(()=>{var s;return h(Hs,((s=e(a))==null?void 0:s.title)??"…")}),i(_e,Cs),gs(),Q()}export{Ta as component};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
*
|
|
4
|
-
* Plum is free software: you can redistribute it and/or modify
|
|
5
|
-
* it under the terms of the GNU General Public License as published by
|
|
6
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
7
|
-
* (at your option) any later version.
|
|
8
|
-
*
|
|
9
|
-
* Plum is distributed in the hope that it will be useful,
|
|
10
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
* GNU General Public License for more details.
|
|
13
|
-
*
|
|
14
|
-
* You should have received a copy of the GNU General Public License
|
|
15
|
-
* along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import{h as Ot,a as i,c as De,t as n,s as c,r as Ra,b as he,e as ee}from"../chunks/ll-VsEGv.js";import{i as Bt}from"../chunks/DGryW1Vp.js";import{p as Rt,m as f,o as Ft,s as l,l as Qe,b as Nt,f as F,d as zt,t as m,c as e,y as me,j as t,k as s,$ as Ht,n as a,v as ne,x as Ve,z as na}from"../chunks/C67QNx7Z.js";import{i as p,s as Ut,a as qt}from"../chunks/CVV6HrFb.js";import{e as we,i as Xe,s as oa,t as da,a as $a,f as Ca}from"../chunks/DmRbbcS3.js";import{b as Jt,S as Ke,r as Ne,s as Fa,C as Wt}from"../chunks/CstKKb9b.js";import{b as ye}from"../chunks/raHbXn_9.js";import{T as Yt,B as ge,b as Na}from"../chunks/BkKmeUbA.js";import{s as Gt}from"../chunks/Bfc47y5P.js";import{b as Qt}from"../chunks/C4eeChIU.js";import{p as Vt}from"../chunks/BFgtfHj2.js";import{h as Xt,i as Kt,j as Zt,u as es,k as as,l as ts,m as ss}from"../chunks/BFEiffAL.js";import{E as rs}from"../chunks/BKCNyxZ2.js";import{C as ls,M as st}from"../chunks/IFIFk6zi.js";import{P as is}from"../chunks/DP6QP4L6.js";var ns=n(`Delete <strong> </strong>? This cannot
|
|
19
|
-
be undone.`,1),os=n("<option> </option>"),ds=n('<p class="form-error svelte-1a8ndj3"> </p>'),vs=n('<div class="form-fields svelte-1a8ndj3"><div class="field svelte-1a8ndj3"><label class="field-label svelte-1a8ndj3" for="tc-title">Title</label> <input id="tc-title" type="text" class="field-input" placeholder="User can log in with valid credentials"></div> <div class="field svelte-1a8ndj3"><label class="field-label svelte-1a8ndj3" for="tc-desc">Description</label> <textarea id="tc-desc" class="field-input field-textarea svelte-1a8ndj3" placeholder="What this case verifies…" rows="2"></textarea></div> <div class="field svelte-1a8ndj3"><label class="field-label svelte-1a8ndj3" for="tc-prio">Priority</label> <select id="tc-prio" class="field-input"></select></div> <!> <div class="modal-actions svelte-1a8ndj3"><!> <!></div></div>'),cs=n("<option> </option>"),ps=n('<div class="form-fields svelte-1a8ndj3"><div class="field svelte-1a8ndj3"><label class="field-label svelte-1a8ndj3" for="es-name">Name</label> <input id="es-name" type="text" class="field-input"></div> <div class="field svelte-1a8ndj3"><label class="field-label svelte-1a8ndj3" for="es-desc">Description</label> <textarea id="es-desc" class="field-input field-textarea svelte-1a8ndj3" rows="2"></textarea></div> <div class="field svelte-1a8ndj3"><label class="field-label svelte-1a8ndj3" for="es-prio">Priority</label> <select id="es-prio" class="field-input"></select></div> <div class="modal-actions svelte-1a8ndj3"><!> <!></div></div>'),us=n('<div class="loading-state svelte-1a8ndj3">Loading…</div>'),_s=n('<p class="suite-desc svelte-1a8ndj3"> </p>'),fs=n('<button class="case-search-clear svelte-1a8ndj3" aria-label="Clear"><svg width="10" height="10" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><path d="M1 1l12 12M13 1L1 13"></path></svg></button>'),hs=n('<div class="case-search svelte-1a8ndj3"><svg class="case-search-icon svelte-1a8ndj3" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg> <input type="search" class="case-search-input svelte-1a8ndj3" placeholder="Filter by ID or name…"> <!></div>'),ms=n('<span class="case-sort-dir svelte-1a8ndj3"> </span>'),ys=n('<button class="case-sort-chip svelte-1a8ndj3"> <!></button>'),gs=n('<div class="case-sort-bar svelte-1a8ndj3"></div>'),bs=n('<div class="case-no-results svelte-1a8ndj3">No cases match "<strong> </strong>"</div>'),js=n('<span class="auto-badge svelte-1a8ndj3">Automated</span>'),xs=n('<div class="case-row svelte-1a8ndj3" role="button" tabindex="0"><div class="case-row-top svelte-1a8ndj3"><span class="id-chip small svelte-1a8ndj3"> </span> <span> </span> <!> <div class="case-row-actions svelte-1a8ndj3"><button class="icon-btn danger small svelte-1a8ndj3"><svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"></path><path d="M10 11v6M14 11v6"></path><path d="M9 6V4h6v2"></path></svg></button></div></div> <p class="case-title svelte-1a8ndj3"> </p> <span class="case-steps svelte-1a8ndj3"> </span></div>'),$s=n('<div class="cases-pagination svelte-1a8ndj3"><!></div>'),Cs=n('<div class="case-list svelte-1a8ndj3"></div> <!>',1),ks=n('<div class="detail-loading svelte-1a8ndj3">Loading…</div>'),ws=n('<span class="auto-badge svelte-1a8ndj3">Automated</span>'),Ss=n('<button class="icon-btn svelte-1a8ndj3" title="Edit case"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"></path><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"></path></svg></button>'),Ts=n("<option> </option>"),Is=n('<div class="edit-case-form svelte-1a8ndj3"><div class="field svelte-1a8ndj3"><label class="field-label svelte-1a8ndj3" for="edit-title">Title</label> <input id="edit-title" type="text" class="field-input"></div> <div class="field svelte-1a8ndj3"><label class="field-label svelte-1a8ndj3" for="edit-desc">Description</label> <textarea id="edit-desc" class="field-input field-textarea svelte-1a8ndj3" rows="2"></textarea></div> <div class="field svelte-1a8ndj3"><label class="field-label svelte-1a8ndj3" for="edit-prio">Priority</label> <select id="edit-prio" class="field-input"></select></div> <div class="modal-actions svelte-1a8ndj3"><!> <!></div></div>'),Ms=n('<p class="detail-case-desc svelte-1a8ndj3"> </p>'),Ps=n("<span></span>"),Ds=n('<div class="case-history-bars svelte-1a8ndj3"></div>'),As=n('<h2 class="detail-case-title svelte-1a8ndj3"> </h2> <!> <p class="detail-meta svelte-1a8ndj3"> </p> <!>',1),Es=n("<!> <!>",1),Ls=n('<button class="add-step-btn svelte-1a8ndj3">+ Add step</button>'),Os=n('<p class="no-steps svelte-1a8ndj3">No steps. Click "+ Add step" to begin.</p>'),Bs=n('<div class="step-editor-row svelte-1a8ndj3"><span class="step-num svelte-1a8ndj3"></span> <div class="step-editor-fields svelte-1a8ndj3"><div class="step-field svelte-1a8ndj3"><label class="step-field-label svelte-1a8ndj3">Step</label> <input type="text" class="field-input" placeholder="Describe the action…"></div> <div class="step-field svelte-1a8ndj3"><label class="step-field-label svelte-1a8ndj3">Test Data</label> <input type="text" class="field-input" placeholder="Optional"></div> <div class="step-field svelte-1a8ndj3"><label class="step-field-label svelte-1a8ndj3">Expected Output</label> <input type="text" class="field-input" placeholder="What should happen…"></div></div> <button class="icon-btn danger small svelte-1a8ndj3"><svg width="11" height="11" 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>'),Rs=n('<div class="steps-editor svelte-1a8ndj3"><!></div>'),Fs=n('<div class="steps-table-row svelte-1a8ndj3"><span class="col-num svelte-1a8ndj3"></span> <span class="col-action"> </span> <span class="col-data"> </span> <span class="col-expected"> </span></div>'),Ns=n('<div class="steps-table svelte-1a8ndj3"><div class="steps-table-head svelte-1a8ndj3"><span class="col-num svelte-1a8ndj3">#</span> <span class="col-action">Action</span> <span class="col-data">Test Data</span> <span class="col-expected">Expected Output</span></div> <!></div>'),zs=n('<p class="no-steps svelte-1a8ndj3">No steps defined. Click "Edit Steps" to add them.</p>'),Hs=n('<div class="steps-section svelte-1a8ndj3"><div class="steps-toolbar svelte-1a8ndj3"><!> <!></div> <!></div>'),Us=n('<p class="no-steps svelte-1a8ndj3">No history yet. Results appear after test runs or automated builds.</p>'),qs=n('<a target="_blank" rel="noopener noreferrer" class="history-source history-link svelte-1a8ndj3">Automated run ↗</a>'),Js=n('<span class="history-source history-missing svelte-1a8ndj3">Report not found</span>'),Ws=n('<a target="_blank" rel="noopener noreferrer" class="history-source history-link svelte-1a8ndj3"> </a>'),Ys=n('<span class="history-source history-missing svelte-1a8ndj3">Run not found</span>'),Gs=n('<p class="history-notes svelte-1a8ndj3"> </p>'),Qs=n('<div class="history-row svelte-1a8ndj3"><span> </span> <div class="history-info svelte-1a8ndj3"><!> <span class="history-by svelte-1a8ndj3"> </span> <span class="history-date svelte-1a8ndj3"> </span></div> <!></div>'),Vs=n('<div class="history-list svelte-1a8ndj3"></div>'),Xs=n('<div class="history-section svelte-1a8ndj3"><!></div>'),Ks=n('<div class="detail-header svelte-1a8ndj3"><div class="detail-title-row svelte-1a8ndj3"><span class="id-chip large svelte-1a8ndj3"> </span> <span> </span> <!> <div class="detail-header-actions svelte-1a8ndj3"><!> <button class="icon-btn svelte-1a8ndj3" title="Close"><svg width="13" height="13" 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> <!></div> <div class="detail-tabs svelte-1a8ndj3"><button class="detail-tab svelte-1a8ndj3">Steps</button> <button class="detail-tab svelte-1a8ndj3">History</button></div> <!>',1),Zs=n('<div class="detail-panel svelte-1a8ndj3"><!></div>'),er=n('<div class="breadcrumb svelte-1a8ndj3"><a href="/test-repository" class="bc-link svelte-1a8ndj3">Test Repository</a> <span class="bc-sep svelte-1a8ndj3">›</span> <span class="bc-current svelte-1a8ndj3"> </span></div> <div class="suite-header svelte-1a8ndj3"><div class="suite-title-row svelte-1a8ndj3"><span class="id-chip large svelte-1a8ndj3"> </span> <span> </span> <h1 class="suite-title svelte-1a8ndj3"> </h1> <button class="icon-btn svelte-1a8ndj3" title="Edit suite"><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="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"></path><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"></path></svg></button></div> <!> <div class="suite-meta svelte-1a8ndj3"><span> </span> <span class="meta-sep svelte-1a8ndj3">·</span> <span> </span></div></div> <div class="workspace svelte-1a8ndj3"><div class="cases-panel svelte-1a8ndj3"><div class="panel-toolbar svelte-1a8ndj3"><h2 class="panel-title svelte-1a8ndj3">Test Cases</h2> <!></div> <!> <!> <!></div> <!></div>',1),ar=n("<!> <!> <!> <!> <!>",1);function mr(rt,za){Rt(za,!1);const[lt,it]=Ut(),nt=()=>qt(Vt,"$page",lt),Ze=f(),va=f(),ea=f(),ka=f(),Ha=f(),wa=nt().params.id,Sa=["Critical","High","Medium","Low"];let o=f(null),Ua=f(!0),Ta=f(null),aa=f(!1),J=f({title:"",description:"",priority:"Medium"}),ca=f(!1),ze=f(""),v=f(null),ta=f(!1),Ae=f(!1),ae=f({}),pa=f(!1),Ee=f(!1),W=f([]),ua=f(!1),He=f(!1),Le=f(null),_a=f(!1),be=f(""),Oe=f(1),N=f((()=>{try{const r=sessionStorage.getItem("plum:repo:cases:sort");if(r)return JSON.parse(r)}catch{}return{by:"createdAt",order:"asc"}})());const qa={Critical:0,High:1,Medium:2,Low:3};function ot(r){e(N).by===r?me(N,e(N).order=e(N).order==="asc"?"desc":"asc"):l(N,{by:r,order:"asc"});try{sessionStorage.setItem("plum:repo:cases:sort",JSON.stringify(e(N)))}catch{}}let sa=f(!1),te=f({}),fa=f(!1);function oe(r,u){l(Ta,{type:r,message:u}),setTimeout(()=>l(Ta,null),Jt)}Ft(async()=>{try{l(o,await Xt(wa))}catch{oe("error","Failed to load suite")}finally{l(Ua,!1)}});async function dt(){if(!e(J).title.trim()){l(ze,"Title is required.");return}l(ze,""),l(ca,!0);try{const r=await Zt({suiteId:wa,...e(J)});l(o,{...e(o),cases:[...e(o).cases,r],_count:{cases:e(o)._count.cases+1}}),l(Oe,Math.ceil(e(o).cases.length/Ke)),l(aa,!1),l(J,{title:"",description:"",priority:"Medium"}),oe("success",`${r.displayId} created.`)}catch(r){l(ze,r.message)}finally{l(ca,!1)}}async function Ja(r){l(v,null),l(ta,!0),l(He,!1),l(Ae,!1),l(Ee,!1);try{l(v,await as(r.id)),l(W,(e(v).steps??[]).map(u=>({...u})))}catch{oe("error","Failed to load case")}finally{l(ta,!1)}}function vt(){l(ae,{title:e(v).title,description:e(v).description,priority:e(v).priority}),l(Ae,!0)}async function ct(){l(pa,!0);try{const r=await ts(e(v).id,e(ae));l(v,{...e(v),...r}),l(o,{...e(o),cases:e(o).cases.map(u=>u.id===e(v).id?{...u,...r}:u)}),l(Ae,!1),oe("success","Test case updated.")}catch(r){oe("error",r.message)}finally{l(pa,!1)}}function pt(){l(W,[...e(W),{action:"",testData:"",expectedOutput:""}])}function ut(r){l(W,e(W).filter((u,x)=>x!==r))}async function _t(){l(ua,!0);try{const r=await ss(e(v).id,e(W));l(v,{...e(v),steps:r}),l(W,r.map(u=>({...u}))),l(Ee,!1),oe("success","Steps saved.")}catch(r){oe("error",r.message)}finally{l(ua,!1)}}async function ft(r,u){var x;try{await Kt(r),l(o,{...e(o),cases:e(o).cases.filter(Y=>Y.id!==r),_count:{cases:e(o)._count.cases-1}}),((x=e(v))==null?void 0:x.id)===r&&l(v,null),oe("success",`${u} deleted.`)}catch{oe("error","Failed to delete case.")}l(Le,null),l(_a,!1)}async function ht(){l(fa,!0);try{const r=await es(wa,e(te));l(o,{...e(o),...r}),l(sa,!1),oe("success","Suite updated.")}catch(r){oe("error",r.message)}finally{l(fa,!1)}}function Ia(r){return(r==null?void 0:r.toLowerCase())??"medium"}function Wa(r){return r==="pass"?"pass":r==="fail"?"fail":r==="blocked"?"warn":"muted"}function mt(r){return!r||r.length===0?[]:r.slice(0,Wt).slice().reverse()}Qe(()=>e(be),()=>{l(Ze,e(be).trim().toLowerCase())}),Qe(()=>(e(o),e(Ze)),()=>{var r;l(va,(r=e(o))!=null&&r.cases?e(o).cases.filter(u=>!e(Ze)||u.displayId.toLowerCase().includes(e(Ze))||u.title.toLowerCase().includes(e(Ze))):[])}),Qe(()=>(e(va),e(N)),()=>{l(ea,[...e(va)].sort((r,u)=>{const x=e(N).order==="asc"?1:-1;return e(N).by==="displayId"?x*r.displayId.localeCompare(u.displayId):e(N).by==="name"?x*r.title.localeCompare(u.title):e(N).by==="priority"?x*((qa[r.priority]??4)-(qa[u.priority]??4)):x*(new Date(r.createdAt)-new Date(u.createdAt))}))}),Qe(()=>(e(ea),Ke),()=>{l(ka,Math.ceil(e(ea).length/Ke))}),Qe(()=>e(be),()=>{e(be)&&l(Oe,1)}),Qe(()=>(e(ea),e(Oe),Ke),()=>{l(Ha,e(ea).slice((e(Oe)-1)*Ke,e(Oe)*Ke))}),Nt(),Bt();var Ya=ar();Ot(r=>{m(()=>Ht.title=`${(e(o)?`${e(o).displayId} — ${e(o).name}`:"Suite")??""} — Plum`)});var Ga=F(Ya);Yt(Ga,{get toast(){return e(Ta)}});var Qa=t(Ga,2);ls(Qa,{title:"Delete Test Case",confirmLabel:"Delete",get open(){return e(_a)},set open(r){l(_a,r)},$$events:{confirm:()=>{var r,u;return ft((r=e(Le))==null?void 0:r.id,(u=e(Le))==null?void 0:u.displayId)}},children:(r,u)=>{var x=De(),Y=F(x);{var de=z=>{var se=ns(),G=t(F(se)),ve=s(G);a(G),ne(),m(()=>c(ve,`${e(Le).displayId??""} — ${e(Le).title??""}`)),i(z,se)};p(Y,z=>{e(Le)&&z(de)})}i(r,x)},$$slots:{default:!0},$$legacy:!0});var Va=t(Qa,2);st(Va,{title:"New Test Case",get open(){return e(aa)},set open(r){l(aa,r)},children:(r,u)=>{var x=vs(),Y=s(x),de=t(s(Y),2);Ne(de),a(Y);var z=t(Y,2),se=t(s(z),2);Ra(se),a(z);var G=t(z,2),ve=t(s(G),2);m(()=>{e(J),Ve(()=>{})}),we(ve,5,()=>Sa,Xe,(h,P)=>{var E=os(),ha={},ma=s(E,!0);a(E),m(()=>{ha!==(ha=e(P))&&(E.value=(E.__value=e(P))==null?"":e(P)),c(ma,e(P))}),i(h,E)}),a(ve),a(G);var je=t(G,2);{var Se=h=>{var P=ds(),E=s(P,!0);a(P),m(()=>c(E,e(ze))),i(h,P)};p(je,h=>{e(ze)&&h(Se)})}var Te=t(je,2),A=s(Te);ge(A,{get disabled(){return e(ca)},$$events:{click:dt},children:(h,P)=>{ne();var E=he();m(()=>c(E,e(ca)?"Creating…":"Create Case")),i(h,E)},$$slots:{default:!0}});var Q=t(A,2);ge(Q,{variant:"ghost",$$events:{click:()=>{l(aa,!1),l(ze,"")}},children:(h,P)=>{ne();var E=he("Cancel");i(h,E)},$$slots:{default:!0}}),a(Te),a(x),ye(de,()=>e(J).title,h=>me(J,e(J).title=h)),ye(se,()=>e(J).description,h=>me(J,e(J).description=h)),Na(ve,()=>e(J).priority,h=>me(J,e(J).priority=h)),i(r,x)},$$slots:{default:!0},$$legacy:!0});var Xa=t(Va,2);st(Xa,{title:"Edit Suite",get open(){return e(sa)},set open(r){l(sa,r)},children:(r,u)=>{var x=ps(),Y=s(x),de=t(s(Y),2);Ne(de),a(Y);var z=t(Y,2),se=t(s(z),2);Ra(se),a(z);var G=t(z,2),ve=t(s(G),2);m(()=>{e(te),Ve(()=>{})}),we(ve,5,()=>Sa,Xe,(A,Q)=>{var h=cs(),P={},E=s(h,!0);a(h),m(()=>{P!==(P=e(Q))&&(h.value=(h.__value=e(Q))==null?"":e(Q)),c(E,e(Q))}),i(A,h)}),a(ve),a(G);var je=t(G,2),Se=s(je);ge(Se,{get disabled(){return e(fa)},$$events:{click:ht},children:(A,Q)=>{ne();var h=he();m(()=>c(h,e(fa)?"Saving…":"Save")),i(A,h)},$$slots:{default:!0}});var Te=t(Se,2);ge(Te,{variant:"ghost",$$events:{click:()=>l(sa,!1)},children:(A,Q)=>{ne();var h=he("Cancel");i(A,h)},$$slots:{default:!0}}),a(je),a(x),ye(de,()=>e(te).name,A=>me(te,e(te).name=A)),ye(se,()=>e(te).description,A=>me(te,e(te).description=A)),Na(ve,()=>e(te).priority,A=>me(te,e(te).priority=A)),i(r,x)},$$slots:{default:!0},$$legacy:!0});var yt=t(Xa,2);{var gt=r=>{var u=us();i(r,u)},bt=r=>{var u=De(),x=F(u);{var Y=de=>{var z=er(),se=F(z),G=t(s(se),4),ve=s(G);a(G),a(se);var je=t(se,2),Se=s(je),Te=s(Se),A=s(Te,!0);a(Te);var Q=t(Te,2),h=s(Q,!0);a(Q);var P=t(Q,2),E=s(P,!0);a(P);var ha=t(P,2);a(Se);var ma=t(Se,2);{var jt=y=>{var w=_s(),V=s(w,!0);a(w),m(()=>c(V,e(o).description)),i(y,w)};p(ma,y=>{e(o).description&&y(jt)})}var Ka=t(ma,2),Ma=s(Ka),xt=s(Ma);a(Ma);var Za=t(Ma,4),$t=s(Za);a(Za),a(Ka),a(je);var Pa=t(je,2),Da=s(Pa),Aa=s(Da),Ct=t(s(Aa),2);ge(Ct,{size:"sm",$$events:{click:()=>l(aa,!0)},children:(y,w)=>{ne();var V=he("+ Add Case");i(y,V)},$$slots:{default:!0}}),a(Aa);var et=t(Aa,2);{var kt=y=>{var w=hs(),V=t(s(w),2);Ne(V);var Ie=t(V,2);{var xe=C=>{var S=fs();ee("click",S,()=>l(be,"")),i(C,S)};p(Ie,C=>{e(be)&&C(xe)})}a(w),ye(V,()=>e(be),C=>l(be,C)),i(y,w)};p(et,y=>{e(o).cases.length>0&&y(kt)})}var at=t(et,2);{var wt=y=>{var w=gs();we(w,4,()=>[["createdAt","Date"],["displayId","ID"],["name","Name"],["priority","Priority"]],Xe,(V,Ie)=>{let xe=()=>Ie[0],C=()=>Ie[1];var S=ys(),ce=s(S),Be=t(ce);{var Re=H=>{var g=ms(),U=s(g,!0);a(g),m(()=>c(U,e(N).order==="asc"?"↑":"↓")),i(H,g)};p(Be,H=>{e(N).by===xe()&&H(Re)})}a(S),m(()=>{da(S,"active",e(N).by===xe()),c(ce,`${C()??""} `)}),ee("click",S,()=>ot(xe())),i(V,S)}),a(w),i(y,w)};p(at,y=>{e(o).cases.length>0&&y(wt)})}var St=t(at,2);{var Tt=y=>{rs(y,{title:"No cases yet",description:"Add your first test case to this suite."})},It=y=>{var w=De(),V=F(w);{var Ie=C=>{var S=bs(),ce=t(s(S)),Be=s(ce,!0);a(ce),ne(),a(S),m(()=>c(Be,e(be))),i(C,S)},xe=C=>{var S=Cs(),ce=F(S);we(ce,5,()=>e(Ha),H=>H.id,(H,g)=>{var U=xs(),$e=s(U),ra=s($e),Ue=s(ra,!0);a(ra);var qe=t(ra,2),ya=s(qe,!0);a(qe);var ga=t(qe,2);{var ba=X=>{var Me=js();i(X,Me)};p(ga,X=>{e(g).isAutomated&&X(ba)})}var Je=t(ga,2),Ea=s(Je);a(Je),a($e);var la=t($e,2),La=s(la,!0);a(la);var ja=t(la,2),Oa=s(ja);a(ja),a(U),m(X=>{var Me;da(U,"selected",((Me=e(v))==null?void 0:Me.id)===e(g).id),c(Ue,e(g).displayId),oa(qe,`priority-badge small ${X??""} svelte-1a8ndj3`),c(ya,e(g).priority),c(La,e(g).title),c(Oa,`${e(g)._count.steps??""} step${(e(g)._count.steps!==1?"s":"")??""}`)},[()=>Ia(e(g).priority)],na),ee("click",Ea,()=>{l(Le,{id:e(g).id,displayId:e(g).displayId,title:e(g).title}),l(_a,!0)}),ee("click",Je,Gt(function(X){Qt.call(this,za,X)})),ee("click",U,()=>Ja(e(g))),ee("keydown",U,X=>X.key==="Enter"&&Ja(e(g))),i(H,U)}),a(ce);var Be=t(ce,2);{var Re=H=>{var g=$s(),U=s(g);is(U,{get current(){return e(Oe)},get total(){return e(ka)},$$events:{change:$e=>l(Oe,$e.detail)}}),a(g),i(H,g)};p(Be,H=>{e(ka)>1&&H(Re)})}i(C,S)};p(V,C=>{e(va).length===0?C(Ie):C(xe,!1)},!0)}i(y,w)};p(St,y=>{e(o).cases.length===0?y(Tt):y(It,!1)})}a(Da);var Mt=t(Da,2);{var Pt=y=>{var w=Zs(),V=s(w);{var Ie=C=>{var S=ks();i(C,S)},xe=C=>{var S=De(),ce=F(S);{var Be=Re=>{var H=Ks(),g=F(H),U=s(g),$e=s(U),ra=s($e,!0);a($e);var Ue=t($e,2),qe=s(Ue,!0);a(Ue);var ya=t(Ue,2);{var ga=j=>{var $=ws();i(j,$)};p(ya,j=>{e(v).isAutomated&&j(ga)})}var ba=t(ya,2),Je=s(ba);{var Ea=j=>{var $=Ss();ee("click",$,vt),i(j,$)};p(Je,j=>{e(Ae)||j(Ea)})}var la=t(Je,2);a(ba),a(U);var La=t(U,2);{var ja=j=>{var $=Is(),K=s($),Ce=t(s(K),2);Ne(Ce),a(K);var ue=t(K,2),Z=t(s(ue),2);Ra(Z),a(ue);var B=t(ue,2),pe=t(s(B),2);m(()=>{e(ae),Ve(()=>{})}),we(pe,5,()=>Sa,Xe,(d,_)=>{var b=Ts(),O={},R=s(b,!0);a(b),m(()=>{O!==(O=e(_))&&(b.value=(b.__value=e(_))==null?"":e(_)),c(R,e(_))}),i(d,b)}),a(pe),a(B);var T=t(B,2),_e=s(T);ge(_e,{size:"sm",get disabled(){return e(pa)},$$events:{click:ct},children:(d,_)=>{ne();var b=he();m(()=>c(b,e(pa)?"Saving…":"Save")),i(d,b)},$$slots:{default:!0}});var L=t(_e,2);ge(L,{size:"sm",variant:"ghost",$$events:{click:()=>l(Ae,!1)},children:(d,_)=>{ne();var b=he("Cancel");i(d,b)},$$slots:{default:!0}}),a(T),a($),ye(Ce,()=>e(ae).title,d=>me(ae,e(ae).title=d)),ye(Z,()=>e(ae).description,d=>me(ae,e(ae).description=d)),Na(pe,()=>e(ae).priority,d=>me(ae,e(ae).priority=d)),$a(3,$,()=>Ca,()=>({y:-4,duration:150})),i(j,$)},Oa=j=>{var $=As(),K=F($),Ce=s(K,!0);a(K);var ue=t(K,2);{var Z=L=>{var d=Ms(),_=s(d,!0);a(d),m(()=>c(_,e(v).description)),i(L,d)};p(ue,L=>{e(v).description&&L(Z)})}var B=t(ue,2),pe=s(B);a(B);var T=t(B,2);{var _e=L=>{var d=Ds();we(d,5,()=>mt(e(v).history),_=>_.id,(_,b)=>{var O=Ps();m((R,k)=>{oa(O,`history-bar ${R??""} svelte-1a8ndj3`),Fa(O,"title",`${e(b).result??""} — ${k??""}`)},[()=>Wa(e(b).result),()=>new Date(e(b).executedAt).toLocaleString()],na),i(_,O)}),a(d),i(L,d)};p(T,L=>{e(v).history&&e(v).history.length>0&&L(_e)})}m(()=>{c(Ce,e(v).title),c(pe,`Created by ${e(v).createdBy.name??""}`)}),i(j,$)};p(La,j=>{e(Ae)?j(ja):j(Oa,!1)})}a(g);var X=t(g,2),Me=s(X),tt=t(Me,2);a(X);var Dt=t(X,2);{var At=j=>{var $=Hs(),K=s($),Ce=s(K);{var ue=d=>{ge(d,{size:"sm",variant:"ghost",$$events:{click:()=>l(Ee,!0)},children:(_,b)=>{ne();var O=he("Edit Steps");i(_,O)},$$slots:{default:!0}})},Z=d=>{var _=Es(),b=F(_);ge(b,{size:"sm",get disabled(){return e(ua)},$$events:{click:_t},children:(R,k)=>{ne();var D=he();m(()=>c(D,e(ua)?"Saving…":"Save Steps")),i(R,D)},$$slots:{default:!0}});var O=t(b,2);ge(O,{size:"sm",variant:"ghost",$$events:{click:()=>{l(Ee,!1),l(W,(e(v).steps??[]).map(R=>({...R})))}},children:(R,k)=>{ne();var D=he("Cancel");i(R,D)},$$slots:{default:!0}}),i(d,_)};p(Ce,d=>{e(Ee)?d(Z,!1):d(ue)})}var B=t(Ce,2);{var pe=d=>{var _=Ls();ee("click",_,pt),i(d,_)};p(B,d=>{e(Ee)&&d(pe)})}a(K);var T=t(K,2);{var _e=d=>{var _=Rs(),b=s(_);{var O=k=>{var D=Os();i(k,D)},R=k=>{var D=De(),We=F(D);we(We,1,()=>e(W),Xe,(ia,re,Ye)=>{var I=Bs(),M=s(I);M.textContent=Ye+1;var q=t(M,2),Fe=s(q),Pe=t(s(Fe),2);Ne(Pe),a(Fe);var le=t(Fe,2),fe=t(s(le),2);Ne(fe),a(le);var Ge=t(le,2),xa=t(s(Ge),2);Ne(xa),a(Ge),a(q);var Ba=t(q,2);a(I),ye(Pe,()=>e(re).action,ie=>(e(re).action=ie,Ve(()=>e(W)))),ye(fe,()=>e(re).testData,ie=>(e(re).testData=ie,Ve(()=>e(W)))),ye(xa,()=>e(re).expectedOutput,ie=>(e(re).expectedOutput=ie,Ve(()=>e(W)))),ee("click",Ba,()=>ut(Ye)),i(ia,I)}),i(k,D)};p(b,k=>{e(W).length===0?k(O):k(R,!1)})}a(_),i(d,_)},L=d=>{var _=De(),b=F(_);{var O=k=>{var D=Ns(),We=t(s(D),2);we(We,1,()=>e(v).steps,Xe,(ia,re,Ye)=>{var I=Fs(),M=s(I);M.textContent=Ye+1;var q=t(M,2),Fe=s(q,!0);a(q);var Pe=t(q,2),le=s(Pe,!0);a(Pe);var fe=t(Pe,2),Ge=s(fe,!0);a(fe),a(I),m(()=>{c(Fe,e(re).action),c(le,e(re).testData||"—"),c(Ge,e(re).expectedOutput||"—")}),i(ia,I)}),a(D),i(k,D)},R=k=>{var D=zs();i(k,D)};p(b,k=>{e(v).steps&&e(v).steps.length>0?k(O):k(R,!1)},!0)}i(d,_)};p(T,d=>{e(Ee)?d(_e):d(L,!1)})}a($),$a(3,$,()=>Ca,()=>({y:4,duration:140})),i(j,$)},Et=j=>{var $=Xs(),K=s($);{var Ce=Z=>{var B=Us();i(Z,B)},ue=Z=>{var B=Vs();we(B,5,()=>e(v).history,pe=>pe.id,(pe,T)=>{var _e=Qs(),L=s(_e),d=s(L,!0);a(L);var _=t(L,2),b=s(_);{var O=I=>{var M=qs();m(()=>Fa(M,"href",`/reports/${e(T).report.id??""}`)),i(I,M)},R=I=>{var M=De(),q=F(M);{var Fe=le=>{var fe=Js();i(le,fe)},Pe=le=>{var fe=De(),Ge=F(fe);{var xa=ie=>{var ke=Ws(),Lt=s(ke);a(ke),m(()=>{Fa(ke,"href",`/test-repository/runs/${e(T).run.id??""}`),c(Lt,`${e(T).run.title??""} ↗`)}),i(ie,ke)},Ba=ie=>{var ke=Ys();i(ie,ke)};p(Ge,ie=>{var ke;(ke=e(T).run)!=null&&ke.id?ie(xa):ie(Ba,!1)},!0)}i(le,fe)};p(q,le=>{e(T).source==="automated"?le(Fe):le(Pe,!1)},!0)}i(I,M)};p(b,I=>{var M;e(T).source==="automated"&&((M=e(T).report)!=null&&M.id)?I(O):I(R,!1)})}var k=t(b,2),D=s(k,!0);a(k);var We=t(k,2),ia=s(We,!0);a(We),a(_);var re=t(_,2);{var Ye=I=>{var M=Gs(),q=s(M,!0);a(M),m(()=>c(q,e(T).notes)),i(I,M)};p(re,I=>{e(T).notes&&I(Ye)})}a(_e),m((I,M)=>{var q;oa(L,`result-badge ${I??""} svelte-1a8ndj3`),c(d,e(T).result),c(D,((q=e(T).executedBy)==null?void 0:q.name)??"—"),c(ia,M)},[()=>Wa(e(T).result),()=>new Date(e(T).executedAt).toLocaleString()],na),i(pe,_e)}),a(B),i(Z,B)};p(K,Z=>{!e(v).history||e(v).history.length===0?Z(Ce):Z(ue,!1)})}a($),$a(3,$,()=>Ca,()=>({y:4,duration:140})),i(j,$)};p(Dt,j=>{e(He)?j(Et,!1):j(At)})}m(j=>{c(ra,e(v).displayId),oa(Ue,`priority-badge ${j??""} svelte-1a8ndj3`),c(qe,e(v).priority),da(Me,"active",!e(He)),da(tt,"active",e(He))},[()=>Ia(e(v).priority)],na),ee("click",la,()=>{l(v,null),l(Ae,!1)}),ee("click",Me,()=>l(He,!1)),ee("click",tt,()=>l(He,!0)),i(Re,H)};p(ce,Re=>{e(v)&&Re(Be)},!0)}i(C,S)};p(V,C=>{e(ta)?C(Ie):C(xe,!1)})}a(w),$a(3,w,()=>Ca,()=>({x:20,duration:200})),i(y,w)};p(Mt,y=>{(e(v)||e(ta))&&y(Pt)})}a(Pa),m(y=>{c(ve,`${e(o).displayId??""} — ${e(o).name??""}`),c(A,e(o).displayId),oa(Q,`priority-badge ${y??""} svelte-1a8ndj3`),c(h,e(o).priority),c(E,e(o).name),c(xt,`${e(o)._count.cases??""} case${(e(o)._count.cases!==1?"s":"")??""}`),c($t,`Created by ${e(o).createdBy.name??""}`),da(Pa,"split",e(v)||e(ta))},[()=>Ia(e(o).priority)],na),ee("click",ha,()=>{l(te,{name:e(o).name,description:e(o).description,priority:e(o).priority}),l(sa,!0)}),i(de,z)};p(x,de=>{e(o)&&de(Y)},!0)}i(r,u)};p(yt,r=>{e(Ua)?r(gt):r(bt,!1)})}i(rt,Ya),zt(),it()}export{mr as component};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
*
|
|
4
|
-
* Plum is free software: you can redistribute it and/or modify
|
|
5
|
-
* it under the terms of the GNU General Public License as published by
|
|
6
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
7
|
-
* (at your option) any later version.
|
|
8
|
-
*
|
|
9
|
-
* Plum is distributed in the hope that it will be useful,
|
|
10
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
* GNU General Public License for more details.
|
|
13
|
-
*
|
|
14
|
-
* You should have received a copy of the GNU General Public License
|
|
15
|
-
* along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import{h as ss,a as v,t as u,b as Ae,s as h,e as R}from"../chunks/ll-VsEGv.js";import{i as ts}from"../chunks/DGryW1Vp.js";import{p as as,o as rs,an as ls,l as q,b as os,f as is,c as e,d as vs,s as p,$ as ns,j as i,m as x,k as r,n as t,t as b,z as I}from"../chunks/C67QNx7Z.js";import{i as A,s as us,a as cs}from"../chunks/CVV6HrFb.js";import{e as y,i as w,t as de,a as ds,c as hs}from"../chunks/DmRbbcS3.js";import{A as fs,r as ps,s as g,d as bs}from"../chunks/CstKKb9b.js";import{b as _s}from"../chunks/raHbXn_9.js";import{t as ms,b as gs,c as xs}from"../chunks/C3SY6-sX.js";import{s as Be}from"../chunks/B0pefNHY.js";import{E as ys}from"../chunks/BKCNyxZ2.js";async function ws(){const J=await fetch(`${fs}/tests`),{suites:K}=await J.json();return K.suites??[]}var $s=u('<button class="search-clear svelte-17hubf3" aria-label="Clear search"><svg width="12" height="12" viewBox="0 0 14 14" fill="none" class="svelte-17hubf3"><path d="M1 1l12 12M13 1L1 13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" class="svelte-17hubf3"></path></svg></button>'),ks=u('<button class="id-pill svelte-17hubf3"> </button>'),Cs=u('<button class="id-pill svelte-17hubf3"> </button>'),Ss=u('<span class="outline-badge svelte-17hubf3">outline</span>'),Ts=u('<button class="steps-toggle svelte-17hubf3"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-17hubf3"><polyline points="9 18 15 12 9 6" class="svelte-17hubf3"></polyline></svg> </button>'),Is=u('<li class="step svelte-17hubf3"> </li>'),As=u('<th class="svelte-17hubf3"> </th>'),Bs=u('<td class="svelte-17hubf3"> </td>'),Ms=u('<tr class="svelte-17hubf3"></tr>'),Ls=u('<div class="examples svelte-17hubf3"><span class="examples-label svelte-17hubf3">Examples</span> <div class="examples-table-wrap svelte-17hubf3"><table class="examples-table svelte-17hubf3"><thead class="svelte-17hubf3"><tr class="svelte-17hubf3"></tr></thead><tbody class="svelte-17hubf3"></tbody></table></div></div>'),Es=u('<div class="steps svelte-17hubf3"><ol class="step-list svelte-17hubf3"></ol> <!></div>'),Rs=u('<div class="test-row svelte-17hubf3"><div class="test-main svelte-17hubf3"><button class="run-icon-btn svelte-17hubf3"><svg width="10" height="10" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-17hubf3"><polygon points="5,3 19,12 5,21" class="svelte-17hubf3"></polygon></svg></button> <div class="test-ids svelte-17hubf3"></div> <span class="test-name svelte-17hubf3"> <!></span> <!></div> <!></div>'),Ns=u('<div class="suite svelte-17hubf3"><div class="suite-header svelte-17hubf3"><div class="suite-meta svelte-17hubf3"><div class="suite-badges svelte-17hubf3"></div> <span class="suite-name svelte-17hubf3"> </span> <span class="suite-count svelte-17hubf3"> </span></div> <button class="run-btn suite-run svelte-17hubf3" title="Run suite"><svg width="11" height="11" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-17hubf3"><polygon points="5,3 19,12 5,21" class="svelte-17hubf3"></polygon></svg> Run suite</button></div> <div class="tests svelte-17hubf3"></div></div>'),js=u('<div class="suites svelte-17hubf3"></div>'),Os=u('<div class="page-header svelte-17hubf3"><div class="header-top svelte-17hubf3"><div class="svelte-17hubf3"><h1 class="svelte-17hubf3">Tests</h1> <p class="subtitle svelte-17hubf3"><!></p></div></div> <div class="search-row svelte-17hubf3"><div class="search-wrap svelte-17hubf3"><svg class="search-icon svelte-17hubf3" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8" class="svelte-17hubf3"></circle><line x1="21" y1="21" x2="16.65" y2="16.65" class="svelte-17hubf3"></line></svg> <input type="text" class="search-input svelte-17hubf3" placeholder="Search suites or tests…"> <!></div></div></div> <!>',1);function Js(J,K){as(K,!1);const[Me,Le]=us(),he=()=>cs(ms,"$testsVersion",Me),_=x(),N=x(),D=x(),fe=x();let $=x([]),k=x(""),B=x(new Set),f=x(new Set);const j=new Map;async function pe(){try{p($,await ws())}catch(s){console.error("Failed to fetch suites",s)}}rs(pe);function Q(s){return Array.isArray(s.suiteId)?s.suiteId:[s.suiteId]}function be(s){return Array.isArray(s.id)?s.id:[s.id]}function Ee(s){return Array.isArray(s.id)?s.id[0]:s.id}function Re(s){e(B).has(s)?e(B).delete(s):e(B).add(s),p(B,e(B))}function _e(s){gs.update(l=>({...l,testID:s})),xs(s)}function Ne(s){_e(Q(s)[0])}async function me(s){await navigator.clipboard.writeText(s),e(f).add(s),p(f,e(f)),j.has(s)&&clearTimeout(j.get(s)),j.set(s,setTimeout(()=>{e(f).delete(s),p(f,e(f)),j.delete(s)},bs))}ls(()=>{for(const s of j.values())clearTimeout(s)}),q(()=>he(),()=>{he()&&pe()}),q(()=>e(k),()=>{p(_,e(k).trim().toLowerCase())}),q(()=>(e($),e(_)),()=>{p(N,e($).map(s=>{if(!e(_))return s;const l=s.suiteName.toLowerCase().includes(e(_))||Q(s).some(d=>d.toLowerCase().includes(e(_))),z=s.tests.filter(d=>d.testCase.toLowerCase().includes(e(_))||be(d).some(F=>F.toLowerCase().includes(e(_))));return!l&&z.length===0?null:{...s,tests:l?s.tests:z}}).filter(Boolean))}),q(()=>e($),()=>{p(D,e($).reduce((s,l)=>s+l.tests.length,0))}),q(()=>e(N),()=>{p(fe,e(N).reduce((s,l)=>s+l.tests.length,0))}),os(),ts();var ge=Os();ss(s=>{ns.title="Automated Tests — Plum"});var W=is(ge),X=r(W),xe=r(X),ye=i(r(xe),2),je=r(ye);{var Oe=s=>{var l=Ae();b(()=>h(l,`${e(fe)??""} of ${e(D)??""} tests`)),v(s,l)},Pe=s=>{var l=Ae();b(()=>h(l,`${e($).length??""} suite${(e($).length!==1?"s":"")??""} · ${e(D)??""} test${(e(D)!==1?"s":"")??""}`)),v(s,l)};A(je,s=>{e(_)?s(Oe):s(Pe,!1)})}t(ye),t(xe),t(X);var we=i(X,2),$e=r(we),Z=i(r($e),2);ps(Z);var Ve=i(Z,2);{var qe=s=>{var l=$s();R("click",l,()=>p(k,"")),v(s,l)};A(Ve,s=>{e(k)&&s(qe)})}t($e),t(we),t(W);var De=i(W,2);{var ze=s=>{const l=I(()=>e(_)?`No tests matching "${e(k)}"`:"No test suites found.");ys(s,{get message(){return e(l)}})},Fe=s=>{var l=js();y(l,5,()=>e(N),w,(z,d,F)=>{var H=Ns(),ee=r(H),se=r(ee),te=r(se);y(te,5,()=>Q(e(d)),w,(O,o)=>{var m=ks(),M=r(m,!0);t(m),b((C,L)=>{g(m,"title",C),g(m,"aria-label",C),de(m,"copied",L),h(M,e(o))},[()=>e(f).has(e(o))?`Copied ${e(o)}`:`Copy ${e(o)}`,()=>e(f).has(e(o))],I),R("click",m,()=>me(e(o))),v(O,m)}),t(te);var ae=i(te,2),He=r(ae,!0);t(ae);var ke=i(ae,2),Ue=r(ke);t(ke),t(se);var Ye=i(se,2);t(ee);var Ce=i(ee,2);y(Ce,5,()=>e(d).tests,w,(O,o,m)=>{var M=Rs();const C=I(()=>Ee(e(o))),L=I(()=>e(B).has(e(C)));var re=r(M),U=r(re),le=i(U,2);y(le,5,()=>be(e(o)),w,(n,a)=>{var c=Cs(),P=r(c,!0);t(c),b((Y,S)=>{g(c,"title",Y),g(c,"aria-label",Y),de(c,"copied",S),h(P,e(a))},[()=>e(f).has(e(a))?`Copied ${e(a)}`:`Copy ${e(a)}`,()=>e(f).has(e(a))],I),R("click",c,()=>me(e(a))),v(n,c)}),t(le);var oe=i(le,2),Se=r(oe),Ge=i(Se);{var Je=n=>{var a=Ss();v(n,a)};A(Ge,n=>{e(o).type==="outline"&&n(Je)})}t(oe);var Ke=i(oe,2);{var Qe=n=>{var a=Ts(),c=r(a),P=i(c);t(a),b(()=>{g(a,"aria-expanded",e(L)),de(c,"rotated",e(L)),h(P,` ${(e(L)?"Hide":"Steps")??""}`)}),R("click",a,()=>Re(e(C))),v(n,a)};A(Ke,n=>{var a;((a=e(o).steps)==null?void 0:a.length)>0&&n(Qe)})}t(re);var We=i(re,2);{var Xe=n=>{var a=Es(),c=r(a);y(c,5,()=>e(o).steps,w,(S,V)=>{var E=Is(),G=r(E,!0);t(E),b(()=>h(G,e(V))),v(S,E)}),t(c);var P=i(c,2);{var Y=S=>{var V=Ls(),E=i(r(V),2),G=r(E),ie=r(G),Te=r(ie);y(Te,5,()=>e(o).examples.headers,w,(ve,ne)=>{var T=As(),ue=r(T,!0);t(T),b(()=>h(ue,e(ne))),v(ve,T)}),t(Te),t(ie);var Ie=i(ie);y(Ie,5,()=>e(o).examples.rows,w,(ve,ne)=>{var T=Ms();y(T,5,()=>e(ne),w,(ue,Ze)=>{var ce=Bs(),es=r(ce,!0);t(ce),b(()=>h(es,e(Ze))),v(ue,ce)}),t(T),v(ve,T)}),t(Ie),t(G),t(E),t(V),v(S,V)};A(P,S=>{e(o).examples&&S(Y)})}t(a),ds(3,a,()=>hs,()=>({duration:180})),v(n,a)};A(We,n=>{var a;e(L)&&((a=e(o).steps)==null?void 0:a.length)>0&&n(Xe)})}t(M),b(n=>{g(M,"style",n),g(U,"title",`Run ${e(C)??""}`),g(U,"aria-label",`Run ${e(o).testCase??""}`),h(Se,`${e(o).testCase??""} `)},[()=>Be(F*4+m,30)],I),R("click",U,()=>_e(e(C))),v(O,M)}),t(Ce),t(H),b(O=>{g(H,"style",O),h(He,e(d).suiteName),h(Ue,`${e(d).tests.length??""} test${(e(d).tests.length!==1?"s":"")??""}`)},[()=>Be(F,55)],I),R("click",Ye,()=>Ne(e(d))),v(z,H)}),t(l),v(s,l)};A(De,s=>{e(N).length===0?s(ze):s(Fe,!1)})}_s(Z,()=>e(k),s=>p(k,s)),v(J,ge),vs(),Le()}export{Js as component};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
*
|
|
4
|
-
* Plum is free software: you can redistribute it and/or modify
|
|
5
|
-
* it under the terms of the GNU General Public License as published by
|
|
6
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
7
|
-
* (at your option) any later version.
|
|
8
|
-
*
|
|
9
|
-
* Plum is distributed in the hope that it will be useful,
|
|
10
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
* GNU General Public License for more details.
|
|
13
|
-
*
|
|
14
|
-
* You should have received a copy of the GNU General Public License
|
|
15
|
-
* along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import{h as O,a as f,t as b,s as A,e as y}from"../chunks/ll-VsEGv.js";import{i as Q}from"../chunks/DGryW1Vp.js";import{p as R,o as T,s as l,t as $,d as U,$ as V,m as c,k as i,c as e,n as r,j as o}from"../chunks/C67QNx7Z.js";import{i as C,s as W,a as X}from"../chunks/CVV6HrFb.js";import{s as Y,r as K}from"../chunks/CstKKb9b.js";import{b as L}from"../chunks/raHbXn_9.js";import{g as Z}from"../chunks/KJdjlibc.js";import{a as aa}from"../chunks/DIx44H9N.js";import{c as ea,l as sa}from"../chunks/BVMec-1T.js";import{t as ta}from"../chunks/uFRI_bmR.js";var la=b('<p class="checking svelte-cliau1">Checking server…</p>'),ia=b('<p class="error svelte-cliau1"> </p>'),ra=b('<div class="card svelte-cliau1"><div class="brand svelte-cliau1"><span class="brand-serif svelte-cliau1">Pl</span><span class="brand-sans svelte-cliau1">um</span></div> <h1 class="title svelte-cliau1">Sign in</h1> <p class="subtitle svelte-cliau1">Access your test workspace</p> <div class="fields svelte-cliau1"><div class="field svelte-cliau1"><label class="label svelte-cliau1" for="email">Email</label> <input id="email" type="email" class="input svelte-cliau1" placeholder="jane@example.com" autocomplete="email"></div> <div class="field svelte-cliau1"><label class="label svelte-cliau1" for="password">Password</label> <input id="password" type="password" class="input svelte-cliau1" placeholder="••••••••" autocomplete="current-password"></div></div> <!> <button class="submit-btn svelte-cliau1"> </button></div>'),oa=b('<div class="page svelte-cliau1"><!></div>');function _a(M,N){R(N,!1);const[q,z]=W(),B=()=>X(ta,"$theme",q);let n=c(""),p=c(""),v=c(""),u=c(!1),S=c(!0);T(async()=>{try{if(await ea()){Z("/setup");return}}catch{}l(S,!1)});async function x(){l(v,""),l(u,!0);try{const{token:a,user:s}=await sa({email:e(n),password:e(p)});aa.login(a,s),window.location.href="/"}catch(a){l(v,a.message||"Login failed")}finally{l(u,!1)}}function P(a){a.key==="Enter"&&x()}Q();var d=oa();O(a=>{V.title="Sign in — Plum"});var D=i(d);{var F=a=>{var s=la();f(a,s)},G=a=>{var s=ra(),h=o(i(s),6),_=i(h),g=o(i(_),2);K(g),r(_);var j=o(_,2),w=o(i(j),2);K(w),r(j),r(h);var E=o(h,2);{var H=t=>{var k=ia(),J=i(k,!0);r(k),$(()=>A(J,e(v))),f(t,k)};C(E,t=>{e(v)&&t(H)})}var m=o(E,2),I=i(m,!0);r(m),r(s),$(()=>{m.disabled=e(u)||!e(n)||!e(p),A(I,e(u)?"Signing in…":"Sign in")}),L(g,()=>e(n),t=>l(n,t)),y("keydown",g,P),L(w,()=>e(p),t=>l(p,t)),y("keydown",w,P),y("click",m,x),f(a,s)};C(D,a=>{e(S)?a(F):a(G,!1)})}r(d),$(()=>Y(d,"data-theme",B())),f(M,d),U(),z()}export{_a as component};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
*
|
|
4
|
-
* Plum is free software: you can redistribute it and/or modify
|
|
5
|
-
* it under the terms of the GNU General Public License as published by
|
|
6
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
7
|
-
* (at your option) any later version.
|
|
8
|
-
*
|
|
9
|
-
* Plum is distributed in the hope that it will be useful,
|
|
10
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
* GNU General Public License for more details.
|
|
13
|
-
*
|
|
14
|
-
* You should have received a copy of the GNU General Public License
|
|
15
|
-
* along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import{h as Xe,a as m,c as Ye,t as P,b as J,s as w,e as K}from"../chunks/ll-VsEGv.js";import{i as Ze}from"../chunks/DGryW1Vp.js";import{p as et,o as tt,l as B,b as at,f as Q,t as k,d as st,c as e,s as n,A as lt,$ as rt,y as it,m as v,z as O,j as o,k as l,n as s,v as q}from"../chunks/C67QNx7Z.js";import{i as A,s as nt,a as ot}from"../chunks/CVV6HrFb.js";import{t as b,e as we,i as ye}from"../chunks/DmRbbcS3.js";import{R as F,s as G,r as ke,c as be}from"../chunks/CstKKb9b.js";import{f as $e,d as vt,a as dt,r as ct}from"../chunks/CxTX_lpP.js";import{a as pt}from"../chunks/C3SY6-sX.js";import{s as xe,t as mt,i as gt,a as ft}from"../chunks/B0pefNHY.js";import{B as Se}from"../chunks/BIRVeCLU.js";import{P as ut}from"../chunks/DP6QP4L6.js";import{C as _t}from"../chunks/IFIFk6zi.js";import{E as ht}from"../chunks/BKCNyxZ2.js";var wt=P('<div class="rate-display svelte-wkly2m"><span class="rate-number svelte-wkly2m"> </span> <span class="rate-label svelte-wkly2m">passing</span></div>'),yt=P('<span class="trend-dot svelte-wkly2m"></span>'),kt=P('<div class="stats-bar svelte-wkly2m"><div class="pass-bar-track svelte-wkly2m"><div class="pass-bar-fill svelte-wkly2m"></div></div> <div class="bar-legend svelte-wkly2m"><span class="legend-pass svelte-wkly2m"> </span> <span class="legend-fail svelte-wkly2m"> </span></div></div> <div class="trend-row svelte-wkly2m"><span class="trend-label svelte-wkly2m">Recent</span> <div class="trend-dots svelte-wkly2m"></div> <span class="trend-hint svelte-wkly2m">← older · newer →</span></div>',1),bt=P('<button class="btn-delete-selected svelte-wkly2m"> </button>'),$t=P('<div class="report-row svelte-wkly2m"><label class="row-check-wrap svelte-wkly2m" title="Select"><input type="checkbox" class="checkbox svelte-wkly2m"></label> <a class="report-item svelte-wkly2m"><div class="item-left svelte-wkly2m"><span class="status-mark svelte-wkly2m"> </span> <div class="item-meta svelte-wkly2m"><span class="item-tags svelte-wkly2m"> </span> <div class="item-badges svelte-wkly2m"><!> <!></div></div></div> <div class="item-right svelte-wkly2m"><span class="item-date svelte-wkly2m"> </span> <svg class="item-arrow svelte-wkly2m" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg></div></a> <button class="row-delete-btn svelte-wkly2m" title="Delete report"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6l-1 14H6L5 6"></path><path d="M10 11v6M14 11v6"></path><path d="M9 6V4h6v2"></path></svg></button></div>'),xt=P('<div class="pagination-wrap svelte-wkly2m"><!></div>'),St=P('<div class="list-header svelte-wkly2m"><label class="select-all-wrap svelte-wkly2m" title="Select all on this page"><input type="checkbox" class="checkbox svelte-wkly2m"></label> <!></div> <div class="report-list svelte-wkly2m"></div> <!>',1),Pt=P('<!> <div class="page-header svelte-wkly2m"><div class="header-top svelte-wkly2m"><div><h1 class="svelte-wkly2m">Reports</h1> <p class="subtitle svelte-wkly2m"> </p></div> <!></div> <!></div> <!>',1);function qt(Pe,Re){et(Re,!1);const[De,Me]=nt(),ie=()=>ot(pt,"$reportsVersion",De),W=v(),R=v(),ne=v(),H=v(),X=v();let D=v([]),_=v(0),N=v(0),oe=v(0),Y=v([]),C=v(1),ve=v(!1),d=v(new Set),g=v({open:!1,targets:[]}),Z=v(!1);async function U(){try{let t=await $e({page:e(C),limit:F});t.reports.length===0&&e(C)>1&&(n(C,Math.max(1,Math.ceil(t.total/F))),t=await $e({page:e(C),limit:F})),n(D,t.reports),n(_,t.total),n(N,t.passCount),n(oe,t.failCount),n(Y,t.trend),n(d,new Set),await lt(),n(ve,!0)}catch(t){console.error("Failed to fetch reports",t)}}function Ae(t){n(C,t),U()}tt(U);function Ce(t,i){i.preventDefault(),i.stopPropagation();const r=new Set(e(d));r.has(t)?r.delete(t):r.add(t),n(d,r)}function Te(t){if(t.stopPropagation(),e(H)){const i=new Set(e(d));e(D).forEach(r=>i.delete(r.id)),n(d,i)}else{const i=new Set(e(d));e(D).forEach(r=>i.add(r.id)),n(d,i)}}function de(t){n(g,{open:!0,targets:t})}function Ee(t,i){i.preventDefault(),i.stopPropagation(),de([t])}async function Be(){n(Z,!0);try{e(g).targets.length===1?await vt(e(g).targets[0]):await dt([...e(g).targets]),n(g,{open:!1,targets:[]}),await U()}catch(t){console.error("Delete failed",t)}finally{n(Z,!1)}}B(()=>(e(_),F),()=>{n(W,Math.ceil(e(_)/F))}),B(()=>(e(_),e(N)),()=>{n(R,e(_)?Math.round(e(N)/e(_)*100):0)}),B(()=>e(Y),()=>{n(ne,[...e(Y)].reverse())}),B(()=>(e(D),e(d)),()=>{n(H,e(D).length>0&&e(D).every(t=>e(d).has(t.id)))}),B(()=>e(d),()=>{n(X,e(d).size>0)}),B(()=>ie(),()=>{ie()&&U()}),at(),Ze();var ce=Pt();Xe(t=>{rt.title="Reports — Plum"});var pe=Q(ce);const Ve=O(()=>e(g).targets.length===1?"Delete report?":`Delete ${e(g).targets.length} reports?`);_t(pe,{get title(){return e(Ve)},confirmLabel:"Delete",get loading(){return e(Z)},get open(){return e(g).open},set open(t){it(g,e(g).open=t)},$$events:{confirm:Be},children:(t,i)=>{var r=Ye(),h=Q(r);{var x=f=>{var y=J("This will permanently remove the report and its data file.");m(f,y)},T=f=>{var y=J();k(()=>w(y,`This will permanently remove ${e(g).targets.length??""} reports and their data files.`)),m(f,y)};A(h,f=>{e(g).targets.length===1?f(x):f(T,!1)})}m(t,r)},$$slots:{default:!0},$$legacy:!0});var ee=o(pe,2),te=l(ee),ae=l(te),me=o(l(ae),2),ze=l(me);s(me),s(ae);var Le=o(ae,2);{var je=t=>{var i=wt(),r=l(i),h=l(r);s(r),q(2),s(i),k(()=>{b(r,"pass",e(R)>=80),b(r,"warn",e(R)<80&&e(R)>=50),b(r,"fail",e(R)<50),w(h,`${e(R)??""}%`)}),m(t,i)};A(Le,t=>{e(_)>0&&t(je)})}s(te);var Oe=o(te,2);{var qe=t=>{var i=kt(),r=Q(i),h=l(r),x=l(h);s(h);var T=o(h,2),f=l(T),y=l(f);s(f);var I=o(f,2),se=l(I);s(I),s(T),s(r);var u=o(r,2),a=o(l(u),2);we(a,5,()=>e(ne),ye,(M,p,V)=>{var $=yt();k(S=>{G($,"style",S),G($,"title",`${e(p).status??""} · ${e(p).tags??""} · ${e(p).date??""}`),b($,"pass",e(p).status==="PASS"),b($,"fail",e(p).status!=="PASS")},[()=>xe(V,35)],O),m(M,$)}),s(a),q(2),s(u),k(()=>{G(x,"style",`width: ${(e(ve)?e(R)+"%":"0")??""}`),w(y,`${e(N)??""} passed`),w(se,`${e(oe)??""} failed`)}),m(t,i)};A(Oe,t=>{e(_)>0&&t(qe)})}s(ee);var Fe=o(ee,2);{var Ge=t=>{ht(t,{message:"No reports yet. Run a test to generate one."})},He=t=>{var i=St(),r=Q(i),h=l(r),x=l(h);ke(x),s(h);var T=o(h,2);{var f=u=>{var a=bt(),M=l(a);s(a),k(()=>w(M,`Delete (${e(d).size??""})`)),K("click",a,()=>de([...e(d)])),m(u,a)};A(T,u=>{e(X)&&u(f)})}s(r);var y=o(r,2);we(y,5,()=>e(D),ye,(u,a,M)=>{var p=$t(),V=l(p),$=l(V);ke($),s(V);var S=o(V,2),le=l(S),z=l(le),Ne=l(z,!0);s(z);var ge=o(z,2),re=l(ge),Ue=l(re,!0);s(re);var fe=o(re,2),ue=l(fe);const Ie=O(()=>ft(e(a).triggerType));Se(ue,{get variant(){return e(Ie)},children:(c,L)=>{q();var j=J();k(E=>w(j,E),[()=>mt(e(a).triggerType)],O),m(c,j)},$$slots:{default:!0}});var Je=o(ue,2);{var Ke=c=>{Se(c,{variant:"neutral",children:(L,j)=>{q();var E=J();k(()=>w(E,e(a).browser)),m(L,E)},$$slots:{default:!0}})};A(Je,c=>{e(a).browser&&e(a).browser!=="chromium"&&c(Ke)})}s(fe),s(ge),s(le);var _e=o(le,2),he=l(_e),Qe=l(he,!0);s(he),q(2),s(_e),s(S);var We=o(S,2);s(p),k((c,L,j,E)=>{G(p,"style",c),b(p,"is-selected",L),be($,L),G(S,"href",j),b(S,"is-pass",e(a).status==="PASS"),b(S,"is-fail",e(a).status!=="PASS"),b(z,"pass",e(a).status==="PASS"),b(z,"fail",e(a).status!=="PASS"),w(Ne,e(a).status==="PASS"?"✓":"✗"),w(Ue,E),w(Qe,e(a).date)},[()=>xe(M),()=>e(d).has(e(a).id),()=>ct(e(a).id),()=>{var c;return((c=e(a).testRun)==null?void 0:c.title)??(gt(e(a).triggerType)?e(a).triggerType:e(a).tags)}],O),K("change",$,c=>Ce(e(a).id,c)),K("click",We,c=>Ee(e(a).id,c)),m(u,p)}),s(y);var I=o(y,2);{var se=u=>{var a=xt(),M=l(a);ut(M,{get current(){return e(C)},get total(){return e(W)},$$events:{change:p=>Ae(p.detail)}}),s(a),m(u,a)};A(I,u=>{e(W)>1&&u(se)})}k(()=>{be(x,e(H)),x.indeterminate=e(X)&&!e(H)}),K("change",x,Te),m(t,i)};A(Fe,t=>{e(_)===0?t(Ge):t(He,!1)})}k(()=>w(ze,`${e(_)??""} run${(e(_)!==1?"s":"")??""} recorded`)),m(Pe,ce),st(),Me()}export{qt as component};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
*
|
|
4
|
-
* Plum is free software: you can redistribute it and/or modify
|
|
5
|
-
* it under the terms of the GNU General Public License as published by
|
|
6
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
7
|
-
* (at your option) any later version.
|
|
8
|
-
*
|
|
9
|
-
* Plum is distributed in the hope that it will be useful,
|
|
10
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
* GNU General Public License for more details.
|
|
13
|
-
*
|
|
14
|
-
* You should have received a copy of the GNU General Public License
|
|
15
|
-
* along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import{a as l,t as o,s as n,b as Ze,c as Ee,n as pe,e as F,h as $t}from"../chunks/ll-VsEGv.js";import{i as Zs}from"../chunks/DGryW1Vp.js";import{t as d,k as t,n as s,p as et,l as H,s as u,al as Tt,b as st,c as e,d as tt,m as x,f as te,an as zt,o as Dt,as as At,$ as Et,j as a,ar as ys,z as M,v as Ae}from"../chunks/C67QNx7Z.js";import{i as _,s as Ft,a as Ht}from"../chunks/CVV6HrFb.js";import{t as q,a as Gs,d as Nt,e as xe,i as we,c as Gt}from"../chunks/DmRbbcS3.js";import{s as I,i as Kt,r as Ot,g as Ut}from"../chunks/CstKKb9b.js";import{s as Ks}from"../chunks/Bfc47y5P.js";import{b as Vt}from"../chunks/C4eeChIU.js";import{p as Wt}from"../chunks/BFgtfHj2.js";import{b as Yt,s as Os}from"../chunks/CxTX_lpP.js";import{k as Jt,p as Qt,g as Us,f as Vs,s as Ws,b as Xe,c as Xt,d as Ys,t as Zt,i as ea}from"../chunks/B0pefNHY.js";import{B as sa}from"../chunks/BIRVeCLU.js";import{B as ta}from"../chunks/CyQ_oBw2.js";import{p as be}from"../chunks/BeO8veBd.js";var aa=o('<span class="status-dot svelte-eg9xrn"></span>');function Js(N,L){let g=be(L,"status",8,"passed");var p=aa();d(()=>{q(p,"pass",g()==="passed"),q(p,"fail",g()==="failed"),q(p,"skip",g()!=="passed"&&g()!=="failed")}),l(N,p)}var ra=o('<span class="tag-chip svelte-foe7v9"> </span>');function la(N,L){let g=be(L,"tag",8,"");var p=ra(),B=t(p,!0);s(p),d(()=>n(B,g())),l(N,p)}var ca=o('<span class="kw svelte-3mvi7i"> </span>');function Qs(N,L){et(L,!1);const g=x();let p=be(L,"keyword",8,"");H(()=>Tt(p()),()=>{u(g,Jt(p()))}),st(),Zs();var B=ca(),S=t(B,!0);s(B),d(()=>{q(B,"kw-given",e(g)==="kw-given"),q(B,"kw-when",e(g)==="kw-when"),q(B,"kw-then",e(g)==="kw-then"),q(B,"kw-and",e(g)==="kw-and"),n(S,p())}),l(N,B),tt()}var na=o('<span class="step-status-icon svelte-9zpq1y"><!></span>');function Xs(N,L){let g=be(L,"status",8,"passed");var p=na(),B=t(p);{var S=w=>{var k=Ze("✓");l(w,k)},K=w=>{var k=Ee(),b=te(k);{var de=A=>{var z=Ze("✗");l(A,z)},ae=A=>{var z=Ze("−");l(A,z)};_(b,A=>{g()==="failed"?A(de):A(ae,!1)},!0)}l(w,k)};_(B,w=>{g()==="passed"?w(S):w(K,!1)})}s(p),d(()=>{q(p,"icon-pass",g()==="passed"),q(p,"icon-fail",g()==="failed"),q(p,"icon-skip",g()!=="passed"&&g()!=="failed")}),l(N,p)}var oa=pe('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2c0 4.5-5 7-5 12a5 5 0 0 0 10 0c0-5-5-7.5-5-12z"></path><path d="M12 9c0 2.5-2.5 4-2.5 7a2.5 2.5 0 0 0 5 0c0-3-2.5-4.5-2.5-7z"></path></svg>'),va=pe('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polygon points="12,5.5 14.5,12 12,10.5 9.5,12" fill="currentColor" stroke="none"></polygon><polygon points="12,18.5 9.5,12 12,13.5 14.5,12" fill="currentColor" stroke="none" opacity="0.35"></polygon></svg>'),ia=pe('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><circle cx="12" cy="12" r="4"></circle><line x1="21.17" y1="8" x2="12" y2="8"></line><line x1="3.95" y1="6.06" x2="8.54" y2="14"></line><line x1="10.88" y1="21.94" x2="15.46" y2="14"></line></svg>');function pa(N,L){let g=be(L,"browser",8,"chromium"),p=be(L,"size",8,11);var B=Ee(),S=te(B);{var K=k=>{var b=oa();d(()=>{I(b,"width",p()),I(b,"height",p())}),l(k,b)},w=k=>{var b=Ee(),de=te(b);{var ae=z=>{var O=va();d(()=>{I(O,"width",p()),I(O,"height",p())}),l(z,O)},A=z=>{var O=ia();d(()=>{I(O,"width",p()),I(O,"height",p())}),l(z,O)};_(de,z=>{g()==="webkit"?z(ae):z(A,!1)},!0)}l(k,b)};_(S,k=>{g()==="firefox"?k(K):k(w,!1)})}l(N,B)}var da=o('<div class="error-state svelte-1cdcqpr"> </div>'),ua=o('<div class="loading-state svelte-1cdcqpr"><div class="loading-dots svelte-1cdcqpr"><span class="svelte-1cdcqpr"></span><span class="svelte-1cdcqpr"></span><span class="svelte-1cdcqpr"></span></div></div>'),_a=pe('<svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1cdcqpr"><polyline points="20 6 9 17 4 12" class="svelte-1cdcqpr"></polyline></svg>'),ga=pe('<svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1cdcqpr"><line x1="18" y1="6" x2="6" y2="18" class="svelte-1cdcqpr"></line><line x1="6" y1="6" x2="18" y2="18" class="svelte-1cdcqpr"></line></svg>'),ha=o('<span class="run-name-badge svelte-1cdcqpr"> </span>'),fa=o('<span class="run-name-badge svelte-1cdcqpr"> </span>'),qa=o('<div class="stat svelte-1cdcqpr"><span class="stat-num fail-color svelte-1cdcqpr"> </span> <span class="stat-label svelte-1cdcqpr"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1cdcqpr"><line x1="18" y1="6" x2="6" y2="18" class="svelte-1cdcqpr"></line><line x1="6" y1="6" x2="18" y2="18" class="svelte-1cdcqpr"></line></svg> failed</span></div>'),ya=o('<div class="stat svelte-1cdcqpr"><span class="stat-num muted-color svelte-1cdcqpr"> </span> <span class="stat-label svelte-1cdcqpr"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" class="svelte-1cdcqpr"><line x1="5" y1="12" x2="19" y2="12" class="svelte-1cdcqpr"></line></svg> skipped</span></div>'),ka=o('<span class="log-runner-count svelte-1cdcqpr"> </span>'),ma=o('<button class="log-tab svelte-1cdcqpr"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-1cdcqpr"><rect x="2" y="3" width="20" height="14" rx="2" class="svelte-1cdcqpr"></rect><path d="M8 21h8M12 17v4" class="svelte-1cdcqpr"></path></svg> </button>'),xa=o('<div class="log-tabs svelte-1cdcqpr"></div>'),wa=o('<details class="logs-section svelte-1cdcqpr"><summary class="logs-summary svelte-1cdcqpr"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1cdcqpr"><polyline points="4 17 10 11 4 5" class="svelte-1cdcqpr"></polyline><line x1="12" y1="19" x2="20" y2="19" class="svelte-1cdcqpr"></line></svg> Run Logs <!></summary> <!> <pre class="logs-body svelte-1cdcqpr"> </pre></details>'),ba=o('<span class="suite-tag svelte-1cdcqpr"> </span>'),Ca=o('<span class="scenario-count svelte-1cdcqpr"> </span>'),Ba=o('<button class="replay-btn svelte-1cdcqpr" title="Watch replay"><svg width="11" height="11" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-1cdcqpr"><polygon points="5,3 19,12 5,21" class="svelte-1cdcqpr"></polygon></svg> Replay</button>'),Sa=o('<button class="replay-btn replay-btn-sm svelte-1cdcqpr"><svg width="9" height="9" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-1cdcqpr"><polygon points="5,3 19,12 5,21" class="svelte-1cdcqpr"></polygon></svg> Replay</button>'),Pa=o('<div class="example-header svelte-1cdcqpr"><!> <span class="svelte-1cdcqpr"></span> <span class="scenario-duration svelte-1cdcqpr"> </span> <!></div>'),Ra=o('<pre class="step-error svelte-1cdcqpr"> </pre>'),ja=o('<details class="screenshot-wrap svelte-1cdcqpr"><summary class="screenshot-toggle svelte-1cdcqpr">Screenshot</summary> <img class="screenshot svelte-1cdcqpr" alt="Step screenshot"></details>'),Ma=o('<div class="step svelte-1cdcqpr"><div class="step-row svelte-1cdcqpr"><!> <!> <span class="step-name svelte-1cdcqpr"> </span> <span class="step-duration svelte-1cdcqpr"> </span></div> <!> <!></div>'),Ia=o("<!> <!>",1),La=o('<div class="steps svelte-1cdcqpr"></div>'),$a=o('<div class="scenario svelte-1cdcqpr"><div class="scenario-row svelte-1cdcqpr"><button class="scenario-header svelte-1cdcqpr"><!> <span class="scenario-name svelte-1cdcqpr"> <!></span> <div class="scenario-tags svelte-1cdcqpr"></div> <span class="scenario-duration svelte-1cdcqpr"> </span> <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="chevron svelte-1cdcqpr"><polyline points="9 18 15 12 9 6" class="svelte-1cdcqpr"></polyline></svg></button> <!></div> <!></div>'),Ta=o('<div class="feature svelte-1cdcqpr"><div class="feature-header svelte-1cdcqpr"><h2 class="feature-name svelte-1cdcqpr"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feature-icon svelte-1cdcqpr"><path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z" class="svelte-1cdcqpr"></path><polyline points="14 2 14 8 20 8" class="svelte-1cdcqpr"></polyline></svg> <!></h2> <div class="feature-right svelte-1cdcqpr"><span class="feature-file svelte-1cdcqpr"> </span> <!></div></div> <div class="scenarios svelte-1cdcqpr"></div></div>'),za=o('<div class="report-header svelte-1cdcqpr"><div class="header-main svelte-1cdcqpr"><div class="header-status svelte-1cdcqpr"><div class="status-icon-wrap svelte-1cdcqpr"><!></div> <div class="svelte-1cdcqpr"><div class="h1-row svelte-1cdcqpr"><h1 class="svelte-1cdcqpr"> </h1> <!></div> <div class="header-meta svelte-1cdcqpr"><span class="mono svelte-1cdcqpr"> </span> <span class="meta-sep svelte-1cdcqpr">·</span> <span class="svelte-1cdcqpr"> </span> <span class="meta-sep svelte-1cdcqpr">·</span> <span class="svelte-1cdcqpr"> </span> <span class="meta-sep svelte-1cdcqpr">·</span> <span class="browser-pill svelte-1cdcqpr"><!> </span></div></div></div> <div class="header-stats svelte-1cdcqpr"><div class="stat svelte-1cdcqpr"><span class="stat-num pass-color svelte-1cdcqpr"> </span> <span class="stat-label svelte-1cdcqpr"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1cdcqpr"><polyline points="20 6 9 17 4 12" class="svelte-1cdcqpr"></polyline></svg> passed</span></div> <!> <!> <div class="stat svelte-1cdcqpr"><span class="stat-num svelte-1cdcqpr"> </span> <span class="stat-label svelte-1cdcqpr"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1cdcqpr"><circle cx="12" cy="12" r="10" class="svelte-1cdcqpr"></circle><polyline points="12 6 12 12 16 14" class="svelte-1cdcqpr"></polyline></svg> duration</span></div> <div class="stat svelte-1cdcqpr"><span class="stat-num svelte-1cdcqpr"> </span> <span class="stat-label svelte-1cdcqpr"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-1cdcqpr"><rect x="2" y="3" width="20" height="14" rx="2" class="svelte-1cdcqpr"></rect><path d="M8 21h8M12 17v4" class="svelte-1cdcqpr"></path></svg> </span></div></div></div></div> <!> <!>',1),Da=o('<img class="replay-screenshot svelte-1cdcqpr">'),Aa=o('<div class="replay-no-screenshot svelte-1cdcqpr">No screenshot captured for this step</div>'),Ea=pe('<svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-1cdcqpr"><rect x="6" y="4" width="4" height="16" rx="1" class="svelte-1cdcqpr"></rect><rect x="14" y="4" width="4" height="16" rx="1" class="svelte-1cdcqpr"></rect></svg>'),Fa=pe('<svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-1cdcqpr"><polygon points="5,3 19,12 5,21" class="svelte-1cdcqpr"></polygon></svg>'),Ha=o('<div class="replay-overlay svelte-1cdcqpr"><div class="replay-modal svelte-1cdcqpr"><div class="replay-modal-header svelte-1cdcqpr"><span class="replay-modal-title svelte-1cdcqpr"> </span> <button class="replay-close svelte-1cdcqpr"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-1cdcqpr"><line x1="18" y1="6" x2="6" y2="18" class="svelte-1cdcqpr"></line><line x1="6" y1="6" x2="18" y2="18" class="svelte-1cdcqpr"></line></svg></button></div> <div class="replay-screenshot-area svelte-1cdcqpr"><!></div> <div class="replay-timeline svelte-1cdcqpr"><input type="range" class="replay-slider svelte-1cdcqpr" min="0"></div> <div class="replay-step-info svelte-1cdcqpr"><!> <!> <span class="replay-step-name svelte-1cdcqpr"> </span></div> <div class="replay-nav svelte-1cdcqpr"><button class="replay-nav-btn svelte-1cdcqpr"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-1cdcqpr"><polyline points="15 18 9 12 15 6" class="svelte-1cdcqpr"></polyline></svg></button> <button class="replay-play-btn svelte-1cdcqpr"><!></button> <button class="replay-nav-btn svelte-1cdcqpr"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-1cdcqpr"><polyline points="9 18 15 12 9 6" class="svelte-1cdcqpr"></polyline></svg></button> <span class="replay-counter svelte-1cdcqpr"> </span></div></div></div>'),Na=o("<!> <!> <!>",1);function ar(N,L){et(L,!1);const[g,p]=Ft(),B=()=>Ht(Wt,"$page",g),S=x(),K=x(),w=x(),k=x(),b=x(),de=x(),ae=x(),A=x(),z=x(),O=x(),at=parseInt(B().params.id,10);let h=x(null),es=x(null),ue=x(new Set),Fe=x(!1),re=x(null),C=x(0),Ce=x(!1),_e=null;zt(()=>{_e&&clearInterval(_e)});function ks(){u(Ce,!0),_e=setInterval(()=>{var r,f;e(C)<(((f=(r=e(re))==null?void 0:r.steps)==null?void 0:f.length)??0)-1?ys(C):le()},Kt)}function le(){u(Ce,!1),_e&&(clearInterval(_e),_e=null)}function ms(r){le(),u(re,r),u(C,0),u(Fe,!0),ks()}function ss(){le(),u(Fe,!1),u(re,null)}function xs(){e(Ce)?le():(e(C)>=e(S).length-1&&u(C,0),ks())}function ws(){le(),e(C)>0&&ys(C,-1)}function bs(){le(),e(C)<e(S).length-1&&ys(C)}function rt(r){e(Fe)&&(r.key==="ArrowRight"?bs():r.key==="ArrowLeft"?ws():r.key===" "?(r.preventDefault(),xs()):r.key==="Escape"&&ss())}Dt(async()=>{try{u(h,await Yt(at))}catch{u(es,"Could not load report.")}});function lt(r){e(ue).has(r)?e(ue).delete(r):e(ue).add(r),u(ue,e(ue))}let He=x(0);H(()=>e(re),()=>{var r;u(S,((r=e(re))==null?void 0:r.steps)??[])}),H(()=>(e(S),e(C)),()=>{u(K,e(S)[e(C)]??null)}),H(()=>e(h),()=>{var r;u(w,Qt(((r=e(h))==null?void 0:r.logs)??null))}),H(()=>e(w),()=>{e(w)&&u(He,0)}),H(()=>e(h),()=>{var r;u(k,((r=e(h))==null?void 0:r.status)==="PASS")}),H(()=>e(h),()=>{var r;u(b,((r=e(h))==null?void 0:r.features.flatMap(f=>f.scenarios))??[])}),H(()=>e(b),()=>{u(de,e(b).filter(r=>r.status==="passed").length)}),H(()=>e(b),()=>{u(ae,e(b).filter(r=>r.status==="failed").length)}),H(()=>e(b),()=>{u(A,e(b).filter(r=>r.status==="skipped"||r.status==="pending").length)}),H(()=>(e(h),e(b)),()=>{var r;u(z,((r=e(h))==null?void 0:r.duration)??e(b).reduce((f,V)=>f+V.duration,0))}),H(()=>(e(h),Us),()=>{var r;u(O,((r=e(h))==null?void 0:r.features.map(f=>({...f,scenarioGroups:Us(f.scenarios)})))??[])}),st(),Zs();var Cs=Na();F("keydown",At,rt),$t(r=>{Et.title="Report — Plum"});var Bs=te(Cs);ta(Bs,{href:"/reports",label:"Reports"});var Ss=a(Bs,2);{var ct=r=>{var f=da(),V=t(f,!0);s(f),d(()=>n(V,e(es))),l(r,f)},nt=r=>{var f=Ee(),V=te(f);{var Be=X=>{var ge=ua();l(X,ge)},Se=X=>{var ge=za(),W=te(ge),Ne=t(W),Pe=t(Ne),ce=t(Pe),Re=t(ce);{var ne=i=>{var c=_a();l(i,c)},je=i=>{var c=ga();l(i,c)};_(Re,i=>{e(k)?i(ne):i(je,!1)})}s(ce);var Me=a(ce,2),Ie=t(Me),he=t(Ie),ts=t(he,!0);s(he);var Ge=a(he,2);{var as=i=>{var c=ha(),m=t(c,!0);s(c),d(()=>n(m,e(h).testRun.title)),l(i,c)},Ke=i=>{var c=Ee(),m=te(c);{var T=J=>{var U=fa(),qe=t(U,!0);s(U),d(()=>n(qe,e(h).triggerType)),l(J,U)};_(m,J=>{ea(e(h).triggerType)&&J(T)},!0)}l(i,c)};_(Ge,i=>{var c;(c=e(h).testRun)!=null&&c.title?i(as):i(Ke,!1)})}s(Ie);var fe=a(Ie,2),Y=t(fe),rs=t(Y,!0);s(Y);var Le=a(Y,4),ls=t(Le,!0);s(Le);var oe=a(Le,4),Oe=t(oe,!0);s(oe);var Ue=a(oe,4),v=t(Ue);const $=M(()=>e(h).browser??"chromium");pa(v,{get browser(){return e($)}});var cs=a(v);s(Ue),s(fe),s(Me),s(Pe);var Ps=a(Pe,2),ns=t(Ps),Rs=t(ns),it=t(Rs,!0);s(Rs),Ae(2),s(ns);var js=a(ns,2);{var pt=i=>{var c=qa(),m=t(c),T=t(m,!0);s(m),Ae(2),s(c),d(()=>n(T,e(ae))),l(i,c)};_(js,i=>{e(ae)>0&&i(pt)})}var Ms=a(js,2);{var dt=i=>{var c=ya(),m=t(c),T=t(m,!0);s(m),Ae(2),s(c),d(()=>n(T,e(A))),l(i,c)};_(Ms,i=>{e(A)>0&&i(dt)})}var os=a(Ms,2),Is=t(os),ut=t(Is,!0);s(Is),Ae(2),s(os);var Ls=a(os,2),vs=t(Ls),_t=t(vs,!0);s(vs);var $s=a(vs,2),gt=a(t($s));s($s),s(Ls),s(Ps),s(Ne),s(W);var Ts=a(W,2);{var ht=i=>{var c=wa(),m=t(c),T=a(t(m),2);{var J=D=>{var E=ka(),$e=t(E);s(E),d(()=>n($e,`${e(w).length??""} runners`)),l(D,E)};_(T,D=>{e(w).length>1&&D(J)})}s(m);var U=a(m,2);{var qe=D=>{var E=xa();xe(E,5,()=>e(w),we,($e,ps,We)=>{var Z=ma(),G=a(t(Z));s(Z),d(()=>{q(Z,"log-tab-active",e(He)===We),n(G,` ${e(ps).name??""}`)}),F("click",Z,Ks(()=>u(He,We))),l($e,Z)}),s(E),l(D,E)};_(U,D=>{e(w).length>1&&D(qe)})}var Ve=a(U,2),is=t(Ve,!0);s(Ve),s(c),d(()=>{var D;return n(is,((D=e(w)[e(He)])==null?void 0:D.content)??"")}),l(i,c)};_(Ts,i=>{e(w).length>0&&i(ht)})}var ft=a(Ts,2);xe(ft,1,()=>e(O),we,(i,c,m)=>{var T=Ta(),J=t(T),U=t(J),qe=a(t(U)),Ve=a(qe);{var is=G=>{var y=ba(),ye=t(y,!0);s(y),d(ve=>n(ye,ve),[()=>Vs(e(c))],M),l(G,y)};_(Ve,G=>{Vs(e(c))&&G(is)})}s(U);var D=a(U,2),E=t(D),$e=t(E,!0);s(E);var ps=a(E,2);const We=M(()=>e(c).status==="passed"?"pass":"fail");sa(ps,{get variant(){return e(We)},children:(G,y)=>{Ae();var ye=Ze();d(()=>n(ye,e(c).status)),l(G,ye)},$$slots:{default:!0}}),s(D),s(J);var Z=a(J,2);xe(Z,5,()=>e(c).scenarioGroups,we,(G,y,ye)=>{var ve=$a();const zs=M(()=>`${m}-${e(y).key}`),Ds=M(()=>e(ue).has(e(zs))),qt=M(()=>e(y).scenarios.some(Ys));var ds=t(ve),Ye=t(ds),As=t(Ye);Js(As,{get status(){return e(y).status}});var us=a(As,2),Es=t(us),yt=a(Es);{var kt=P=>{var R=Ca(),hs=t(R);s(R),d(()=>n(hs,`${e(y).scenarios.length??""} cases`)),l(P,R)};_(yt,P=>{e(y).scenarios.length>1&&P(kt)})}s(us);var _s=a(us,2);xe(_s,5,()=>e(y).tags,we,(P,R)=>{la(P,{get tag(){return e(R)}})}),s(_s);var gs=a(_s,2),mt=t(gs,!0);s(gs);var xt=a(gs,2);s(Ye);var wt=a(Ye,2);{var bt=P=>{var R=Ba();F("click",R,()=>ms(e(y).scenarios[0])),l(P,R)};_(wt,P=>{e(qt)&&e(y).scenarios.length===1&&P(bt)})}s(ds);var Ct=a(ds,2);{var Bt=P=>{var R=La();xe(R,5,()=>e(y).scenarios,we,(hs,Te,St)=>{var Fs=Ia(),Hs=te(Fs);{var Pt=ze=>{var j=Pa(),ee=t(j);Js(ee,{get status(){return e(Te).status}});var ke=a(ee,2);ke.textContent=`Case ${St+1}`;var me=a(ke,2),Je=t(me,!0);s(me);var De=a(me,2);{var fs=se=>{var Qe=Sa();F("click",Qe,()=>ms(e(Te))),l(se,Qe)};_(De,se=>{Ys(e(Te))&&se(fs)})}s(j),d(se=>n(Je,se),[()=>Xe(e(Te).duration)],M),l(ze,j)};_(Hs,ze=>{e(y).scenarios.length>1&&ze(Pt)})}var Rt=a(Hs,2);xe(Rt,1,()=>e(Te).steps,we,(ze,j)=>{var ee=Ma(),ke=t(ee),me=t(ke);Xs(me,{get status(){return e(j).status}});var Je=a(me,2);Qs(Je,{get keyword(){return e(j).keyword}});var De=a(Je,2),fs=t(De,!0);s(De);var se=a(De,2),Qe=t(se,!0);s(se),s(ke);var Ns=a(ke,2);{var jt=Q=>{var ie=Ra(),qs=t(ie,!0);s(ie),d(()=>n(qs,e(j).error)),l(Q,ie)};_(Ns,Q=>{e(j).error&&Q(jt)})}var Mt=a(Ns,2);{var It=Q=>{var ie=ja(),qs=a(t(ie),2);s(ie),d(Lt=>I(qs,"src",Lt),[()=>Os(e(j).screenshot)],M),l(Q,ie)};_(Mt,Q=>{e(j).screenshot&&Q(It)})}s(ee),d(Q=>{q(ee,"step-fail",e(j).status==="failed"),q(ee,"step-skip",e(j).status==="skipped"||e(j).status==="pending"),n(fs,e(j).name),n(Qe,Q)},[()=>Xe(e(j).duration)],M),l(ze,ee)}),l(hs,Fs)}),s(R),Gs(3,R,()=>Gt,()=>({duration:200})),l(P,R)};_(Ct,P=>{e(Ds)&&P(Bt)})}s(ve),d((P,R)=>{I(ve,"style",P),q(ve,"scenario-fail",e(y).status==="failed"),n(Es,`${e(y).name??""} `),n(mt,R),q(xt,"rotated",e(Ds))},[()=>Ws(m*5+ye,40),()=>Xe(e(y).duration)],M),F("click",Ye,()=>lt(e(zs))),l(G,ve)}),s(Z),s(T),d((G,y)=>{I(T,"style",G),q(T,"feature-pass",e(c).status==="passed"),q(T,"feature-fail",e(c).status!=="passed"),n(qe,` ${e(c).name??""} `),I(E,"title",e(c).uri),n($e,y)},[()=>Ws(m,60),()=>Xt(e(c).uri)],M),l(i,T)}),d((i,c,m)=>{q(W,"pass",e(k)),q(W,"fail",!e(k)),q(ce,"pass-bg",e(k)),q(ce,"fail-bg",!e(k)),n(ts,e(k)?"Passed":"Failed"),n(rs,e(h).tags),n(ls,i),n(Oe,c),n(cs,` ${e(h).browser??"chromium"}`),n(it,e(de)),n(ut,m),n(_t,e(h).runners),n(gt,` runner${(e(h).runners!==1?"s":"")??""}`)},[()=>Zt(e(h).triggerType),()=>new Date(e(h).createdAt).toLocaleString(),()=>Xe(e(z))],M),l(X,ge)};_(V,X=>{e(h)?X(Se,!1):X(Be)},!0)}l(r,f)};_(Ss,r=>{e(es)?r(ct):r(nt,!1)})}var ot=a(Ss,2);{var vt=r=>{var f=Ha(),V=t(f),Be=t(V),Se=t(Be),X=t(Se,!0);s(Se);var ge=a(Se,2);s(Be);var W=a(Be,2),Ne=t(W);{var Pe=v=>{var $=Da();d(cs=>{I($,"src",cs),I($,"alt",`Step ${e(C)+1} screenshot`)},[()=>Os(e(K).screenshot)],M),l(v,$)},ce=v=>{var $=Aa();l(v,$)};_(Ne,v=>{var $;($=e(K))!=null&&$.screenshot?v(Pe):v(ce,!1)})}s(W);var Re=a(W,2),ne=t(Re);Ot(ne),s(Re);var je=a(Re,2),Me=t(je);const Ie=M(()=>{var v;return((v=e(K))==null?void 0:v.status)??"skipped"});Xs(Me,{get status(){return e(Ie)}});var he=a(Me,2);const ts=M(()=>{var v;return((v=e(K))==null?void 0:v.keyword)??""});Qs(he,{get keyword(){return e(ts)}});var Ge=a(he,2),as=t(Ge,!0);s(Ge),s(je);var Ke=a(je,2),fe=t(Ke),Y=a(fe,2),rs=t(Y);{var Le=v=>{var $=Ea();l(v,$)},ls=v=>{var $=Fa();l(v,$)};_(rs,v=>{e(Ce)?v(Le):v(ls,!1)})}s(Y);var oe=a(Y,2),Oe=a(oe,2),Ue=t(Oe);s(Oe),s(Ke),s(V),s(f),d(()=>{var v;n(X,e(re).name),I(ne,"max",e(S).length-1),Ut(ne,e(C)),I(ne,"style",`--fill: ${(e(S).length>1?e(C)/(e(S).length-1)*100:0)??""}%`),n(as,(v=e(K))==null?void 0:v.name),fe.disabled=e(C)===0,I(Y,"title",e(Ce)?"Pause":"Play"),oe.disabled=e(C)===e(S).length-1,n(Ue,`${e(C)+1} / ${e(S).length??""}`)}),F("click",ge,ss),F("input",ne,v=>{le(),u(C,Number(v.target.value))}),F("click",fe,ws),F("click",Y,xs),F("click",oe,bs),F("click",V,Ks(function(v){Vt.call(this,L,v)})),Gs(3,f,()=>Nt,()=>({duration:150})),F("click",f,ss),l(r,f)};_(ot,r=>{e(Fe)&&e(re)&&r(vt)})}l(N,Cs),tt(),p()}export{ar as component};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
*
|
|
4
|
-
* Plum is free software: you can redistribute it and/or modify
|
|
5
|
-
* it under the terms of the GNU General Public License as published by
|
|
6
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
7
|
-
* (at your option) any later version.
|
|
8
|
-
*
|
|
9
|
-
* Plum is distributed in the hope that it will be useful,
|
|
10
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
* GNU General Public License for more details.
|
|
13
|
-
*
|
|
14
|
-
* You should have received a copy of the GNU General Public License
|
|
15
|
-
* along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import{h as tt,a as n,t as p,c as ne,s as f,e as fe,b as le,n as Ne}from"../chunks/ll-VsEGv.js";import{i as st}from"../chunks/DGryW1Vp.js";import{h as Te,a2 as at,a as rt,ao as nt,ap as lt,a1 as vt,aa as ot,a9 as it,ab as ct,U as dt,p as pt,aq as gt,an as ut,l as I,b as _t,f as C,d as ft,$ as ht,c as e,y as Be,s as x,ar as mt,j as c,m as R,k as l,n as r,t as _,z as bt,v as Y}from"../chunks/C67QNx7Z.js";import{i as m,s as wt,a as he}from"../chunks/CVV6HrFb.js";import{e as Le,t as L,a as me,f as kt,i as xt,d as $e}from"../chunks/DmRbbcS3.js";import{e as be,s as we,f as yt}from"../chunks/CstKKb9b.js";import{b as je}from"../chunks/BLAiBE__.js";import{g as ve}from"../chunks/KJdjlibc.js";import{p as Rt}from"../chunks/BFgtfHj2.js";import{d as St,e as It,f as Ct}from"../chunks/C3SY6-sX.js";import{r as ke}from"../chunks/CxTX_lpP.js";import{t as Tt}from"../chunks/B0pefNHY.js";import{B as Bt}from"../chunks/CyQ_oBw2.js";import{B as Ee}from"../chunks/BIRVeCLU.js";function Ae(oe,ie,z){Te&&at();var ee=oe,G=dt,$,te=rt()?nt:lt;vt(()=>{te(G,G=ie())&&($&&ot($),$=it(()=>z(ee)))}),Te&&(ee=ct)}var Lt=p('<div class="idle-state svelte-4v9t4g"><div class="idle-icon svelte-4v9t4g"><svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-4v9t4g"><circle cx="12" cy="12" r="10" class="svelte-4v9t4g"></circle><polyline points="12 6 12 12 16 14" class="svelte-4v9t4g"></polyline></svg></div> <h2 class="svelte-4v9t4g">No tests currently running</h2> <p class="svelte-4v9t4g">Start a test from the panel below, then come back here to watch it live.</p> <a href="/reports" class="idle-link svelte-4v9t4g">View past reports →</a></div>'),$t=p('<a class="cron-task-chip svelte-4v9t4g"> </a>'),jt=p('<div class="cron-running-state svelte-4v9t4g"><div class="cron-running-icon svelte-4v9t4g"><span class="cron-pulse-dot svelte-4v9t4g"></span></div> <h2 class="svelte-4v9t4g"> </h2> <div class="cron-task-list svelte-4v9t4g"></div> <p class="svelte-4v9t4g">Select a run above, or wait — the report opens automatically when it finishes.</p></div>'),Et=p('<span class="live-badge svelte-4v9t4g"><span class="live-dot svelte-4v9t4g"></span>Live</span>'),At=p('<span class="run-title-label svelte-4v9t4g"> </span> <span class="run-sep svelte-4v9t4g">·</span>',1),Nt=p('<span class="run-sep svelte-4v9t4g">·</span> <span class="run-detail svelte-4v9t4g"> </span>',1),Pt=p('<div class="run-info svelte-4v9t4g"><!> <span class="run-tag-label svelte-4v9t4g"> </span> <span class="run-sep svelte-4v9t4g">·</span> <span class="run-detail svelte-4v9t4g"> </span> <span class="run-sep svelte-4v9t4g">·</span> <span class="run-detail svelte-4v9t4g"> </span> <!></div>'),qt=p('<button class="cancel-btn svelte-4v9t4g"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-4v9t4g"><rect x="3" y="3" width="18" height="18" rx="2" class="svelte-4v9t4g"></rect><line x1="9" y1="9" x2="15" y2="15" class="svelte-4v9t4g"></line><line x1="15" y1="9" x2="9" y2="15" class="svelte-4v9t4g"></line></svg> Cancel run</button>'),Dt=Ne('<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-4v9t4g"><polyline points="20 6 9 17 4 12" class="svelte-4v9t4g"></polyline></svg> All tests passed',1),Ut=Ne('<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-4v9t4g"><line x1="18" y1="6" x2="6" y2="18" class="svelte-4v9t4g"></line><line x1="6" y1="6" x2="18" y2="18" class="svelte-4v9t4g"></line></svg> Some tests failed',1),Mt=p('<div class="completion-bar svelte-4v9t4g"><div class="completion-left svelte-4v9t4g"><!></div> <div class="completion-right svelte-4v9t4g"><span class="redirect-hint svelte-4v9t4g"> </span> <button class="view-now-btn svelte-4v9t4g">View Report Now <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-4v9t4g"><line x1="5" y1="12" x2="19" y2="12" class="svelte-4v9t4g"></line><polyline points="12 5 19 12 12 19" class="svelte-4v9t4g"></polyline></svg></button></div></div>'),Ft=p('<span class="tab-count svelte-4v9t4g"> </span>'),Ht=p('<button class="lane-tab svelte-4v9t4g"><span class="tab-dot svelte-4v9t4g"></span> <!></button>'),Vt=p('<div class="lane-tabs svelte-4v9t4g"></div>'),Yt=p('<img class="live-shot svelte-4v9t4g" alt="Live browser view">'),zt=p('<!> <div class="step-overlay svelte-4v9t4g"><span class="step-keyword svelte-4v9t4g">Step</span> <span class="step-name svelte-4v9t4g"> </span></div>',1),Gt=p('<div class="awaiting-state svelte-4v9t4g"><svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" opacity="0.25" class="svelte-4v9t4g"><rect x="2" y="5" width="20" height="14" rx="2" class="svelte-4v9t4g"></rect><circle cx="12" cy="12" r="3" class="svelte-4v9t4g"></circle></svg> <span class="svelte-4v9t4g"> </span></div>'),Ot=p('<img class="live-shot svelte-4v9t4g" alt="Live browser view">'),Zt=p('<!> <div class="step-overlay svelte-4v9t4g"><span class="step-keyword svelte-4v9t4g">Step</span> <span class="step-name svelte-4v9t4g"> </span></div>',1),Jt=p('<div class="awaiting-state svelte-4v9t4g"><svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" opacity="0.25" class="svelte-4v9t4g"><rect x="2" y="5" width="20" height="14" rx="2" class="svelte-4v9t4g"></rect><circle cx="12" cy="12" r="3" class="svelte-4v9t4g"></circle></svg> <span class="svelte-4v9t4g"> </span></div>'),Kt=p('<pre class="terminal svelte-4v9t4g"> </pre>'),Qt=p('<pre class="terminal svelte-4v9t4g"> </pre>'),Wt=p('<div class="run-header svelte-4v9t4g"><div class="header-left svelte-4v9t4g"><!> <!></div> <!></div> <!> <!> <div class="run-view svelte-4v9t4g"><div class="screenshot-panel svelte-4v9t4g"><!></div> <div class="terminal-panel svelte-4v9t4g"><div class="terminal-bar svelte-4v9t4g"><span class="dot red svelte-4v9t4g"></span> <span class="dot yellow svelte-4v9t4g"></span> <span class="dot green svelte-4v9t4g"></span> <span class="terminal-label svelte-4v9t4g"><!></span></div> <!></div></div>',1),Xt=p("<!> <!>",1);function us(oe,ie){pt(ie,!1);const[z,ee]=wt(),G=()=>he(Rt,"$page",z),$=()=>he(St,"$backgroundRuns",z),te=()=>he(It,"$runnerState",z),A=R(),t=R(),q=R(),T=R(),D=R(),xe=R(),j=R(),Pe={output:"",running:!1,testCompleted:!1,latestReportId:null,status:"idle",lanes:[],currentRun:null,latestScreenshot:null};let U=R(),M=R(),N=R(null),O=R(be/1e3),P=R(null),E=R(null);gt(()=>{e(U)&&Be(U,e(U).scrollTop=e(U).scrollHeight),e(M)&&Be(M,e(M).scrollTop=e(M).scrollHeight)}),ut(()=>{e(N)&&clearTimeout(e(N)),e(P)&&clearInterval(e(P))});function qe(){e(N)&&clearTimeout(e(N)),e(P)&&clearInterval(e(P)),ve(ke(e(t).latestReportId))}I(()=>G(),()=>{x(A,G().url.searchParams.get("run"))}),I(()=>(e(A),$(),te()),()=>{x(t,e(A)?$()[e(A)]??Pe:te())}),I(()=>e(t),()=>{x(q,e(t).lanes.length>0)}),I(()=>$(),()=>{x(T,Object.entries($()).filter(([,y])=>y.running))}),I(()=>(e(A),e(t),e(T)),()=>{x(D,!e(A)&&!e(t).running&&!e(t).testCompleted&&e(T).length>0)}),I(()=>(e(t),e(D)),()=>{x(xe,!e(t).running&&!e(t).testCompleted&&!e(D))}),I(()=>(e(D),e(T),ve),()=>{e(D)&&e(T).length===1&&ve(`/reports/live?run=${e(T)[0][0]}`)}),I(()=>(e(t),e(E)),()=>{e(t).lanes.length===0?x(E,null):e(t).lanes.find(y=>y.id===e(E))||x(E,e(t).lanes[0].id)}),I(()=>(e(t),e(E)),()=>{x(j,e(t).lanes.find(y=>y.id===e(E))??null)}),I(()=>(e(t),e(N),e(O),e(P),ke),()=>{e(t).testCompleted&&e(t).latestReportId&&!e(N)&&(x(O,be/1e3),x(P,setInterval(()=>{mt(O,-1),e(O)<=0&&clearInterval(e(P))},1e3)),x(N,setTimeout(()=>ve(ke(e(t).latestReportId)),be)))}),_t(),st();var ye=Xt();tt(y=>{ht.title="Live Run — Plum"});var Re=C(ye);Bt(Re,{href:"/reports",label:"Reports"});var De=c(Re,2);{var Ue=y=>{var se=Lt();n(y,se)},Me=y=>{var se=ne(),Fe=C(se);{var He=F=>{var H=jt(),B=c(l(H),2),Z=l(B);r(B);var J=c(B,2);Le(J,5,()=>e(T),([K,Q])=>K,(K,Q)=>{let ce=()=>e(Q)[0],ae=()=>e(Q)[1];var V=$t(),de=l(V);r(V),_(re=>{we(V,"href",`/reports/live?run=${ce()??""}`),f(de,`${ae().label??""} · ${re??""}`)},[()=>Tt(ae().kind)],bt),n(K,V)}),r(J),Y(2),r(H),_(()=>f(Z,`${(e(T).length===1?"A run":`${e(T).length} runs`)??""} in progress`)),n(F,H)},Ve=F=>{var H=Wt(),B=C(H),Z=l(B),J=l(Z);{var K=a=>{var s=Et();n(a,s)},Q=a=>{var s=ne(),d=C(s);{var i=o=>{Ee(o,{variant:"pass",children:(v,g)=>{Y();var u=le("Passed");n(v,u)},$$slots:{default:!0}})},h=o=>{Ee(o,{variant:"fail",children:(v,g)=>{Y();var u=le("Failed");n(v,u)},$$slots:{default:!0}})};m(d,o=>{e(t).status==="pass"?o(i):o(h,!1)},!0)}n(a,s)};m(J,a=>{e(t).running?a(K):a(Q,!1)})}var ce=c(J,2);{var ae=a=>{var s=Pt(),d=l(s);{var i=k=>{var W=At(),X=C(W),_e=l(X,!0);r(X),Y(2),_(()=>f(_e,e(t).currentRun.runTitle)),n(k,W)};m(d,k=>{e(t).currentRun.runTitle&&k(i)})}var h=c(d,2),o=l(h,!0);r(h);var v=c(h,4),g=l(v);r(v);var u=c(v,4),b=l(u,!0);r(u);var w=c(u,2);{var S=k=>{var W=Nt(),X=c(C(W),2),_e=l(X);r(X),_(()=>f(_e,`${e(t).lanes.length??""} runners`)),n(k,W)};m(w,k=>{e(t).lanes.length>1&&k(S)})}r(s),_(()=>{f(o,e(t).currentRun.tag||yt),f(g,`${e(t).currentRun.workers??""} worker${(e(t).currentRun.workers!==1?"s":"")??""}`),f(b,e(t).currentRun.browser)}),n(a,s)};m(ce,a=>{e(t).currentRun&&a(ae)})}r(Z);var V=c(Z,2);{var de=a=>{var s=qt();fe("click",s,function(...d){var i;(i=Ct)==null||i.apply(this,d)}),n(a,s)};m(V,a=>{e(t).running&&!e(A)&&a(de)})}r(B);var re=c(B,2);{var Ye=a=>{var s=Mt(),d=l(s),i=l(d);{var h=w=>{var S=Dt();Y(),n(w,S)},o=w=>{var S=Ut();Y(),n(w,S)};m(i,w=>{e(t).status==="pass"?w(h):w(o,!1)})}r(d);var v=c(d,2),g=l(v),u=l(g);r(g);var b=c(g,2);r(v),r(s),_(()=>{L(s,"pass-bar",e(t).status==="pass"),L(s,"fail-bar",e(t).status==="fail"),f(u,`Redirecting in ${e(O)??""}s…`)}),fe("click",b,qe),me(3,s,()=>kt,()=>({y:-8,duration:250})),n(a,s)};m(re,a=>{e(t).testCompleted&&e(t).latestReportId&&a(Ye)})}var Se=c(re,2);{var ze=a=>{var s=Vt();Le(s,5,()=>e(t).lanes,xt,(d,i)=>{var h=Ht(),o=l(h),v=c(o),g=c(v);{var u=b=>{var w=Ft(),S=l(w,!0);r(w),_(()=>f(S,e(i).testCount)),n(b,w)};m(g,b=>{e(i).testCount&&b(u)})}r(h),_(()=>{L(h,"active",e(E)===e(i).id),L(o,"tab-dot-running",e(i).status==="running"),L(o,"tab-dot-done",e(i).status==="done"),L(o,"tab-dot-error",e(i).status==="error"),f(v,` ${e(i).name??""} `)}),fe("click",h,()=>x(E,e(i).id)),n(d,h)}),r(s),n(a,s)};m(Se,a=>{e(q)&&a(ze)})}var pe=c(Se,2),ge=l(pe),Ge=l(ge);{var Oe=a=>{var s=ne(),d=C(s);{var i=o=>{var v=zt(),g=C(v);Ae(g,()=>e(j).latestScreenshot.data,S=>{var k=Yt();_(()=>we(k,"src",`data:image/jpeg;base64,${e(j).latestScreenshot.data??""}`)),me(1,k,()=>$e,()=>({duration:120})),n(S,k)});var u=c(g,2),b=c(l(u),2),w=l(b,!0);r(b),r(u),_(()=>f(w,e(j).latestScreenshot.stepName)),n(o,v)},h=o=>{var v=Gt(),g=c(l(v),2),u=l(g,!0);r(g),r(v),_(()=>{var b;return f(u,((b=e(j))==null?void 0:b.status)==="running"?"Awaiting stream...":"No stream...")}),n(o,v)};m(d,o=>{var v;(v=e(j))!=null&&v.latestScreenshot?o(i):o(h,!1)})}n(a,s)},Ze=a=>{var s=ne(),d=C(s);{var i=o=>{var v=Zt(),g=C(v);Ae(g,()=>e(t).latestScreenshot.data,S=>{var k=Ot();_(()=>we(k,"src",`data:image/jpeg;base64,${e(t).latestScreenshot.data??""}`)),me(1,k,()=>$e,()=>({duration:120})),n(S,k)});var u=c(g,2),b=c(l(u),2),w=l(b,!0);r(b),r(u),_(()=>f(w,e(t).latestScreenshot.stepName)),n(o,v)},h=o=>{var v=Jt(),g=c(l(v),2),u=l(g,!0);r(g),r(v),_(()=>f(u,e(t).running?"Awaiting stream...":"No stream")),n(o,v)};m(d,o=>{e(t).latestScreenshot?o(i):o(h,!1)},!0)}n(a,s)};m(Ge,a=>{e(q)?a(Oe):a(Ze,!1)})}r(ge);var Ie=c(ge,2),ue=l(Ie),Ce=c(l(ue),6),Je=l(Ce);{var Ke=a=>{var s=le();_(()=>{var d;return f(s,((d=e(j))==null?void 0:d.name)??"Runner")}),n(a,s)},Qe=a=>{var s=le();_(()=>f(s,e(t).running?"Running…":"Finished")),n(a,s)};m(Je,a=>{e(q)?a(Ke):a(Qe,!1)})}r(Ce),r(ue);var We=c(ue,2);{var Xe=a=>{var s=Kt(),d=l(s,!0);r(s),je(s,i=>x(M,i),()=>e(M)),_(()=>{var i;return f(d,((i=e(j))==null?void 0:i.logs)||"(waiting for output…)")}),n(a,s)},et=a=>{var s=Qt(),d=l(s,!0);r(s),je(s,i=>x(U,i),()=>e(U)),_(()=>f(d,e(t).output)),n(a,s)};m(We,a=>{e(q)?a(Xe):a(et,!1)})}r(Ie),r(pe),_(()=>{L(B,"header-pass",e(t).status==="pass"),L(B,"header-fail",e(t).status==="fail"),L(pe,"no-top-radius",e(q))}),n(F,H)};m(Fe,F=>{e(D)?F(He):F(Ve,!1)},!0)}n(y,se)};m(De,y=>{e(xe)?y(Ue):y(Me,!1)})}n(oe,ye),ft(),ee()}export{us as component};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
*
|
|
4
|
-
* Plum is free software: you can redistribute it and/or modify
|
|
5
|
-
* it under the terms of the GNU General Public License as published by
|
|
6
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
7
|
-
* (at your option) any later version.
|
|
8
|
-
*
|
|
9
|
-
* Plum is distributed in the hope that it will be useful,
|
|
10
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
* GNU General Public License for more details.
|
|
13
|
-
*
|
|
14
|
-
* You should have received a copy of the GNU General Public License
|
|
15
|
-
* along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import{h as ds,a as m,s as y,e as z,t as E,b as G,c as us}from"../chunks/ll-VsEGv.js";import{i as fs}from"../chunks/DGryW1Vp.js";import{p as ms,o as bs,s as o,f as Se,d as ps,m as D,$ as hs,t as I,z as H,c as e,y as J,j as r,k as n,n as t,x as _s,v as W}from"../chunks/C67QNx7Z.js";import{i as A,s as gs,a as ks}from"../chunks/CVV6HrFb.js";import{e as Ne,i as Ce,t as ce}from"../chunks/DmRbbcS3.js";import{A as de,c as Ye,b as ys,r as Z,B as $s,s as ge}from"../chunks/CstKKb9b.js";import{b as Ae,a as Ke}from"../chunks/raHbXn_9.js";import{T as xs,B as Te,b as ws}from"../chunks/BkKmeUbA.js";import{p as Es}from"../chunks/Bfc47y5P.js";import{f as Ss,a as Ns}from"../chunks/BgNaeXAp.js";import{d as Cs}from"../chunks/C3SY6-sX.js";import{s as Ts}from"../chunks/B0pefNHY.js";import{B as Is}from"../chunks/BIRVeCLU.js";import{M as Ps,C as Rs}from"../chunks/IFIFk6zi.js";import{E as Ds}from"../chunks/BKCNyxZ2.js";async function Oe(){const U=await fetch(`${de}/cron-jobs`),{cronJobs:O}=await U.json();return O??[]}async function Us({taskName:U,cronExpression:O,tags:ke,workers:Ie,browser:Pe,runnerIds:ue,notifyDiscord:j,notifySlack:Re,isEditing:ee,editTaskName:M}){const se=ke.replace(/\sOR\s/gi,ae=>ae.toLowerCase()),X=ee?`${de}/cron-jobs/${encodeURIComponent(M)}`:`${de}/cron-jobs`;return(await fetch(X,{method:ee?"PUT":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cronExpression:O,taskName:U,tags:se,workers:Ie,browser:Pe,runnerIds:ue,notifyDiscord:j??!1,notifySlack:Re??!1})})).json()}async function Ms(U,O){return(await fetch(`${de}/cron-jobs/${encodeURIComponent(U)}/toggle`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:O})})).json()}async function Js(U){return(await fetch(`${de}/cron-jobs/${encodeURIComponent(U)}/run`,{method:"POST"})).json()}async function Ws(U){return(await fetch(`${de}/cron-jobs/${encodeURIComponent(U)}`,{method:"DELETE"})).json()}var As=E('<option class="svelte-13v7bmf"> </option>'),Os=E('<p class="cron-desc svelte-13v7bmf"> </p>'),Bs=E('<input type="text" class="field-input cron-input svelte-13v7bmf" placeholder="0 9 * * 1-5" spellcheck="false"> <!>',1),qs=E('<button type="button" class="seg-btn svelte-13v7bmf"><span class="seg-num svelte-13v7bmf"> </span></button>'),zs=E('<label class="runner-check-option svelte-13v7bmf"><input type="checkbox" class="svelte-13v7bmf"> <span class="runner-check-dot remote svelte-13v7bmf"></span> <span class="svelte-13v7bmf"> </span> <span class="runner-check-hint svelte-13v7bmf"> </span></label>'),Ls=E('<label class="notify-check-option svelte-13v7bmf"><input type="checkbox" class="svelte-13v7bmf"> <span class="svelte-13v7bmf">Discord</span></label>'),Fs=E('<label class="notify-check-option svelte-13v7bmf"><input type="checkbox" class="svelte-13v7bmf"> <span class="svelte-13v7bmf">Slack</span></label>'),Gs=E('<div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf">Notifications</span></div> <div class="notify-checks svelte-13v7bmf"><!> <!></div></div>'),Hs=E('<p class="form-error svelte-13v7bmf"> </p>'),Xs=E('<form class="modal-form svelte-13v7bmf"><div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf">Task Name</span> <span class="field-hint svelte-13v7bmf">Use a unique, meaningful name</span></div> <input type="text" class="field-input svelte-13v7bmf" placeholder="nightly-login-suite" required></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf">Schedule</span></div> <select class="field-input svelte-13v7bmf" required><option disabled class="svelte-13v7bmf">Select a schedule</option><!><option class="svelte-13v7bmf">Custom…</option></select> <!></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf">Tags</span> <span class="field-hint svelte-13v7bmf">Multiple: @test-1 or @test-2. Leave blank to run all tests</span></div> <input type="text" class="field-input svelte-13v7bmf" placeholder="@suite-login (optional)"></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf">Workers</span> <span class="field-hint svelte-13v7bmf">Parallel workers for this job</span></div> <div class="stepper svelte-13v7bmf"><button type="button" class="step-btn svelte-13v7bmf">−</button> <span class="step-val svelte-13v7bmf"> </span> <button type="button" class="step-btn svelte-13v7bmf">+</button></div></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf">Browser</span></div> <div class="seg-control svelte-13v7bmf"></div></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf">Runners</span> <span class="field-hint svelte-13v7bmf">Select one or more nodes</span></div> <div class="runner-checks svelte-13v7bmf"><label class="runner-check-option svelte-13v7bmf"><input type="checkbox" class="svelte-13v7bmf"> <span class="runner-check-dot built-in svelte-13v7bmf"></span> <span class="svelte-13v7bmf">Built-in</span> <span class="runner-check-hint svelte-13v7bmf">this server</span></label> <!></div></div> <!> <!> <!></form>'),Ys=E('Are you sure you want to delete <strong class="svelte-13v7bmf"> </strong>? This cannot be undone.',1),Ks=E('<span class="running-dot svelte-13v7bmf" title="Running now"></span>'),Qs=E('<tr class="job-row svelte-13v7bmf"><td class="td-toggle svelte-13v7bmf"><button class="toggle-btn svelte-13v7bmf"><span class="toggle-knob svelte-13v7bmf"></span></button></td><td class="td-run svelte-13v7bmf"><button class="run-icon-btn svelte-13v7bmf"><svg width="10" height="10" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-13v7bmf"><polygon points="5,3 19,12 5,21" class="svelte-13v7bmf"></polygon></svg></button></td><td class="job-name svelte-13v7bmf"><!> </td><td class="svelte-13v7bmf"><!></td><td class="svelte-13v7bmf"><span class="tag-text svelte-13v7bmf"> </span></td><td class="svelte-13v7bmf"><span class="workers-badge svelte-13v7bmf"> </span></td><td class="svelte-13v7bmf"><span class="browser-badge svelte-13v7bmf"> </span></td><td class="svelte-13v7bmf"><span class="runner-badge svelte-13v7bmf"><!></span></td><td class="actions-cell svelte-13v7bmf"><!> <!></td></tr>'),Vs=E('<div class="table-wrap svelte-13v7bmf"><table class="data-table svelte-13v7bmf"><thead class="svelte-13v7bmf"><tr class="svelte-13v7bmf"><th class="th-toggle svelte-13v7bmf"></th><th class="th-run svelte-13v7bmf"></th><th class="svelte-13v7bmf">Name</th><th class="svelte-13v7bmf">Schedule</th><th class="svelte-13v7bmf">Tags</th><th class="svelte-13v7bmf">Workers</th><th class="svelte-13v7bmf">Browser</th><th class="svelte-13v7bmf">Runner</th><th class="svelte-13v7bmf">Actions</th></tr></thead><tbody class="svelte-13v7bmf"></tbody></table></div>'),Zs=E('<!> <!> <!> <div class="page-header svelte-13v7bmf"><div class="header-row svelte-13v7bmf"><div class="svelte-13v7bmf"><h1 class="svelte-13v7bmf">Scheduled Tests</h1> <p class="subtitle svelte-13v7bmf">Manage recurring test runs via cron jobs</p></div> <!></div></div> <div class="card svelte-13v7bmf" style="padding: 0; overflow: hidden;"><!></div>',1);function mt(U,O){ms(O,!1);const[ke,Ie]=gs(),Pe=()=>ks(Cs,"$backgroundRuns",ke),ue=/^(\*|([0-5]?[0-9])|\*\/[0-9]+) (\*|([01]?[0-9]|2[0-3])) (\*|([01]?[0-9]|3[01])) (\*|([1-9]|1[0-2])) (\*|[0-6](-[0-6])?)$/,j="__custom__",Re=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ee=[{label:"Every minute",value:"* * * * *"},{label:"Every hour",value:"0 * * * *"},{label:"Every midnight",value:"0 0 * * *"},{label:"Every Sunday",value:"0 0 * * 0"}];let M=D([]),se=D([]),X=D({discordWebhookUrl:"",slackWebhookUrl:"",notifyPublicUrl:""}),ye=D(null),te=D(!1),ae=D(!1),ne=D(!1),De="",fe=D(""),a=D({taskName:"",cronExpression:"",tags:"",workers:1,browser:"chromium",runnerIds:["built-in"],notifyDiscord:!1,notifySlack:!1}),me=D(""),be=D(!1),B=D("");function Qe(s){if(!s)return"";const f=s.trim().split(/\s+/);if(f.length!==5)return"";const[c,_,g,l,$]=f,S=(R,F)=>{const re=R>=12?"PM":"AM";return`${R%12||12}:${String(F).padStart(2,"0")} ${re}`},N=R=>/^\d+$/.test(R),x=N(_)?+_:null,p=N(c)?+c:null;if(s==="* * * * *")return"Every minute";const L=c.match(/^\*\/(\d+)$/);if(L&&_==="*"&&g==="*"&&l==="*"&&$==="*")return`Every ${L[1]} minutes`;if(p!==null&&_==="*"&&g==="*"&&l==="*"&&$==="*")return`Every hour at :${String(p).padStart(2,"0")}`;if(p!==null&&x!==null&&g==="*"&&l==="*"&&$==="1-5")return`Weekdays at ${S(x,p)}`;if(p!==null&&x!==null&&g==="*"&&l==="*"&&$==="*")return`Daily at ${S(x,p)}`;if(p!==null&&x!==null&&g==="*"&&l==="*"&&/^\d$/.test($))return`Every ${Re[+$]} at ${S(x,p)}`;const P=N(g)?+g:null;return p!==null&&x!==null&&P!==null&&l==="*"&&$==="*"?`Monthly on the ${P}${P===1?"st":P===2?"nd":P===3?"rd":"th"} at ${S(x,p)}`:""}function Y(s,f){o(ye,{type:s,message:f}),setTimeout(()=>o(ye,null),ys)}function Ve(s){s.target.value===j?(o(be,!0),J(a,e(a).cronExpression="")):(o(be,!1),J(a,e(a).cronExpression=s.target.value))}function Be(s){const f=e(a).runnerIds;f.includes(s)&&f.length===1||J(a,e(a).runnerIds=f.includes(s)?f.filter(c=>c!==s):[...f,s])}function qe(s){J(a,e(a).workers=Math.max(1,Math.min(10,(e(a).workers||1)+s)))}function Ze(){o(ne,!1),De="",o(a,{taskName:"",cronExpression:"",tags:"",workers:1,browser:"chromium",runnerIds:["built-in"],notifyDiscord:!1,notifySlack:!1}),o(me,""),o(be,!1),o(B,""),o(te,!0)}function je(s){o(ne,!0),De=s.taskName;const f=new Set(["built-in",...e(se).map(l=>l.id)]),_=(s.runnerIds?s.runnerIds.split(",").map(l=>l.trim()):["built-in"]).filter(l=>f.has(l));o(a,{taskName:s.taskName,cronExpression:s.cronExpression,tags:s.tags,workers:s.workers??1,browser:s.browser??"chromium",runnerIds:_.length>0?_:["built-in"],notifyDiscord:s.notifyDiscord??!1,notifySlack:s.notifySlack??!1});const g=ee.some(l=>l.value===s.cronExpression);o(be,!g),o(me,g?s.cronExpression:j),o(B,""),o(te,!0)}async function es(){if(!e(a).taskName||!e(a).cronExpression){o(B,"All fields are required.");return}if(!ue.test(e(a).cronExpression)){o(B,"Invalid cron expression.");return}o(B,"");try{(await Us({...e(a),isEditing:e(ne),editTaskName:De})).message?(Y("success",`${e(ne)?"Updated":"Added"}: ${e(a).taskName}`),o(te,!1),o(M,await Oe())):o(B,"Failed to save. Please try again.")}catch{o(B,"Network error.")}}async function ss(s){const f=!s.enabled;o(M,e(M).map(c=>c.taskName===s.taskName?{...c,enabled:f}:c));try{await Ms(s.taskName,f)}catch{o(M,e(M).map(c=>c.taskName===s.taskName?{...c,enabled:!f}:c)),Y("error","Could not update schedule.")}}async function ts(s){try{await Js(s),Y("success",`Started: ${s}`)}catch{Y("error","Could not trigger run.")}}async function as(){try{(await Ws(e(fe))).message?(Y("success",`Deleted: ${e(fe)}`),o(M,await Oe())):Y("error","Could not delete cron job.")}catch{Y("error","Network error.")}o(ae,!1),o(fe,"")}function ns(s){var f;return((f=ee.find(c=>c.value===s))==null?void 0:f.label)??s}bs(async()=>{await(async s=>(o(M,s[0]),o(se,s[1]),o(X,s[2])))(await Promise.all([Oe(),Ss().catch(()=>[]),Ns().catch(()=>({discordWebhookUrl:"",slackWebhookUrl:"",notifyPublicUrl:""}))]))}),fs();var ze=Zs();ds(s=>{hs.title="Scheduled Tests — Plum"});var Le=Se(ze);const rs=H(()=>e(ne)?"Edit Cron Job":"New Cron Job");Ps(Le,{get title(){return e(rs)},get open(){return e(te)},set open(s){o(te,s)},children:(s,f)=>{var c=Xs(),_=n(c),g=r(n(_),2);Z(g),t(_);var l=r(_,2),$=r(n(l),2);I(()=>{e(me),_s(()=>{})});var S=n($);S.value=((S.__value="")==null,"");var N=r(S);Ne(N,1,()=>ee,Ce,(d,u)=>{var i=As(),k={},v=n(i,!0);t(i),I(()=>{k!==(k=e(u).value)&&(i.value=(i.__value=e(u).value)==null?"":e(u).value),y(v,e(u).label)}),m(d,i)});var x=r(N);x.value=(x.__value=j)==null?"":j,t($);var p=r($,2);{var L=d=>{var u=Bs(),i=Se(u);Z(i);var k=r(i,2);{var v=b=>{var h=Os(),w=n(h,!0);t(h),I((T,C)=>{ce(h,"cron-invalid",T),y(w,C)},[()=>!ue.test(e(a).cronExpression),()=>ue.test(e(a).cronExpression)?Qe(e(a).cronExpression)||e(a).cronExpression:"Invalid cron expression"],H),m(b,h)};A(k,b=>{e(a).cronExpression&&b(v)})}Ae(i,()=>e(a).cronExpression,b=>J(a,e(a).cronExpression=b)),m(d,u)};A(p,d=>{e(be)&&d(L)})}t(l);var P=r(l,2),R=r(n(P),2);Z(R),t(P);var F=r(P,2),re=r(n(F),2),pe=n(re),K=r(pe,2),Me=n(K,!0);t(K);var le=r(K,2);t(re),t(F);var oe=r(F,2),$e=r(n(oe),2);Ne($e,5,()=>$s,Ce,(d,u)=>{var i=qs(),k=n(i),v=n(k,!0);t(k),t(i),I(()=>{ce(i,"active",e(a).browser===e(u).id),y(v,e(u).label)}),z("click",i,()=>J(a,e(a).browser=e(u).id)),m(d,i)}),t($e),t(oe);var Q=r(oe,2),ve=r(n(Q),2),he=n(ve),V=n(he);Z(V),W(6),t(he);var xe=r(he,2);Ne(xe,1,()=>e(se),Ce,(d,u)=>{var i=zs(),k=n(i);Z(k);var v=r(k,4),b=n(v,!0);t(v);var h=r(v,2),w=n(h,!0);t(h),t(i),I(T=>{Ye(k,T),y(b,e(u).name),y(w,e(u).url)},[()=>e(a).runnerIds.includes(e(u).id)],H),z("change",k,()=>Be(e(u).id)),m(d,i)}),t(ve),t(Q);var we=r(Q,2);{var _e=d=>{var u=Gs(),i=r(n(u),2),k=n(i);{var v=w=>{var T=Ls(),C=n(T);Z(C),W(2),t(T),Ke(C,()=>e(a).notifyDiscord,q=>J(a,e(a).notifyDiscord=q)),m(w,T)};A(k,w=>{e(X).discordWebhookUrl&&w(v)})}var b=r(k,2);{var h=w=>{var T=Fs(),C=n(T);Z(C),W(2),t(T),Ke(C,()=>e(a).notifySlack,q=>J(a,e(a).notifySlack=q)),m(w,T)};A(b,w=>{e(X).slackWebhookUrl&&w(h)})}t(i),t(u),m(d,u)};A(we,d=>{(e(X).discordWebhookUrl||e(X).slackWebhookUrl)&&d(_e)})}var ie=r(we,2);{var Je=d=>{var u=Hs(),i=n(u,!0);t(u),I(()=>y(i,e(B))),m(d,u)};A(ie,d=>{e(B)&&d(Je)})}var We=r(ie,2);Te(We,{type:"submit",size:"md",children:(d,u)=>{W();var i=G();I(()=>y(i,e(ne)?"Save Changes":"Add Cron Job")),m(d,i)},$$slots:{default:!0}}),t(c),I(d=>{pe.disabled=e(a).workers<=1,y(Me,e(a).workers),le.disabled=e(a).workers>=10,Ye(V,d)},[()=>e(a).runnerIds.includes("built-in")],H),Ae(g,()=>e(a).taskName,d=>J(a,e(a).taskName=d)),ws($,()=>e(me),d=>o(me,d)),z("change",$,Ve),Ae(R,()=>e(a).tags,d=>J(a,e(a).tags=d)),z("click",pe,()=>qe(-1)),z("click",le,()=>qe(1)),z("change",V,()=>Be("built-in")),z("submit",c,Es(es)),m(s,c)},$$slots:{default:!0},$$legacy:!0});var Fe=r(Le,2);Rs(Fe,{title:"Delete Cron Job",get open(){return e(ae)},set open(s){o(ae,s)},$$events:{confirm:as},children:(s,f)=>{W();var c=Ys(),_=r(Se(c)),g=n(_,!0);t(_),W(),I(()=>y(g,e(fe))),m(s,c)},$$slots:{default:!0},$$legacy:!0});var Ge=r(Fe,2);xs(Ge,{get toast(){return e(ye)}});var Ue=r(Ge,2),He=n(Ue),ls=r(n(He),2);Te(ls,{$$events:{click:Ze},children:(s,f)=>{W();var c=G("+ New Job");m(s,c)},$$slots:{default:!0}}),t(He),t(Ue);var Xe=r(Ue,2),os=n(Xe);{var vs=s=>{Ds(s,{message:"No scheduled tests yet. Create one to get started.",size:"sm"})},is=s=>{var f=Vs(),c=n(f),_=r(n(c));Ne(_,5,()=>e(M),Ce,(g,l,$)=>{var S=Qs();const N=H(()=>e(l).runnerIds?e(l).runnerIds.split(",").map(v=>v.trim()):["built-in"]);var x=n(S),p=n(x);t(x);var L=r(x),P=n(L);t(L);var R=r(L),F=n(R);{var re=v=>{var b=Ks();m(v,b)};A(F,v=>{var b;(b=Pe()[e(l).taskName])!=null&&b.running&&v(re)})}var pe=r(F);t(R);var K=r(R),Me=n(K);Is(Me,{variant:"schedule",children:(v,b)=>{W();var h=G();I(w=>y(h,w),[()=>ns(e(l).cronExpression)],H),m(v,h)},$$slots:{default:!0}}),t(K);var le=r(K),oe=n(le),$e=n(oe,!0);t(oe),t(le);var Q=r(le),ve=n(Q),he=n(ve);t(ve),t(Q);var V=r(Q),xe=n(V),we=n(xe,!0);t(xe),t(V);var _e=r(V),ie=n(_e),Je=n(ie);{var We=v=>{var b=G("built-in");m(v,b)},d=v=>{var b=us(),h=Se(b);{var w=C=>{var q=G();I(Ee=>y(q,Ee),[()=>{var Ee;return((Ee=e(se).find(cs=>cs.id===e(N)[0]))==null?void 0:Ee.name)??e(N)[0]}],H),m(C,q)},T=C=>{var q=G();I(()=>y(q,`${e(N).length??""} nodes`)),m(C,q)};A(h,C=>{e(N).length===1?C(w):C(T,!1)},!0)}m(v,b)};A(Je,v=>{e(N).length===1&&e(N)[0]==="built-in"?v(We):v(d,!1)})}t(ie),t(_e);var u=r(_e),i=n(u);Te(i,{variant:"ghost",size:"sm",$$events:{click:()=>je(e(l))},children:(v,b)=>{W();var h=G("Edit");m(v,h)},$$slots:{default:!0}});var k=r(i,2);Te(k,{variant:"danger",size:"sm",$$events:{click:()=>{o(fe,e(l).taskName),o(ae,!0)}},children:(v,b)=>{W();var h=G("Delete");m(v,h)},$$slots:{default:!0}}),t(u),t(S),I(v=>{ge(S,"style",v),ce(S,"disabled",!e(l).enabled),ge(p,"title",e(l).enabled?"Disable schedule":"Enable schedule"),ge(p,"aria-label",e(l).enabled?"Disable schedule":"Enable schedule"),ge(p,"aria-pressed",e(l).enabled),ce(p,"on",e(l).enabled),ge(P,"title",`Run ${e(l).taskName??""} now`),y(pe,` ${e(l).taskName??""}`),y($e,e(l).tags),ce(ve,"multi",e(l).workers>1),y(he,`×${e(l).workers??""}`),y(we,e(l).browser??"chromium"),ce(ie,"multi-node",e(N).length>1)},[()=>Ts($)],H),z("click",p,()=>ss(e(l))),z("click",P,()=>ts(e(l).taskName)),m(g,S)}),t(_),t(c),t(f),m(s,f)};A(os,s=>{e(M).length===0?s(vs):s(is,!1)})}t(Xe),m(U,ze),ps(),Ie()}export{mt as component};
|