plum-e2e 2.6.8 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env +5 -0
- package/CLAUDE.md +17 -2
- package/LICENSE +21 -677
- package/README.md +1 -1
- package/backend/Dockerfile +1 -13
- package/backend/app.js +4 -14
- package/backend/config/scripts/create-step.mjs +1 -13
- package/backend/config/scripts/create-test.mjs +1 -13
- package/backend/config/scripts/generate-report.js +5 -15
- package/backend/config/scripts/run-tests.js +5 -16
- package/backend/constants/defaults.js +8 -0
- package/backend/constants/env.js +16 -0
- package/backend/constants/jobStatus.js +21 -0
- package/backend/constants/socketEvents.js +40 -0
- package/backend/constants/triggers.js +6 -14
- package/backend/entrypoint.sh +1 -13
- package/backend/lib/authHeader.js +16 -0
- package/backend/lib/globalRegistry.js +1 -13
- package/backend/lib/nodeRegister.js +1 -13
- package/backend/lib/reportFilename.js +1 -13
- package/backend/lib/retryRunner.js +1 -13
- package/backend/lib/runnerProcess.js +34 -31
- package/backend/lib/screenshotPoller.js +1 -13
- package/backend/lib/serverBootstrap.js +189 -0
- package/backend/lib/serverConfig.js +1 -13
- package/backend/lib/testChunker.js +1 -13
- package/backend/lib/testEnv.js +1 -13
- 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/backend/mcp/server.js +5 -15
- package/backend/middleware/auth.js +4 -14
- package/backend/middleware/jwtAuth.js +5 -16
- package/backend/middleware/requireAdmin.js +1 -13
- package/backend/package.json +3 -3
- package/backend/playwright.config.js +1 -13
- package/backend/routes/active-runs.routes.js +18 -0
- package/backend/routes/auth.routes.js +1 -13
- package/backend/routes/backup.routes.js +10 -21
- package/backend/routes/cron.routes.js +1 -13
- package/backend/routes/node.routes.js +11 -148
- package/backend/routes/reports.routes.js +1 -13
- package/backend/routes/runners.routes.js +11 -21
- package/backend/routes/settings.routes.js +6 -17
- package/backend/routes/test-cases.routes.js +1 -13
- package/backend/routes/test-runs.routes.js +1 -13
- package/backend/routes/test-suites.routes.js +1 -13
- package/backend/routes/tests.routes.js +1 -13
- package/backend/routes/trigger.routes.js +23 -165
- package/backend/routes/users.routes.js +1 -13
- package/backend/scripts/manage-runners.mjs +1 -13
- package/backend/server.js +34 -151
- package/backend/services/activeRunsService.js +55 -0
- package/backend/services/backupCronService.js +1 -13
- package/backend/services/backupService.js +7 -17
- package/backend/services/cronService.js +57 -39
- package/backend/services/envService.js +1 -13
- package/backend/services/nodeExecutionService.js +140 -0
- package/backend/services/notificationService.js +7 -17
- package/backend/services/prisma.js +1 -13
- package/backend/services/reportService.js +21 -17
- package/backend/services/runnerService.js +46 -27
- package/backend/services/settingsService.js +19 -19
- package/backend/services/testCaseService.js +1 -13
- package/backend/services/testRunService.js +1 -13
- package/backend/services/testService.js +1 -13
- package/backend/services/testSuiteService.js +1 -13
- package/backend/services/triggerService.js +246 -0
- package/backend/services/userService.js +1 -13
- package/backend/websockets/socketHandler.js +99 -48
- package/bin/plum.js +14 -13
- package/bin/postinstall.js +34 -0
- package/bin/scaffold-tests.js +1 -13
- package/docker-compose.node.yml +1 -13
- package/docker-compose.yml +1 -13
- package/frontend/.svelte-kit/adapter-node/.vite/manifest.json +97 -41
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/BackLink.CvWWuO3h.css +0 -17
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/Badge.D1SV0Gv7.css +0 -17
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/ConfirmModal.Dd3uP-Sk.css +1 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/EmptyState.DUDM4P19.css +1 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/Modal.BuaCfdLj.css +1 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/Pagination.DZmi2Po-.css +0 -17
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/Toast.DENwYn3g.css +0 -17
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_layout.BuhMvMUj.css +0 -17
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.0Eln51hV.css +0 -17
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.5IJAEAjc.css +0 -17
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BR3wgXcZ.css +0 -17
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BWAH0Beh.css +1 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BZfe6nWe.css +0 -17
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.Bj_a_5lv.css +0 -17
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BwgOqeMo.css +1 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.CBHi6pzT.css +0 -17
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.CFnbmY-D.css +0 -17
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.DvMkmYA-.css +1 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page._h2o67kg.css +0 -17
- package/frontend/.svelte-kit/adapter-node/chunks/BackLink.js +0 -17
- package/frontend/.svelte-kit/adapter-node/chunks/Badge.js +1 -18
- package/frontend/.svelte-kit/adapter-node/chunks/ConfirmModal.js +7 -37
- package/frontend/.svelte-kit/adapter-node/chunks/EmptyState.js +25 -25
- package/frontend/.svelte-kit/adapter-node/chunks/Modal.js +21 -0
- package/frontend/.svelte-kit/adapter-node/chunks/Toast.js +12 -18
- package/frontend/.svelte-kit/adapter-node/chunks/attributes.js +0 -17
- package/frontend/.svelte-kit/adapter-node/chunks/auth.js +0 -17
- package/frontend/.svelte-kit/adapter-node/chunks/auth2.js +8 -0
- package/frontend/.svelte-kit/adapter-node/chunks/client.js +0 -17
- package/frontend/.svelte-kit/adapter-node/chunks/common.js +36 -0
- package/frontend/.svelte-kit/adapter-node/chunks/constants.js +8 -20
- package/frontend/.svelte-kit/adapter-node/chunks/escaping.js +0 -17
- package/frontend/.svelte-kit/adapter-node/chunks/exports.js +0 -17
- package/frontend/.svelte-kit/adapter-node/chunks/format.js +0 -17
- package/frontend/.svelte-kit/adapter-node/chunks/index-server.js +0 -17
- package/frontend/.svelte-kit/adapter-node/chunks/index.js +4 -21
- package/frontend/.svelte-kit/adapter-node/chunks/index2.js +0 -17
- package/frontend/.svelte-kit/adapter-node/chunks/internal.js +2 -19
- package/frontend/.svelte-kit/adapter-node/chunks/reports.js +0 -17
- package/frontend/.svelte-kit/adapter-node/chunks/reports2.js +87 -0
- package/frontend/.svelte-kit/adapter-node/chunks/repository.js +87 -0
- package/frontend/.svelte-kit/adapter-node/chunks/runner.js +9 -20
- package/frontend/.svelte-kit/adapter-node/chunks/stores.js +0 -17
- package/frontend/.svelte-kit/adapter-node/chunks/theme.js +0 -17
- package/frontend/.svelte-kit/adapter-node/entries/fallbacks/error.svelte.js +0 -17
- package/frontend/.svelte-kit/adapter-node/entries/pages/_layout.js +0 -17
- package/frontend/.svelte-kit/adapter-node/entries/pages/_layout.svelte.js +2 -17
- package/frontend/.svelte-kit/adapter-node/entries/pages/_page.svelte.js +135 -101
- package/frontend/.svelte-kit/adapter-node/entries/pages/login/_page.svelte.js +5 -20
- package/frontend/.svelte-kit/adapter-node/entries/pages/reports/_id_/_page.svelte.js +5 -20
- package/frontend/.svelte-kit/adapter-node/entries/pages/reports/_page.svelte.js +17 -43
- package/frontend/.svelte-kit/adapter-node/entries/pages/reports/live/_page.svelte.js +27 -42
- package/frontend/.svelte-kit/adapter-node/entries/pages/scheduled-tests/_page.svelte.js +68 -50
- package/frontend/.svelte-kit/adapter-node/entries/pages/settings/_page.svelte.js +272 -113
- package/frontend/.svelte-kit/adapter-node/entries/pages/setup/_page.svelte.js +5 -20
- package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/_page.svelte.js +38 -53
- package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/runs/_id_/_page.svelte.js +61 -30
- package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/suites/_id_/_page.svelte.js +19 -35
- package/frontend/.svelte-kit/adapter-node/index.js +0 -17
- package/frontend/.svelte-kit/adapter-node/internal.js +0 -17
- package/frontend/.svelte-kit/adapter-node/manifest-full.js +1 -18
- package/frontend/.svelte-kit/adapter-node/manifest.js +1 -18
- package/frontend/.svelte-kit/adapter-node/nodes/0.js +2 -19
- package/frontend/.svelte-kit/adapter-node/nodes/1.js +1 -18
- package/frontend/.svelte-kit/adapter-node/nodes/10.js +2 -19
- package/frontend/.svelte-kit/adapter-node/nodes/11.js +2 -19
- package/frontend/.svelte-kit/adapter-node/nodes/12.js +2 -19
- package/frontend/.svelte-kit/adapter-node/nodes/2.js +2 -19
- package/frontend/.svelte-kit/adapter-node/nodes/3.js +1 -18
- package/frontend/.svelte-kit/adapter-node/nodes/4.js +2 -19
- package/frontend/.svelte-kit/adapter-node/nodes/5.js +1 -18
- package/frontend/.svelte-kit/adapter-node/nodes/6.js +1 -18
- package/frontend/.svelte-kit/adapter-node/nodes/7.js +2 -19
- package/frontend/.svelte-kit/adapter-node/nodes/8.js +2 -19
- package/frontend/.svelte-kit/adapter-node/nodes/9.js +1 -18
- package/frontend/.svelte-kit/ambient.d.ts +2 -21
- package/frontend/.svelte-kit/generated/client/app.js +0 -17
- package/frontend/.svelte-kit/generated/client/matchers.js +0 -17
- package/frontend/.svelte-kit/generated/client/nodes/0.js +0 -17
- package/frontend/.svelte-kit/generated/client/nodes/1.js +0 -17
- package/frontend/.svelte-kit/generated/client/nodes/10.js +0 -17
- package/frontend/.svelte-kit/generated/client/nodes/11.js +0 -17
- package/frontend/.svelte-kit/generated/client/nodes/12.js +0 -17
- package/frontend/.svelte-kit/generated/client/nodes/2.js +0 -17
- package/frontend/.svelte-kit/generated/client/nodes/3.js +0 -17
- package/frontend/.svelte-kit/generated/client/nodes/4.js +0 -17
- package/frontend/.svelte-kit/generated/client/nodes/5.js +0 -17
- package/frontend/.svelte-kit/generated/client/nodes/6.js +0 -17
- package/frontend/.svelte-kit/generated/client/nodes/7.js +0 -17
- package/frontend/.svelte-kit/generated/client/nodes/8.js +0 -17
- package/frontend/.svelte-kit/generated/client/nodes/9.js +0 -17
- package/frontend/.svelte-kit/generated/client-optimized/app.js +0 -17
- package/frontend/.svelte-kit/generated/client-optimized/matchers.js +0 -17
- package/frontend/.svelte-kit/generated/client-optimized/nodes/0.js +0 -17
- package/frontend/.svelte-kit/generated/client-optimized/nodes/1.js +0 -17
- package/frontend/.svelte-kit/generated/client-optimized/nodes/10.js +0 -17
- package/frontend/.svelte-kit/generated/client-optimized/nodes/11.js +0 -17
- package/frontend/.svelte-kit/generated/client-optimized/nodes/12.js +0 -17
- package/frontend/.svelte-kit/generated/client-optimized/nodes/2.js +0 -17
- package/frontend/.svelte-kit/generated/client-optimized/nodes/3.js +0 -17
- package/frontend/.svelte-kit/generated/client-optimized/nodes/4.js +0 -17
- package/frontend/.svelte-kit/generated/client-optimized/nodes/5.js +0 -17
- package/frontend/.svelte-kit/generated/client-optimized/nodes/6.js +0 -17
- package/frontend/.svelte-kit/generated/client-optimized/nodes/7.js +0 -17
- package/frontend/.svelte-kit/generated/client-optimized/nodes/8.js +0 -17
- package/frontend/.svelte-kit/generated/client-optimized/nodes/9.js +0 -17
- package/frontend/.svelte-kit/generated/root.js +0 -17
- package/frontend/.svelte-kit/generated/root.svelte +0 -17
- package/frontend/.svelte-kit/generated/server/internal.js +2 -19
- package/frontend/.svelte-kit/non-ambient.d.ts +0 -17
- package/frontend/.svelte-kit/output/client/.vite/manifest.json +406 -352
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/0.BhSG-jZH.css +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/10.CdaQUS6U.css +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/11.BWAH0Beh.css +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/12.Bj_a_5lv.css +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/2.DvMkmYA-.css +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/3.BR3wgXcZ.css +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/4.0Eln51hV.css +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/5.DFV9OgAu.css +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/6.CFnbmY-D.css +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/7.CBHi6pzT.css +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/8.BwgOqeMo.css +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/9._h2o67kg.css +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/BackLink.CvWWuO3h.css +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/Badge.D1SV0Gv7.css +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/Button.FOWXxvc7.css +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/ConfirmModal.Dd3uP-Sk.css +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/EmptyState.DUDM4P19.css +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/Modal.BZpm0HP8.css +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/Modal.BuaCfdLj.css +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/Pagination.DZmi2Po-.css +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/Toast.DENwYn3g.css +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_layout.BuhMvMUj.css +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.0Eln51hV.css +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.5IJAEAjc.css +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BR3wgXcZ.css +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BWAH0Beh.css +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BZfe6nWe.css +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.Bj_a_5lv.css +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BwgOqeMo.css +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.CBHi6pzT.css +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.CFnbmY-D.css +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.DvMkmYA-.css +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page._h2o67kg.css +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/2zMvi6fR.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/3InFPLvE.js +1 -0
- package/frontend/{build/client/_app/immutable/chunks/C67QNx7Z.js → .svelte-kit/output/client/_app/immutable/chunks/BAACMRH5.js} +1 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BAMUGSh7.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BKuh57WU.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{BFEiffAL.js → BUwxRmHf.js} +1 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Bfc47y5P.js +0 -17
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{BVMec-1T.js → BmZ9upwL.js} +1 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/C1Vid6wz.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/C8OURRSs.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CGeZlCaI.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CKDtmZUQ.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CMBQQ9RZ.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CMEtqUfQ.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CNdcuGR0.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CUC98kMZ.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CgnwuKKO.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Co3xKhEp.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CuqnZUex.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{BkKmeUbA.js → CzlPaHY9.js} +1 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DCgHuuvs.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DHM6H-es.js +2 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DMZwI8Cj.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DMyTUV-Y.js +3 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{B0pefNHY.js → DSLBMEpr.js} +1 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{CxTX_lpP.js → DbgD7JLa.js} +1 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Dlnxgs49.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/TOCyHP97.js +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/nURnIknV.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/t-La0hgu.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/w0D4Uzlq.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/entry/app.BkBD0hgA.js +2 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/entry/start.BxeX1Uxs.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/0.ChjDHxSJ.js +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/1.DBSWa36f.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/10.DEbnxfND.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/11.O4cjXCg4.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/12.BWQdeRdX.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/2.BnHalSCi.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/3._S1vrLVF.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/4.D-YT_JJe.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/5.BiFBiWcW.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/6.BNS-W0R_.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/7.C-pKvVZy.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/8.BEUdazrw.js +4 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/9.CrLHYPEJ.js +1 -0
- package/frontend/.svelte-kit/output/client/_app/version.json +1 -1
- package/frontend/.svelte-kit/output/server/.vite/manifest.json +97 -41
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/BackLink.CvWWuO3h.css +0 -17
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/Badge.D1SV0Gv7.css +0 -17
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/ConfirmModal.Dd3uP-Sk.css +1 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/EmptyState.DUDM4P19.css +1 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/Modal.BuaCfdLj.css +1 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/Pagination.DZmi2Po-.css +0 -17
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/Toast.DENwYn3g.css +0 -17
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_layout.BuhMvMUj.css +0 -17
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.0Eln51hV.css +0 -17
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.5IJAEAjc.css +0 -17
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BR3wgXcZ.css +0 -17
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BWAH0Beh.css +1 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BZfe6nWe.css +0 -17
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Bj_a_5lv.css +0 -17
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BwgOqeMo.css +1 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CBHi6pzT.css +0 -17
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CFnbmY-D.css +0 -17
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.DvMkmYA-.css +1 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page._h2o67kg.css +0 -17
- package/frontend/.svelte-kit/output/server/chunks/BackLink.js +0 -17
- package/frontend/.svelte-kit/output/server/chunks/Badge.js +1 -18
- package/frontend/.svelte-kit/output/server/chunks/ConfirmModal.js +7 -37
- package/frontend/.svelte-kit/output/server/chunks/EmptyState.js +25 -25
- package/frontend/.svelte-kit/output/server/chunks/Modal.js +21 -0
- package/frontend/.svelte-kit/output/server/chunks/Toast.js +12 -18
- package/frontend/.svelte-kit/output/server/chunks/attributes.js +0 -17
- package/frontend/.svelte-kit/output/server/chunks/auth.js +0 -17
- package/frontend/.svelte-kit/output/server/chunks/auth2.js +8 -0
- package/frontend/.svelte-kit/output/server/chunks/client.js +0 -17
- package/frontend/.svelte-kit/output/server/chunks/common.js +36 -0
- package/frontend/.svelte-kit/output/server/chunks/constants.js +8 -20
- package/frontend/.svelte-kit/output/server/chunks/escaping.js +0 -17
- package/frontend/.svelte-kit/output/server/chunks/exports.js +0 -17
- package/frontend/.svelte-kit/output/server/chunks/format.js +0 -17
- package/frontend/.svelte-kit/output/server/chunks/index-server.js +0 -17
- package/frontend/.svelte-kit/output/server/chunks/index.js +4 -21
- package/frontend/.svelte-kit/output/server/chunks/index2.js +0 -17
- package/frontend/.svelte-kit/output/server/chunks/internal.js +2 -19
- package/frontend/.svelte-kit/output/server/chunks/reports.js +0 -17
- package/frontend/.svelte-kit/output/server/chunks/reports2.js +87 -0
- package/frontend/.svelte-kit/output/server/chunks/repository.js +87 -0
- package/frontend/.svelte-kit/output/server/chunks/runner.js +9 -20
- package/frontend/.svelte-kit/output/server/chunks/stores.js +0 -17
- package/frontend/.svelte-kit/output/server/chunks/theme.js +0 -17
- package/frontend/.svelte-kit/output/server/entries/fallbacks/error.svelte.js +0 -17
- package/frontend/.svelte-kit/output/server/entries/pages/_layout.js +0 -17
- package/frontend/.svelte-kit/output/server/entries/pages/_layout.svelte.js +2 -17
- package/frontend/.svelte-kit/output/server/entries/pages/_page.svelte.js +135 -101
- package/frontend/.svelte-kit/output/server/entries/pages/login/_page.svelte.js +5 -20
- package/frontend/.svelte-kit/output/server/entries/pages/reports/_id_/_page.svelte.js +5 -20
- package/frontend/.svelte-kit/output/server/entries/pages/reports/_page.svelte.js +17 -43
- package/frontend/.svelte-kit/output/server/entries/pages/reports/live/_page.svelte.js +27 -42
- package/frontend/.svelte-kit/output/server/entries/pages/scheduled-tests/_page.svelte.js +68 -50
- package/frontend/.svelte-kit/output/server/entries/pages/settings/_page.svelte.js +272 -113
- package/frontend/.svelte-kit/output/server/entries/pages/setup/_page.svelte.js +5 -20
- package/frontend/.svelte-kit/output/server/entries/pages/test-repository/_page.svelte.js +38 -53
- package/frontend/.svelte-kit/output/server/entries/pages/test-repository/runs/_id_/_page.svelte.js +61 -30
- package/frontend/.svelte-kit/output/server/entries/pages/test-repository/suites/_id_/_page.svelte.js +19 -35
- package/frontend/.svelte-kit/output/server/index.js +0 -17
- package/frontend/.svelte-kit/output/server/internal.js +0 -17
- package/frontend/.svelte-kit/output/server/manifest-full.js +1 -18
- package/frontend/.svelte-kit/output/server/manifest.js +1 -18
- package/frontend/.svelte-kit/output/server/nodes/0.js +2 -19
- package/frontend/.svelte-kit/output/server/nodes/1.js +1 -18
- package/frontend/.svelte-kit/output/server/nodes/10.js +2 -19
- package/frontend/.svelte-kit/output/server/nodes/11.js +2 -19
- package/frontend/.svelte-kit/output/server/nodes/12.js +2 -19
- package/frontend/.svelte-kit/output/server/nodes/2.js +2 -19
- package/frontend/.svelte-kit/output/server/nodes/3.js +1 -18
- package/frontend/.svelte-kit/output/server/nodes/4.js +2 -19
- package/frontend/.svelte-kit/output/server/nodes/5.js +1 -18
- package/frontend/.svelte-kit/output/server/nodes/6.js +1 -18
- package/frontend/.svelte-kit/output/server/nodes/7.js +2 -19
- package/frontend/.svelte-kit/output/server/nodes/8.js +2 -19
- package/frontend/.svelte-kit/output/server/nodes/9.js +1 -18
- package/frontend/Dockerfile +1 -13
- package/frontend/build/client/_app/immutable/assets/0.BhSG-jZH.css +0 -17
- 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 +0 -17
- 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 +1 -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 +0 -17
- 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.DvMkmYA-.css +1 -0
- package/frontend/build/client/_app/immutable/assets/2.DvMkmYA-.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/2.DvMkmYA-.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/3.BR3wgXcZ.css +0 -17
- 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 +0 -17
- 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 +0 -17
- 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 +0 -17
- 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 +0 -17
- 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 +1 -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 +0 -17
- 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 +0 -17
- 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 +0 -17
- 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 +0 -17
- 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 +1 -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 +1 -0
- package/frontend/build/client/_app/immutable/assets/EmptyState.DUDM4P19.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/EmptyState.DUDM4P19.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/Modal.BZpm0HP8.css +1 -0
- 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/build/client/_app/immutable/assets/Modal.BuaCfdLj.css +1 -0
- 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 +0 -17
- 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 +0 -17
- 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 +0 -17
- 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 +0 -17
- 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 +0 -17
- 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 +0 -17
- 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 +1 -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 +0 -17
- 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 +0 -17
- 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 +1 -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 +0 -17
- 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 +0 -17
- 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.DvMkmYA-.css +1 -0
- package/frontend/build/client/_app/immutable/assets/_page.DvMkmYA-.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.DvMkmYA-.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page._h2o67kg.css +0 -17
- 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/2zMvi6fR.js +1 -0
- 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/3InFPLvE.js +1 -0
- package/frontend/build/client/_app/immutable/chunks/3InFPLvE.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/3InFPLvE.js.gz +0 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/C67QNx7Z.js → build/client/_app/immutable/chunks/BAACMRH5.js} +1 -18
- 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/BAMUGSh7.js +1 -0
- package/frontend/build/client/_app/immutable/chunks/BAMUGSh7.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BAMUGSh7.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/BKuh57WU.js +1 -0
- package/frontend/build/client/_app/immutable/chunks/BKuh57WU.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BKuh57WU.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{BFEiffAL.js → BUwxRmHf.js} +1 -18
- package/frontend/build/client/_app/immutable/chunks/BUwxRmHf.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BUwxRmHf.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/Bfc47y5P.js +0 -17
- 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/{BVMec-1T.js → BmZ9upwL.js} +1 -18
- package/frontend/build/client/_app/immutable/chunks/BmZ9upwL.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BmZ9upwL.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/C1Vid6wz.js +1 -0
- 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/C8OURRSs.js +1 -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/CGeZlCaI.js +1 -0
- package/frontend/build/client/_app/immutable/chunks/CGeZlCaI.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/CGeZlCaI.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/CKDtmZUQ.js +1 -0
- 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 +1 -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/CMEtqUfQ.js +1 -0
- package/frontend/build/client/_app/immutable/chunks/CMEtqUfQ.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/CMEtqUfQ.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/CNdcuGR0.js +1 -0
- package/frontend/build/client/_app/immutable/chunks/CNdcuGR0.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/CNdcuGR0.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/CUC98kMZ.js +1 -0
- package/frontend/build/client/_app/immutable/chunks/CUC98kMZ.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/CUC98kMZ.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/CgnwuKKO.js +1 -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/Co3xKhEp.js +1 -0
- package/frontend/build/client/_app/immutable/chunks/Co3xKhEp.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/Co3xKhEp.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/CuqnZUex.js +1 -0
- package/frontend/build/client/_app/immutable/chunks/CuqnZUex.js.br +1 -0
- package/frontend/build/client/_app/immutable/chunks/CuqnZUex.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{BkKmeUbA.js → CzlPaHY9.js} +1 -18
- package/frontend/build/client/_app/immutable/chunks/CzlPaHY9.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/CzlPaHY9.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/DCgHuuvs.js +1 -0
- package/frontend/build/client/_app/immutable/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/DHM6H-es.js +2 -0
- package/frontend/build/client/_app/immutable/chunks/DHM6H-es.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DHM6H-es.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/DMZwI8Cj.js +1 -0
- package/frontend/build/client/_app/immutable/chunks/DMZwI8Cj.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DMZwI8Cj.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/DMyTUV-Y.js +3 -0
- package/frontend/build/client/_app/immutable/chunks/DMyTUV-Y.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DMyTUV-Y.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{B0pefNHY.js → DSLBMEpr.js} +1 -18
- package/frontend/build/client/_app/immutable/chunks/DSLBMEpr.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DSLBMEpr.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{CxTX_lpP.js → DbgD7JLa.js} +1 -18
- package/frontend/build/client/_app/immutable/chunks/DbgD7JLa.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DbgD7JLa.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/Dlnxgs49.js +1 -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/TOCyHP97.js +6 -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/nURnIknV.js +1 -0
- package/frontend/build/client/_app/immutable/chunks/nURnIknV.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/nURnIknV.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/t-La0hgu.js +1 -0
- 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/w0D4Uzlq.js +1 -0
- 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.BkBD0hgA.js +2 -0
- package/frontend/build/client/_app/immutable/entry/app.BkBD0hgA.js.br +0 -0
- package/frontend/build/client/_app/immutable/entry/app.BkBD0hgA.js.gz +0 -0
- package/frontend/build/client/_app/immutable/entry/start.BxeX1Uxs.js +1 -0
- package/frontend/build/client/_app/immutable/entry/start.BxeX1Uxs.js.br +2 -0
- package/frontend/build/client/_app/immutable/entry/start.BxeX1Uxs.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/0.ChjDHxSJ.js +6 -0
- package/frontend/build/client/_app/immutable/nodes/0.ChjDHxSJ.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/0.ChjDHxSJ.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/1.DBSWa36f.js +1 -0
- package/frontend/build/client/_app/immutable/nodes/1.DBSWa36f.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/1.DBSWa36f.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/10.DEbnxfND.js +1 -0
- package/frontend/build/client/_app/immutable/nodes/10.DEbnxfND.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/10.DEbnxfND.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/11.O4cjXCg4.js +1 -0
- package/frontend/build/client/_app/immutable/nodes/11.O4cjXCg4.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/11.O4cjXCg4.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/12.BWQdeRdX.js +1 -0
- package/frontend/build/client/_app/immutable/nodes/12.BWQdeRdX.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/12.BWQdeRdX.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/2.BnHalSCi.js +1 -0
- package/frontend/build/client/_app/immutable/nodes/2.BnHalSCi.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/2.BnHalSCi.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/3._S1vrLVF.js +1 -0
- package/frontend/build/client/_app/immutable/nodes/3._S1vrLVF.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/3._S1vrLVF.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/4.D-YT_JJe.js +1 -0
- package/frontend/build/client/_app/immutable/nodes/4.D-YT_JJe.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/4.D-YT_JJe.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/5.BiFBiWcW.js +1 -0
- package/frontend/build/client/_app/immutable/nodes/5.BiFBiWcW.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/5.BiFBiWcW.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/6.BNS-W0R_.js +1 -0
- package/frontend/build/client/_app/immutable/nodes/6.BNS-W0R_.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/6.BNS-W0R_.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/7.C-pKvVZy.js +1 -0
- package/frontend/build/client/_app/immutable/nodes/7.C-pKvVZy.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/7.C-pKvVZy.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/8.BEUdazrw.js +4 -0
- package/frontend/build/client/_app/immutable/nodes/8.BEUdazrw.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/8.BEUdazrw.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/9.CrLHYPEJ.js +1 -0
- package/frontend/build/client/_app/immutable/nodes/9.CrLHYPEJ.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/9.CrLHYPEJ.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 +0 -17
- package/frontend/build/handler.js +0 -17
- package/frontend/build/index.js +0 -17
- package/frontend/build/server/chunks/0-Cn_2hzqk.js +17 -0
- package/frontend/build/server/chunks/0-Cn_2hzqk.js.map +1 -0
- package/frontend/build/server/chunks/1-BrRGJFSB.js +9 -0
- package/frontend/build/server/chunks/1-BrRGJFSB.js.map +1 -0
- package/frontend/build/server/chunks/10-l6_ikL_D.js +9 -0
- package/frontend/build/server/chunks/10-l6_ikL_D.js.map +1 -0
- package/frontend/build/server/chunks/11-BLPbHJqB.js +9 -0
- package/frontend/build/server/chunks/11-BLPbHJqB.js.map +1 -0
- package/frontend/build/server/chunks/12-S1ujUrHy.js +9 -0
- package/frontend/build/server/chunks/12-S1ujUrHy.js.map +1 -0
- package/frontend/build/server/chunks/2-Cte30Dgy.js +9 -0
- package/frontend/build/server/chunks/2-Cte30Dgy.js.map +1 -0
- package/frontend/build/server/chunks/3-BHkXVoNI.js +9 -0
- package/frontend/build/server/chunks/3-BHkXVoNI.js.map +1 -0
- package/frontend/build/server/chunks/4-Bo04DC5Z.js +9 -0
- package/frontend/build/server/chunks/4-Bo04DC5Z.js.map +1 -0
- package/frontend/build/server/chunks/5-F1ZsXMt2.js +9 -0
- package/frontend/build/server/chunks/5-F1ZsXMt2.js.map +1 -0
- package/frontend/build/server/chunks/6-FlZLnYJ6.js +9 -0
- package/frontend/build/server/chunks/6-FlZLnYJ6.js.map +1 -0
- package/frontend/build/server/chunks/7-DiQJZEF_.js +9 -0
- package/frontend/build/server/chunks/7-DiQJZEF_.js.map +1 -0
- package/frontend/build/server/chunks/8-DXReUGxi.js +9 -0
- package/frontend/build/server/chunks/8-DXReUGxi.js.map +1 -0
- package/frontend/build/server/chunks/9-Cy_mGmt4.js +9 -0
- package/frontend/build/server/chunks/9-Cy_mGmt4.js.map +1 -0
- package/frontend/build/server/chunks/BackLink-BJ8NaemM.js +13 -0
- package/frontend/build/server/chunks/{BackLink-KxZNqsaq.js.map → BackLink-BJ8NaemM.js.map} +1 -17
- package/frontend/build/server/chunks/Badge-44ZTDx0V.js +13 -0
- package/frontend/build/server/chunks/{Badge-B5V-z6pI.js.map → Badge-44ZTDx0V.js.map} +1 -17
- package/frontend/build/server/chunks/ConfirmModal-C0EAXcq_.js +44 -0
- package/frontend/build/server/chunks/ConfirmModal-C0EAXcq_.js.map +1 -0
- package/frontend/build/server/chunks/EmptyState-BA_eXaeR.js +34 -0
- package/frontend/build/server/chunks/EmptyState-BA_eXaeR.js.map +1 -0
- package/frontend/build/server/chunks/Modal-DChG187n.js +21 -0
- package/frontend/build/server/chunks/Modal-DChG187n.js.map +1 -0
- package/frontend/build/server/chunks/Toast-v-q4ZnYq.js +30 -0
- package/frontend/build/server/chunks/Toast-v-q4ZnYq.js.map +1 -0
- package/frontend/build/server/chunks/_layout.svelte-CHVI3Prt.js +24 -0
- package/frontend/build/server/chunks/_layout.svelte-CHVI3Prt.js.map +1 -0
- package/frontend/build/server/chunks/{_page.svelte-LcJmR5du.js → _page.svelte-1as75nPc.js} +28 -51
- package/frontend/build/server/chunks/_page.svelte-1as75nPc.js.map +1 -0
- package/frontend/build/server/chunks/_page.svelte-1jo8MapI.js +96 -0
- package/frontend/build/server/chunks/_page.svelte-1jo8MapI.js.map +1 -0
- package/frontend/build/server/chunks/{_page.svelte-C0vstY93.js → _page.svelte-BuFusRK1.js} +74 -56
- package/frontend/build/server/chunks/_page.svelte-BuFusRK1.js.map +1 -0
- package/frontend/build/server/chunks/{_page.svelte-gnktnXKP.js → _page.svelte-CAVyp70V.js} +37 -51
- package/frontend/build/server/chunks/_page.svelte-CAVyp70V.js.map +1 -0
- package/frontend/build/server/chunks/{_page.svelte-CC27sZag.js → _page.svelte-CB8-QBNg.js} +42 -57
- package/frontend/build/server/chunks/_page.svelte-CB8-QBNg.js.map +1 -0
- package/frontend/build/server/chunks/{_page.svelte-DqWsUJRp.js → _page.svelte-CWWeZuid.js} +24 -40
- package/frontend/build/server/chunks/_page.svelte-CWWeZuid.js.map +1 -0
- package/frontend/build/server/chunks/_page.svelte-CpB-fgJl.js +219 -0
- package/frontend/build/server/chunks/_page.svelte-CpB-fgJl.js.map +1 -0
- package/frontend/build/server/chunks/_page.svelte-D3E6Eojd.js +27 -0
- package/frontend/build/server/chunks/_page.svelte-D3E6Eojd.js.map +1 -0
- package/frontend/build/server/chunks/_page.svelte-Kg69DDaM.js +27 -0
- package/frontend/build/server/chunks/_page.svelte-Kg69DDaM.js.map +1 -0
- package/frontend/build/server/chunks/{_page.svelte-BETENC2e.js → _page.svelte-L9fuiN_q.js} +13 -28
- package/frontend/build/server/chunks/_page.svelte-L9fuiN_q.js.map +1 -0
- package/frontend/build/server/chunks/_page.svelte-wKyUmA2e.js +724 -0
- package/frontend/build/server/chunks/_page.svelte-wKyUmA2e.js.map +1 -0
- package/frontend/build/server/chunks/attributes-BeaNKpgU.js +0 -17
- package/frontend/build/server/chunks/attributes-BeaNKpgU.js.map +0 -16
- package/frontend/build/server/chunks/{auth-rlH-cIzn.js → auth-Chw-wBpI.js} +2 -19
- package/frontend/build/server/chunks/{auth-rlH-cIzn.js.map → auth-Chw-wBpI.js.map} +1 -17
- package/frontend/build/server/chunks/auth2-C02yYDpz.js +6 -0
- package/frontend/build/server/chunks/auth2-C02yYDpz.js.map +1 -0
- package/frontend/build/server/chunks/{client-DyII78e0.js → client-DEmxR_a-.js} +2 -19
- package/frontend/build/server/chunks/{client-DyII78e0.js.map → client-DEmxR_a-.js.map} +1 -17
- package/frontend/build/server/chunks/common-DYYTVHPw.js +21 -0
- package/frontend/build/server/chunks/common-DYYTVHPw.js.map +1 -0
- package/frontend/build/server/chunks/constants-CXTaQaB6.js +22 -0
- package/frontend/build/server/chunks/constants-CXTaQaB6.js.map +1 -0
- package/frontend/build/server/chunks/error.svelte-BD3xNemk.js +28 -0
- package/frontend/build/server/chunks/{error.svelte-BDW3iP1O.js.map → error.svelte-BD3xNemk.js.map} +1 -17
- package/frontend/build/server/chunks/escaping-CqgfEcN3.js +0 -17
- package/frontend/build/server/chunks/escaping-CqgfEcN3.js.map +0 -16
- package/frontend/build/server/chunks/exports-D0QHgeSL.js +0 -17
- package/frontend/build/server/chunks/exports-D0QHgeSL.js.map +0 -16
- package/frontend/build/server/chunks/{format-D26ZQccb.js → format-CiNRMfHu.js} +2 -19
- package/frontend/build/server/chunks/{format-D26ZQccb.js.map → format-CiNRMfHu.js.map} +1 -17
- package/frontend/build/server/chunks/index-server-B3M9vyh2.js +14 -0
- package/frontend/build/server/chunks/index-server-B3M9vyh2.js.map +1 -0
- package/frontend/build/server/chunks/{index2-DG8XHU5D.js → index2-5R1tbrep.js} +2 -19
- package/frontend/build/server/chunks/{index2-DG8XHU5D.js.map → index2-5R1tbrep.js.map} +1 -17
- package/frontend/build/server/chunks/reports-D_ApeeNh.js +23 -0
- package/frontend/build/server/chunks/{reports-Bgi7V5N7.js.map → reports-D_ApeeNh.js.map} +1 -17
- package/frontend/build/server/chunks/reports2-BtElN_53.js +47 -0
- package/frontend/build/server/chunks/reports2-BtElN_53.js.map +1 -0
- package/frontend/build/server/chunks/repository-FYYV_vKE.js +47 -0
- package/frontend/build/server/chunks/repository-FYYV_vKE.js.map +1 -0
- package/frontend/build/server/chunks/runner-DC7hXbnY.js +32 -0
- package/frontend/build/server/chunks/runner-DC7hXbnY.js.map +1 -0
- package/frontend/build/server/chunks/stores-BLenR3c1.js +27 -0
- package/frontend/build/server/chunks/{stores-DlkXV308.js.map → stores-BLenR3c1.js.map} +1 -17
- package/frontend/build/server/chunks/theme-nAx-GvX_.js +10 -0
- package/frontend/build/server/chunks/theme-nAx-GvX_.js.map +1 -0
- package/frontend/build/server/index.js +3 -20
- package/frontend/build/server/index.js.map +1 -17
- package/frontend/build/server/manifest.js +14 -31
- package/frontend/build/server/manifest.js.map +1 -17
- package/frontend/build/shims.js +0 -17
- package/frontend/package.json +1 -0
- package/frontend/src/app.css +1 -13
- package/frontend/src/app.html +1 -13
- package/frontend/src/lib/api/activeRuns.js +18 -0
- package/frontend/src/lib/api/auth.js +1 -13
- package/frontend/src/lib/api/reports.js +1 -13
- package/frontend/src/lib/api/repository.js +1 -13
- package/frontend/src/lib/api/runners.js +26 -21
- package/frontend/src/lib/api/schedules.js +1 -13
- package/frontend/src/lib/api/settings.js +11 -23
- package/frontend/src/lib/api/tests.js +1 -13
- package/frontend/src/lib/api/users.js +1 -13
- package/frontend/src/lib/components/icons/BrowserIcon.svelte +1 -13
- package/frontend/src/lib/components/layout/Nav.svelte +1 -13
- package/frontend/src/lib/components/layout/PageShell.svelte +1 -13
- package/frontend/src/lib/components/layout/RunnerPanel.svelte +146 -105
- package/frontend/src/lib/components/ui/AutomatedBadge.svelte +2 -31
- package/frontend/src/lib/components/ui/BackLink.svelte +1 -30
- package/frontend/src/lib/components/ui/Badge.svelte +1 -13
- package/frontend/src/lib/components/ui/Button.svelte +1 -13
- package/frontend/src/lib/components/ui/CaseIdChip.svelte +1 -30
- package/frontend/src/lib/components/ui/ConfirmModal.svelte +8 -17
- package/frontend/src/lib/components/ui/EmptyState.svelte +26 -15
- package/frontend/src/lib/components/ui/Modal.svelte +1 -13
- package/frontend/src/lib/components/ui/Pagination.svelte +1 -13
- package/frontend/src/lib/components/ui/PriorityBadge.svelte +1 -30
- package/frontend/src/lib/components/ui/ResultChip.svelte +1 -30
- package/frontend/src/lib/components/ui/StatusDot.svelte +1 -30
- package/frontend/src/lib/components/ui/StepKeyword.svelte +1 -30
- package/frontend/src/lib/components/ui/StepStatusIcon.svelte +1 -30
- package/frontend/src/lib/components/ui/TagChip.svelte +1 -30
- package/frontend/src/lib/components/ui/Terminal.svelte +1 -13
- package/frontend/src/lib/components/ui/Toast.svelte +1 -13
- package/frontend/src/lib/constants.js +5 -17
- package/frontend/src/lib/copy/auth.js +29 -0
- package/frontend/src/lib/copy/common.js +39 -0
- package/frontend/src/lib/copy/dashboard.js +28 -0
- package/frontend/src/lib/copy/reports.js +83 -0
- package/frontend/src/lib/copy/repository.js +153 -0
- package/frontend/src/lib/copy/runners.js +59 -0
- package/frontend/src/lib/copy/schedules.js +96 -0
- package/frontend/src/lib/copy/settings.js +295 -0
- package/frontend/src/lib/index.js +1 -13
- package/frontend/src/lib/socketEvents.js +36 -0
- package/frontend/src/lib/stores/auth.js +1 -13
- package/frontend/src/lib/stores/runner.js +10 -18
- package/frontend/src/lib/stores/theme.js +1 -13
- package/frontend/src/lib/styles/global.css +1 -13
- package/frontend/src/lib/styles/reset.css +1 -13
- package/frontend/src/lib/styles/tokens.css +1 -13
- package/frontend/src/lib/utils/format.js +1 -13
- package/frontend/src/routes/+layout.js +1 -13
- package/frontend/src/routes/+layout.svelte +1 -13
- package/frontend/src/routes/+page.svelte +296 -115
- package/frontend/src/routes/login/+page.svelte +22 -23
- package/frontend/src/routes/reports/+page.svelte +37 -38
- package/frontend/src/routes/reports/[id]/+page.svelte +54 -43
- package/frontend/src/routes/reports/live/+page.svelte +57 -42
- package/frontend/src/routes/scheduled-tests/+page.svelte +134 -117
- package/frontend/src/routes/settings/+page.svelte +490 -267
- package/frontend/src/routes/setup/+page.svelte +30 -27
- package/frontend/src/routes/test-repository/+page.svelte +120 -91
- package/frontend/src/routes/test-repository/runs/[id]/+page.svelte +95 -60
- package/frontend/src/routes/test-repository/suites/[id]/+page.svelte +145 -91
- package/frontend/svelte.config.js +1 -13
- package/frontend/vite.config.js +1 -13
- package/package.json +3 -2
- package/resources/mit-license.txt +2 -0
- package/backend/scripts/create-test.js +0 -149
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/ConfirmModal.CdhOYVBb.css +0 -18
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/EmptyState.BdO1q9cJ.css +0 -18
- 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/_app/immutable/assets/_page.CrXpMrqh.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/2.CrXpMrqh.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/ConfirmModal.CdhOYVBb.css +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/ConfirmModal.DmxkcwXv.css +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/EmptyState.BdO1q9cJ.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/assets/_page.CrXpMrqh.css +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BFgtfHj2.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BIRVeCLU.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BKCNyxZ2.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BLAiBE__.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/C4eeChIU.js +0 -18
- 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/CyQ_oBw2.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DGryW1Vp.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DIx44H9N.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DP6QP4L6.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/chunks/raHbXn_9.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/uFRI_bmR.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/entry/start.MMlC62np.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/0.CKD9Qja6.js +0 -23
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/1.Dbck5ct8.js +0 -18
- 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/ConfirmModal.CdhOYVBb.css +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/_app/immutable/assets/_page.CrXpMrqh.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/2.CrXpMrqh.css +0 -18
- 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/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 +0 -18
- 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 +0 -18
- 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/EmptyState.BdO1q9cJ.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/EmptyState.BdO1q9cJ.css.gz +0 -0
- 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/assets/_page.CrXpMrqh.css +0 -18
- 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/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/BFgtfHj2.js +0 -18
- package/frontend/build/client/_app/immutable/chunks/BFgtfHj2.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BFgtfHj2.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 +0 -18
- 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 +0 -18
- 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 +0 -18
- 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 +0 -18
- 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 +0 -18
- 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 +0 -18
- 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 +0 -18
- 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 +0 -18
- 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/entry/start.MMlC62np.js +0 -18
- package/frontend/build/client/_app/immutable/entry/start.MMlC62np.js.br +0 -18
- package/frontend/build/client/_app/immutable/entry/start.MMlC62np.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 +0 -18
- 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 +0 -34
- package/frontend/build/server/chunks/0-Dzas6zkl.js.map +0 -17
- package/frontend/build/server/chunks/1-B4EsP8yr.js +0 -26
- package/frontend/build/server/chunks/1-B4EsP8yr.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/2-Bkz8H7CT.js +0 -26
- package/frontend/build/server/chunks/2-Bkz8H7CT.js.map +0 -17
- package/frontend/build/server/chunks/3-DDtaiqu7.js +0 -26
- 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 +0 -26
- package/frontend/build/server/chunks/5-CK5hY2WF.js.map +0 -17
- package/frontend/build/server/chunks/6-Cps9fL3Z.js +0 -26
- 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 +0 -26
- package/frontend/build/server/chunks/9-CUJxgoIN.js.map +0 -17
- package/frontend/build/server/chunks/BackLink-KxZNqsaq.js +0 -30
- package/frontend/build/server/chunks/Badge-B5V-z6pI.js +0 -30
- package/frontend/build/server/chunks/Button-CuacyA7Y.js +0 -33
- package/frontend/build/server/chunks/Button-CuacyA7Y.js.map +0 -17
- package/frontend/build/server/chunks/ConfirmModal-DBtnLLsU.js +0 -73
- 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 +0 -39
- 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 +0 -183
- 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 +0 -43
- package/frontend/build/server/chunks/_page.svelte-DALHRFEX.js.map +0 -17
- package/frontend/build/server/chunks/_page.svelte-DNNyBx4y.js +0 -43
- 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/constants-Drz-Vo39.js +0 -35
- package/frontend/build/server/chunks/constants-Drz-Vo39.js.map +0 -17
- package/frontend/build/server/chunks/error.svelte-BDW3iP1O.js +0 -45
- package/frontend/build/server/chunks/index-server-Dr2Nvcmu.js +0 -31
- package/frontend/build/server/chunks/index-server-Dr2Nvcmu.js.map +0 -17
- package/frontend/build/server/chunks/reports-Bgi7V5N7.js +0 -40
- package/frontend/build/server/chunks/runner-D18Ml_vF.js +0 -42
- package/frontend/build/server/chunks/runner-D18Ml_vF.js.map +0 -17
- package/frontend/build/server/chunks/stores-DlkXV308.js +0 -44
- package/frontend/build/server/chunks/theme-D_NKm6iI.js +0 -27
- package/frontend/build/server/chunks/theme-D_NKm6iI.js.map +0 -17
- package/resources/gpl-3.0-license.txt +0 -14
|
Binary file
|
|
Binary file
|
|
@@ -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{w as o}from"./C67QNx7Z.js";const e="plum-theme",m=localStorage.getItem(e)??"light",a=o(m);a.subscribe(t=>{localStorage.setItem(e,t),document.documentElement.setAttribute("data-theme",t)});export{a as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
*
|
|
4
|
-
* Plum is free software: you can redistribute it and/or modify
|
|
5
|
-
* it under the terms of the GNU General Public License as published by
|
|
6
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
7
|
-
* (at your option) any later version.
|
|
8
|
-
*
|
|
9
|
-
* Plum is distributed in the hope that it will be useful,
|
|
10
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
* GNU General Public License for more details.
|
|
13
|
-
*
|
|
14
|
-
* You should have received a copy of the GNU General Public License
|
|
15
|
-
* along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.CKD9Qja6.js","../chunks/ll-VsEGv.js","../chunks/C67QNx7Z.js","../chunks/DGryW1Vp.js","../chunks/CVV6HrFb.js","../chunks/DmRbbcS3.js","../chunks/KJdjlibc.js","../chunks/BFgtfHj2.js","../chunks/CstKKb9b.js","../chunks/DIx44H9N.js","../chunks/BgNaeXAp.js","../chunks/C3SY6-sX.js","../chunks/CxTX_lpP.js","../chunks/BFEiffAL.js","../chunks/B0pefNHY.js","../chunks/IFIFk6zi.js","../chunks/BeO8veBd.js","../assets/ConfirmModal.DmxkcwXv.css","../chunks/BIRVeCLU.js","../assets/Badge.D1SV0Gv7.css","../chunks/BVMec-1T.js","../assets/0.BhSG-jZH.css","../nodes/1.Dbck5ct8.js","../nodes/2.BqQhRvYh.js","../chunks/raHbXn_9.js","../chunks/BKCNyxZ2.js","../assets/EmptyState.BdO1q9cJ.css","../assets/2.CrXpMrqh.css","../nodes/3.BZRTKadS.js","../chunks/uFRI_bmR.js","../assets/3.BR3wgXcZ.css","../nodes/4.BfKoPKdM.js","../chunks/DP6QP4L6.js","../assets/Pagination.DZmi2Po-.css","../assets/4.0Eln51hV.css","../nodes/5.B4a2uCWn.js","../chunks/Bfc47y5P.js","../chunks/C4eeChIU.js","../chunks/CyQ_oBw2.js","../assets/BackLink.CvWWuO3h.css","../assets/5.DFV9OgAu.css","../nodes/6.CI508CMS.js","../chunks/BLAiBE__.js","../assets/6.CFnbmY-D.css","../nodes/7.3x_eiof1.js","../chunks/BkKmeUbA.js","../assets/Button.FOWXxvc7.css","../assets/7.CBHi6pzT.css","../nodes/8.BfUuob4H.js","../assets/8.Bhof07Eg.css","../nodes/9.BZhCKRJe.js","../assets/9._h2o67kg.css","../nodes/10.BfmGpmC1.js","../assets/10.CdaQUS6U.css","../nodes/11.C7l9HPom.js","../assets/11.BJ-I1gHO.css","../nodes/12.Iu9bcGdC.js","../assets/12.Bj_a_5lv.css"])))=>i.map(i=>d[i]);
|
|
19
|
-
var W=r=>{throw TypeError(r)};var G=(r,t,s)=>t.has(r)||W("Cannot "+s);var u=(r,t,s)=>(G(r,t,"read from private field"),s?s.call(r):t.get(r)),w=(r,t,s)=>t.has(r)?W("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(r):t.set(r,s),D=(r,t,s,a)=>(G(r,t,"write to private field"),a?a.call(r,s):t.set(r,s),s);import{s as V,O as Q,c as E,at as X,af as Z,W as M,h as N,a2 as $,a1 as tt,a3 as et,a9 as rt,aa as st,ab as ot,p as at,ah as nt,ai as it,o as ct,A as ut,f as T,j as lt,d as _t,au as I,k as mt,n as dt,t as ft,V as x}from"../chunks/C67QNx7Z.js";import{f as ht,m as vt,u as Et,a as b,c as S,t as z,b as gt,s as yt}from"../chunks/ll-VsEGv.js";import{i as C}from"../chunks/CVV6HrFb.js";import{p as j,a as pt}from"../chunks/BeO8veBd.js";import{b as B}from"../chunks/BLAiBE__.js";const Pt="modulepreload",Rt=function(r,t){return new URL(r,t).href},Y={},l=function(t,s,a){let n=Promise.resolve();if(s&&s.length>0){const o=document.getElementsByTagName("link"),e=document.querySelector("meta[property=csp-nonce]"),d=(e==null?void 0:e.nonce)||(e==null?void 0:e.getAttribute("nonce"));n=Promise.allSettled(s.map(_=>{if(_=Rt(_,a),_ in Y)return;Y[_]=!0;const y=_.endsWith(".css"),k=y?'[rel="stylesheet"]':"";if(!!a)for(let p=o.length-1;p>=0;p--){const i=o[p];if(i.href===_&&(!y||i.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${_}"]${k}`))return;const h=document.createElement("link");if(h.rel=y?"stylesheet":Pt,y||(h.as="script"),h.crossOrigin="",h.href=_,d&&h.setAttribute("nonce",d),document.head.appendChild(h),y)return new Promise((p,i)=>{h.addEventListener("load",p),h.addEventListener("error",()=>i(new Error(`Unable to preload CSS for ${_}`)))})}))}function c(o){const e=new Event("vite:preloadError",{cancelable:!0});if(e.payload=o,window.dispatchEvent(e),!e.defaultPrevented)throw o}return n.then(o=>{for(const e of o||[])e.status==="rejected"&&c(e.reason);return t().catch(c)})},Bt={};function bt(r){return class extends Ot{constructor(t){super({component:r,...t})}}}var g,m;class Ot{constructor(t){w(this,g);w(this,m);var c;var s=new Map,a=(o,e)=>{var d=M(e);return s.set(o,d),d};const n=new Proxy({...t.props||{},$$events:{}},{get(o,e){return E(s.get(e)??a(e,Reflect.get(o,e)))},has(o,e){return e===Q?!0:(E(s.get(e)??a(e,Reflect.get(o,e))),Reflect.has(o,e))},set(o,e,d){return V(s.get(e)??a(e,d),d),Reflect.set(o,e,d)}});D(this,m,(t.hydrate?ht:vt)(t.component,{target:t.target,anchor:t.anchor,props:n,context:t.context,intro:t.intro??!1,recover:t.recover})),(!((c=t==null?void 0:t.props)!=null&&c.$$host)||t.sync===!1)&&X(),D(this,g,n.$$events);for(const o of Object.keys(u(this,m)))o==="$set"||o==="$destroy"||o==="$on"||Z(this,o,{get(){return u(this,m)[o]},set(e){u(this,m)[o]=e},enumerable:!0});u(this,m).$set=o=>{Object.assign(n,o)},u(this,m).$destroy=()=>{Et(u(this,m))}}$set(t){u(this,m).$set(t)}$on(t,s){u(this,g)[t]=u(this,g)[t]||[];const a=(...n)=>s.call(this,...n);return u(this,g)[t].push(a),()=>{u(this,g)[t]=u(this,g)[t].filter(n=>n!==a)}}$destroy(){u(this,m).$destroy()}}g=new WeakMap,m=new WeakMap;function q(r,t,s){N&&$();var a=r,n,c;tt(()=>{n!==(n=t())&&(c&&(st(c),c=null),n&&(c=rt(()=>s(a,n))))},et),N&&(a=ot)}var At=z('<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>'),Lt=z("<!> <!>",1);function Tt(r,t){at(t,!0);let s=j(t,"components",23,()=>[]),a=j(t,"data_0",3,null),n=j(t,"data_1",3,null);nt(()=>t.stores.page.set(t.page)),it(()=>{t.stores,t.page,t.constructors,s(),t.form,a(),n(),t.stores.page.notify()});let c=I(!1),o=I(!1),e=I(null);ct(()=>{const i=t.stores.page.subscribe(()=>{E(c)&&(V(o,!0),ut().then(()=>{V(e,pt(document.title||"untitled page"))}))});return V(c,!0),i});const d=x(()=>t.constructors[1]);var _=Lt(),y=T(_);{var k=i=>{var v=S();const O=x(()=>t.constructors[0]);var A=T(v);q(A,()=>E(O),(P,R)=>{B(R(P,{get data(){return a()},get form(){return t.form},children:(f,wt)=>{var U=S(),H=T(U);q(H,()=>E(d),(J,K)=>{B(K(J,{get data(){return n()},get form(){return t.form}}),L=>s()[1]=L,()=>{var L;return(L=s())==null?void 0:L[1]})}),b(f,U)},$$slots:{default:!0}}),f=>s()[0]=f,()=>{var f;return(f=s())==null?void 0:f[0]})}),b(i,v)},F=i=>{var v=S();const O=x(()=>t.constructors[0]);var A=T(v);q(A,()=>E(O),(P,R)=>{B(R(P,{get data(){return a()},get form(){return t.form}}),f=>s()[0]=f,()=>{var f;return(f=s())==null?void 0:f[0]})}),b(i,v)};C(y,i=>{t.constructors[1]?i(k):i(F,!1)})}var h=lt(y,2);{var p=i=>{var v=At(),O=mt(v);{var A=P=>{var R=gt();ft(()=>yt(R,E(e))),b(P,R)};C(O,P=>{E(o)&&P(A)})}dt(v),b(i,v)};C(h,i=>{E(c)&&i(p)})}b(r,_),_t()}const qt=bt(Tt),Ft=[()=>l(()=>import("../nodes/0.CKD9Qja6.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]),import.meta.url),()=>l(()=>import("../nodes/1.Dbck5ct8.js"),__vite__mapDeps([22,1,2,3,6]),import.meta.url),()=>l(()=>import("../nodes/2.BqQhRvYh.js"),__vite__mapDeps([23,1,2,3,4,5,8,24,11,14,25,16,26,27]),import.meta.url),()=>l(()=>import("../nodes/3.BZRTKadS.js"),__vite__mapDeps([28,1,2,3,4,8,24,6,9,20,29,30]),import.meta.url),()=>l(()=>import("../nodes/4.BfKoPKdM.js"),__vite__mapDeps([31,1,2,3,4,5,8,12,11,14,18,16,19,32,33,15,17,25,26,34]),import.meta.url),()=>l(()=>import("../nodes/5.B4a2uCWn.js"),__vite__mapDeps([35,1,2,3,4,5,8,36,37,7,6,12,14,18,16,19,38,39,40]),import.meta.url),()=>l(()=>import("../nodes/6.CI508CMS.js"),__vite__mapDeps([41,1,2,3,4,5,8,42,6,7,11,12,14,38,16,39,18,19,43]),import.meta.url),()=>l(()=>import("../nodes/7.3x_eiof1.js"),__vite__mapDeps([44,1,2,3,4,5,8,24,45,16,37,46,36,10,9,11,14,18,19,15,17,25,26,47]),import.meta.url),()=>l(()=>import("../nodes/8.BfUuob4H.js"),__vite__mapDeps([48,1,2,3,4,5,8,24,45,16,37,46,42,6,10,9,13,20,11,29,15,17,18,19,49]),import.meta.url),()=>l(()=>import("../nodes/9.BZhCKRJe.js"),__vite__mapDeps([50,1,2,3,4,8,24,6,20,9,29,51]),import.meta.url),()=>l(()=>import("../nodes/10.BfmGpmC1.js"),__vite__mapDeps([52,1,2,3,4,5,8,24,45,16,37,46,13,9,11,32,33,25,26,15,17,53]),import.meta.url),()=>l(()=>import("../nodes/11.C7l9HPom.js"),__vite__mapDeps([54,1,2,3,4,5,8,24,45,16,37,46,7,6,13,9,11,25,26,55]),import.meta.url),()=>l(()=>import("../nodes/12.Iu9bcGdC.js"),__vite__mapDeps([56,1,2,3,4,5,8,24,45,16,37,46,36,7,6,13,9,25,26,15,17,32,33,57]),import.meta.url)],Ut=[],Wt={"/":[2],"/login":[3],"/reports":[4],"/reports/live":[6],"/reports/[id]":[5],"/scheduled-tests":[7],"/settings":[8],"/setup":[9],"/test-repository":[10],"/test-repository/runs/[id]":[11],"/test-repository/suites/[id]":[12]},Vt={handleError:({error:r})=>{console.error(r)},reroute:()=>{},transport:{}},kt=Object.fromEntries(Object.entries(Vt.transport).map(([r,t])=>[r,t.decode])),Gt=!1,Nt=(r,t)=>kt[r](t);export{Nt as decode,kt as decoders,Wt as dictionary,Gt as hash,Vt as hooks,Bt as matchers,Ft as nodes,qt as root,Ut as server_loads};
|
|
Binary file
|
|
Binary file
|
|
@@ -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 t}from"../chunks/KJdjlibc.js";export{t as start};
|
|
@@ -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
|
-
��import{a as t}from"../chunks/KJdjlibc.js";export{t as start};
|
|
18
|
-
|
|
Binary file
|
|
@@ -1,23 +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{s as q,a as m,e as $,t as k,b as as,n as un,c as De}from"../chunks/ll-VsEGv.js";import{i as Mt}from"../chunks/DGryW1Vp.js";import{e as it,u as dn,p as Ft,o as Wt,s as R,k as _,j as f,f as ee,c as r,n as v,t as I,z as Ee,d as Ht,m as L,an as fn,l as oe,b as pn,v as we}from"../chunks/C67QNx7Z.js";import{i as C,s as Kt,a as me}from"../chunks/CVV6HrFb.js";import{e as Ue,t as B,i as ze,a as Ne,c as ks,b as It,f as We}from"../chunks/DmRbbcS3.js";import{g as cs}from"../chunks/KJdjlibc.js";import{p as Rs}from"../chunks/BFgtfHj2.js";import{s as re,j as ke,A as vn,e as gn,f as _n,k as tt,l as ls,B as St,m as hs,W as us,n as ds,r as Tt,g as mn,c as fs}from"../chunks/CstKKb9b.js";import{a as Es}from"../chunks/DIx44H9N.js";import{b as yn,f as bn,a as wn}from"../chunks/BgNaeXAp.js";import{b as Re,p as He,g as At,s as kn,e as Ae,t as Rn,a as ps,d as st,c as Ct,r as En}from"../chunks/C3SY6-sX.js";import{c as xn,r as Sn}from"../chunks/CxTX_lpP.js";import{a as Tn,q as An}from"../chunks/BFEiffAL.js";import{t as vs,a as Cn}from"../chunks/B0pefNHY.js";import{C as Bn}from"../chunks/IFIFk6zi.js";import{B as gs}from"../chunks/BIRVeCLU.js";import{c as On}from"../chunks/BVMec-1T.js";function Bt(n,e,t){it(()=>{var s=dn(()=>e(n,t==null?void 0:t())||{});if(s!=null&&s.destroy)return()=>s.destroy()})}const Nn=!1,Ni=Object.freeze(Object.defineProperty({__proto__:null,ssr:Nn},Symbol.toStringTag,{value:"Module"}));var Ln=k('<span class="nav-sep svelte-10t98u4" aria-hidden="true"></span>'),In=k('<!> <a class="link svelte-10t98u4"> </a>',1),Pn=k('<img alt="" class="project-logo svelte-10t98u4">'),$n=k('<div class="project-card svelte-10t98u4"><!> <span class="project-name svelte-10t98u4"> </span></div>'),qn=k('<span class="nav-user svelte-10t98u4"> </span>'),Dn=k('<hr class="mobile-sep svelte-10t98u4">'),Un=k('<!> <a class="mobile-link svelte-10t98u4"> </a>',1),Vn=k('<div class="mobile-menu svelte-10t98u4"><!> <a href="/settings" class="mobile-link svelte-10t98u4">Settings</a></div>'),Mn=k('<nav class="nav svelte-10t98u4"><div class="inner svelte-10t98u4"><a href="/" class="brand svelte-10t98u4"><span class="brand-serif svelte-10t98u4">Pl</span><span class="brand-sans svelte-10t98u4">um</span></a> <div class="links svelte-10t98u4"></div> <div class="actions svelte-10t98u4"><!> <!> <a href="/settings" class="settings-btn svelte-10t98u4" aria-label="Settings" title="Settings"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg></a> <button class="hamburger svelte-10t98u4"><span class="svelte-10t98u4"></span> <span class="svelte-10t98u4"></span> <span class="svelte-10t98u4"></span></button></div></div> <!></nav>');function Fn(n,e){Ft(e,!1);const[t,s]=Kt(),i=()=>me(Rs,"$page",t),c=()=>me(Es,"$auth",t);let p=L(!1),y=L({name:"",logoUrl:""});Wt(async()=>{try{R(y,await yn())}catch{}});const w=[{href:"/",label:"Automated Tests"},{href:"/reports",label:"Reports"},{href:"/scheduled-tests",label:"Scheduled"},{href:"/test-repository",label:"Test Repository",sep:!0}];function K(){R(p,!1)}Mt();var d=Mn(),A=_(d),D=_(A),z=f(D,2);Ue(z,5,()=>w,ze,(U,N)=>{var J=In(),se=ee(J);{var ne=Y=>{var Te=Ln();m(Y,Te)};C(se,Y=>{r(N).sep&&Y(ne)})}var V=f(se,2),F=_(V,!0);v(V),I(Y=>{re(V,"href",r(N).href),B(V,"repo",r(N).sep),B(V,"active",Y),q(F,r(N).label)},[()=>r(N).href==="/"?i().url.pathname==="/":i().url.pathname.startsWith(r(N).href)],Ee),m(U,J)}),v(z);var Q=f(z,2),xe=_(Q);{var Le=U=>{var N=$n(),J=_(N);{var se=F=>{var Y=Pn();I(()=>re(Y,"src",r(y).logoUrl)),m(F,Y)};C(J,F=>{r(y).logoUrl&&F(se)})}var ne=f(J,2),V=_(ne,!0);v(ne),v(N),I(()=>q(V,r(y).name)),m(U,N)};C(xe,U=>{r(y).name&&U(Le)})}var te=f(xe,2);{var pe=U=>{var N=qn(),J=_(N,!0);v(N),I(()=>q(J,c().user.name)),m(U,N)};C(te,U=>{c().user&&U(pe)})}var ve=f(te,2),ce=f(ve,2),ie=_(ce),Se=f(ie,2),O=f(Se,2);v(ce),v(Q),v(A);var le=f(A,2);{var he=U=>{var N=Vn(),J=_(N);Ue(J,1,()=>w,ze,(ne,V)=>{var F=Un(),Y=ee(F);{var Te=Be=>{var Ye=Dn();m(Be,Ye)};C(Y,Be=>{r(V).sep&&Be(Te)})}var ge=f(Y,2),Ie=_(ge,!0);v(ge),I(Be=>{re(ge,"href",r(V).href),B(ge,"active",Be),q(Ie,r(V).label)},[()=>r(V).href==="/"?i().url.pathname==="/":i().url.pathname.startsWith(r(V).href)],Ee),$("click",ge,K),m(ne,F)});var se=f(J,2);v(N),I(()=>B(se,"active",i().url.pathname==="/settings")),$("click",se,K),Ne(3,N,()=>ks,()=>({duration:200})),m(U,N)};C(le,U=>{r(p)&&U(he)})}v(d),I(()=>{B(ve,"active",i().url.pathname==="/settings"),re(ce,"aria-label",r(p)?"Close menu":"Open menu"),re(ce,"aria-expanded",r(p)),B(ie,"rotated",r(p)),B(Se,"hidden",r(p)),B(O,"rotated-reverse",r(p))}),$("click",D,K),$("click",ce,()=>R(p,!r(p))),m(n,d),Ht(),s()}var Wn=k('<main class="shell svelte-28zx1m"><!></main>');function Hn(n,e){var t=Wn(),s=_(t);It(s,e,"default",{},null),v(t),m(n,t)}const be=Object.create(null);be.open="0";be.close="1";be.ping="2";be.pong="3";be.message="4";be.upgrade="5";be.noop="6";const ot=Object.create(null);Object.keys(be).forEach(n=>{ot[be[n]]=n});const Pt={type:"error",data:"parser error"},xs=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",Ss=typeof ArrayBuffer=="function",Ts=n=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(n):n&&n.buffer instanceof ArrayBuffer,jt=({type:n,data:e},t,s)=>xs&&e instanceof Blob?t?s(e):_s(e,s):Ss&&(e instanceof ArrayBuffer||Ts(e))?t?s(e):_s(new Blob([e]),s):s(be[n]+(e||"")),_s=(n,e)=>{const t=new FileReader;return t.onload=function(){const s=t.result.split(",")[1];e("b"+(s||""))},t.readAsDataURL(n)};function ms(n){return n instanceof Uint8Array?n:n instanceof ArrayBuffer?new Uint8Array(n):new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}let Ot;function Kn(n,e){if(xs&&n.data instanceof Blob)return n.data.arrayBuffer().then(ms).then(e);if(Ss&&(n.data instanceof ArrayBuffer||Ts(n.data)))return e(ms(n.data));jt(n,!1,t=>{Ot||(Ot=new TextEncoder),e(Ot.encode(t))})}const ys="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",je=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let n=0;n<ys.length;n++)je[ys.charCodeAt(n)]=n;const jn=n=>{let e=n.length*.75,t=n.length,s,i=0,c,p,y,w;n[n.length-1]==="="&&(e--,n[n.length-2]==="="&&e--);const K=new ArrayBuffer(e),d=new Uint8Array(K);for(s=0;s<t;s+=4)c=je[n.charCodeAt(s)],p=je[n.charCodeAt(s+1)],y=je[n.charCodeAt(s+2)],w=je[n.charCodeAt(s+3)],d[i++]=c<<2|p>>4,d[i++]=(p&15)<<4|y>>2,d[i++]=(y&3)<<6|w&63;return K},zn=typeof ArrayBuffer=="function",zt=(n,e)=>{if(typeof n!="string")return{type:"message",data:As(n,e)};const t=n.charAt(0);return t==="b"?{type:"message",data:Yn(n.substring(1),e)}:ot[t]?n.length>1?{type:ot[t],data:n.substring(1)}:{type:ot[t]}:Pt},Yn=(n,e)=>{if(zn){const t=jn(n);return As(t,e)}else return{base64:!0,data:n}},As=(n,e)=>{switch(e){case"blob":return n instanceof Blob?n:new Blob([n]);case"arraybuffer":default:return n instanceof ArrayBuffer?n:n.buffer}},Cs="",Jn=(n,e)=>{const t=n.length,s=new Array(t);let i=0;n.forEach((c,p)=>{jt(c,!1,y=>{s[p]=y,++i===t&&e(s.join(Cs))})})},Xn=(n,e)=>{const t=n.split(Cs),s=[];for(let i=0;i<t.length;i++){const c=zt(t[i],e);if(s.push(c),c.type==="error")break}return s};function Qn(){return new TransformStream({transform(n,e){Kn(n,t=>{const s=t.length;let i;if(s<126)i=new Uint8Array(1),new DataView(i.buffer).setUint8(0,s);else if(s<65536){i=new Uint8Array(3);const c=new DataView(i.buffer);c.setUint8(0,126),c.setUint16(1,s)}else{i=new Uint8Array(9);const c=new DataView(i.buffer);c.setUint8(0,127),c.setBigUint64(1,BigInt(s))}n.data&&typeof n.data!="string"&&(i[0]|=128),e.enqueue(i),e.enqueue(t)})}})}let Nt;function nt(n){return n.reduce((e,t)=>e+t.length,0)}function rt(n,e){if(n[0].length===e)return n.shift();const t=new Uint8Array(e);let s=0;for(let i=0;i<e;i++)t[i]=n[0][s++],s===n[0].length&&(n.shift(),s=0);return n.length&&s<n[0].length&&(n[0]=n[0].slice(s)),t}function Gn(n,e){Nt||(Nt=new TextDecoder);const t=[];let s=0,i=-1,c=!1;return new TransformStream({transform(p,y){for(t.push(p);;){if(s===0){if(nt(t)<1)break;const w=rt(t,1);c=(w[0]&128)===128,i=w[0]&127,i<126?s=3:i===126?s=1:s=2}else if(s===1){if(nt(t)<2)break;const w=rt(t,2);i=new DataView(w.buffer,w.byteOffset,w.length).getUint16(0),s=3}else if(s===2){if(nt(t)<8)break;const w=rt(t,8),K=new DataView(w.buffer,w.byteOffset,w.length),d=K.getUint32(0);if(d>Math.pow(2,21)-1){y.enqueue(Pt);break}i=d*Math.pow(2,32)+K.getUint32(4),s=3}else{if(nt(t)<i)break;const w=rt(t,i);y.enqueue(zt(c?w:Nt.decode(w),e)),s=0}if(i===0||i>n){y.enqueue(Pt);break}}}})}const Bs=4;function M(n){if(n)return Zn(n)}function Zn(n){for(var e in M.prototype)n[e]=M.prototype[e];return n}M.prototype.on=M.prototype.addEventListener=function(n,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+n]=this._callbacks["$"+n]||[]).push(e),this};M.prototype.once=function(n,e){function t(){this.off(n,t),e.apply(this,arguments)}return t.fn=e,this.on(n,t),this};M.prototype.off=M.prototype.removeListener=M.prototype.removeAllListeners=M.prototype.removeEventListener=function(n,e){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var t=this._callbacks["$"+n];if(!t)return this;if(arguments.length==1)return delete this._callbacks["$"+n],this;for(var s,i=0;i<t.length;i++)if(s=t[i],s===e||s.fn===e){t.splice(i,1);break}return t.length===0&&delete this._callbacks["$"+n],this};M.prototype.emit=function(n){this._callbacks=this._callbacks||{};for(var e=new Array(arguments.length-1),t=this._callbacks["$"+n],s=1;s<arguments.length;s++)e[s-1]=arguments[s];if(t){t=t.slice(0);for(var s=0,i=t.length;s<i;++s)t[s].apply(this,e)}return this};M.prototype.emitReserved=M.prototype.emit;M.prototype.listeners=function(n){return this._callbacks=this._callbacks||{},this._callbacks["$"+n]||[]};M.prototype.hasListeners=function(n){return!!this.listeners(n).length};const ht=typeof Promise=="function"&&typeof Promise.resolve=="function"?e=>Promise.resolve().then(e):(e,t)=>t(e,0),ae=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),er="arraybuffer";function Os(n,...e){return e.reduce((t,s)=>(n.hasOwnProperty(s)&&(t[s]=n[s]),t),{})}const tr=ae.setTimeout,sr=ae.clearTimeout;function ut(n,e){e.useNativeTimers?(n.setTimeoutFn=tr.bind(ae),n.clearTimeoutFn=sr.bind(ae)):(n.setTimeoutFn=ae.setTimeout.bind(ae),n.clearTimeoutFn=ae.clearTimeout.bind(ae))}const nr=1.33;function rr(n){return typeof n=="string"?ir(n):Math.ceil((n.byteLength||n.size)*nr)}function ir(n){let e=0,t=0;for(let s=0,i=n.length;s<i;s++)e=n.charCodeAt(s),e<128?t+=1:e<2048?t+=2:e<55296||e>=57344?t+=3:(s++,t+=4);return t}function Ns(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function or(n){let e="";for(let t in n)n.hasOwnProperty(t)&&(e.length&&(e+="&"),e+=encodeURIComponent(t)+"="+encodeURIComponent(n[t]));return e}function ar(n){let e={},t=n.split("&");for(let s=0,i=t.length;s<i;s++){let c=t[s].split("=");e[decodeURIComponent(c[0])]=decodeURIComponent(c[1])}return e}class cr extends Error{constructor(e,t,s){super(e),this.description=t,this.context=s,this.type="TransportError"}}class Yt extends M{constructor(e){super(),this.writable=!1,ut(this,e),this.opts=e,this.query=e.query,this.socket=e.socket,this.supportsBinary=!e.forceBase64}onError(e,t,s){return super.emitReserved("error",new cr(e,t,s)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(e){this.readyState==="open"&&this.write(e)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(e){const t=zt(e,this.socket.binaryType);this.onPacket(t)}onPacket(e){super.emitReserved("packet",e)}onClose(e){this.readyState="closed",super.emitReserved("close",e)}pause(e){}createUri(e,t={}){return e+"://"+this._hostname()+this._port()+this.opts.path+this._query(t)}_hostname(){const e=this.opts.hostname;return e.indexOf(":")===-1?e:"["+e+"]"}_port(){return this.opts.port&&(this.opts.secure&&+(this.opts.port!==443)||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(e){const t=or(e);return t.length?"?"+t:""}}class lr extends Yt{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(e){this.readyState="pausing";const t=()=>{this.readyState="paused",e()};if(this._polling||!this.writable){let s=0;this._polling&&(s++,this.once("pollComplete",function(){--s||t()})),this.writable||(s++,this.once("drain",function(){--s||t()}))}else t()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(e){const t=s=>{if(this.readyState==="opening"&&s.type==="open"&&this.onOpen(),s.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(s)};Xn(e,this.socket.binaryType).forEach(t),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const e=()=>{this.write([{type:"close"}])};this.readyState==="open"?e():this.once("open",e)}write(e){this.writable=!1,Jn(e,t=>{this.doWrite(t,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const e=this.opts.secure?"https":"http",t=this.query||{};return this.opts.timestampRequests!==!1&&(t[this.opts.timestampParam]=Ns()),!this.supportsBinary&&!t.sid&&(t.b64=1),this.createUri(e,t)}}let Ls=!1;try{Ls=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const hr=Ls;function ur(){}class dr extends lr{constructor(e){if(super(e),typeof location<"u"){const t=location.protocol==="https:";let s=location.port;s||(s=t?"443":"80"),this.xd=typeof location<"u"&&e.hostname!==location.hostname||s!==e.port}}doWrite(e,t){const s=this.request({method:"POST",data:e});s.on("success",t),s.on("error",(i,c)=>{this.onError("xhr post error",i,c)})}doPoll(){const e=this.request();e.on("data",this.onData.bind(this)),e.on("error",(t,s)=>{this.onError("xhr poll error",t,s)}),this.pollXhr=e}}class ye extends M{constructor(e,t,s){super(),this.createRequest=e,ut(this,s),this._opts=s,this._method=s.method||"GET",this._uri=t,this._data=s.data!==void 0?s.data:null,this._create()}_create(){var e;const t=Os(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");t.xdomain=!!this._opts.xd;const s=this._xhr=this.createRequest(t);try{s.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){s.setDisableHeaderCheck&&s.setDisableHeaderCheck(!0);for(let i in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(i)&&s.setRequestHeader(i,this._opts.extraHeaders[i])}}catch{}if(this._method==="POST")try{s.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{s.setRequestHeader("Accept","*/*")}catch{}(e=this._opts.cookieJar)===null||e===void 0||e.addCookies(s),"withCredentials"in s&&(s.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(s.timeout=this._opts.requestTimeout),s.onreadystatechange=()=>{var i;s.readyState===3&&((i=this._opts.cookieJar)===null||i===void 0||i.parseCookies(s.getResponseHeader("set-cookie"))),s.readyState===4&&(s.status===200||s.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof s.status=="number"?s.status:0)},0))},s.send(this._data)}catch(i){this.setTimeoutFn(()=>{this._onError(i)},0);return}typeof document<"u"&&(this._index=ye.requestsCount++,ye.requests[this._index]=this)}_onError(e){this.emitReserved("error",e,this._xhr),this._cleanup(!0)}_cleanup(e){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=ur,e)try{this._xhr.abort()}catch{}typeof document<"u"&&delete ye.requests[this._index],this._xhr=null}}_onLoad(){const e=this._xhr.responseText;e!==null&&(this.emitReserved("data",e),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}ye.requestsCount=0;ye.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",bs);else if(typeof addEventListener=="function"){const n="onpagehide"in ae?"pagehide":"unload";addEventListener(n,bs,!1)}}function bs(){for(let n in ye.requests)ye.requests.hasOwnProperty(n)&&ye.requests[n].abort()}const fr=function(){const n=Is({xdomain:!1});return n&&n.responseType!==null}();class pr extends dr{constructor(e){super(e);const t=e&&e.forceBase64;this.supportsBinary=fr&&!t}request(e={}){return Object.assign(e,{xd:this.xd},this.opts),new ye(Is,this.uri(),e)}}function Is(n){const e=n.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!e||hr))return new XMLHttpRequest}catch{}if(!e)try{return new ae[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const Ps=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class vr extends Yt{get name(){return"websocket"}doOpen(){const e=this.uri(),t=this.opts.protocols,s=Ps?{}:Os(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(s.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(e,t,s)}catch(i){return this.emitReserved("error",i)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=e=>this.onClose({description:"websocket connection closed",context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError("websocket error",e)}write(e){this.writable=!1;for(let t=0;t<e.length;t++){const s=e[t],i=t===e.length-1;jt(s,this.supportsBinary,c=>{try{this.doWrite(s,c)}catch{}i&&ht(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){const e=this.opts.secure?"wss":"ws",t=this.query||{};return this.opts.timestampRequests&&(t[this.opts.timestampParam]=Ns()),this.supportsBinary||(t.b64=1),this.createUri(e,t)}}const Lt=ae.WebSocket||ae.MozWebSocket;class gr extends vr{createSocket(e,t,s){return Ps?new Lt(e,t,s):t?new Lt(e,t):new Lt(e)}doWrite(e,t){this.ws.send(t)}}class _r extends Yt{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(e){return this.emitReserved("error",e)}this._transport.closed.then(()=>{this.onClose()}).catch(e=>{this.onError("webtransport error",e)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(e=>{const t=Gn(Number.MAX_SAFE_INTEGER,this.socket.binaryType),s=e.readable.pipeThrough(t).getReader(),i=Qn();i.readable.pipeTo(e.writable),this._writer=i.writable.getWriter();const c=()=>{s.read().then(({done:y,value:w})=>{y||(this.onPacket(w),c())}).catch(y=>{})};c();const p={type:"open"};this.query.sid&&(p.data=`{"sid":"${this.query.sid}"}`),this._writer.write(p).then(()=>this.onOpen())})})}write(e){this.writable=!1;for(let t=0;t<e.length;t++){const s=e[t],i=t===e.length-1;this._writer.write(s).then(()=>{i&&ht(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var e;(e=this._transport)===null||e===void 0||e.close()}}const mr={websocket:gr,webtransport:_r,polling:pr},yr=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,br=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function $t(n){if(n.length>8e3)throw"URI too long";const e=n,t=n.indexOf("["),s=n.indexOf("]");t!=-1&&s!=-1&&(n=n.substring(0,t)+n.substring(t,s).replace(/:/g,";")+n.substring(s,n.length));let i=yr.exec(n||""),c={},p=14;for(;p--;)c[br[p]]=i[p]||"";return t!=-1&&s!=-1&&(c.source=e,c.host=c.host.substring(1,c.host.length-1).replace(/;/g,":"),c.authority=c.authority.replace("[","").replace("]","").replace(/;/g,":"),c.ipv6uri=!0),c.pathNames=wr(c,c.path),c.queryKey=kr(c,c.query),c}function wr(n,e){const t=/\/{2,9}/g,s=e.replace(t,"/").split("/");return(e.slice(0,1)=="/"||e.length===0)&&s.splice(0,1),e.slice(-1)=="/"&&s.splice(s.length-1,1),s}function kr(n,e){const t={};return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(s,i,c){i&&(t[i]=c)}),t}const qt=typeof addEventListener=="function"&&typeof removeEventListener=="function",at=[];qt&&addEventListener("offline",()=>{at.forEach(n=>n())},!1);class Ce extends M{constructor(e,t){if(super(),this.binaryType=er,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,e&&typeof e=="object"&&(t=e,e=null),e){const s=$t(e);t.hostname=s.host,t.secure=s.protocol==="https"||s.protocol==="wss",t.port=s.port,s.query&&(t.query=s.query)}else t.host&&(t.hostname=$t(t.host).host);ut(this,t),this.secure=t.secure!=null?t.secure:typeof location<"u"&&location.protocol==="https:",t.hostname&&!t.port&&(t.port=this.secure?"443":"80"),this.hostname=t.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=t.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},t.transports.forEach(s=>{const i=s.prototype.name;this.transports.push(i),this._transportsByName[i]=s}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},t),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=ar(this.opts.query)),qt&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},at.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(e){const t=Object.assign({},this.opts.query);t.EIO=Bs,t.transport=e,this.id&&(t.sid=this.id);const s=Object.assign({},this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new this._transportsByName[e](s)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const e=this.opts.rememberUpgrade&&Ce.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const t=this.createTransport(e);t.open(),this.setTransport(t)}setTransport(e){this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",t=>this._onClose("transport close",t))}onOpen(){this.readyState="open",Ce.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(e){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",e),this.emitReserved("heartbeat"),e.type){case"open":this.onHandshake(JSON.parse(e.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const t=new Error("server error");t.code=e.data,this._onError(t);break;case"message":this.emitReserved("data",e.data),this.emitReserved("message",e.data);break}}onHandshake(e){this.emitReserved("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this._pingInterval=e.pingInterval,this._pingTimeout=e.pingTimeout,this._maxPayload=e.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const e=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+e,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},e),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const e=this._getWritablePackets();this.transport.send(e),this._prevBufferLen=e.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let t=1;for(let s=0;s<this.writeBuffer.length;s++){const i=this.writeBuffer[s].data;if(i&&(t+=rr(i)),s>0&&t>this._maxPayload)return this.writeBuffer.slice(0,s);t+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const e=Date.now()>this._pingTimeoutTime;return e&&(this._pingTimeoutTime=0,ht(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),e}write(e,t,s){return this._sendPacket("message",e,t,s),this}send(e,t,s){return this._sendPacket("message",e,t,s),this}_sendPacket(e,t,s,i){if(typeof t=="function"&&(i=t,t=void 0),typeof s=="function"&&(i=s,s=null),this.readyState==="closing"||this.readyState==="closed")return;s=s||{},s.compress=s.compress!==!1;const c={type:e,data:t,options:s};this.emitReserved("packetCreate",c),this.writeBuffer.push(c),i&&this.once("flush",i),this.flush()}close(){const e=()=>{this._onClose("forced close"),this.transport.close()},t=()=>{this.off("upgrade",t),this.off("upgradeError",t),e()},s=()=>{this.once("upgrade",t),this.once("upgradeError",t)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?s():e()}):this.upgrading?s():e()),this}_onError(e){if(Ce.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",e),this._onClose("transport error",e)}_onClose(e,t){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),qt&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const s=at.indexOf(this._offlineEventListener);s!==-1&&at.splice(s,1)}this.readyState="closed",this.id=null,this.emitReserved("close",e,t),this.writeBuffer=[],this._prevBufferLen=0}}}Ce.protocol=Bs;class Rr extends Ce{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let e=0;e<this._upgrades.length;e++)this._probe(this._upgrades[e])}_probe(e){let t=this.createTransport(e),s=!1;Ce.priorWebsocketSuccess=!1;const i=()=>{s||(t.send([{type:"ping",data:"probe"}]),t.once("packet",A=>{if(!s)if(A.type==="pong"&&A.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",t),!t)return;Ce.priorWebsocketSuccess=t.name==="websocket",this.transport.pause(()=>{s||this.readyState!=="closed"&&(d(),this.setTransport(t),t.send([{type:"upgrade"}]),this.emitReserved("upgrade",t),t=null,this.upgrading=!1,this.flush())})}else{const D=new Error("probe error");D.transport=t.name,this.emitReserved("upgradeError",D)}}))};function c(){s||(s=!0,d(),t.close(),t=null)}const p=A=>{const D=new Error("probe error: "+A);D.transport=t.name,c(),this.emitReserved("upgradeError",D)};function y(){p("transport closed")}function w(){p("socket closed")}function K(A){t&&A.name!==t.name&&c()}const d=()=>{t.removeListener("open",i),t.removeListener("error",p),t.removeListener("close",y),this.off("close",w),this.off("upgrading",K)};t.once("open",i),t.once("error",p),t.once("close",y),this.once("close",w),this.once("upgrading",K),this._upgrades.indexOf("webtransport")!==-1&&e!=="webtransport"?this.setTimeoutFn(()=>{s||t.open()},200):t.open()}onHandshake(e){this._upgrades=this._filterUpgrades(e.upgrades),super.onHandshake(e)}_filterUpgrades(e){const t=[];for(let s=0;s<e.length;s++)~this.transports.indexOf(e[s])&&t.push(e[s]);return t}}let Er=class extends Rr{constructor(e,t={}){const s=typeof e=="object"?e:t;(!s.transports||s.transports&&typeof s.transports[0]=="string")&&(s.transports=(s.transports||["polling","websocket","webtransport"]).map(i=>mr[i]).filter(i=>!!i)),super(e,s)}};function xr(n,e="",t){let s=n;t=t||typeof location<"u"&&location,n==null&&(n=t.protocol+"//"+t.host),typeof n=="string"&&(n.charAt(0)==="/"&&(n.charAt(1)==="/"?n=t.protocol+n:n=t.host+n),/^(https?|wss?):\/\//.test(n)||(typeof t<"u"?n=t.protocol+"//"+n:n="https://"+n),s=$t(n)),s.port||(/^(http|ws)$/.test(s.protocol)?s.port="80":/^(http|ws)s$/.test(s.protocol)&&(s.port="443")),s.path=s.path||"/";const c=s.host.indexOf(":")!==-1?"["+s.host+"]":s.host;return s.id=s.protocol+"://"+c+":"+s.port+e,s.href=s.protocol+"://"+c+(t&&t.port===s.port?"":":"+s.port),s}const Sr=typeof ArrayBuffer=="function",Tr=n=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(n):n.buffer instanceof ArrayBuffer,$s=Object.prototype.toString,Ar=typeof Blob=="function"||typeof Blob<"u"&&$s.call(Blob)==="[object BlobConstructor]",Cr=typeof File=="function"||typeof File<"u"&&$s.call(File)==="[object FileConstructor]";function Jt(n){return Sr&&(n instanceof ArrayBuffer||Tr(n))||Ar&&n instanceof Blob||Cr&&n instanceof File}function ct(n,e){if(!n||typeof n!="object")return!1;if(Array.isArray(n)){for(let t=0,s=n.length;t<s;t++)if(ct(n[t]))return!0;return!1}if(Jt(n))return!0;if(n.toJSON&&typeof n.toJSON=="function"&&arguments.length===1)return ct(n.toJSON(),!0);for(const t in n)if(Object.prototype.hasOwnProperty.call(n,t)&&ct(n[t]))return!0;return!1}function Br(n){const e=[],t=n.data,s=n;return s.data=Dt(t,e),s.attachments=e.length,{packet:s,buffers:e}}function Dt(n,e){if(!n)return n;if(Jt(n)){const t={_placeholder:!0,num:e.length};return e.push(n),t}else if(Array.isArray(n)){const t=new Array(n.length);for(let s=0;s<n.length;s++)t[s]=Dt(n[s],e);return t}else if(typeof n=="object"&&!(n instanceof Date)){const t={};for(const s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=Dt(n[s],e));return t}return n}function Or(n,e){return n.data=Ut(n.data,e),delete n.attachments,n}function Ut(n,e){if(!n)return n;if(n&&n._placeholder===!0){if(typeof n.num=="number"&&n.num>=0&&n.num<e.length)return e[n.num];throw new Error("illegal attachments")}else if(Array.isArray(n))for(let t=0;t<n.length;t++)n[t]=Ut(n[t],e);else if(typeof n=="object")for(const t in n)Object.prototype.hasOwnProperty.call(n,t)&&(n[t]=Ut(n[t],e));return n}const Nr=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];var S;(function(n){n[n.CONNECT=0]="CONNECT",n[n.DISCONNECT=1]="DISCONNECT",n[n.EVENT=2]="EVENT",n[n.ACK=3]="ACK",n[n.CONNECT_ERROR=4]="CONNECT_ERROR",n[n.BINARY_EVENT=5]="BINARY_EVENT",n[n.BINARY_ACK=6]="BINARY_ACK"})(S||(S={}));class Lr{constructor(e){this.replacer=e}encode(e){return(e.type===S.EVENT||e.type===S.ACK)&&ct(e)?this.encodeAsBinary({type:e.type===S.EVENT?S.BINARY_EVENT:S.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id}):[this.encodeAsString(e)]}encodeAsString(e){let t=""+e.type;return(e.type===S.BINARY_EVENT||e.type===S.BINARY_ACK)&&(t+=e.attachments+"-"),e.nsp&&e.nsp!=="/"&&(t+=e.nsp+","),e.id!=null&&(t+=e.id),e.data!=null&&(t+=JSON.stringify(e.data,this.replacer)),t}encodeAsBinary(e){const t=Br(e),s=this.encodeAsString(t.packet),i=t.buffers;return i.unshift(s),i}}function ws(n){return Object.prototype.toString.call(n)==="[object Object]"}class Xt extends M{constructor(e){super(),this.reviver=e}add(e){let t;if(typeof e=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");t=this.decodeString(e);const s=t.type===S.BINARY_EVENT;s||t.type===S.BINARY_ACK?(t.type=s?S.EVENT:S.ACK,this.reconstructor=new Ir(t),t.attachments===0&&super.emitReserved("decoded",t)):super.emitReserved("decoded",t)}else if(Jt(e)||e.base64)if(this.reconstructor)t=this.reconstructor.takeBinaryData(e),t&&(this.reconstructor=null,super.emitReserved("decoded",t));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+e)}decodeString(e){let t=0;const s={type:Number(e.charAt(0))};if(S[s.type]===void 0)throw new Error("unknown packet type "+s.type);if(s.type===S.BINARY_EVENT||s.type===S.BINARY_ACK){const c=t+1;for(;e.charAt(++t)!=="-"&&t!=e.length;);const p=e.substring(c,t);if(p!=Number(p)||e.charAt(t)!=="-")throw new Error("Illegal attachments");s.attachments=Number(p)}if(e.charAt(t+1)==="/"){const c=t+1;for(;++t&&!(e.charAt(t)===","||t===e.length););s.nsp=e.substring(c,t)}else s.nsp="/";const i=e.charAt(t+1);if(i!==""&&Number(i)==i){const c=t+1;for(;++t;){const p=e.charAt(t);if(p==null||Number(p)!=p){--t;break}if(t===e.length)break}s.id=Number(e.substring(c,t+1))}if(e.charAt(++t)){const c=this.tryParse(e.substr(t));if(Xt.isPayloadValid(s.type,c))s.data=c;else throw new Error("invalid payload")}return s}tryParse(e){try{return JSON.parse(e,this.reviver)}catch{return!1}}static isPayloadValid(e,t){switch(e){case S.CONNECT:return ws(t);case S.DISCONNECT:return t===void 0;case S.CONNECT_ERROR:return typeof t=="string"||ws(t);case S.EVENT:case S.BINARY_EVENT:return Array.isArray(t)&&(typeof t[0]=="number"||typeof t[0]=="string"&&Nr.indexOf(t[0])===-1);case S.ACK:case S.BINARY_ACK:return Array.isArray(t)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class Ir{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){const t=Or(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const Pr=Object.freeze(Object.defineProperty({__proto__:null,Decoder:Xt,Encoder:Lr,get PacketType(){return S}},Symbol.toStringTag,{value:"Module"}));function fe(n,e,t){return n.on(e,t),function(){n.off(e,t)}}const $r=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class qs extends M{constructor(e,t,s){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=e,this.nsp=t,s&&s.auth&&(this.auth=s.auth),this._opts=Object.assign({},s),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const e=this.io;this.subs=[fe(e,"open",this.onopen.bind(this)),fe(e,"packet",this.onpacket.bind(this)),fe(e,"error",this.onerror.bind(this)),fe(e,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...e){return e.unshift("message"),this.emit.apply(this,e),this}emit(e,...t){var s,i,c;if($r.hasOwnProperty(e))throw new Error('"'+e.toString()+'" is a reserved event name');if(t.unshift(e),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(t),this;const p={type:S.EVENT,data:t};if(p.options={},p.options.compress=this.flags.compress!==!1,typeof t[t.length-1]=="function"){const d=this.ids++,A=t.pop();this._registerAckCallback(d,A),p.id=d}const y=(i=(s=this.io.engine)===null||s===void 0?void 0:s.transport)===null||i===void 0?void 0:i.writable,w=this.connected&&!(!((c=this.io.engine)===null||c===void 0)&&c._hasPingExpired());return this.flags.volatile&&!y||(w?(this.notifyOutgoingListeners(p),this.packet(p)):this.sendBuffer.push(p)),this.flags={},this}_registerAckCallback(e,t){var s;const i=(s=this.flags.timeout)!==null&&s!==void 0?s:this._opts.ackTimeout;if(i===void 0){this.acks[e]=t;return}const c=this.io.setTimeoutFn(()=>{delete this.acks[e];for(let y=0;y<this.sendBuffer.length;y++)this.sendBuffer[y].id===e&&this.sendBuffer.splice(y,1);t.call(this,new Error("operation has timed out"))},i),p=(...y)=>{this.io.clearTimeoutFn(c),t.apply(this,y)};p.withError=!0,this.acks[e]=p}emitWithAck(e,...t){return new Promise((s,i)=>{const c=(p,y)=>p?i(p):s(y);c.withError=!0,t.push(c),this.emit(e,...t)})}_addToQueue(e){let t;typeof e[e.length-1]=="function"&&(t=e.pop());const s={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((i,...c)=>s!==this._queue[0]?void 0:(i!==null?s.tryCount>this._opts.retries&&(this._queue.shift(),t&&t(i)):(this._queue.shift(),t&&t(null,...c)),s.pending=!1,this._drainQueue())),this._queue.push(s),this._drainQueue()}_drainQueue(e=!1){if(!this.connected||this._queue.length===0)return;const t=this._queue[0];t.pending&&!e||(t.pending=!0,t.tryCount++,this.flags=t.flags,this.emit.apply(this,t.args))}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){typeof this.auth=="function"?this.auth(e=>{this._sendConnectPacket(e)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:S.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved("connect_error",e)}onclose(e,t){this.connected=!1,delete this.id,this.emitReserved("disconnect",e,t),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(e=>{if(!this.sendBuffer.some(s=>String(s.id)===e)){const s=this.acks[e];delete this.acks[e],s.withError&&s.call(this,new Error("socket has been disconnected"))}})}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case S.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case S.EVENT:case S.BINARY_EVENT:this.onevent(e);break;case S.ACK:case S.BINARY_ACK:this.onack(e);break;case S.DISCONNECT:this.ondisconnect();break;case S.CONNECT_ERROR:this.destroy();const s=new Error(e.data.message);s.data=e.data.data,this.emitReserved("connect_error",s);break}}onevent(e){const t=e.data||[];e.id!=null&&t.push(this.ack(e.id)),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){const t=this._anyListeners.slice();for(const s of t)s.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&typeof e[e.length-1]=="string"&&(this._lastOffset=e[e.length-1])}ack(e){const t=this;let s=!1;return function(...i){s||(s=!0,t.packet({type:S.ACK,id:e,data:i}))}}onack(e){const t=this.acks[e.id];typeof t=="function"&&(delete this.acks[e.id],t.withError&&e.data.unshift(null),t.apply(this,e.data))}onconnect(e,t){this.id=e,this.recovered=t&&this._pid===t,this._pid=t,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(e=>this.emitEvent(e)),this.receiveBuffer=[],this.sendBuffer.forEach(e=>{this.notifyOutgoingListeners(e),this.packet(e)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(e=>e()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:S.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){const t=this._anyListeners;for(let s=0;s<t.length;s++)if(e===t[s])return t.splice(s,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(e),this}prependAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(e),this}offAnyOutgoing(e){if(!this._anyOutgoingListeners)return this;if(e){const t=this._anyOutgoingListeners;for(let s=0;s<t.length;s++)if(e===t[s])return t.splice(s,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const t=this._anyOutgoingListeners.slice();for(const s of t)s.apply(this,e.data)}}}function Ve(n){n=n||{},this.ms=n.min||100,this.max=n.max||1e4,this.factor=n.factor||2,this.jitter=n.jitter>0&&n.jitter<=1?n.jitter:0,this.attempts=0}Ve.prototype.duration=function(){var n=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),t=Math.floor(e*this.jitter*n);n=Math.floor(e*10)&1?n+t:n-t}return Math.min(n,this.max)|0};Ve.prototype.reset=function(){this.attempts=0};Ve.prototype.setMin=function(n){this.ms=n};Ve.prototype.setMax=function(n){this.max=n};Ve.prototype.setJitter=function(n){this.jitter=n};class Vt extends M{constructor(e,t){var s;super(),this.nsps={},this.subs=[],e&&typeof e=="object"&&(t=e,e=void 0),t=t||{},t.path=t.path||"/socket.io",this.opts=t,ut(this,t),this.reconnection(t.reconnection!==!1),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor((s=t.randomizationFactor)!==null&&s!==void 0?s:.5),this.backoff=new Ve({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(t.timeout==null?2e4:t.timeout),this._readyState="closed",this.uri=e;const i=t.parser||Pr;this.encoder=new i.Encoder,this.decoder=new i.Decoder,this._autoConnect=t.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,e||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(e){return e===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var t;return e===void 0?this._reconnectionDelay:(this._reconnectionDelay=e,(t=this.backoff)===null||t===void 0||t.setMin(e),this)}randomizationFactor(e){var t;return e===void 0?this._randomizationFactor:(this._randomizationFactor=e,(t=this.backoff)===null||t===void 0||t.setJitter(e),this)}reconnectionDelayMax(e){var t;return e===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,(t=this.backoff)===null||t===void 0||t.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(e){if(~this._readyState.indexOf("open"))return this;this.engine=new Er(this.uri,this.opts);const t=this.engine,s=this;this._readyState="opening",this.skipReconnect=!1;const i=fe(t,"open",function(){s.onopen(),e&&e()}),c=y=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",y),e?e(y):this.maybeReconnectOnOpen()},p=fe(t,"error",c);if(this._timeout!==!1){const y=this._timeout,w=this.setTimeoutFn(()=>{i(),c(new Error("timeout")),t.close()},y);this.opts.autoUnref&&w.unref(),this.subs.push(()=>{this.clearTimeoutFn(w)})}return this.subs.push(i),this.subs.push(p),this}connect(e){return this.open(e)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const e=this.engine;this.subs.push(fe(e,"ping",this.onping.bind(this)),fe(e,"data",this.ondata.bind(this)),fe(e,"error",this.onerror.bind(this)),fe(e,"close",this.onclose.bind(this)),fe(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(e){try{this.decoder.add(e)}catch(t){this.onclose("parse error",t)}}ondecoded(e){ht(()=>{this.emitReserved("packet",e)},this.setTimeoutFn)}onerror(e){this.emitReserved("error",e)}socket(e,t){let s=this.nsps[e];return s?this._autoConnect&&!s.active&&s.connect():(s=new qs(this,e,t),this.nsps[e]=s),s}_destroy(e){const t=Object.keys(this.nsps);for(const s of t)if(this.nsps[s].active)return;this._close()}_packet(e){const t=this.encoder.encode(e);for(let s=0;s<t.length;s++)this.engine.write(t[s],e.options)}cleanup(){this.subs.forEach(e=>e()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(e,t){var s;this.cleanup(),(s=this.engine)===null||s===void 0||s.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e,t),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const e=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const t=this.backoff.duration();this._reconnecting=!0;const s=this.setTimeoutFn(()=>{e.skipReconnect||(this.emitReserved("reconnect_attempt",e.backoff.attempts),!e.skipReconnect&&e.open(i=>{i?(e._reconnecting=!1,e.reconnect(),this.emitReserved("reconnect_error",i)):e.onreconnect()}))},t);this.opts.autoUnref&&s.unref(),this.subs.push(()=>{this.clearTimeoutFn(s)})}}onreconnect(){const e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}const Ke={};function lt(n,e){typeof n=="object"&&(e=n,n=void 0),e=e||{};const t=xr(n,e.path||"/socket.io"),s=t.source,i=t.id,c=t.path,p=Ke[i]&&c in Ke[i].nsps,y=e.forceNew||e["force new connection"]||e.multiplex===!1||p;let w;return y?w=new Vt(s,e):(Ke[i]||(Ke[i]=new Vt(s,e)),w=Ke[i]),t.query&&!e.query&&(e.query=t.queryKey),w.socket(t.path,e)}Object.assign(lt,{Manager:Vt,Socket:qs,io:lt,connect:lt});var qr=k('No tag or filter is set. This will run <strong class="svelte-h71cn6">every test</strong> in the suite, which may take a while.',1),Dr=k('<span class="run-tag svelte-h71cn6"> </span>'),Ur=k('<a class="view-report-btn svelte-h71cn6">View Report <svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-h71cn6"><line x1="5" y1="12" x2="19" y2="12" class="svelte-h71cn6"></line><polyline points="12 5 19 12 12 19" class="svelte-h71cn6"></polyline></svg></a>'),Vr=k('<span class="run-chip-spinner svelte-h71cn6"></span>'),Mr=k('<span class="run-chip-count svelte-h71cn6"> </span>'),Fr=k('<div class="run-chip svelte-h71cn6"><svg width="9" height="10" viewBox="0 0 10 12" fill="currentColor" stroke="none" style="opacity:0.6;flex-shrink:0" class="svelte-h71cn6"><polygon points="0,0 10,6 0,12" class="svelte-h71cn6"></polygon></svg> <span class="run-chip-title svelte-h71cn6"> </span> <!> <button class="run-chip-clear svelte-h71cn6" aria-label="Clear test run"><svg width="9" height="9" viewBox="0 0 14 14" fill="none" class="svelte-h71cn6"><path d="M1 1l12 12M13 1L1 13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" class="svelte-h71cn6"></path></svg></button></div>'),Wr=k('<div class="input-wrap svelte-h71cn6"><svg class="input-icon svelte-h71cn6" 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" class="svelte-h71cn6"></circle><line x1="21" y1="21" x2="16.65" y2="16.65" class="svelte-h71cn6"></line></svg> <input type="text" class="tag-input svelte-h71cn6" placeholder="@tag or leave blank for all tests"></div>'),Hr=k('<button class="dropdown-item svelte-h71cn6"><span style="color:var(--text-muted)" class="svelte-h71cn6">✕</span> Clear</button> <div class="dropdown-divider svelte-h71cn6"></div>',1),Kr=k('<div class="dropdown-empty svelte-h71cn6">No active test runs</div>'),jr=k('<button class="dropdown-item svelte-h71cn6"> </button>'),zr=k('<div class="dropdown-menu run-pick-menu svelte-h71cn6"><!> <!></div>'),Yr=k('<button class="dropdown-item svelte-h71cn6"> </button>'),Jr=k('<div class="dropdown-menu svelte-h71cn6"></div>'),Xr=k('<label class="runner-option svelte-h71cn6"><input type="checkbox" class="svelte-h71cn6"> <span class="runner-dot built-in svelte-h71cn6"></span> <span class="svelte-h71cn6"></span></label>'),Qr=k('<label class="runner-option svelte-h71cn6"><input type="checkbox" class="svelte-h71cn6"> <span class="runner-dot remote svelte-h71cn6"></span> <span class="svelte-h71cn6"> </span></label>'),Gr=k('<div class="dropdown-menu runners-menu svelte-h71cn6"><!> <!></div>'),Zr=k('<div class="ctrl-divider svelte-h71cn6"></div> <div class="ctrl-group svelte-h71cn6"><span class="ctrl-label svelte-h71cn6">Runners</span> <div class="dropdown-wrap svelte-h71cn6"><button class="dropdown-trigger svelte-h71cn6"><span class="svelte-h71cn6"> </span> <svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" class="trigger-chevron svelte-h71cn6"><polyline points="6 9 12 15 18 9" class="svelte-h71cn6"></polyline></svg></button> <!></div></div>',1),ei=k('<button type="button" class="notify-btn svelte-h71cn6">Discord</button>'),ti=k('<button type="button" class="notify-btn svelte-h71cn6">Slack</button>'),si=k('<div class="ctrl-divider svelte-h71cn6"></div> <div class="ctrl-group svelte-h71cn6"><span class="ctrl-label svelte-h71cn6">Notify</span> <div class="notify-toggles svelte-h71cn6"><!> <!></div></div>',1),ni=k('<span class="run-spinner svelte-h71cn6"></span> Running',1),ri=un('<svg width="9" height="10" viewBox="0 0 10 12" fill="currentColor" stroke="none" class="svelte-h71cn6"><polygon points="0,0 10,6 0,12" class="svelte-h71cn6"></polygon></svg> Run',1),ii=k('<span class="meta-dot svelte-h71cn6">·</span> ',1),oi=k('<span class="run-card-meta svelte-h71cn6"> <span class="meta-dot svelte-h71cn6">·</span> <span class="meta-dot svelte-h71cn6">·</span> <!></span>'),ai=k('<a href="/reports/live" class="run-card active-run svelte-h71cn6"><span class="run-card-dot pulse-accent svelte-h71cn6"></span> <div class="run-card-info svelte-h71cn6"><span class="run-card-label svelte-h71cn6"> </span> <!></div> <!> <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="run-card-arrow svelte-h71cn6"><line x1="5" y1="12" x2="19" y2="12" class="svelte-h71cn6"></line><polyline points="12 5 19 12 12 19" class="svelte-h71cn6"></polyline></svg></a>'),ci=k('<a class="run-card cron-run svelte-h71cn6"><span class="run-card-dot pulse-pass svelte-h71cn6"></span> <div class="run-card-info svelte-h71cn6"><span class="run-card-label svelte-h71cn6"> </span> <span class="run-card-meta svelte-h71cn6"> </span></div> <!> <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="run-card-arrow svelte-h71cn6"><line x1="5" y1="12" x2="19" y2="12" class="svelte-h71cn6"></line><polyline points="12 5 19 12 12 19" class="svelte-h71cn6"></polyline></svg></a>'),li=k('<div class="empty-runs svelte-h71cn6"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="empty-icon svelte-h71cn6"><circle cx="12" cy="12" r="10" class="svelte-h71cn6"></circle><line x1="10" y1="15" x2="10" y2="12" class="svelte-h71cn6"></line><line x1="10" y1="9" x2="10.01" y2="9" class="svelte-h71cn6"></line></svg> No tests currently running</div>'),hi=k('<div class="body svelte-h71cn6"><!> <!> <!></div>'),ui=k('<!> <div class="panel svelte-h71cn6"><div class="scan-line svelte-h71cn6"></div> <div class="bar svelte-h71cn6"><div class="bar-left svelte-h71cn6"><div class="bar-status svelte-h71cn6"><span class="status-dot svelte-h71cn6"></span> <span class="status-word svelte-h71cn6"> </span> <!></div> <!></div> <span class="flex-gap svelte-h71cn6"></span> <div class="bar-center svelte-h71cn6"><!> <div class="ctrl-group svelte-h71cn6"><span class="ctrl-label svelte-h71cn6">Test Run</span> <div class="dropdown-wrap svelte-h71cn6"><button class="dropdown-trigger svelte-h71cn6"><span class="svelte-h71cn6"> </span> <svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" class="trigger-chevron svelte-h71cn6"><polyline points="6 9 12 15 18 9" class="svelte-h71cn6"></polyline></svg></button> <!></div></div> <div class="ctrl-divider svelte-h71cn6"></div> <div class="ctrl-group svelte-h71cn6"><span class="ctrl-label svelte-h71cn6">Workers</span> <div class="stepper svelte-h71cn6"><button class="step-btn svelte-h71cn6">−</button> <span class="step-val svelte-h71cn6"> </span> <button class="step-btn svelte-h71cn6">+</button></div></div> <div class="ctrl-divider svelte-h71cn6"></div> <div class="ctrl-group svelte-h71cn6"><span class="ctrl-label svelte-h71cn6">Browser</span> <div class="dropdown-wrap svelte-h71cn6"><button class="dropdown-trigger svelte-h71cn6"><span class="svelte-h71cn6"> </span> <svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" class="trigger-chevron svelte-h71cn6"><polyline points="6 9 12 15 18 9" class="svelte-h71cn6"></polyline></svg></button> <!></div></div> <!> <!> <div class="ctrl-divider svelte-h71cn6"></div> <button class="run-btn svelte-h71cn6"><!></button></div> <span class="flex-gap-sm svelte-h71cn6"></span> <button class="expand-btn svelte-h71cn6"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-h71cn6"><polyline points="18 15 12 9 6 15" class="svelte-h71cn6"></polyline></svg></button></div> <!></div>',1);function di(n,e){Ft(e,!1);const[t,s]=Kt(),i=()=>me(Ae,"$runnerState",t),c=()=>me(Re,"$runnerConfig",t),p=()=>me(st,"$backgroundRuns",t),y=()=>me(En,"$runsVersion",t),w=()=>me(He,"$panelExpanded",t),K=()=>me(At,"$builtInEnabled",t),d=L(),A=L(),D=L(),z=L(),Q=L(),xe=L(),Le=L(),te=L(),pe=L(),ve=L(),ce=L();let ie=L([]),Se=L([]),O=L(null),le=L(!1),he=L(!1),U=L(!1),N=L(!1),J=L(!1),se=L({discordWebhookUrl:"",slackWebhookUrl:"",notifyPublicUrl:""}),ne=L(!1),V=L(!1);function F(o){function u(a){o.contains(a.target)||o.dispatchEvent(new CustomEvent("clickoutside"))}return document.addEventListener("click",u,!0),{destroy(){document.removeEventListener("click",u,!0)}}}let Y,Te,ge,Ie;Wt(()=>{try{const a=localStorage.getItem("plum:runnerConfig");a&&Re.update(h=>({...h,...JSON.parse(a)}))}catch{}try{const a=localStorage.getItem("plum:panelExpanded");a!==null&&He.set(a==="true")}catch{}try{const a=localStorage.getItem("plum:builtInEnabled");a!==null&&At.set(a!=="false")}catch{}bn().then(a=>{R(ie,a);const h=new Set([ke,...a.map(l=>l.id)]);Re.update(l=>{const g=l.selectedRunners.filter(b=>h.has(b));return{...l,selectedRunners:g.length>0?g:[ke]}})}).catch(()=>{}),wn().then(a=>R(se,a)).catch(()=>{}),Y=Re.subscribe(a=>{try{localStorage.setItem("plum:runnerConfig",JSON.stringify(a))}catch{}}),Te=He.subscribe(a=>{try{localStorage.setItem("plum:panelExpanded",String(a))}catch{}}),ge=At.subscribe(a=>{try{localStorage.setItem("plum:builtInEnabled",String(a))}catch{}Re.update(h=>{if(!a&&h.selectedRunners.includes(ke)){const l=h.selectedRunners.filter(b=>b!==ke),g=l.length>0?l:r(ie)[0]?[r(ie)[0].id]:[];return{...h,selectedRunners:g}}return h})});const o=lt(vn,{transports:["websocket"]});Ie=o,kn.set(o),o.on("log",a=>{Ae.update(h=>({...h,output:h.output+a+`
|
|
19
|
-
`}))}),o.on("done",a=>{const h=typeof a=="object"&&a!==null?a.code:a,l=typeof a=="object"&&a!==null?a.reportId:void 0,g=h===0||h===null,b=h===130;(l!=null?Promise.resolve(l):xn().catch(()=>null)).then(E=>{Ae.update(T=>({...T,output:T.output+(b?"":g?`
|
|
20
|
-
✓ All tests passed
|
|
21
|
-
`:`
|
|
22
|
-
✗ Some tests failed
|
|
23
|
-
`),running:!1,testCompleted:!b,latestReportId:b?null:E,status:b?"idle":g?"pass":"fail",currentRun:b?null:T.currentRun}))})}),o.on("runner-lanes-init",a=>{Ae.update(h=>({...h,lanes:a.map(l=>({...l,status:"running",logs:"",latestScreenshot:null}))}))}),o.on("runner-lane-log",({id:a,log:h})=>{Ae.update(l=>({...l,lanes:l.lanes.map(g=>g.id===a?{...g,logs:g.logs+h}:g)}))}),o.on("runner-lane-status",({id:a,status:h})=>{Ae.update(l=>({...l,lanes:l.lanes.map(g=>g.id===a?{...g,status:h}:g)}))}),o.on("step-screenshot",({stepName:a,data:h})=>{Ae.update(l=>({...l,latestScreenshot:{stepName:a,data:h}}))}),o.on("runner-lane-screenshot",({id:a,stepName:h,data:l})=>{Ae.update(g=>({...g,lanes:g.lanes.map(b=>b.id===a?{...b,latestScreenshot:{stepName:h,data:l}}:b)}))}),o.on("tests-changed",()=>Rn.update(a=>a+1)),o.on("report-ready",()=>ps.update(a=>a+1));function u(a,h){st.update(l=>l[a]?{...l,[a]:h(l[a])}:l)}o.on("bg-run-start",({runId:a,kind:h,label:l,meta:g})=>{st.update(b=>({...b,[a]:{kind:h,label:l,output:"",running:!0,testCompleted:!1,latestReportId:null,status:"running",lanes:[],currentRun:{tag:g==null?void 0:g.tag,workers:g==null?void 0:g.workers,browser:g==null?void 0:g.browser,runTitle:l},latestScreenshot:null}})),He.set(!0)}),o.on("bg-run-log",({runId:a,log:h})=>{u(a,l=>({...l,output:l.output+h}))}),o.on("bg-run-lanes-init",({runId:a,lanes:h})=>{u(a,l=>({...l,lanes:h.map(g=>({...g,status:"running",logs:"",latestScreenshot:null}))}))}),o.on("bg-run-lane-log",({runId:a,laneId:h,log:l})=>{u(a,g=>({...g,lanes:g.lanes.map(b=>b.id===h?{...b,logs:b.logs+l}:b)}))}),o.on("bg-run-lane-status",({runId:a,laneId:h,status:l})=>{u(a,g=>({...g,lanes:g.lanes.map(b=>b.id===h?{...b,status:l}:b)}))}),o.on("bg-run-screenshot",({runId:a,stepName:h,data:l})=>{u(a,g=>({...g,latestScreenshot:{stepName:h,data:l}}))}),o.on("bg-run-lane-screenshot",({runId:a,laneId:h,stepName:l,data:g})=>{u(a,b=>({...b,lanes:b.lanes.map(x=>x.id===h?{...x,latestScreenshot:{stepName:l,data:g}}:x)}))}),o.on("bg-run-done",({runId:a,code:h,reportId:l})=>{const g=h===0||h===null;u(a,b=>({...b,running:!1,testCompleted:!0,latestReportId:l,status:g?"pass":"fail"})),ps.update(b=>b+1),setTimeout(()=>{st.update(b=>{const x={...b};return delete x[a],x})},gn+5e3)})}),fn(()=>{Y==null||Y(),Te==null||Te(),ge==null||ge(),Ie==null||Ie.disconnect()});async function Be(o){R(N,!1),R(O,{id:o.id,title:o.title,tags:null}),R(le,!0);try{const a=(await An(o.id)).entries.filter(h=>{var l;return(l=h.case)==null?void 0:l.isAutomated}).map(h=>`@${h.case.displayId}`);R(O,{id:o.id,title:o.title,tags:a})}catch{R(O,null)}finally{R(le,!1)}}function Ye(){R(O,null)}function Qt(){const o={notifyDiscord:r(ne),notifySlack:r(V)};if(r(O)){if(r(le)||!r(O).tags||r(O).tags.length===0)return;Ct(r(O).tags.join(" or "),r(O).id,o,r(O).title)}else c().testID.trim()===""?R(J,!0):Ct(void 0,void 0,o)}function Ds(o){o.key==="Enter"&&!r(d).running&&!r(O)&&Qt()}function Gt(o){Re.update(u=>({...u,workers:Math.max(us,Math.min(ds,u.workers+o))}))}function Zt(o){Re.update(u=>{const a=u.selectedRunners;if(a.includes(o)&&a.length===1)return u;const h=a.includes(o)?a.filter(l=>l!==o):[...a,o];return{...u,selectedRunners:h}})}function dt(o){return c().selectedRunners.includes(o)}oe(()=>i(),()=>{R(d,i())}),oe(()=>c(),()=>{R(A,c())}),oe(()=>(r(d),tt),()=>{R(D,(()=>{var u;if(!((u=r(d).currentRun)!=null&&u.tag))return _n;const o=r(d).currentRun.tag.split(/ or /i);return o.length<=tt?r(d).currentRun.tag:o.slice(0,tt).join(" or ")+` +${o.length-tt} more`})())}),oe(()=>p(),()=>{R(z,Object.entries(p()).filter(([,o])=>o.running))}),oe(()=>r(z),()=>{R(Q,r(z).length>0)}),oe(()=>r(z),()=>{R(xe,r(z).some(([,o])=>o.kind==="cron"))}),oe(()=>(r(d),r(Q)),()=>{R(Le,r(d).running||r(Q))}),oe(()=>(y(),ls),()=>{y()>=0&&Tn({limit:ls}).then(o=>R(Se,o.runs)).catch(()=>{})}),oe(()=>(r(d),r(Q)),()=>{R(te,r(d).status==="pass"?"var(--pass)":r(d).status==="fail"?"var(--fail)":r(d).running?"var(--accent)":r(Q)?"var(--pass)":"var(--border)")}),oe(()=>(r(d),r(xe),r(Q)),()=>{R(pe,r(d).running?"Running":r(d).status==="pass"?"Passed":r(d).status==="fail"?"Failed":r(xe)?"Scheduled":r(Q)?"Running":"Ready")}),oe(()=>r(A),()=>{R(ve,St.find(o=>o.id===r(A).browser)??St[0])}),oe(()=>(r(A),r(ie)),()=>{var o;R(ce,r(A).selectedRunners.length===1&&r(A).selectedRunners[0]===ke?hs:r(A).selectedRunners.length===1?((o=r(ie).find(u=>u.id===r(A).selectedRunners[0]))==null?void 0:o.name)??"1 node":`${r(A).selectedRunners.length} nodes`)}),pn(),Mt();var es=ui(),ts=ee(es);Bn(ts,{title:"Run all tests?",confirmLabel:"Run all tests",get open(){return r(J)},set open(o){R(J,o)},$$events:{confirm:()=>{R(J,!1),Ct(void 0,void 0,{notifyDiscord:r(ne),notifySlack:r(V)})}},children:(o,u)=>{we();var a=qr();we(2),m(o,a)},$$slots:{default:!0},$$legacy:!0});var ft=f(ts,2),Je=_(ft),pt=f(Je,2),vt=_(pt),gt=_(vt),_t=_(gt),Xe=f(_t,2),Us=_(Xe,!0);v(Xe);var Vs=f(Xe,2);{var Ms=o=>{var u=Dr(),a=_(u,!0);v(u),I(()=>{var h;return q(a,((h=r(d).currentRun)==null?void 0:h.runTitle)||r(d).lastRunId)}),m(o,u)};C(Vs,o=>{var u;(r(d).lastRunId||(u=r(d).currentRun)!=null&&u.runTitle)&&o(Ms)})}v(gt);var Fs=f(gt,2);{var Ws=o=>{var u=Ur();I(a=>re(u,"href",a),[()=>Sn(r(d).latestReportId)],Ee),Ne(3,u,()=>We,()=>({x:-6,duration:200})),m(o,u)};C(Fs,o=>{r(d).testCompleted&&r(d).latestReportId&&o(Ws)})}v(vt);var mt=f(vt,4),ss=_(mt);{var Hs=o=>{var u=Fr(),a=f(_(u),2),h=_(a,!0);v(a);var l=f(a,2);{var g=E=>{var T=Vr();m(E,T)},b=E=>{var T=De(),P=ee(T);{var W=H=>{var G=Mr(),_e=_(G);v(G),I(()=>{B(G,"none",r(O).tags.length===0),q(_e,`${r(O).tags.length??""} automated`)}),m(H,G)};C(P,H=>{r(O).tags!==null&&H(W)},!0)}m(E,T)};C(l,E=>{r(le)?E(g):E(b,!1)})}var x=f(l,2);v(u),I(()=>{B(u,"loading",r(le)),q(h,r(O).title)}),$("click",x,Ye),m(o,u)},Ks=o=>{var u=Wr(),a=f(_(u),2);Tt(a),v(u),I(()=>{mn(a,c().testID),a.disabled=r(d).running}),$("input",a,h=>Re.update(l=>({...l,testID:h.currentTarget.value}))),$("keydown",a,Ds),m(o,u)};C(ss,o=>{r(O)?o(Hs):o(Ks,!1)})}var yt=f(ss,2),Qe=f(_(yt),2),Oe=_(Qe),bt=_(Oe),js=_(bt,!0);v(bt);var zs=f(bt,2);v(Oe);var Ys=f(Oe,2);{var Js=o=>{var u=zr(),a=_(u);{var h=x=>{var E=Hr(),T=ee(E);we(2),$("click",T,Ye),m(x,E)};C(a,x=>{r(O)&&x(h)})}var l=f(a,2);{var g=x=>{var E=Kr();m(x,E)},b=x=>{var E=De(),T=ee(E);Ue(T,1,()=>r(Se).filter(P=>P.status!=="complete"),ze,(P,W)=>{var H=jr(),G=_(H,!0);v(H),I(()=>{var _e;B(H,"active",((_e=r(O))==null?void 0:_e.id)===r(W).id),q(G,r(W).title)}),$("click",H,()=>Be(r(W))),m(P,H)}),m(x,E)};C(l,x=>{r(Se).filter(E=>E.status!=="complete").length===0?x(g):x(b,!1)})}v(u),Ne(3,u,()=>We,()=>({y:6,duration:130})),m(o,u)};C(Ys,o=>{r(N)&&o(Js)})}v(Qe),Bt(Qe,o=>F==null?void 0:F(o)),it(()=>$("clickoutside",Qe,()=>R(N,!1))),v(yt);var wt=f(yt,4),ns=f(_(wt),2),kt=_(ns),Rt=f(kt,2),Xs=_(Rt,!0);v(Rt);var rs=f(Rt,2);v(ns),v(wt);var Et=f(wt,4),Ge=f(_(Et),2),Pe=_(Ge),xt=_(Pe),Qs=_(xt,!0);v(xt);var Gs=f(xt,2);v(Pe);var Zs=f(Pe,2);{var en=o=>{var u=Jr();Ue(u,5,()=>St,ze,(a,h)=>{var l=Yr(),g=_(l,!0);v(l),I(()=>{B(l,"active",r(A).browser===r(h).id),q(g,r(h).label)}),$("click",l,()=>{Re.update(b=>({...b,browser:r(h).id})),R(he,!1)}),m(a,l)}),v(u),Ne(3,u,()=>We,()=>({y:6,duration:130})),m(o,u)};C(Zs,o=>{r(he)&&o(en)})}v(Ge),Bt(Ge,o=>F==null?void 0:F(o)),it(()=>$("clickoutside",Ge,()=>R(he,!1))),v(Et);var is=f(Et,2);{var tn=o=>{var u=Zr(),a=f(ee(u),2),h=f(_(a),2),l=_(h),g=_(l),b=_(g,!0);v(g);var x=f(g,2);v(l);var E=f(l,2);{var T=P=>{var W=Gr(),H=_(W);{var G=j=>{var Z=Xr(),X=_(Z);Tt(X);var ue=f(X,4);ue.textContent=hs,v(Z),I(de=>fs(X,de),[()=>dt(ke)],Ee),$("change",X,()=>Zt(ke)),m(j,Z)};C(H,j=>{(K()||dt(ke))&&j(G)})}var _e=f(H,2);Ue(_e,1,()=>r(ie),ze,(j,Z)=>{var X=Qr(),ue=_(X);Tt(ue);var de=f(ue,4),et=_(de,!0);v(de),v(X),I(qe=>{fs(ue,qe),q(et,r(Z).name)},[()=>dt(r(Z).id)],Ee),$("change",ue,()=>Zt(r(Z).id)),m(j,X)}),v(W),Ne(3,W,()=>We,()=>({y:6,duration:130})),m(P,W)};C(E,P=>{r(U)&&P(T)})}v(h),Bt(h,P=>F==null?void 0:F(P)),it(()=>$("clickoutside",h,()=>R(U,!1))),v(a),I(P=>{l.disabled=r(d).running,B(l,"open",r(U)),B(l,"has-remote",P),q(b,r(ce)),B(x,"open",r(U))},[()=>r(A).selectedRunners.some(P=>P!==ke)],Ee),$("click",l,()=>{r(d).running||R(U,!r(U))}),m(o,u)};C(is,o=>{r(ie).length>0&&o(tn)})}var os=f(is,2);{var sn=o=>{var u=si(),a=f(ee(u),2),h=f(_(a),2),l=_(h);{var g=E=>{var T=ei();I(()=>{re(T,"title",r(ne)?"Discord notification on":"Discord notification off"),T.disabled=r(d).running,B(T,"active",r(ne))}),$("click",T,()=>R(ne,!r(ne))),m(E,T)};C(l,E=>{r(se).discordWebhookUrl&&E(g)})}var b=f(l,2);{var x=E=>{var T=ti();I(()=>{re(T,"title",r(V)?"Slack notification on":"Slack notification off"),T.disabled=r(d).running,B(T,"active",r(V))}),$("click",T,()=>R(V,!r(V))),m(E,T)};C(b,E=>{r(se).slackWebhookUrl&&E(x)})}v(h),v(a),m(o,u)};C(os,o=>{(r(se).discordWebhookUrl||r(se).slackWebhookUrl)&&o(sn)})}var $e=f(os,4),nn=_($e);{var rn=o=>{var u=ni();we(),m(o,u)},on=o=>{var u=ri();we(),m(o,u)};C(nn,o=>{r(d).running?o(rn):o(on,!1)})}v($e),v(mt);var Ze=f(mt,4),an=_(Ze);v(Ze),v(pt);var cn=f(pt,2);{var ln=o=>{var u=hi(),a=_(u);{var h=x=>{var E=ai(),T=f(_(E),2),P=_(T),W=_(P,!0);v(P);var H=f(P,2);{var G=j=>{var Z=oi(),X=_(Z),ue=f(X,2),de=f(ue,2),et=f(de);{var qe=Me=>{var Fe=ii(),hn=f(ee(Fe));I(()=>q(hn,` ${r(d).currentRun.runners.length??""} runners`)),m(Me,Fe)};C(et,Me=>{var Fe;((Fe=r(d).currentRun.runners)==null?void 0:Fe.length)>1&&Me(qe)})}v(Z),I(()=>{q(X,`${r(D)??""} `),q(ue,` ${r(d).currentRun.workers??""}w `),q(de,` ${r(d).currentRun.browser??""} `)}),m(j,Z)};C(H,j=>{r(d).currentRun&&j(G)})}v(T);var _e=f(T,2);gs(_e,{variant:"tag",children:(j,Z)=>{we();var X=as("Live");m(j,X)},$$slots:{default:!0}}),we(2),v(E),I(()=>{var j;return q(W,((j=r(d).currentRun)==null?void 0:j.runTitle)||"Manual run")}),m(x,E)};C(a,x=>{r(d).running&&x(h)})}var l=f(a,2);Ue(l,1,()=>r(z),([x,E])=>x,(x,E)=>{let T=()=>r(E)[0],P=()=>r(E)[1];var W=ci(),H=f(_(W),2),G=_(H),_e=_(G,!0);v(G);var j=f(G,2),Z=_(j);v(j),v(H);var X=f(H,2);const ue=Ee(()=>Cn(P().kind));gs(X,{get variant(){return r(ue)},children:(de,et)=>{we();var qe=as();I(Me=>q(qe,Me),[()=>vs(P().kind)],Ee),m(de,qe)},$$slots:{default:!0}}),we(2),v(W),I(de=>{re(W,"href",`/reports/live?run=${T()??""}`),q(_e,P().label),q(Z,`${de??""} run`)},[()=>vs(P().kind)],Ee),Ne(3,W,()=>We,()=>({x:-4,duration:160})),m(x,W)});var g=f(l,2);{var b=x=>{var E=li();m(x,E)};C(g,x=>{r(Le)||x(b)})}v(u),Ne(3,u,()=>ks,()=>({duration:200})),m(o,u)};C(cn,o=>{w()&&o(ln)})}v(ft),I(()=>{var o,u;B(ft,"expanded",w()),B(Je,"scanning",r(d).running),B(Je,"line-pass",r(d).status==="pass"&&!r(d).running),B(Je,"line-fail",r(d).status==="fail"&&!r(d).running),re(_t,"style",`background:${r(te)??""}`),B(_t,"pulse",r(d).running),re(Xe,"style",`color:${r(te)??""}`),q(Us,r(pe)),Oe.disabled=r(d).running,B(Oe,"open",r(N)),B(Oe,"has-remote",!!r(O)),q(js,r(O)?r(O).title:"None"),B(zs,"open",r(N)),kt.disabled=r(A).workers<=us||r(d).running,q(Xs,r(A).workers),rs.disabled=r(A).workers>=ds||r(d).running,Pe.disabled=r(d).running,B(Pe,"open",r(he)),q(Qs,r(ve).label),B(Gs,"open",r(he)),$e.disabled=r(d).running||r(le)||r(O)&&((o=r(O).tags)==null?void 0:o.length)===0,re($e,"title",r(O)&&((u=r(O).tags)==null?void 0:u.length)===0?"No automated cases in this run":void 0),B($e,"is-running",r(d).running),re(Ze,"aria-label",w()?"Collapse panel":"Expand panel"),B(an,"flipped",w())}),$("click",Oe,()=>{r(d).running||R(N,!r(N))}),$("click",kt,()=>Gt(-1)),$("click",rs,()=>Gt(1)),$("click",Pe,()=>{r(d).running||R(he,!r(he))}),$("click",$e,Qt),$("click",Ze,()=>He.update(o=>!o)),m(n,es),Ht(),s()}var fi=k("<!> <!> <!>",1),pi=k('<div class="boot-loading svelte-3qbr79">Loading…</div>');function Ii(n,e){Ft(e,!1);const[t,s]=Kt(),i=()=>me(Rs,"$page",t),c=()=>me(Es,"$auth",t),p=["/login","/setup"];let y=L(!1);Wt(async()=>{const D=i().url.pathname;if(p.includes(D)){R(y,!0);return}if(c().token){R(y,!0);return}try{const Q=await On();await cs(Q?"/setup":"/login")}catch{await cs("/login")}finally{R(y,!0)}}),Mt();var w=De(),K=ee(w);{var d=D=>{var z=De(),Q=ee(z);{var xe=te=>{var pe=De(),ve=ee(pe);It(ve,e,"default",{},null),m(te,pe)},Le=te=>{var pe=fi(),ve=ee(pe);Fn(ve,{});var ce=f(ve,2);Hn(ce,{children:(Se,O)=>{var le=De(),he=ee(le);It(he,e,"default",{},null),m(Se,le)},$$slots:{default:!0}});var ie=f(ce,2);di(ie,{}),m(te,pe)};C(Q,te=>{i().url.pathname==="/login"||i().url.pathname==="/setup"?te(xe):te(Le,!1)})}m(D,z)},A=D=>{var z=pi();m(D,z)};C(K,D=>{r(y)?D(d):D(A,!1)})}m(n,w),Ht(),s()}export{Ii as component,Ni as universal};
|
|
Binary file
|
|
Binary file
|
|
@@ -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 g,t as h,s}from"../chunks/ll-VsEGv.js";import{i as d}from"../chunks/DGryW1Vp.js";import{p as l,f as v,t as x,d as _,k as o,n as p,j as k}from"../chunks/C67QNx7Z.js";import{s as $,p as i}from"../chunks/KJdjlibc.js";const b={get error(){return i.error},get status(){return i.status}};$.updated.check;const m=b;var j=h("<h1> </h1> <p> </p>",1);function z(n,c){l(c,!1),d();var r=j(),t=v(r),f=o(t,!0);p(t);var e=k(t,2),u=o(e,!0);p(e),x(()=>{var a;s(f,m.status),s(u,(a=m.error)==null?void 0:a.message)}),g(n,r),_()}export{z as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -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 la,e as ie,a as l,t as u,c as ne,s as o,r as na,b as De}from"../chunks/ll-VsEGv.js";import{i as oa}from"../chunks/DGryW1Vp.js";import{p as va,m as f,o as da,s as i,l as He,b as ca,f as V,t as M,c as e,d as ua,j as r,$ as pa,k as s,n as a,v as _e,x as _a,y as Re,z as ge}from"../chunks/C67QNx7Z.js";import{i as b}from"../chunks/CVV6HrFb.js";import{e as he,i as ot,t as We,a as vt,f as dt,s as Ve}from"../chunks/DmRbbcS3.js";import{b as ga,r as ct,s as oe,a as Ye}from"../chunks/CstKKb9b.js";import{b as Ze}from"../chunks/raHbXn_9.js";import{T as ha,B as Pe,b as fa}from"../chunks/BkKmeUbA.js";import{f as xa,a as ma,s as Tt,d as ya,b as ba,c as $a,e as wa,g as ka}from"../chunks/BFEiffAL.js";import{r as Bt}from"../chunks/C3SY6-sX.js";import{P as It}from"../chunks/DP6QP4L6.js";import{E as ut}from"../chunks/BKCNyxZ2.js";import{C as Lt,M as At}from"../chunks/IFIFk6zi.js";var Sa=u("Delete <strong> </strong>? This cannot be undone.",1),Ma=u(`Duplicate <strong> </strong>? A copy will be added at the top of the
|
|
19
|
-
list.`,1),Ca=u("<option> </option>"),Da=u('<p class="form-error svelte-9ix8dg"> </p>'),Ra=u('<div class="form-fields svelte-9ix8dg"><div class="field"><label class="field-label" for="suite-name">Name</label> <input id="suite-name" type="text" class="field-input" placeholder="Login flows"></div> <div class="field"><label class="field-label" for="suite-desc">Description</label> <textarea id="suite-desc" class="field-input field-textarea svelte-9ix8dg" placeholder="What this suite covers…" rows="3"></textarea></div> <div class="field"><label class="field-label" for="suite-prio">Priority</label> <select id="suite-prio" class="field-input"></select></div> <!> <div class="modal-actions svelte-9ix8dg"><!> <!></div></div>'),Pa=u('<p class="form-error svelte-9ix8dg"> </p>'),Ta=u('<div class="form-fields svelte-9ix8dg"><div class="field"><label class="field-label" for="run-title">Title</label> <input id="run-title" type="text" class="field-input" placeholder="Sprint 12 regression"></div> <!> <div class="modal-actions svelte-9ix8dg"><!> <!></div></div>'),Ba=u('<button class="search-clear svelte-9ix8dg" aria-label="Clear search"><svg width="12" height="12" 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>'),Ia=u('<span class="sort-dir svelte-9ix8dg"> </span>'),La=u('<button class="sort-chip svelte-9ix8dg"> <!></button>'),Aa=u('<span class="sort-dir svelte-9ix8dg"> </span>'),Na=u('<button class="sort-chip svelte-9ix8dg"> <!></button>'),Oa=u('<div class="sort-bar svelte-9ix8dg"><span class="sort-label svelte-9ix8dg">Sort by</span> <!></div>'),Ea=u('<div class="loading-row svelte-9ix8dg">Searching…</div>'),Fa=u('<div class="loading-row svelte-9ix8dg">Searching…</div>'),Ha=u('<span class="auto-badge svelte-9ix8dg">automated</span>'),Va=u('<a class="case-result-row svelte-9ix8dg"><span class="id-chip small svelte-9ix8dg"> </span> <span class="case-result-title svelte-9ix8dg"> </span> <!> <span> </span> <span class="case-result-suite svelte-9ix8dg"> </span></a>'),ja=u('<div class="search-section svelte-9ix8dg"><h2 class="search-section-title svelte-9ix8dg">Cases <span class="tab-count svelte-9ix8dg"> </span></h2> <div class="case-results svelte-9ix8dg"></div></div>'),qa=u('<p class="suite-desc svelte-9ix8dg"> </p>'),Ja=u('<div class="suite-card svelte-9ix8dg"><a class="card-link svelte-9ix8dg"></a> <div class="suite-card-header svelte-9ix8dg"><span class="id-chip svelte-9ix8dg"> </span> <span> </span> <div class="suite-card-actions svelte-9ix8dg"><button class="icon-btn danger svelte-9ix8dg" title="Delete suite"><svg width="13" height="13" 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> <h3 class="suite-name svelte-9ix8dg"> </h3> <!> <div class="suite-meta svelte-9ix8dg"><span class="meta-item svelte-9ix8dg"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2"></path></svg> </span> <span class="meta-item svelte-9ix8dg"> </span></div></div>'),Ua=u('<div class="search-section svelte-9ix8dg"><h2 class="search-section-title svelte-9ix8dg">Suites <span class="tab-count svelte-9ix8dg"> </span></h2> <div class="suite-grid svelte-9ix8dg"></div></div>'),za=u('<div class="run-row svelte-9ix8dg"><a class="card-link svelte-9ix8dg"></a> <div class="run-row-main svelte-9ix8dg"><span></span> <span class="run-title svelte-9ix8dg"> </span> <span class="run-count svelte-9ix8dg"> </span></div> <div class="run-meta svelte-9ix8dg"><span class="run-status-label svelte-9ix8dg"> </span> <span class="meta-sep svelte-9ix8dg">·</span> <span> </span> <span class="meta-sep svelte-9ix8dg">·</span> <span> </span></div> <div class="run-row-actions svelte-9ix8dg"><button class="icon-btn svelte-9ix8dg" title="Duplicate run"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></button> <button class="icon-btn danger svelte-9ix8dg" title="Delete run"><svg width="13" height="13" 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>'),Ga=u('<div class="search-section svelte-9ix8dg"><h2 class="search-section-title svelte-9ix8dg">Runs <span class="tab-count svelte-9ix8dg"> </span></h2> <div class="runs-list svelte-9ix8dg"></div></div>'),Wa=u("<!> <!> <!>",1),Ya=u("<div><!></div>"),Za=u('<div class="loading-row svelte-9ix8dg">Loading…</div>'),Ka=u('<p class="suite-desc svelte-9ix8dg"> </p>'),Qa=u('<div class="suite-card svelte-9ix8dg"><a class="card-link svelte-9ix8dg"></a> <div class="suite-card-header svelte-9ix8dg"><span class="id-chip svelte-9ix8dg"> </span> <span> </span> <div class="suite-card-actions svelte-9ix8dg"><button class="icon-btn danger svelte-9ix8dg" title="Delete suite"><svg width="13" height="13" 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> <h3 class="suite-name svelte-9ix8dg"> </h3> <!> <div class="suite-meta svelte-9ix8dg"><span class="meta-item svelte-9ix8dg"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2"></path></svg> </span> <span class="meta-item svelte-9ix8dg"> </span></div></div>'),Xa=u('<div class="pagination-row svelte-9ix8dg"><!></div>'),es=u('<div class="suite-grid svelte-9ix8dg"></div> <!>',1),ts=u("<div><!></div>"),as=u('<div class="loading-row svelte-9ix8dg">Loading…</div>'),ss=u('<div class="run-row svelte-9ix8dg"><a class="card-link svelte-9ix8dg"></a> <div class="run-row-main svelte-9ix8dg"><span></span> <span class="run-title svelte-9ix8dg"> </span> <span class="run-count svelte-9ix8dg"> </span></div> <div class="run-meta svelte-9ix8dg"><span class="run-status-label svelte-9ix8dg"> </span> <span class="meta-sep svelte-9ix8dg">·</span> <span> </span> <span class="meta-sep svelte-9ix8dg">·</span> <span> </span></div> <div class="run-row-actions svelte-9ix8dg"><button class="icon-btn svelte-9ix8dg" title="Duplicate run"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></button> <button class="icon-btn danger svelte-9ix8dg" title="Delete run"><svg width="13" height="13" 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>'),rs=u('<div class="pagination-row svelte-9ix8dg"><!></div>'),is=u('<div class="runs-list svelte-9ix8dg"></div> <!>',1),ls=u("<div><!></div>"),ns=u('<!> <!> <!> <!> <!> <div class="page-header svelte-9ix8dg"><div class="header-text svelte-9ix8dg"><h1 class="svelte-9ix8dg">Test Repository</h1> <p class="header-desc svelte-9ix8dg">Manage test suites, cases, and track manual test runs.</p></div> <div class="header-actions svelte-9ix8dg"><!></div></div> <div class="tabs svelte-9ix8dg"><button class="tab svelte-9ix8dg">Suites <span class="tab-count svelte-9ix8dg"> </span></button> <button class="tab svelte-9ix8dg">Test Runs <span class="tab-count svelte-9ix8dg"> </span></button></div> <div class="search-bar svelte-9ix8dg"><svg class="search-icon svelte-9ix8dg" 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"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg> <input type="search" class="search-input svelte-9ix8dg" placeholder="Search by ID or name…"> <!></div> <!> <!>',1);function bs(Nt,Ot){va(Ot,!1);const ve=f(),Te=f(),ye=f(),be=f();let $e=f(typeof sessionStorage<"u"&&sessionStorage.getItem("plum:repo:tab")||"suites");function pt(t){i($e,t);try{sessionStorage.setItem("plum:repo:tab",t)}catch{}}function _t(t,n){try{const c=sessionStorage.getItem(t);if(c)return JSON.parse(c)}catch{}return n}function gt(t,n){try{sessionStorage.setItem(t,JSON.stringify(n))}catch{}}let fe=f([]),de=f(0),ht=f(1),z=f(_t("plum:repo:suites:sort",{by:"createdAt",order:"desc"})),le=f([]),ce=f(0),ft=f(1),X=f(_t("plum:repo:runs:sort",{by:"createdAt",order:"desc"}));const xt={Critical:0,High:1,Medium:2,Low:3};function Et(t,n){return[...t].sort((c,w)=>{const T=(xt[c.priority]??4)-(xt[w.priority]??4);return n==="asc"?T:-T})}let Ke=f(!0),Qe=f(null),ee=f(null),je=f(!1),Xe=f(null),Be=f(!1),G=f({name:"",description:"",priority:"Medium"}),qe=f(!1),we=f(""),Ie=f(!1),ke=f({title:""}),Je=f(!1),Se=f(""),j=f(null),ue=f(!1),Me=f(null),Ue=f(!1),xe=f("");const Ft=["Critical","High","Medium","Low"];function pe(t,n){i(Qe,{type:t,message:n}),setTimeout(()=>i(Qe,null),ga)}async function et(t=1){const n=e(z).by==="priority",c=await xa({page:t,sortBy:n?"createdAt":e(z).by,sortOrder:e(z).order});i(fe,n?Et(c.suites,e(z).order):c.suites),i(de,c.total),i(ht,t)}async function tt(t=1){const n=await ma({page:t,sortBy:e(X).by,sortOrder:e(X).order});i(le,n.runs),i(ce,n.total),i(ft,t)}async function Ht(t){e(z).by===t?Re(z,e(z).order=e(z).order==="asc"?"desc":"asc"):i(z,{by:t,order:t==="createdAt"?"desc":"asc"}),gt("plum:repo:suites:sort",e(z)),await et(1)}async function Vt(t){e(X).by===t?Re(X,e(X).order=e(X).order==="asc"?"desc":"asc"):i(X,{by:t,order:t==="createdAt"||t==="updatedAt"?"desc":"asc"}),gt("plum:repo:runs:sort",e(X)),await tt(1)}da(async()=>{try{await Promise.all([et(1),tt(1)])}catch{pe("error","Failed to load data")}finally{i(Ke,!1)}});async function jt(){if(!e(G).name.trim()){i(we,"Name is required.");return}i(we,""),i(qe,!0);try{const t=await wa(e(G));i(fe,[...e(fe),t]),i(de,e(de)+1),i(Be,!1),i(G,{name:"",description:"",priority:"Medium"}),pe("success",`Suite "${t.name}" created.`)}catch(t){i(we,t.message)}finally{i(qe,!1)}}async function qt(t,n){try{await ya(t),i(fe,e(fe).filter(c=>c.id!==t)),i(de,e(de)-1),pe("success",`Suite "${n}" deleted.`)}catch{pe("error","Failed to delete suite.")}i(j,null),i(ue,!1)}async function Jt(){if(!e(ke).title.trim()){i(Se,"Title is required.");return}i(Se,""),i(Je,!0);try{const t=await ka({title:e(ke).title,caseIds:[]});i(le,[t,...e(le)]),i(Ie,!1),i(ke,{title:""}),window.location.href=`/test-repository/runs/${t.id}`}catch(t){i(Se,t.message)}finally{i(Je,!1)}}async function mt(t){i(Me,t),i(Ue,!0)}async function Ut(){if(!e(Me))return;const t=e(Me);i(Me,null),i(Ue,!1);try{const n=await $a(t.id);i(le,[n,...e(le)]),i(ce,e(ce)+1),Bt.update(c=>c+1),pe("success",`Duplicated as "${n.title}".`)}catch{pe("error","Failed to duplicate run.")}}async function zt(t,n){try{await ba(t),i(le,e(le).filter(c=>c.id!==t)),i(ce,e(ce)-1),Bt.update(c=>c+1),pe("success",`Run "${n}" deleted.`)}catch{pe("error","Failed to delete run.")}i(j,null),i(ue,!1)}function at(t){return(t==null?void 0:t.toLowerCase())??"medium"}function yt(t){return t==="complete"?"pass":t==="in-progress"?"warn":"muted"}He(()=>e(xe),()=>{i(ve,e(xe).trim())}),He(()=>(e(Xe),e(ve),Tt),()=>{clearTimeout(e(Xe)),e(ve)?(i(je,!0),i(ee,null),i(Xe,setTimeout(async()=>{try{i(ee,await Tt(e(ve)))}catch{i(ee,{suites:[],cases:[],runs:[]})}finally{i(je,!1)}},300))):(i(ee,null),i(je,!1))}),He(()=>e(ee),()=>{var t;i(Te,((t=e(ee))==null?void 0:t.cases)??[])}),He(()=>e(ee),()=>{var t;i(ye,((t=e(ee))==null?void 0:t.suites)??[])}),He(()=>e(ee),()=>{var t;i(be,((t=e(ee))==null?void 0:t.runs)??[])}),ca(),oa();var bt=ns();la(t=>{pa.title="Test Repository — Plum"});var $t=V(bt);ha($t,{get toast(){return e(Qe)}});var wt=r($t,2);const Gt=ge(()=>{var t;return((t=e(j))==null?void 0:t.type)==="suite"?"Suite":"Run"});Lt(wt,{get title(){return`Delete ${e(Gt)??""}`},confirmLabel:"Delete",get open(){return e(ue)},set open(t){i(ue,t)},$$events:{confirm:()=>{var t;return((t=e(j))==null?void 0:t.type)==="suite"?qt(e(j).id,e(j).name):zt(e(j).id,e(j).name)}},children:(t,n)=>{var c=ne(),w=V(c);{var T=_=>{var h=Sa(),C=r(V(h)),R=s(C);a(C),_e(),M(()=>o(R,`"${e(j).name??""}"`)),l(_,h)};b(w,_=>{e(j)&&_(T)})}l(t,c)},$$slots:{default:!0},$$legacy:!0});var kt=r(wt,2);Lt(kt,{title:"Duplicate Run",confirmLabel:"Duplicate",get open(){return e(Ue)},set open(t){i(Ue,t)},$$events:{confirm:Ut},children:(t,n)=>{var c=ne(),w=V(c);{var T=_=>{var h=Ma(),C=r(V(h)),R=s(C);a(C),_e(),M(()=>o(R,`"${e(Me).title??""}"`)),l(_,h)};b(w,_=>{e(Me)&&_(T)})}l(t,c)},$$slots:{default:!0},$$legacy:!0});var St=r(kt,2);At(St,{title:"New Test Suite",get open(){return e(Be)},set open(t){i(Be,t)},children:(t,n)=>{var c=Ra(),w=s(c),T=r(s(w),2);ct(T),a(w);var _=r(w,2),h=r(s(_),2);na(h),a(_);var C=r(_,2),R=r(s(C),2);M(()=>{e(G),_a(()=>{})}),he(R,5,()=>Ft,ot,($,g)=>{var x=Ca(),D={},te=s(x,!0);a(x),M(()=>{D!==(D=e(g))&&(x.value=(x.__value=e(g))==null?"":e(g)),o(te,e(g))}),l($,x)}),a(R),a(C);var A=r(C,2);{var d=$=>{var g=Da(),x=s(g,!0);a(g),M(()=>o(x,e(we))),l($,g)};b(A,$=>{e(we)&&$(d)})}var m=r(A,2),y=s(m);Pe(y,{get disabled(){return e(qe)},$$events:{click:jt},children:($,g)=>{_e();var x=De();M(()=>o(x,e(qe)?"Creating…":"Create Suite")),l($,x)},$$slots:{default:!0}});var W=r(y,2);Pe(W,{variant:"ghost",$$events:{click:()=>{i(Be,!1),i(we,"")}},children:($,g)=>{_e();var x=De("Cancel");l($,x)},$$slots:{default:!0}}),a(m),a(c),Ze(T,()=>e(G).name,$=>Re(G,e(G).name=$)),Ze(h,()=>e(G).description,$=>Re(G,e(G).description=$)),fa(R,()=>e(G).priority,$=>Re(G,e(G).priority=$)),l(t,c)},$$slots:{default:!0},$$legacy:!0});var Mt=r(St,2);At(Mt,{title:"New Test Run",get open(){return e(Ie)},set open(t){i(Ie,t)},children:(t,n)=>{var c=Ta(),w=s(c),T=r(s(w),2);ct(T),a(w);var _=r(w,2);{var h=d=>{var m=Pa(),y=s(m,!0);a(m),M(()=>o(y,e(Se))),l(d,m)};b(_,d=>{e(Se)&&d(h)})}var C=r(_,2),R=s(C);Pe(R,{get disabled(){return e(Je)},$$events:{click:Jt},children:(d,m)=>{_e();var y=De();M(()=>o(y,e(Je)?"Creating…":"Create Run")),l(d,y)},$$slots:{default:!0}});var A=r(R,2);Pe(A,{variant:"ghost",$$events:{click:()=>{i(Ie,!1),i(Se,"")}},children:(d,m)=>{_e();var y=De("Cancel");l(d,y)},$$slots:{default:!0}}),a(C),a(c),Ze(T,()=>e(ke).title,d=>Re(ke,e(ke).title=d)),l(t,c)},$$slots:{default:!0},$$legacy:!0});var st=r(Mt,2),Ct=r(s(st),2),Wt=s(Ct);{var Yt=t=>{Pe(t,{$$events:{click:()=>i(Be,!0)},children:(n,c)=>{_e();var w=De("+ New Suite");l(n,w)},$$slots:{default:!0}})},Zt=t=>{Pe(t,{$$events:{click:()=>i(Ie,!0)},children:(n,c)=>{_e();var w=De("+ New Run");l(n,w)},$$slots:{default:!0}})};b(Wt,t=>{e($e)==="suites"?t(Yt):t(Zt,!1)})}a(Ct),a(st);var rt=r(st,2),Le=s(rt),Dt=r(s(Le)),Kt=s(Dt);a(Dt),a(Le);var ze=r(Le,2),Rt=r(s(ze)),Qt=s(Rt);a(Rt),a(ze),a(rt);var it=r(rt,2),lt=r(s(it),2);ct(lt);var Xt=r(lt,2);{var ea=t=>{var n=Ba();ie("click",n,()=>i(xe,"")),l(t,n)};b(Xt,t=>{e(xe)&&t(ea)})}a(it);var Pt=r(it,2);{var ta=t=>{var n=Oa(),c=r(s(n),2);{var w=_=>{var h=ne(),C=V(h);he(C,0,()=>[["createdAt","Date Created"],["displayId","ID"],["name","Name"],["priority","Priority"]],ot,(R,A)=>{let d=()=>A[0],m=()=>A[1];var y=La(),W=s(y),$=r(W);{var g=x=>{var D=Ia(),te=s(D,!0);a(D),M(()=>o(te,e(z).order==="asc"?"↑":"↓")),l(x,D)};b($,x=>{e(z).by===d()&&x(g)})}a(y),M(()=>{We(y,"active",e(z).by===d()),o(W,`${m()??""} `)}),ie("click",y,()=>Ht(d())),l(R,y)}),l(_,h)},T=_=>{var h=ne(),C=V(h);he(C,0,()=>[["createdAt","Date Created"],["updatedAt","Last Updated"],["title","Name"]],ot,(R,A)=>{let d=()=>A[0],m=()=>A[1];var y=Na(),W=s(y),$=r(W);{var g=x=>{var D=Aa(),te=s(D,!0);a(D),M(()=>o(te,e(X).order==="asc"?"↑":"↓")),l(x,D)};b($,x=>{e(X).by===d()&&x(g)})}a(y),M(()=>{We(y,"active",e(X).by===d()),o(W,`${m()??""} `)}),ie("click",y,()=>Vt(d())),l(R,y)}),l(_,h)};b(c,_=>{e($e)==="suites"?_(w):_(T,!1)})}a(n),l(t,n)};b(Pt,t=>{e(ve)||t(ta)})}var aa=r(Pt,2);{var sa=t=>{var n=Ya(),c=s(n);{var w=_=>{var h=Ea();l(_,h)},T=_=>{var h=ne(),C=V(h);{var R=d=>{var m=Fa();l(d,m)},A=d=>{var m=ne(),y=V(m);{var W=g=>{ut(g,{title:"No results",get description(){return`Nothing matches “${e(xe)??""}”.`}})},$=g=>{var x=Wa(),D=V(x);{var te=k=>{var S=ja(),B=s(S),q=r(s(B)),Q=s(q,!0);a(q),a(B);var Z=r(B,2);he(Z,5,()=>e(Te),N=>N.id,(N,v)=>{var P=Va(),E=s(P),O=s(E,!0);a(E);var J=r(E,2),K=s(J,!0);a(J);var F=r(J,2);{var ae=U=>{var Ae=Ha();l(U,Ae)};b(F,U=>{e(v).isAutomated&&U(ae)})}var H=r(F,2),se=s(H,!0);a(H);var I=r(H,2),re=s(I);a(I),a(P),M(U=>{oe(P,"href",`/test-repository/suites/${e(v).suite.id??""}`),o(O,e(v).displayId),o(K,e(v).title),Ve(H,`priority-badge small ${U??""} svelte-9ix8dg`),o(se,e(v).priority),o(re,`${e(v).suite.displayId??""} · ${e(v).suite.name??""}`)},[()=>at(e(v).priority)],ge),l(N,P)}),a(Z),a(S),M(()=>o(Q,e(Te).length)),l(k,S)};b(D,k=>{e(Te).length>0&&k(te)})}var Ce=r(D,2);{var L=k=>{var S=Ua(),B=s(S),q=r(s(B)),Q=s(q,!0);a(q),a(B);var Z=r(B,2);he(Z,5,()=>e(ye),N=>N.id,(N,v)=>{var P=Ja(),E=s(P),O=r(E,2),J=s(O),K=s(J,!0);a(J);var F=r(J,2),ae=s(F,!0);a(F);var H=r(F,2),se=s(H);a(H),a(O);var I=r(O,2),re=s(I,!0);a(I);var U=r(I,2);{var Ae=me=>{var Fe=qa(),ia=s(Fe,!0);a(Fe),M(()=>o(ia,e(v).description)),l(me,Fe)};b(U,me=>{e(v).description&&me(Ae)})}var Ne=r(U,2),Oe=s(Ne),Ge=r(s(Oe));a(Oe);var Ee=r(Oe,2),nt=s(Ee);a(Ee),a(Ne),a(P),M(me=>{oe(E,"href",`/test-repository/suites/${e(v).id??""}`),oe(E,"aria-label",e(v).name),o(K,e(v).displayId),Ve(F,`priority-badge ${me??""} svelte-9ix8dg`),o(ae,e(v).priority),o(re,e(v).name),o(Ge,` ${e(v)._count.cases??""} case${(e(v)._count.cases!==1?"s":"")??""}`),o(nt,`by ${e(v).createdBy.name??""}`)},[()=>at(e(v).priority)],ge),ie("click",se,()=>{i(j,{type:"suite",id:e(v).id,name:e(v).name}),i(ue,!0)}),l(N,P)}),a(Z),a(S),M(()=>o(Q,e(ye).length)),l(k,S)};b(Ce,k=>{e(ye).length>0&&k(L)})}var p=r(Ce,2);{var Y=k=>{var S=Ga(),B=s(S),q=r(s(B)),Q=s(q,!0);a(q),a(B);var Z=r(B,2);he(Z,5,()=>e(be),N=>N.id,(N,v)=>{var P=za(),E=s(P),O=r(E,2),J=s(O),K=r(J,2),F=s(K,!0);a(K);var ae=r(K,2),H=s(ae);a(ae),a(O);var se=r(O,2),I=s(se),re=s(I,!0);a(I);var U=r(I,4),Ae=s(U);a(U);var Ne=r(U,4),Oe=s(Ne,!0);a(Ne),a(se);var Ge=r(se,2),Ee=s(Ge),nt=r(Ee,2);a(Ge),a(P),M((me,Fe)=>{oe(E,"href",`/test-repository/runs/${e(v).id??""}`),oe(E,"aria-label",e(v).title),Ve(J,`run-status-dot ${me??""} svelte-9ix8dg`),o(F,e(v).title),o(H,`${e(v)._count.entries??""} case${(e(v)._count.entries!==1?"s":"")??""}`),o(re,e(v).status),o(Ae,`by ${e(v).createdBy.name??""}`),o(Oe,Fe)},[()=>yt(e(v).status),()=>new Date(e(v).createdAt).toLocaleDateString()],ge),ie("click",Ee,()=>mt(e(v))),ie("click",nt,()=>{i(j,{type:"run",id:e(v).id,name:e(v).title}),i(ue,!0)}),l(N,P)}),a(Z),a(S),M(()=>o(Q,e(be).length)),l(k,S)};b(p,k=>{e(be).length>0&&k(Y)})}l(g,x)};b(y,g=>{e(Te).length===0&&e(ye).length===0&&e(be).length===0?g(W):g($,!1)},!0)}l(d,m)};b(C,d=>{e(ee)?d(A,!1):d(R)},!0)}l(_,h)};b(c,_=>{e(je)?_(w):_(T,!1)})}a(n),vt(3,n,()=>dt,()=>({y:4,duration:160})),l(t,n)},ra=t=>{var n=ne(),c=V(n);{var w=_=>{var h=ts(),C=s(h);{var R=d=>{var m=Za();l(d,m)},A=d=>{var m=ne(),y=V(m);{var W=g=>{ut(g,{title:"No test suites yet",description:"Create your first suite to start organising test cases."})},$=g=>{var x=es(),D=V(x);he(D,5,()=>e(fe),L=>L.id,(L,p)=>{var Y=Qa(),k=s(Y),S=r(k,2),B=s(S),q=s(B,!0);a(B);var Q=r(B,2),Z=s(Q,!0);a(Q);var N=r(Q,2),v=s(N);a(N),a(S);var P=r(S,2),E=s(P,!0);a(P);var O=r(P,2);{var J=I=>{var re=Ka(),U=s(re,!0);a(re),M(()=>o(U,e(p).description)),l(I,re)};b(O,I=>{e(p).description&&I(J)})}var K=r(O,2),F=s(K),ae=r(s(F));a(F);var H=r(F,2),se=s(H);a(H),a(K),a(Y),M(I=>{oe(k,"href",`/test-repository/suites/${e(p).id??""}`),oe(k,"aria-label",e(p).name),o(q,e(p).displayId),Ve(Q,`priority-badge ${I??""} svelte-9ix8dg`),o(Z,e(p).priority),o(E,e(p).name),o(ae,` ${e(p)._count.cases??""} case${(e(p)._count.cases!==1?"s":"")??""}`),o(se,`by ${e(p).createdBy.name??""}`)},[()=>at(e(p).priority)],ge),ie("click",v,()=>{i(j,{type:"suite",id:e(p).id,name:e(p).name}),i(ue,!0)}),l(L,Y)}),a(D);var te=r(D,2);{var Ce=L=>{var p=Xa(),Y=s(p);const k=ge(()=>Math.ceil(e(de)/Ye));It(Y,{get current(){return e(ht)},get total(){return e(k)},$$events:{change:S=>et(S.detail)}}),a(p),l(L,p)};b(te,L=>{Math.ceil(e(de)/Ye)>1&&L(Ce)})}l(g,x)};b(y,g=>{e(fe).length===0?g(W):g($,!1)},!0)}l(d,m)};b(C,d=>{e(Ke)?d(R):d(A,!1)})}a(h),vt(3,h,()=>dt,()=>({y:4,duration:160})),l(_,h)},T=_=>{var h=ls(),C=s(h);{var R=d=>{var m=as();l(d,m)},A=d=>{var m=ne(),y=V(m);{var W=g=>{ut(g,{title:"No test runs yet",description:"Create a test run to start executing and tracking manual tests."})},$=g=>{var x=is(),D=V(x);he(D,5,()=>e(le),L=>L.id,(L,p)=>{var Y=ss(),k=s(Y),S=r(k,2),B=s(S),q=r(B,2),Q=s(q,!0);a(q);var Z=r(q,2),N=s(Z);a(Z),a(S);var v=r(S,2),P=s(v),E=s(P,!0);a(P);var O=r(P,4),J=s(O);a(O);var K=r(O,4),F=s(K,!0);a(K),a(v);var ae=r(v,2),H=s(ae),se=r(H,2);a(ae),a(Y),M((I,re)=>{oe(k,"href",`/test-repository/runs/${e(p).id??""}`),oe(k,"aria-label",e(p).title),Ve(B,`run-status-dot ${I??""} svelte-9ix8dg`),o(Q,e(p).title),o(N,`${e(p)._count.entries??""} case${(e(p)._count.entries!==1?"s":"")??""}`),o(E,e(p).status),o(J,`by ${e(p).createdBy.name??""}`),o(F,re)},[()=>yt(e(p).status),()=>new Date(e(p).createdAt).toLocaleDateString()],ge),ie("click",H,()=>mt(e(p))),ie("click",se,()=>{i(j,{type:"run",id:e(p).id,name:e(p).title}),i(ue,!0)}),l(L,Y)}),a(D);var te=r(D,2);{var Ce=L=>{var p=rs(),Y=s(p);const k=ge(()=>Math.ceil(e(ce)/Ye));It(Y,{get current(){return e(ft)},get total(){return e(k)},$$events:{change:S=>tt(S.detail)}}),a(p),l(L,p)};b(te,L=>{Math.ceil(e(ce)/Ye)>1&&L(Ce)})}l(g,x)};b(y,g=>{e(le).length===0?g(W):g($,!1)},!0)}l(d,m)};b(C,d=>{e(Ke)?d(R):d(A,!1)})}a(h),vt(3,h,()=>dt,()=>({y:4,duration:160})),l(_,h)};b(c,_=>{e($e)==="suites"?_(w):_(T,!1)},!0)}l(t,n)};b(aa,t=>{e(ve)?t(sa):t(ra,!1)})}M(()=>{We(Le,"active",e($e)==="suites"),o(Kt,`${(e(ve)?e(ye).length+"/":"")??""}${e(de)??""}`),We(ze,"active",e($e)==="runs"),o(Qt,`${(e(ve)?e(be).length+"/":"")??""}${e(ce)??""}`)}),ie("click",Le,()=>pt("suites")),ie("click",ze,()=>pt("runs")),Ze(lt,()=>e(xe),t=>i(xe,t)),l(Nt,bt),ua()}export{bs as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -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};
|
|
Binary file
|
|
Binary file
|