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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h as ve,a as v,t as p,c as ot,s as E,e as bt,b as it,n as Mt}from"../chunks/CMBQQ9RZ.js";import{i as oe}from"../chunks/CKDtmZUQ.js";import{h as Ct,_ as ie,a as ce,ak as de,al as _e,Z as pe,a7 as ge,a6 as ue,a8 as fe,U as he,p as me,am as xe,an as Ee,l as S,b as ke,f as T,c as be,$ as Le,g as t,y as Pt,s as L,ao as ye,j as l,m as w,d as n,k as r,t as m,x as tt,n as ct}from"../chunks/BAACMRH5.js";import{i as k,s as Ie,a as Lt}from"../chunks/CgnwuKKO.js";import{e as Vt,t as A,a as yt,f as we,i as Te,c as Ot}from"../chunks/TOCyHP97.js";import{u as It,s as et,v as Se}from"../chunks/CUC98kMZ.js";import{b as jt}from"../chunks/2zMvi6fR.js";import{g as dt}from"../chunks/DMyTUV-Y.js";import{p as Re}from"../chunks/nURnIknV.js";import{b as Ae,c as Be,d as Ne}from"../chunks/DHM6H-es.js";import{r as wt}from"../chunks/DbgD7JLa.js";import{e as Ce,g as Pe,h as Ve,i as Oe,V as je,j as De,k as Ue,l as Ge,w as $e,C as We,m as He,n as Me,o as Fe,q as qe,F as Ye,W as Ke,s as Ze,u as ze,v as Je,A as Qe,x as Xe,y as Dt,z as Ut,B as Gt,E as $t}from"../chunks/Co3xKhEp.js";import{t as ts}from"../chunks/DSLBMEpr.js";import{B as es}from"../chunks/CGeZlCaI.js";import{B as Wt}from"../chunks/CuqnZUex.js";function Ht(_t,pt,K){Ct&&ie();var st=_t,Z=he,B,at=ce()?de:_e;pe(()=>{at(Z,Z=pt())&&(B&&ge(B),B=ue(()=>K(st)))}),Ct&&(st=fe)}var ss=p('<div class="idle-state svelte-4v9t4g"><div class="idle-icon svelte-4v9t4g"><svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-4v9t4g"><circle cx="12" cy="12" r="10" class="svelte-4v9t4g"></circle><polyline points="12 6 12 12 16 14" class="svelte-4v9t4g"></polyline></svg></div> <h2 class="svelte-4v9t4g"></h2> <p class="svelte-4v9t4g"></p> <a href="/reports" class="idle-link svelte-4v9t4g"></a></div>'),as=p('<a class="cron-task-chip svelte-4v9t4g"> </a>'),rs=p('<div class="cron-running-state svelte-4v9t4g"><div class="cron-running-icon svelte-4v9t4g"><span class="cron-pulse-dot svelte-4v9t4g"></span></div> <h2 class="svelte-4v9t4g"> </h2> <div class="cron-task-list svelte-4v9t4g"></div> <p class="svelte-4v9t4g"></p></div>'),ns=p('<span class="live-badge svelte-4v9t4g"><span class="live-dot svelte-4v9t4g"></span> </span>'),ls=p('<span class="run-title-label svelte-4v9t4g"> </span> <span class="run-sep svelte-4v9t4g">·</span>',1),vs=p('<span class="run-sep svelte-4v9t4g">·</span> <span class="run-detail svelte-4v9t4g"> </span>',1),os=p('<div class="run-info svelte-4v9t4g"><!> <span class="run-tag-label svelte-4v9t4g"> </span> <span class="run-sep svelte-4v9t4g">·</span> <span class="run-detail svelte-4v9t4g"> </span> <span class="run-sep svelte-4v9t4g">·</span> <span class="run-detail svelte-4v9t4g"> </span> <!></div>'),is=p('<button class="cancel-btn svelte-4v9t4g"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-4v9t4g"><rect x="3" y="3" width="18" height="18" rx="2" class="svelte-4v9t4g"></rect><line x1="9" y1="9" x2="15" y2="15" class="svelte-4v9t4g"></line><line x1="15" y1="9" x2="9" y2="15" class="svelte-4v9t4g"></line></svg> </button>'),cs=Mt('<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-4v9t4g"><polyline points="20 6 9 17 4 12" class="svelte-4v9t4g"></polyline></svg> ',1),ds=Mt('<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-4v9t4g"><line x1="18" y1="6" x2="6" y2="18" class="svelte-4v9t4g"></line><line x1="6" y1="6" x2="18" y2="18" class="svelte-4v9t4g"></line></svg> ',1),_s=p('<div class="completion-bar svelte-4v9t4g"><div class="completion-left svelte-4v9t4g"><!></div> <div class="completion-right svelte-4v9t4g"><span class="redirect-hint svelte-4v9t4g"> </span> <button class="view-now-btn svelte-4v9t4g"> <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-4v9t4g"><line x1="5" y1="12" x2="19" y2="12" class="svelte-4v9t4g"></line><polyline points="12 5 19 12 12 19" class="svelte-4v9t4g"></polyline></svg></button></div></div>'),ps=p('<span class="tab-count svelte-4v9t4g"> </span>'),gs=p('<button class="lane-tab svelte-4v9t4g"><span class="tab-dot svelte-4v9t4g"></span> <!></button>'),us=p('<div class="lane-tabs svelte-4v9t4g"></div>'),fs=p('<img class="live-shot svelte-4v9t4g">'),hs=p('<!> <div class="step-overlay svelte-4v9t4g"><span class="step-keyword svelte-4v9t4g"></span> <span class="step-name svelte-4v9t4g"> </span></div>',1),ms=p('<div class="awaiting-state svelte-4v9t4g"><svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" opacity="0.25" class="svelte-4v9t4g"><rect x="2" y="5" width="20" height="14" rx="2" class="svelte-4v9t4g"></rect><circle cx="12" cy="12" r="3" class="svelte-4v9t4g"></circle></svg> <span class="svelte-4v9t4g"> </span></div>'),xs=p('<img class="live-shot svelte-4v9t4g">'),Es=p('<!> <div class="step-overlay svelte-4v9t4g"><span class="step-keyword svelte-4v9t4g"></span> <span class="step-name svelte-4v9t4g"> </span></div>',1),ks=p('<div class="awaiting-state svelte-4v9t4g"><svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" opacity="0.25" class="svelte-4v9t4g"><rect x="2" y="5" width="20" height="14" rx="2" class="svelte-4v9t4g"></rect><circle cx="12" cy="12" r="3" class="svelte-4v9t4g"></circle></svg> <span class="svelte-4v9t4g"> </span></div>'),bs=p('<pre class="terminal svelte-4v9t4g"> </pre>'),Ls=p('<pre class="terminal svelte-4v9t4g"> </pre>'),ys=p('<div class="run-header svelte-4v9t4g"><div class="header-left svelte-4v9t4g"><!> <!></div> <!></div> <!> <!> <div class="run-view svelte-4v9t4g"><div class="screenshot-panel svelte-4v9t4g"><!></div> <div class="terminal-panel svelte-4v9t4g"><div class="terminal-bar svelte-4v9t4g"><span class="dot red svelte-4v9t4g"></span> <span class="dot yellow svelte-4v9t4g"></span> <span class="dot green svelte-4v9t4g"></span> <span class="terminal-label svelte-4v9t4g"><!></span></div> <!></div></div>',1),Is=p("<!> <!>",1);function $s(_t,pt){me(pt,!1);const[K,st]=Ie(),Z=()=>Lt(Re,"$page",K),B=()=>Lt(Ae,"$backgroundRuns",K),at=()=>Lt(Be,"$runnerState",K),V=w(),s=w(),U=w(),N=w(),G=w(),Tt=w(),C=w(),Ft={output:"",running:!1,testCompleted:!1,latestReportId:null,status:"idle",lanes:[],currentRun:null,latestScreenshot:null};let $=w(),W=w(),O=w(null),z=w(It/1e3),j=w(null),P=w(null);xe(()=>{t($)&&Pt($,t($).scrollTop=t($).scrollHeight),t(W)&&Pt(W,t(W).scrollTop=t(W).scrollHeight)}),Ee(()=>{t(O)&&clearTimeout(t(O)),t(j)&&clearInterval(t(j))});function qt(){t(O)&&clearTimeout(t(O)),t(j)&&clearInterval(t(j)),dt(wt(t(s).latestReportId))}S(()=>Z(),()=>{L(V,Z().url.searchParams.get("run"))}),S(()=>(t(V),B(),at()),()=>{L(s,t(V)?B()[t(V)]??Ft:at())}),S(()=>t(s),()=>{L(U,t(s).lanes.length>0)}),S(()=>B(),()=>{L(N,Object.entries(B()).filter(([,y])=>y.running))}),S(()=>(t(V),t(s),t(N)),()=>{L(G,!t(V)&&!t(s).running&&!t(s).testCompleted&&t(N).length>0)}),S(()=>(t(s),t(G)),()=>{L(Tt,!t(s).running&&!t(s).testCompleted&&!t(G))}),S(()=>(t(G),t(N),dt),()=>{t(G)&&t(N).length===1&&dt(`/reports/live?run=${t(N)[0][0]}`)}),S(()=>(t(s),t(P)),()=>{t(s).lanes.length===0?L(P,null):t(s).lanes.find(y=>y.id===t(P))||L(P,t(s).lanes[0].id)}),S(()=>(t(s),t(P)),()=>{L(C,t(s).lanes.find(y=>y.id===t(P))??null)}),S(()=>(t(s),t(O),t(z),t(j),wt),()=>{t(s).testCompleted&&t(s).latestReportId&&!t(O)&&(L(z,It/1e3),L(j,setInterval(()=>{ye(z,-1),t(z)<=0&&clearInterval(t(j))},1e3)),L(O,setTimeout(()=>dt(wt(t(s).latestReportId)),It)))}),ke(),oe();var St=Is();ve(y=>{Le.title=Ce});var Rt=T(St);es(Rt,{href:"/reports",label:Pe});var Yt=l(Rt,2);{var Kt=y=>{var H=ss(),rt=l(n(H),2);rt.textContent=Ve;var nt=l(rt,2);nt.textContent=Oe;var gt=l(nt,2);gt.textContent=je,r(H),v(y,H)},Zt=y=>{var H=ot(),rt=T(H);{var nt=M=>{var F=rs(),R=l(n(F),2),J=n(R,!0);r(R);var q=l(R,2);Vt(q,5,()=>t(N),([D,Q])=>D,(D,Q)=>{let ft=()=>t(Q)[0],lt=()=>t(Q)[1];var Y=as(),vt=n(Y);r(Y),m(ht=>{et(Y,"href",`/reports/live?run=${ft()??""}`),E(vt,`${lt().label??""} · ${ht??""}`)},[()=>ts(lt().kind)],tt),v(D,Y)}),r(q);var ut=l(q,2);ut.textContent=De,r(F),m(D=>E(J,D),[()=>Ue(t(N).length)],tt),v(M,F)},gt=M=>{var F=ys(),R=T(F),J=n(R),q=n(J);{var ut=a=>{var e=ns(),d=l(n(e),1,!0);d.nodeValue=Ge,r(e),v(a,e)},D=a=>{var e=ot(),d=T(e);{var c=i=>{Wt(i,{variant:"pass",children:(o,g)=>{ct();var _=it();_.nodeValue=Ze,v(o,_)},$$slots:{default:!0}})},u=i=>{Wt(i,{variant:"fail",children:(o,g)=>{ct();var _=it();_.nodeValue=ze,v(o,_)},$$slots:{default:!0}})};k(d,i=>{t(s).status==="pass"?i(c):i(u,!1)},!0)}v(a,e)};k(q,a=>{t(s).running?a(ut):a(D,!1)})}var Q=l(q,2);{var ft=a=>{var e=os(),d=n(e);{var c=f=>{var h=ls(),X=T(h),kt=n(X,!0);r(X),ct(2),m(()=>E(kt,t(s).currentRun.runTitle)),v(f,h)};k(d,f=>{t(s).currentRun.runTitle&&f(c)})}var u=l(d,2),i=n(u,!0);r(u);var o=l(u,4),g=n(o,!0);r(o);var _=l(o,4),x=n(_,!0);r(_);var I=l(_,2);{var b=f=>{var h=vs(),X=l(T(h),2),kt=n(X,!0);r(X),m(le=>E(kt,le),[()=>Je(t(s).lanes.length)],tt),v(f,h)};k(I,f=>{t(s).lanes.length>1&&f(b)})}r(e),m(f=>{E(i,t(s).currentRun.tag||Se),E(g,f),E(x,t(s).currentRun.browser)},[()=>$e(t(s).currentRun.workers)],tt),v(a,e)};k(Q,a=>{t(s).currentRun&&a(ft)})}r(J);var lt=l(J,2);{var Y=a=>{var e=is(),d=l(n(e));d.nodeValue=` ${We}`,r(e),bt("click",e,function(...c){var u;(u=Ne)==null||u.apply(this,c)}),v(a,e)};k(lt,a=>{t(s).running&&!t(V)&&a(Y)})}r(R);var vt=l(R,2);{var ht=a=>{var e=_s(),d=n(e),c=n(d);{var u=b=>{var f=cs(),h=l(T(f),1,!0);h.nodeValue=Qe,v(b,f)},i=b=>{var f=ds(),h=l(T(f),1,!0);h.nodeValue=Xe,v(b,f)};k(c,b=>{t(s).status==="pass"?b(u):b(i,!1)})}r(d);var o=l(d,2),g=n(o),_=n(g,!0);r(g);var x=l(g,2),I=n(x);I.nodeValue=`${He} `,ct(),r(x),r(o),r(e),m(b=>{A(e,"pass-bar",t(s).status==="pass"),A(e,"fail-bar",t(s).status==="fail"),E(_,b)},[()=>Me(t(z))],tt),bt("click",x,qt),yt(3,e,()=>we,()=>({y:-8,duration:250})),v(a,e)};k(vt,a=>{t(s).testCompleted&&t(s).latestReportId&&a(ht)})}var At=l(vt,2);{var zt=a=>{var e=us();Vt(e,5,()=>t(s).lanes,Te,(d,c)=>{var u=gs(),i=n(u),o=l(i),g=l(o);{var _=x=>{var I=ps(),b=n(I,!0);r(I),m(()=>E(b,t(c).testCount)),v(x,I)};k(g,x=>{t(c).testCount&&x(_)})}r(u),m(()=>{A(u,"active",t(P)===t(c).id),A(i,"tab-dot-running",t(c).status==="running"),A(i,"tab-dot-done",t(c).status==="done"),A(i,"tab-dot-error",t(c).status==="error"),E(o,` ${t(c).name??""} `)}),bt("click",u,()=>L(P,t(c).id)),v(d,u)}),r(e),v(a,e)};k(At,a=>{t(U)&&a(zt)})}var mt=l(At,2),xt=n(mt),Jt=n(xt);{var Qt=a=>{var e=ot(),d=T(e);{var c=i=>{var o=hs(),g=T(o);Ht(g,()=>t(C).latestScreenshot.data,f=>{var h=fs();et(h,"alt",$t),m(()=>et(h,"src",`data:image/jpeg;base64,${t(C).latestScreenshot.data??""}`)),yt(1,h,()=>Ot,()=>({duration:120})),v(f,h)});var _=l(g,2),x=n(_);x.textContent=Dt;var I=l(x,2),b=n(I,!0);r(I),r(_),m(()=>E(b,t(C).latestScreenshot.stepName)),v(i,o)},u=i=>{var o=ms(),g=l(n(o),2),_=n(g,!0);r(g),r(o),m(()=>{var x;return E(_,((x=t(C))==null?void 0:x.status)==="running"?Ut:Gt)}),v(i,o)};k(d,i=>{var o;(o=t(C))!=null&&o.latestScreenshot?i(c):i(u,!1)})}v(a,e)},Xt=a=>{var e=ot(),d=T(e);{var c=i=>{var o=Es(),g=T(o);Ht(g,()=>t(s).latestScreenshot.data,f=>{var h=xs();et(h,"alt",$t),m(()=>et(h,"src",`data:image/jpeg;base64,${t(s).latestScreenshot.data??""}`)),yt(1,h,()=>Ot,()=>({duration:120})),v(f,h)});var _=l(g,2),x=n(_);x.textContent=Dt;var I=l(x,2),b=n(I,!0);r(I),r(_),m(()=>E(b,t(s).latestScreenshot.stepName)),v(i,o)},u=i=>{var o=ks(),g=l(n(o),2),_=n(g,!0);r(g),r(o),m(()=>E(_,t(s).running?Ut:Gt)),v(i,o)};k(d,i=>{t(s).latestScreenshot?i(c):i(u,!1)},!0)}v(a,e)};k(Jt,a=>{t(U)?a(Qt):a(Xt,!1)})}r(xt);var Bt=l(xt,2),Et=n(Bt),Nt=l(n(Et),6),te=n(Nt);{var ee=a=>{var e=it();m(()=>{var d;return E(e,((d=t(C))==null?void 0:d.name)??Fe)}),v(a,e)},se=a=>{var e=it();m(()=>E(e,t(s).running?qe:Ye)),v(a,e)};k(te,a=>{t(U)?a(ee):a(se,!1)})}r(Nt),r(Et);var ae=l(Et,2);{var re=a=>{var e=bs(),d=n(e,!0);r(e),jt(e,c=>L(W,c),()=>t(W)),m(()=>{var c;return E(d,((c=t(C))==null?void 0:c.logs)||Ke)}),v(a,e)},ne=a=>{var e=Ls(),d=n(e,!0);r(e),jt(e,c=>L($,c),()=>t($)),m(()=>E(d,t(s).output)),v(a,e)};k(ae,a=>{t(U)?a(re):a(ne,!1)})}r(Bt),r(mt),m(()=>{A(R,"header-pass",t(s).status==="pass"),A(R,"header-fail",t(s).status==="fail"),A(mt,"no-top-radius",t(U))}),v(M,F)};k(rt,M=>{t(G)?M(nt):M(gt,!1)},!0)}v(y,H)};k(Yt,y=>{t(Tt)?y(Kt):y(Zt,!1)})}v(_t,St),be(),st()}export{$s as component};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h as Dt,a as u,s as g,e as K,t as x,b as j,c as Ut}from"../chunks/CMBQQ9RZ.js";import{i as Bt}from"../chunks/CKDtmZUQ.js";import{p as Pt,o as Mt,s as o,f as qe,c as Ht,m as w,$ as Wt,t as $,x as H,g as e,y as W,d as n,j as s,k as a,v as Jt,n as Ne}from"../chunks/BAACMRH5.js";import{i as J,s as Gt,a as Ft}from"../chunks/CgnwuKKO.js";import{e as ze,i as Xe,t as xe}from"../chunks/TOCyHP97.js";import{A as Ce,s as q,x as bt,y as z,n as ht,f as Vt,B as Me,b as Kt,r as de,z as qt,F as zt,G as Xt,D as Qt}from"../chunks/CUC98kMZ.js";import{b as lt,a as Et}from"../chunks/t-La0hgu.js";import{T as Yt,B as Qe,b as Zt}from"../chunks/CzlPaHY9.js";import{p as jt}from"../chunks/Bfc47y5P.js";import{f as es,a as ts}from"../chunks/3InFPLvE.js";import{b as ss}from"../chunks/DHM6H-es.js";import{s as as}from"../chunks/DSLBMEpr.js";import{B as ns}from"../chunks/CuqnZUex.js";import{M as rs}from"../chunks/CMEtqUfQ.js";import{C as ls}from"../chunks/DMZwI8Cj.js";import{E as os}from"../chunks/BKuh57WU.js";async function ot(){const c=await fetch(`${Ce}/cron-jobs`),{cronJobs:C}=await c.json();return C??[]}async function vs({taskName:c,cronExpression:C,tags:X,workers:Q,browser:O,runnerIds:R,notifyDiscord:T,notifySlack:B,isEditing:E,editTaskName:k}){const b=X.replace(/\sOR\s/gi,P=>P.toLowerCase()),Y=E?`${Ce}/cron-jobs/${encodeURIComponent(k)}`:`${Ce}/cron-jobs`;return(await fetch(Y,{method:E?"PUT":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cronExpression:C,taskName:c,tags:b,workers:Q,browser:O,runnerIds:R,notifyDiscord:T??!1,notifySlack:B??!1})})).json()}async function cs(c,C){return(await fetch(`${Ce}/cron-jobs/${encodeURIComponent(c)}/toggle`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:C})})).json()}async function is(c){return(await fetch(`${Ce}/cron-jobs/${encodeURIComponent(c)}/run`,{method:"POST"})).json()}async function ds(c){return(await fetch(`${Ce}/cron-jobs/${encodeURIComponent(c)}`,{method:"DELETE"})).json()}const us="Scheduled Tests — Plum",fs="Scheduled Tests",_s="Manage recurring test runs via cron jobs",ms="+ New Job",ps="No scheduled tests yet. Create one to get started.",bs="Task Name",hs="Use a unique, meaningful name",Es="nightly-login-suite",gs="Schedule",ks="Select a schedule",ys="Custom…",Ns="0 9 * * 1-5",xs="Invalid cron expression",Cs="Tags",Ts="Multiple: @test-1 or @test-2. Leave blank to run all tests",Ss="@suite-login (optional)",Ls="Workers",$s="Parallel workers for this job",Rs="Browser",Is="Runners",As="Select one or more nodes",ws="this server",Os="Notifications",Ds="All fields are required.",Us="Invalid cron expression.",Bs="Failed to save. Please try again.",gt="Network error.",Ps="Could not update schedule.",Ms="Could not trigger run.",Hs="Could not delete cron job.",Ws="Delete Cron Job",Js="Are you sure you want to delete",Gs="Disable schedule",Fs="Enable schedule",Vs="Running now",Ks="Name",qs="Schedule",zs="Tags",Xs="Workers",Qs="Browser",Ys="Runner",Zs="Actions",js=c=>c?"Edit Cron Job":"New Cron Job",ea=c=>c?"Save Changes":"Add Cron Job",ta=c=>c?Gs:Fs,sa=c=>`Run ${c} now`,aa=c=>`${c} nodes`,na=(c,C)=>`${c?"Updated":"Added"}: ${C}`,ra=c=>`Started: ${c}`,la=c=>`Deleted: ${c}`,oa=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function va(c){if(!c)return"";const C=c.trim().split(/\s+/);if(C.length!==5)return"";const[X,Q,O,R,T]=C,B=(D,P)=>{const Te=D>=12?"PM":"AM";return`${D%12||12}:${String(P).padStart(2,"0")} ${Te}`},E=D=>/^\d+$/.test(D),k=E(Q)?+Q:null,b=E(X)?+X:null;if(c==="* * * * *")return"Every minute";const Y=X.match(/^\*\/(\d+)$/);if(Y&&Q==="*"&&O==="*"&&R==="*"&&T==="*")return`Every ${Y[1]} minutes`;if(b!==null&&Q==="*"&&O==="*"&&R==="*"&&T==="*")return`Every hour at :${String(b).padStart(2,"0")}`;if(b!==null&&k!==null&&O==="*"&&R==="*"&&T==="1-5")return`Weekdays at ${B(k,b)}`;if(b!==null&&k!==null&&O==="*"&&R==="*"&&T==="*")return`Daily at ${B(k,b)}`;if(b!==null&&k!==null&&O==="*"&&R==="*"&&/^\d$/.test(T))return`Every ${oa[+T]} at ${B(k,b)}`;const I=E(O)?+O:null;return b!==null&&k!==null&&I!==null&&R==="*"&&T==="*"?`Monthly on the ${I}${I===1?"st":I===2?"nd":I===3?"rd":"th"} at ${B(k,b)}`:""}var ca=x('<option class="svelte-13v7bmf"> </option>'),ia=x('<p class="cron-desc svelte-13v7bmf"> </p>'),da=x('<input type="text" class="field-input cron-input svelte-13v7bmf" spellcheck="false"> <!>',1),ua=x('<button type="button" class="seg-btn svelte-13v7bmf"><span class="seg-num svelte-13v7bmf"> </span></button>'),fa=x('<label class="runner-check-option svelte-13v7bmf"><input type="checkbox" class="svelte-13v7bmf"> <span class="runner-check-dot remote svelte-13v7bmf"></span> <span class="svelte-13v7bmf"> </span> <span class="runner-check-hint svelte-13v7bmf"> </span></label>'),_a=x('<label class="notify-check-option svelte-13v7bmf"><input type="checkbox" class="svelte-13v7bmf"> <span class="svelte-13v7bmf"></span></label>'),ma=x('<label class="notify-check-option svelte-13v7bmf"><input type="checkbox" class="svelte-13v7bmf"> <span class="svelte-13v7bmf"></span></label>'),pa=x('<div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span></div> <div class="notify-checks svelte-13v7bmf"><!> <!></div></div>'),ba=x('<p class="form-error svelte-13v7bmf"> </p>'),ha=x('<form class="modal-form svelte-13v7bmf"><div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span> <span class="field-hint svelte-13v7bmf"></span></div> <input type="text" class="field-input svelte-13v7bmf" required></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span></div> <select class="field-input svelte-13v7bmf" required><option disabled class="svelte-13v7bmf"></option><!><option class="svelte-13v7bmf"></option></select> <!></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span> <span class="field-hint svelte-13v7bmf"></span></div> <input type="text" class="field-input svelte-13v7bmf"></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span> <span class="field-hint svelte-13v7bmf"></span></div> <div class="stepper svelte-13v7bmf"><button type="button" class="step-btn svelte-13v7bmf">−</button> <span class="step-val svelte-13v7bmf"> </span> <button type="button" class="step-btn svelte-13v7bmf">+</button></div></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span></div> <div class="seg-control svelte-13v7bmf"></div></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span> <span class="field-hint svelte-13v7bmf"></span></div> <div class="runner-checks svelte-13v7bmf"><label class="runner-check-option svelte-13v7bmf"><input type="checkbox" class="svelte-13v7bmf"> <span class="runner-check-dot built-in svelte-13v7bmf"></span> <span class="svelte-13v7bmf"></span> <span class="runner-check-hint svelte-13v7bmf"></span></label> <!></div></div> <!> <!> <!></form>'),Ea=x(' <strong class="svelte-13v7bmf"> </strong> ',1),ga=x('<span class="running-dot svelte-13v7bmf"></span>'),ka=x('<tr class="job-row svelte-13v7bmf"><td class="td-toggle svelte-13v7bmf"><button class="toggle-btn svelte-13v7bmf"><span class="toggle-knob svelte-13v7bmf"></span></button></td><td class="td-run svelte-13v7bmf"><button class="run-icon-btn svelte-13v7bmf"><svg width="10" height="10" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-13v7bmf"><polygon points="5,3 19,12 5,21" class="svelte-13v7bmf"></polygon></svg></button></td><td class="job-name svelte-13v7bmf"><!> </td><td class="svelte-13v7bmf"><!></td><td class="svelte-13v7bmf"><span class="tag-text svelte-13v7bmf"> </span></td><td class="svelte-13v7bmf"><span class="workers-badge svelte-13v7bmf"> </span></td><td class="svelte-13v7bmf"><span class="browser-badge svelte-13v7bmf"> </span></td><td class="svelte-13v7bmf"><span class="runner-badge svelte-13v7bmf"><!></span></td><td class="actions-cell svelte-13v7bmf"><!> <!></td></tr>'),ya=x('<div class="table-wrap svelte-13v7bmf"><table class="data-table svelte-13v7bmf"><thead class="svelte-13v7bmf"><tr class="svelte-13v7bmf"><th class="th-toggle svelte-13v7bmf"></th><th class="th-run svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th></tr></thead><tbody class="svelte-13v7bmf"></tbody></table></div>'),Na=x('<!> <!> <!> <div class="page-header svelte-13v7bmf"><div class="header-row svelte-13v7bmf"><div class="svelte-13v7bmf"><h1 class="svelte-13v7bmf"></h1> <p class="subtitle svelte-13v7bmf"></p></div> <!></div></div> <div class="card svelte-13v7bmf" style="padding: 0; overflow: hidden;"><!></div>',1);function Ha(c,C){Pt(C,!1);const[X,Q]=Gt(),O=()=>Ft(ss,"$backgroundRuns",X),R=/^(\*|([0-5]?[0-9])|\*\/[0-9]+) (\*|([01]?[0-9]|2[0-3])) (\*|([01]?[0-9]|3[01])) (\*|([1-9]|1[0-2])) (\*|[0-6](-[0-6])?)$/,T="__custom__",B=[{label:"Every minute",value:"* * * * *"},{label:"Every hour",value:"0 * * * *"},{label:"Every midnight",value:"0 0 * * *"},{label:"Every Sunday",value:"0 0 * * 0"}];let E=w([]),k=w([]),b=w({discordWebhookUrl:"",slackWebhookUrl:"",notifyPublicUrl:""}),Y=w(null),I=w(!1),D=w(!1),P=w(!1),Te="",Se=w(""),r=w({taskName:"",cronExpression:"",tags:"",workers:1,browser:Me[0].id,runnerIds:[z],notifyDiscord:!1,notifySlack:!1}),Le=w(""),$e=w(!1),G=w("");function ee(t,f){o(Y,{type:t,message:f}),setTimeout(()=>o(Y,null),Kt)}function kt(t){t.target.value===T?(o($e,!0),W(r,e(r).cronExpression="")):(o($e,!1),W(r,e(r).cronExpression=t.target.value))}function vt(t){const f=e(r).runnerIds;f.includes(t)&&f.length===1||W(r,e(r).runnerIds=f.includes(t)?f.filter(d=>d!==t):[...f,t])}function ct(t){W(r,e(r).workers=Math.max(1,Math.min(10,(e(r).workers||1)+t)))}function yt(){o(P,!1),Te="",o(r,{taskName:"",cronExpression:"",tags:"",workers:1,browser:Me[0].id,runnerIds:[z],notifyDiscord:!1,notifySlack:!1}),o(Le,""),o($e,!1),o(G,""),o(I,!0)}function Nt(t){o(P,!0),Te=t.taskName;const f=new Set([z,...e(k).map(y=>y.id)]),S=(t.runnerIds?t.runnerIds.split(",").map(y=>y.trim()):[z]).filter(y=>f.has(y));o(r,{taskName:t.taskName,cronExpression:t.cronExpression,tags:t.tags,workers:t.workers??1,browser:t.browser??Me[0].id,runnerIds:S.length>0?S:[z],notifyDiscord:t.notifyDiscord??!1,notifySlack:t.notifySlack??!1});const L=B.some(y=>y.value===t.cronExpression);o($e,!L),o(Le,L?t.cronExpression:T),o(G,""),o(I,!0)}async function xt(){if(!e(r).taskName||!e(r).cronExpression){o(G,Ds);return}if(!R.test(e(r).cronExpression)){o(G,Us);return}o(G,"");try{(await vs({...e(r),isEditing:e(P),editTaskName:Te})).message?(ee("success",na(e(P),e(r).taskName)),o(I,!1),o(E,await ot())):o(G,Bs)}catch{o(G,gt)}}async function Ct(t){const f=!t.enabled;o(E,e(E).map(d=>d.taskName===t.taskName?{...d,enabled:f}:d));try{await cs(t.taskName,f)}catch{o(E,e(E).map(d=>d.taskName===t.taskName?{...d,enabled:!f}:d)),ee("error",Ps)}}async function Tt(t){try{await is(t),ee("success",ra(t))}catch{ee("error",Ms)}}async function St(){try{(await ds(e(Se))).message?(ee("success",la(e(Se))),o(E,await ot())):ee("error",Hs)}catch{ee("error",gt)}o(D,!1),o(Se,"")}function Lt(t){var f;return((f=B.find(d=>d.value===t))==null?void 0:f.label)??t}Mt(async()=>{await(async t=>(o(E,t[0]),o(k,t[1]),o(b,t[2])))(await Promise.all([ot(),es().catch(()=>[]),ts().catch(()=>({discordWebhookUrl:"",slackWebhookUrl:"",notifyPublicUrl:""}))]))}),Bt();var it=Na();Dt(t=>{Wt.title=us});var dt=qe(it);const $t=H(()=>js(e(P)));rs(dt,{get title(){return e($t)},get open(){return e(I)},set open(t){o(I,t)},children:(t,f)=>{var d=ha(),S=n(d),L=n(S),y=n(L);y.textContent=bs;var ue=s(y,2);ue.textContent=hs,a(L);var fe=s(L,2);de(fe),q(fe,"placeholder",Es),a(S);var _e=s(S,2),me=n(_e),He=n(me);He.textContent=gs,a(me);var te=s(me,2);$(()=>{e(Le),Jt(()=>{})});var se=n(te);se.value=((se.__value="")==null,""),se.textContent=ks;var We=s(se);ze(We,1,()=>B,Xe,(v,i)=>{var l=ca(),h={},A=n(l,!0);a(l),$(()=>{h!==(h=e(i).value)&&(l.value=(l.__value=e(i).value)==null?"":e(i).value),g(A,e(i).label)}),u(v,l)});var m=s(We);m.value=(m.__value=T)==null?"":T,m.textContent=ys,a(te);var je=s(te,2);{var ae=v=>{var i=da(),l=qe(i);de(l),q(l,"placeholder",Ns);var h=s(l,2);{var A=M=>{var F=ia(),Be=n(F,!0);a(F),$((Pe,V)=>{xe(F,"cron-invalid",Pe),g(Be,V)},[()=>!R.test(e(r).cronExpression),()=>R.test(e(r).cronExpression)?va(e(r).cronExpression)||e(r).cronExpression:xs],H),u(M,F)};J(h,M=>{e(r).cronExpression&&M(A)})}lt(l,()=>e(r).cronExpression,M=>W(r,e(r).cronExpression=M)),u(v,i)};J(je,v=>{e($e)&&v(ae)})}a(_e);var U=s(_e,2),ne=n(U),Z=n(ne);Z.textContent=Cs;var Re=s(Z,2);Re.textContent=Ts,a(ne);var pe=s(ne,2);de(pe),q(pe,"placeholder",Ss),a(U);var re=s(U,2),be=n(re),Je=n(be);Je.textContent=Ls;var et=s(Je,2);et.textContent=$s,a(be);var he=s(be,2),Ie=n(he),le=s(Ie,2),Ge=n(le,!0);a(le);var Fe=s(le,2);a(he),a(re);var oe=s(re,2),ve=n(oe),tt=n(ve);tt.textContent=Rs,a(ve);var Ee=s(ve,2);ze(Ee,5,()=>Me,Xe,(v,i)=>{var l=ua(),h=n(l),A=n(h,!0);a(h),a(l),$(()=>{xe(l,"active",e(r).browser===e(i).id),g(A,e(i).label)}),K("click",l,()=>W(r,e(r).browser=e(i).id)),u(v,l)}),a(Ee),a(oe);var ge=s(oe,2),Ae=n(ge),ke=n(Ae);ke.textContent=Is;var we=s(ke,2);we.textContent=As,a(Ae);var Ve=s(Ae,2),Oe=n(Ve),ye=n(Oe);de(ye);var De=s(ye,4);De.textContent=bt;var Ke=s(De,2);Ke.textContent=ws,a(Oe);var st=s(Oe,2);ze(st,1,()=>e(k),Xe,(v,i)=>{var l=fa(),h=n(l);de(h);var A=s(h,4),M=n(A,!0);a(A);var F=s(A,2),Be=n(F,!0);a(F),a(l),$(Pe=>{ht(h,Pe),g(M,e(i).name),g(Be,e(i).url)},[()=>e(r).runnerIds.includes(e(i).id)],H),K("change",h,()=>vt(e(i).id)),u(v,l)}),a(Ve),a(ge);var _=s(ge,2);{var p=v=>{var i=pa(),l=n(i),h=n(l);h.textContent=Os,a(l);var A=s(l,2),M=n(A);{var F=V=>{var ce=_a(),ie=n(ce);de(ie);var nt=s(ie,2);nt.textContent=qt,a(ce),Et(ie,()=>e(r).notifyDiscord,rt=>W(r,e(r).notifyDiscord=rt)),u(V,ce)};J(M,V=>{e(b).discordWebhookUrl&&V(F)})}var Be=s(M,2);{var Pe=V=>{var ce=ma(),ie=n(ce);de(ie);var nt=s(ie,2);nt.textContent=zt,a(ce),Et(ie,()=>e(r).notifySlack,rt=>W(r,e(r).notifySlack=rt)),u(V,ce)};J(Be,V=>{e(b).slackWebhookUrl&&V(Pe)})}a(A),a(i),u(v,i)};J(_,v=>{(e(b).discordWebhookUrl||e(b).slackWebhookUrl)&&v(p)})}var N=s(_,2);{var Ue=v=>{var i=ba(),l=n(i,!0);a(i),$(()=>g(l,e(G))),u(v,i)};J(N,v=>{e(G)&&v(Ue)})}var at=s(N,2);Qe(at,{type:"submit",size:"md",children:(v,i)=>{Ne();var l=j();$(h=>g(l,h),[()=>ea(e(P))],H),u(v,l)},$$slots:{default:!0}}),a(d),$(v=>{Ie.disabled=e(r).workers<=1,g(Ge,e(r).workers),Fe.disabled=e(r).workers>=10,ht(ye,v)},[()=>e(r).runnerIds.includes(z)],H),lt(fe,()=>e(r).taskName,v=>W(r,e(r).taskName=v)),Zt(te,()=>e(Le),v=>o(Le,v)),K("change",te,kt),lt(pe,()=>e(r).tags,v=>W(r,e(r).tags=v)),K("click",Ie,()=>ct(-1)),K("click",Fe,()=>ct(1)),K("change",ye,()=>vt(z)),K("submit",d,jt(xt)),u(t,d)},$$slots:{default:!0},$$legacy:!0});var ut=s(dt,2);ls(ut,{title:Ws,get open(){return e(D)},set open(t){o(D,t)},$$events:{confirm:St},children:(t,f)=>{Ne();var d=Ea(),S=qe(d);S.nodeValue=`${Js} `;var L=s(S),y=n(L,!0);a(L);var ue=s(L,1,!0);ue.nodeValue=Vt,$(()=>g(y,e(Se))),u(t,d)},$$slots:{default:!0},$$legacy:!0});var ft=s(ut,2);Yt(ft,{get toast(){return e(Y)}});var Ye=s(ft,2),_t=n(Ye),Ze=n(_t),mt=n(Ze);mt.textContent=fs;var Rt=s(mt,2);Rt.textContent=_s,a(Ze);var It=s(Ze,2);Qe(It,{$$events:{click:yt},children:(t,f)=>{Ne();var d=j();d.nodeValue=ms,u(t,d)},$$slots:{default:!0}}),a(_t),a(Ye);var pt=s(Ye,2),At=n(pt);{var wt=t=>{os(t,{message:ps,size:"sm"})},Ot=t=>{var f=ya(),d=n(f),S=n(d),L=n(S),y=s(n(L),2);y.textContent=Ks;var ue=s(y);ue.textContent=qs;var fe=s(ue);fe.textContent=zs;var _e=s(fe);_e.textContent=Xs;var me=s(_e);me.textContent=Qs;var He=s(me);He.textContent=Ys;var te=s(He);te.textContent=Zs,a(L),a(S);var se=s(S);ze(se,5,()=>e(E),Xe,(We,m,je)=>{var ae=ka();const U=H(()=>e(m).runnerIds?e(m).runnerIds.split(",").map(_=>_.trim()):[z]);var ne=n(ae),Z=n(ne);a(ne);var Re=s(ne),pe=n(Re);a(Re);var re=s(Re),be=n(re);{var Je=_=>{var p=ga();q(p,"title",Vs),u(_,p)};J(be,_=>{var p;(p=O()[e(m).taskName])!=null&&p.running&&_(Je)})}var et=s(be);a(re);var he=s(re),Ie=n(he);ns(Ie,{variant:"schedule",children:(_,p)=>{Ne();var N=j();$(Ue=>g(N,Ue),[()=>Lt(e(m).cronExpression)],H),u(_,N)},$$slots:{default:!0}}),a(he);var le=s(he),Ge=n(le),Fe=n(Ge,!0);a(Ge),a(le);var oe=s(le),ve=n(oe),tt=n(ve);a(ve),a(oe);var Ee=s(oe),ge=n(Ee),Ae=n(ge,!0);a(ge),a(Ee);var ke=s(Ee),we=n(ke),Ve=n(we);{var Oe=_=>{var p=j();p.nodeValue=bt,u(_,p)},ye=_=>{var p=Ut(),N=qe(p);{var Ue=v=>{var i=j();$(l=>g(i,l),[()=>{var l;return((l=e(k).find(h=>h.id===e(U)[0]))==null?void 0:l.name)??e(U)[0]}],H),u(v,i)},at=v=>{var i=j();$(l=>g(i,l),[()=>aa(e(U).length)],H),u(v,i)};J(N,v=>{e(U).length===1?v(Ue):v(at,!1)},!0)}u(_,p)};J(Ve,_=>{e(U).length===1&&e(U)[0]===z?_(Oe):_(ye,!1)})}a(we),a(ke);var De=s(ke),Ke=n(De);Qe(Ke,{variant:"ghost",size:"sm",$$events:{click:()=>Nt(e(m))},children:(_,p)=>{Ne();var N=j();N.nodeValue=Xt,u(_,N)},$$slots:{default:!0}});var st=s(Ke,2);Qe(st,{variant:"danger",size:"sm",$$events:{click:()=>{o(Se,e(m).taskName),o(D,!0)}},children:(_,p)=>{Ne();var N=j();N.nodeValue=Qt,u(_,N)},$$slots:{default:!0}}),a(De),a(ae),$((_,p,N)=>{q(ae,"style",_),xe(ae,"disabled",!e(m).enabled),q(Z,"title",p),q(Z,"aria-label",p),q(Z,"aria-pressed",e(m).enabled),xe(Z,"on",e(m).enabled),q(pe,"title",N),g(et,` ${e(m).taskName??""}`),g(Fe,e(m).tags),xe(ve,"multi",e(m).workers>1),g(tt,`×${e(m).workers??""}`),g(Ae,e(m).browser??Me[0].id),xe(we,"multi-node",e(U).length>1)},[()=>as(je),()=>ta(e(m).enabled),()=>sa(e(m).taskName)],H),K("click",Z,()=>Ct(e(m))),K("click",pe,()=>Tt(e(m).taskName)),u(We,ae)}),a(se),a(d),a(f),u(t,f)};J(At,t=>{e(E).length===0?t(wt):t(Ot,!1)})}a(pt),u(c,it),Ht(),Q()}export{Ha as component};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{h as Zr,a as l,t as C,s as u,e as Je,b as te,c as De,n as ba}from"../chunks/CMBQQ9RZ.js";import{i as en}from"../chunks/CKDtmZUQ.js";import{p as tn,m as c,o as an,s as r,g as e,l as wt,b as sn,f as Re,c as rn,$ as nn,d as s,j as t,k as a,t as v,v as da,n as z,x as H,y as k}from"../chunks/BAACMRH5.js";import{i as U,s as ln,a as qa}from"../chunks/CgnwuKKO.js";import{e as Ot,i as va,t as St,a as He,f as Ve,s as on}from"../chunks/TOCyHP97.js";import{A as Ct,h as Lt,i as cn,r as B,s as m,M as dn,b as vn,B as ys,C as Is,G as pn,w as Qa,H as _n,E as ws}from"../chunks/CUC98kMZ.js";import{b as V}from"../chunks/t-La0hgu.js";import{T as un,B as se,b as pa}from"../chunks/CzlPaHY9.js";import{b as bn}from"../chunks/2zMvi6fR.js";import{g as fn}from"../chunks/DMyTUV-Y.js";import{b as Os,f as En,a as gn,c as hn,d as $s,p as Ns,s as mn,e as Ds,u as Sn,r as Cn,g as Ln,h as Rn,i as An,j as kn,k as xn,l as Pn,m as Tn,t as yn,n as In,o as wn}from"../chunks/3InFPLvE.js";import{n as On,o as $n,p as Nn}from"../chunks/BUwxRmHf.js";import{u as Dn,a as Un}from"../chunks/BmZ9upwL.js";import{a as ua}from"../chunks/C1Vid6wz.js";import{f as Za}from"../chunks/DHM6H-es.js";import{t as Us}from"../chunks/DCgHuuvs.js";import{C as Bn}from"../chunks/DMZwI8Cj.js";import{B as Fn}from"../chunks/CuqnZUex.js";function as(){return{"Content-Type":"application/json",Authorization:`Bearer ${ua.getToken()}`}}async function Mn(){const i=await fetch(`${Ct}/users`,{headers:as()});if(!i.ok)throw new Error("Failed to fetch users");return(await i.json()).users}async function Kn({name:i,email:Ue,password:_t,role:fa="user"}){const he=await fetch(`${Ct}/users`,{method:"POST",headers:as(),body:JSON.stringify({name:i,email:Ue,password:_t,role:fa})}),$t=await he.json();if(!he.ok)throw new Error($t.error??"Failed to create user");return $t.user}async function Gn(i){const Ue=await fetch(`${Ct}/users/${i}`,{method:"DELETE",headers:as()});if(!Ue.ok){const _t=await Ue.json();throw new Error(_t.error??"Failed to delete user")}}const Hn="Settings — Plum",Vn="Settings",_a="Name",Bs="Network error",tr="Checking…",ar="Copied!",Fs="Project",Ms="Runners",jn="Repository",Wn="Test Repository",Ks="Integrations",Xn="MCP",Yn="MCP Integration",es="Account",Gs="Users",ts="Backup",zn="Identity information shown across the UI",Jn="Register self-hosted runner nodes to distribute tests across machines.",qn="Configure ID prefixes for test suites and cases.",Qn="Connect Discord and Slack to receive run notifications with pass/fail results and report links.",Zn="Generate an API key for any MCP-compatible AI client — Claude, Cursor, Windsurf, and others.",el="Manage your profile, credentials and session.",tl="Add and manage who can access Plum.",al="Export your test cases, schedules, users, and project settings. Automate uploads to any S3-compatible storage — Cloudflare R2, Backblaze B2, AWS S3, or MinIO.",Hs="Name, URL and token are required.",sl="Failed to add runner.",rl="Failed to remove runner.",nl="Failed to update runner.",Vs=i=>`Cannot reach this runner — ${i??"check the URL and token"}.`,ll=i=>`Runner "${i}" added.`,il=i=>`Runner "${i}" removed.`,ol=i=>`Runner "${i}" stopped.`,cl=(i,Ue)=>`Could not stop "${i}": ${Ue??"unknown error"}`,dl=i=>`Could not stop "${i}".`,vl=i=>`Runner "${i}" restarting…`,pl=(i,Ue)=>`Could not restart "${i}": ${Ue??"unknown error"}`,_l=i=>`Could not restart "${i}".`,ul=i=>`Runner "${i}" updated.`,bl="Project Name",fl="My Test Suite",El="Logo URL",gl="Direct link to an image (PNG, SVG, JPG)",hl="https://example.com/logo.png",ml="Preview",Sl="Project logo preview",Cl="Timezone",Ll="Used to schedule cron jobs and backups",Rl="Retry failed tests",Al="Automatically re-run failed scenarios up to this many times before finalizing the report. 0 disables retries.",kl="Dark mode",xl="Switch between light and dark appearance",Pl="Project settings saved.",Tl="Failed to save project settings.",yl=i=>i?Lt:"Save Project",Il="Built-in runner",wl="Use this server to run tests locally. Disable to route all runs to external nodes.",js="URL",Ws="Use",Xs="for local nodes",Ys="http://host.docker.internal:3002",zs="Token",Ol="secret-token",$l="Leave blank to keep current token",Js="Browser",qs="staging-node",Nl="unreachable",Dl="pinging…",Ul="Remove",Bl="Add runner",Fl="+ Add Runner",Ml="Restart",Kl="Restarting…",Gl="Stop",Hl="Stopping…",Vl="Add Runner",jl=i=>i?tr:cn,Wl=i=>i?tr:Vl,Xl=i=>i?Kl:Ml,Yl=i=>i?Hl:Gl,zl="Test Case prefix",Qs="TC",Jl="Test Suite prefix",Zs="TS",ql="Examples:",Ql="Prefixes saved.",Zl="Failed to save prefixes.",ei="Migrate IDs",ti="Rename all existing test IDs to use a new prefix. Cucumber tags in code are",ai="not",si="affected — you manage those separately.",ri="New case prefix",ni="New suite prefix",li="Prefix migration complete. All IDs updated.",ii="Migration failed.",oi=i=>i?Lt:"Save Prefixes",ci=i=>i?"Migrating…":"Run Migration",di="Webhooks",vi="Discord Webhook URL",pi="Leave blank to disable Discord notifications",_i="https://discord.com/api/webhooks/…",ui="Slack Webhook URL",bi="Leave blank to disable Slack notifications",fi="https://hooks.slack.com/services/…",Ei="Public URL",gi="Base URL of this Plum instance, used to link reports in notifications",hi="https://plum.yourcompany.com",mi="Integration settings saved.",Si="Failed to save integration settings.",Ci="CI / External Triggers",Li="Trigger a Plum run from GitHub Actions (e.g. on a pull request, against its preview deployment) or any other external script by calling",Ri="with an",Ai="header. Generate a key on the",ki="MCP tab",xi="and store it as a repo secret — never commit it directly. Runs triggered this way show up in Reports tagged",Pi="External",Ti="Copy Workflow Step",yi=i=>i?Lt:"Save Integrations",Ii=i=>i?ar:Ti,wi="API Key",Oi="No key generated yet.",$i="Hide key",Ni="Show key",Di="Copy key",Ui="Regenerating invalidates the existing key immediately.",Bi="Config Snippet",Fi="Add this to your MCP client's config file (e.g.",Mi=", Cursor MCP settings, etc.).",Ki="MCP key generated.",Gi="Failed to generate MCP key.",Hi="Copy Config",Vi=i=>i?"Generating…":"Generate Key",ji=i=>i?"Generating…":"Regenerate Key",Wi=i=>i?ar:Hi,Xi="Profile",Yi="Change password",zi="Current password",Ji="New password",qi="Confirm new password",Qi="Sign out",Zi="Profile updated.",eo="Passwords do not match.",to="Password must be at least 8 characters.",ao="Password changed.",so=i=>i?Lt:"Save Profile",ro=i=>i?Lt:"Change Password",no="Remove User",lo="Remove",io="Remove",oo="? They will lose access immediately.",co="Add User",vo="Jane Smith",po="jane@example.com",_o="Password",uo="Role",bo="User",fo="Admin",Eo="Remove user",go="you",ho="Name, email and password are required.",mo=i=>i?"Adding…":"Add User",So=i=>`User "${i}" added.`,Co=i=>`User "${i}" removed.`,Lo="Manual Backup",Ro="Export",Ao="Downloads a",ko="file with all cron jobs, test cases, test runs, users, runners, and project settings.",xo="Import",Po="Restores all data from a previously exported backup. Existing records are overwritten. Cron jobs are re-scheduled after import.",To="Choose file…",yo="Reports are not included in backups. To back up report history, run",Io="directly on the PostgreSQL volume.",wo="S3 Storage",Oo="Works with any S3-compatible provider — Cloudflare R2, Backblaze B2, AWS S3, or MinIO. Leave",er="Endpoint URL",$o="empty for AWS S3.",No="Leave blank for AWS S3",Do="https://account.r2.cloudflarestorage.com",Uo="Region",Bo="Use",Fo="for Cloudflare R2",Mo="us-east-1",Ko="Bucket",Go="my-plum-backups",Ho="Path Prefix",Vo="Optional folder inside the bucket",jo="plum/",Wo="Access Key ID",Xo="AKIAIOSFODNN7EXAMPLE",Yo="Secret Access Key",zo="Test Connection",Jo="Save S3 Config",qo="Connection successful.",Qo="Connection failed.",Zo="Backup configuration saved.",ec="Failed to save backup configuration.",tc="Required",ac="A key is already saved — leave blank to keep it",sc="••••••••",rc="Enter secret key",nc="Testing…",lc="Scheduled Backup",ic="Configure S3 storage above to enable scheduled backups.",oc="Enable scheduled backup",cc="Cron Expression",dc="5-field cron — e.g.",vc="= daily at 2 AM.",pc="Test at crontab.guru ↗",_c="0 2 * * *",uc="Last backup:",bc="Backup downloaded.",fc="Export failed.",Ec="Import successful. Cron jobs have been re-scheduled.",gc="Import failed. Check the file format.",hc="Backup uploaded to S3 successfully.",mc="Backup failed. Check your S3 configuration.",Sc="Upload to S3 Now",Cc="Uploading…",Lc="Save Schedule",Rc=i=>`plum-backup-${i}.json`,Ac=i=>i?"Exporting…":"Export JSON",kc=i=>i?"Importing…":"Import",xc=i=>i?ac:tc,Pc=i=>i?sc:rc,Tc=i=>i?nc:zo,yc=i=>i?Lt:Jo,Ic=i=>`uploaded to ${i}`,wc=i=>i?Cc:Sc,Oc=i=>i?Lt:Lc;var $c=C('<button class="sidebar-item svelte-bpb2i4"> </button>'),Nc=C('<div class="logo-preview svelte-bpb2i4"><span class="preview-label svelte-bpb2i4"></span> <img class="logo-img svelte-bpb2i4"></div>'),Dc=C("<option> </option>"),Uc=C('<div class="content-section svelte-bpb2i4"><div class="content-header svelte-bpb2i4"><h2 class="svelte-bpb2i4"></h2> <p class="content-desc svelte-bpb2i4"></p></div> <div class="card settings-card svelte-bpb2i4"><div class="field"><label class="field-label svelte-bpb2i4" for="project-name"></label> <input id="project-name" type="text" class="field-input"></div> <div class="field"><label class="field-label svelte-bpb2i4" for="project-logo"><span></span> <span class="field-hint svelte-bpb2i4"></span></label> <input id="project-logo" type="url" class="field-input"></div> <!> <div class="field"><label class="field-label svelte-bpb2i4" for="project-timezone"><span></span> <span class="field-hint svelte-bpb2i4"></span></label> <select id="project-timezone" class="field-input"></select></div> <div class="field"><label class="field-label svelte-bpb2i4" for="project-max-retries"><span></span> <span class="field-hint svelte-bpb2i4"></span></label> <input id="project-max-retries" type="number" class="field-input" min="0"></div> <div class="toggle-row svelte-bpb2i4"><div class="toggle-info svelte-bpb2i4"><span class="toggle-label svelte-bpb2i4"></span> <span class="toggle-desc svelte-bpb2i4"></span></div> <button class="toggle-switch svelte-bpb2i4" role="switch"><span class="toggle-thumb svelte-bpb2i4"></span></button></div> <div class="card-footer svelte-bpb2i4"><!></div></div></div>'),Bc=C("<option> </option>"),Fc=C('<p class="form-error svelte-bpb2i4"> </p>'),Mc=C('<div class="runner-card editing svelte-bpb2i4"><div class="runner-form-fields svelte-bpb2i4"><div class="field"><label class="field-label svelte-bpb2i4"></label> <input type="text" class="field-input"></div> <div class="field"><label class="field-label svelte-bpb2i4"> <span class="field-hint svelte-bpb2i4"> <code>host.docker.internal</code> </span></label> <input type="url" class="field-input"></div> <div class="field"><label class="field-label svelte-bpb2i4"></label> <input type="text" class="field-input" spellcheck="false" autocomplete="off"></div> <div class="field"><label class="field-label svelte-bpb2i4"></label> <select class="field-input"></select></div></div> <!> <div class="runner-form-actions svelte-bpb2i4"><!> <!></div></div>'),Kc=C('<span class="ping-badge ok svelte-bpb2i4"> </span>'),Gc=C('<span class="ping-badge fail svelte-bpb2i4"></span>'),Hc=C('<span class="ping-badge pinging svelte-bpb2i4"></span>'),Vc=C('<div class="runner-card svelte-bpb2i4"><div class="runner-card-header svelte-bpb2i4"><svg class="runner-card-icon svelte-bpb2i4" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><rect x="2" y="3" width="20" height="14" rx="2"></rect><path d="M8 21h8M12 17v4"></path></svg> <span class="runner-card-name svelte-bpb2i4"> </span> <span class="runner-browser-pill svelte-bpb2i4"> </span> <!></div> <p class="runner-card-url svelte-bpb2i4"> </p> <div class="runner-card-actions svelte-bpb2i4"><!> <!> <!> <!></div></div>'),jc=C('<div class="runner-cards svelte-bpb2i4"></div>'),Wc=C("<option> </option>"),Xc=C('<p class="form-error svelte-bpb2i4"> </p>'),Yc=C('<div class="runner-form svelte-bpb2i4"><p class="runner-form-title svelte-bpb2i4"></p> <div class="runner-form-fields svelte-bpb2i4"><div class="field"><label class="field-label svelte-bpb2i4" for="rn-name"></label> <input id="rn-name" type="text" class="field-input"></div> <div class="field"><label class="field-label svelte-bpb2i4" for="rn-url"> <span class="field-hint svelte-bpb2i4"> <code>host.docker.internal</code> </span></label> <input id="rn-url" type="url" class="field-input"></div> <div class="field"><label class="field-label svelte-bpb2i4" for="rn-token"></label> <input id="rn-token" type="text" class="field-input" spellcheck="false" autocomplete="off"></div> <div class="field"><label class="field-label svelte-bpb2i4" for="rn-browser"></label> <select id="rn-browser" class="field-input"></select></div></div> <!> <div class="runner-form-actions svelte-bpb2i4"><!> <!></div></div>'),zc=C('<div class="card-footer svelte-bpb2i4"><!></div>'),Jc=C('<div class="content-section svelte-bpb2i4"><div class="content-header svelte-bpb2i4"><h2 class="svelte-bpb2i4"></h2> <p class="content-desc svelte-bpb2i4"></p></div> <div class="card settings-card svelte-bpb2i4"><div class="toggle-row svelte-bpb2i4"><div class="toggle-info svelte-bpb2i4"><span class="toggle-label svelte-bpb2i4"></span> <span class="toggle-desc svelte-bpb2i4"></span></div> <button class="toggle-switch svelte-bpb2i4" role="switch"><span class="toggle-thumb svelte-bpb2i4"></span></button></div> <!> <!></div></div>'),qc=C('<div class="content-section svelte-bpb2i4"><div class="content-header svelte-bpb2i4"><h2 class="svelte-bpb2i4"></h2> <p class="content-desc svelte-bpb2i4"></p></div> <div class="card settings-card svelte-bpb2i4"><div class="field-row svelte-bpb2i4"><div class="field"><label class="field-label svelte-bpb2i4" for="tc-prefix"></label> <input id="tc-prefix" type="text" class="field-input mono svelte-bpb2i4" maxlength="10"></div> <div class="field"><label class="field-label svelte-bpb2i4" for="ts-prefix"></label> <input id="ts-prefix" type="text" class="field-input mono svelte-bpb2i4" maxlength="10"></div></div> <p class="content-desc svelte-bpb2i4"> <code class="code-sample svelte-bpb2i4"> </code>, <code class="code-sample svelte-bpb2i4"> </code></p> <div class="card-footer svelte-bpb2i4"><!></div></div> <div class="content-header svelte-bpb2i4" style="margin-top: 1rem"><h2 class="svelte-bpb2i4"></h2> <p class="content-desc svelte-bpb2i4"> <strong></strong> </p></div> <div class="card settings-card svelte-bpb2i4"><div class="field-row svelte-bpb2i4"><div class="field"><label class="field-label svelte-bpb2i4" for="mig-tc"></label> <input id="mig-tc" type="text" class="field-input mono svelte-bpb2i4" maxlength="10"></div> <div class="field"><label class="field-label svelte-bpb2i4" for="mig-ts"></label> <input id="mig-ts" type="text" class="field-input mono svelte-bpb2i4" maxlength="10"></div></div> <div class="card-footer svelte-bpb2i4"><!></div></div></div>'),Qc=C('<div class="content-section svelte-bpb2i4"><div class="content-header svelte-bpb2i4"><h2 class="svelte-bpb2i4"></h2> <p class="content-desc svelte-bpb2i4"></p></div> <div class="card settings-card svelte-bpb2i4"><p class="card-title"></p> <div class="field"><label class="field-label svelte-bpb2i4" for="discord-url"><span></span> <span class="field-hint svelte-bpb2i4"></span></label> <input id="discord-url" type="url" class="field-input"></div> <div class="field"><label class="field-label svelte-bpb2i4" for="slack-url"><span></span> <span class="field-hint svelte-bpb2i4"></span></label> <input id="slack-url" type="url" class="field-input"></div> <div class="field"><label class="field-label svelte-bpb2i4" for="public-url"><span></span> <span class="field-hint svelte-bpb2i4"></span></label> <input id="public-url" type="url" class="field-input"></div> <!></div> <div class="card settings-card svelte-bpb2i4"><p class="card-title"></p> <p class="content-desc svelte-bpb2i4"> <code class="code-sample svelte-bpb2i4"></code> <code class="code-sample svelte-bpb2i4">Authorization: ApiKey …</code> <button class="link-btn svelte-bpb2i4"></button> <!>.</p> <pre class="mcp-snippet svelte-bpb2i4"> </pre> <div class="card-footer svelte-bpb2i4"><!></div></div></div>'),Zc=C('<p class="content-desc svelte-bpb2i4"></p> <div class="card-footer svelte-bpb2i4"><!></div>',1),ed=ba('<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94"></path><path d="M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19"></path><line x1="1" y1="1" x2="23" y2="23"></line></svg>'),td=ba('<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>'),ad=ba('<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>'),sd=ba('<svg width="14" height="14" 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>'),rd=C('<div class="mcp-key-row svelte-bpb2i4"><input class="field-input mcp-key-input svelte-bpb2i4" readonly="" spellcheck="false" autocomplete="off"> <button class="icon-btn svelte-bpb2i4"><!></button> <button class="icon-btn svelte-bpb2i4"><!></button></div> <p class="mcp-regen-note svelte-bpb2i4"></p> <div class="card-footer svelte-bpb2i4"><!></div>',1),nd=C('<div class="card settings-card svelte-bpb2i4"><p class="card-title"></p> <p class="content-desc svelte-bpb2i4"> <code class="code-sample svelte-bpb2i4">claude_desktop_config.json</code> </p> <pre class="mcp-snippet svelte-bpb2i4"> </pre> <div class="card-footer svelte-bpb2i4"><!></div></div>'),ld=C('<div class="content-section svelte-bpb2i4"><div class="content-header svelte-bpb2i4"><h2 class="svelte-bpb2i4"></h2> <p class="content-desc svelte-bpb2i4"></p></div> <div class="card settings-card svelte-bpb2i4"><p class="card-title"></p> <!></div> <!></div>'),id=C('<p class="form-error svelte-bpb2i4"> </p>'),od=C('<p class="form-error svelte-bpb2i4"> </p>'),cd=C('<div class="content-section svelte-bpb2i4"><div class="content-header svelte-bpb2i4"><h2 class="svelte-bpb2i4"></h2> <p class="content-desc svelte-bpb2i4"></p></div> <div class="card settings-card svelte-bpb2i4"><p class="card-title"></p> <div class="field"><label class="field-label svelte-bpb2i4" for="profile-name"></label> <input id="profile-name" type="text" class="field-input"></div> <div class="field"><label class="field-label svelte-bpb2i4" for="profile-email"></label> <input id="profile-email" type="email" class="field-input"></div> <!> <div class="card-footer svelte-bpb2i4"><!></div></div> <div class="card settings-card svelte-bpb2i4"><p class="card-title"></p> <div class="field"><label class="field-label svelte-bpb2i4" for="pw-current"></label> <input id="pw-current" type="password" class="field-input" autocomplete="current-password"></div> <div class="field"><label class="field-label svelte-bpb2i4" for="pw-new"></label> <input id="pw-new" type="password" class="field-input" autocomplete="new-password"></div> <div class="field"><label class="field-label svelte-bpb2i4" for="pw-confirm"></label> <input id="pw-confirm" type="password" class="field-input" autocomplete="new-password"></div> <!> <div class="card-footer svelte-bpb2i4"><!></div></div> <div class="card settings-card svelte-bpb2i4"><div class="card-footer svelte-bpb2i4"><!></div></div></div>'),dd=C(" <strong> </strong> ",1),vd=C('<p class="form-error svelte-bpb2i4"> </p>'),pd=C('<button class="icon-btn danger svelte-bpb2i4"><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>'),_d=C('<span class="you-chip svelte-bpb2i4"></span>'),ud=C('<div class="user-row svelte-bpb2i4"><div class="user-info svelte-bpb2i4"><span class="user-name svelte-bpb2i4"> </span> <span class="user-email svelte-bpb2i4"> </span></div> <span> </span> <!></div>'),bd=C('<div class="users-table svelte-bpb2i4"></div>'),fd=C('<div class="content-section svelte-bpb2i4"><div class="content-header svelte-bpb2i4"><h2 class="svelte-bpb2i4"></h2> <p class="content-desc svelte-bpb2i4"></p></div> <!> <div class="card settings-card svelte-bpb2i4"><p class="card-title"></p> <div class="field-row svelte-bpb2i4"><div class="field"><label class="field-label svelte-bpb2i4" for="u-name"></label> <input id="u-name" type="text" class="field-input"></div> <div class="field"><label class="field-label svelte-bpb2i4" for="u-email"></label> <input id="u-email" type="email" class="field-input"></div></div> <div class="field-row svelte-bpb2i4"><div class="field"><label class="field-label svelte-bpb2i4" for="u-pw"></label> <input id="u-pw" type="password" class="field-input" autocomplete="new-password"></div> <div class="field"><label class="field-label svelte-bpb2i4" for="u-role"></label> <select id="u-role" class="field-input"><option></option><option></option></select></div></div> <!> <div class="card-footer svelte-bpb2i4"><!></div></div> <!></div>'),Ed=C('<p class="s3-test-result svelte-bpb2i4"> </p>'),gd=C('<p class="backup-block-desc svelte-bpb2i4"></p>'),hd=C('<span class="status-success svelte-bpb2i4"> </span>'),md=C('<span class="status-error svelte-bpb2i4"> </span>'),Sd=C("<span> </span>"),Cd=C('<p class="backup-last-run svelte-bpb2i4"> <!></p>'),Ld=C('<div class="field"><label class="field-label backup-toggle-label svelte-bpb2i4" for="backup-enabled"><span></span> <button id="backup-enabled" class="toggle-btn svelte-bpb2i4" role="switch"><span class="toggle-thumb svelte-bpb2i4"></span></button></label></div> <div class="field"><label class="field-label svelte-bpb2i4" for="backup-cron"><span></span> <span class="field-hint svelte-bpb2i4"> <code>0 2 * * *</code> <a href="https://crontab.guru" target="_blank" rel="noopener noreferrer"></a></span></label> <input id="backup-cron" type="text" class="field-input field-input-mono svelte-bpb2i4"></div> <!> <div class="backup-actions svelte-bpb2i4"><!> <!></div>',1),Rd=C('<div class="content-section svelte-bpb2i4"><div class="content-header svelte-bpb2i4"><h2 class="svelte-bpb2i4"></h2> <p class="content-desc svelte-bpb2i4"></p></div> <div class="card settings-card svelte-bpb2i4"><p class="card-title"></p> <div class="backup-row svelte-bpb2i4"><div class="backup-block svelte-bpb2i4"><p class="backup-block-title svelte-bpb2i4"></p> <p class="backup-block-desc svelte-bpb2i4"> <code class="svelte-bpb2i4">.json</code> </p> <!></div> <div class="backup-divider svelte-bpb2i4"></div> <div class="backup-block svelte-bpb2i4"><p class="backup-block-title svelte-bpb2i4"></p> <p class="backup-block-desc svelte-bpb2i4"></p> <div class="import-row svelte-bpb2i4"><label class="file-label svelte-bpb2i4"><input type="file" accept=".json" class="file-input-hidden svelte-bpb2i4"> <span class="file-btn svelte-bpb2i4"> </span></label> <!></div></div></div> <p class="backup-disclaimer svelte-bpb2i4"> <code>pg_dump</code> </p></div> <div class="card settings-card svelte-bpb2i4"><p class="card-title"></p> <p class="backup-block-desc svelte-bpb2i4" style="margin-bottom: 1.25rem;"> <strong></strong> </p> <div class="field-row svelte-bpb2i4"><div class="field"><label class="field-label svelte-bpb2i4" for="s3-endpoint"><span></span> <span class="field-hint svelte-bpb2i4"></span></label> <input id="s3-endpoint" type="url" class="field-input"></div> <div class="field"><label class="field-label svelte-bpb2i4" for="s3-region"><span></span> <span class="field-hint svelte-bpb2i4"> <code>auto</code> </span></label> <input id="s3-region" type="text" class="field-input"></div></div> <div class="field-row svelte-bpb2i4"><div class="field"><label class="field-label svelte-bpb2i4" for="s3-bucket"><span></span></label> <input id="s3-bucket" type="text" class="field-input"></div> <div class="field"><label class="field-label svelte-bpb2i4" for="s3-prefix"><span></span> <span class="field-hint svelte-bpb2i4"></span></label> <input id="s3-prefix" type="text" class="field-input"></div></div> <div class="field-row svelte-bpb2i4"><div class="field"><label class="field-label svelte-bpb2i4" for="s3-access-key"><span></span></label> <input id="s3-access-key" type="text" class="field-input" autocomplete="off"></div> <div class="field"><label class="field-label svelte-bpb2i4" for="s3-secret-key"><span></span> <span class="field-hint svelte-bpb2i4"> </span></label> <input id="s3-secret-key" type="password" class="field-input" autocomplete="new-password"></div></div> <div class="backup-actions svelte-bpb2i4"><!> <!></div> <!></div> <div class="card settings-card svelte-bpb2i4"><p class="card-title"></p> <!></div></div>'),Ad=C('<!> <div class="page-header svelte-bpb2i4"><h1 class="svelte-bpb2i4"></h1></div> <div class="settings-layout svelte-bpb2i4"><aside class="settings-sidebar svelte-bpb2i4"><nav class="svelte-bpb2i4"></nav></aside> <div class="settings-content svelte-bpb2i4"><!></div></div>',1);function Vd(i,Ue){tn(Ue,!1);const[_t,fa]=ln(),he=()=>qa(ua,"$auth",_t),$t=()=>qa(Us,"$theme",_t),ss=()=>qa(Za,"$builtInEnabled",_t),Ea=c(),ga=c(),ha=c(),rs=c();let xe=c(typeof sessionStorage<"u"&&sessionStorage.getItem("plum:settings:section")||"project");function ns(n){r(xe,n);try{sessionStorage.setItem("plum:settings:section",n)}catch{}}let be=c({name:"",logoUrl:"",timezone:"UTC",maxRetries:0}),Vt=c(!1),ma=c(null);const sr=(()=>{try{return Intl.supportedValuesOf("timeZone")}catch{return["UTC"]}})();let me=c({testCasePrefix:"TC",testSuitePrefix:"TS"}),jt=c(!1),qe=c({testCasePrefix:"",testSuitePrefix:""}),Wt=c(!1),Be=c({name:"",email:""}),Xt=c(!1),Yt=c(""),ut=c([]),fe=c({name:"",email:"",password:"",role:"user"}),zt=c(!1),Nt=c(""),Rt=c(null),Jt=c(!1),Se=c({currentPassword:"",newPassword:"",confirmPassword:""}),qt=c(!1),At=c(""),bt=c(null),Qt=c(!1),Zt=c(!1),Dt=c(),we=c({discordWebhookUrl:"",slackWebhookUrl:"",notifyPublicUrl:""}),ea=c(!1),kt=c(""),ta=c(!1),xt=c(!1),Pt=c(!1),Sa=c(!1),Ca=c(!1),La=c(!1),y=c({backupEnabled:!1,backupCron:"0 2 * * *",backupS3Endpoint:"",backupS3Region:"",backupS3Bucket:"",backupS3AccessKey:"",backupS3SecretKey:"",backupS3Prefix:""}),Tt=c(!1),yt=c(!1),aa=c(!1),sa=c(!1),ft=c(null),ra=c(""),Ut=c(null),st=c(""),Oe=c([]),ve=c({name:"",url:"",token:"",browser:"chromium"}),Et=c(""),Bt=c(!1),na=c(!1),Ae=c({}),la=c(null),ia=c(null),oa=c(null),pe=c({name:"",url:"",token:"",browser:"chromium"}),rt=c(""),Ft=c(!1);function $(n,o){r(ma,{type:n,message:o}),setTimeout(()=>r(ma,null),vn)}let Ra=c(!1);an(async()=>{var n;try{const o=localStorage.getItem("plum:builtInEnabled");o!==null&&Za.set(o!=="false")}catch{}try{r(be,await Os())}catch{}try{r(Oe,await En()),r(Ra,!0)}catch{}try{r(me,await On()),r(qe,{testCasePrefix:e(me).testCasePrefix,testSuitePrefix:e(me).testSuitePrefix})}catch{}try{r(we,await gn())}catch{}try{const o=await hn();r(ta,o.mcpKeySet),r(kt,o.mcpKey)}catch{}try{const o=await $s();r(yt,o.backupS3SecretKeySet),r(Ut,o.backupLastRunAt),r(st,o.backupLastStatus),r(y,{backupEnabled:o.backupEnabled,backupCron:o.backupCron,backupS3Endpoint:o.backupS3Endpoint,backupS3Region:o.backupS3Region,backupS3Bucket:o.backupS3Bucket,backupS3AccessKey:o.backupS3AccessKey,backupS3SecretKey:"",backupS3Prefix:o.backupS3Prefix})}catch{}if(he().user&&r(Be,{name:he().user.name,email:he().user.email}),((n=he().user)==null?void 0:n.role)==="admin")try{r(ut,await Mn())}catch{}});async function rr(){e(Oe).length!==0&&(r(Ae,Object.fromEntries(e(Oe).map(n=>[n.id,{loading:!0}]))),await Promise.all(e(Oe).map(async n=>{try{const o=await Ns(n.id);r(Ae,{...e(Ae),[n.id]:{...o,loading:!1}})}catch{r(Ae,{...e(Ae),[n.id]:{ok:!1,error:Bs,loading:!1}})}})))}function nr(){Za.update(n=>{const o=!n;try{localStorage.setItem("plum:builtInEnabled",String(o))}catch{}return o})}function lr(){Us.update(n=>n==="light"?"dark":"light")}async function ir(){if(!e(ve).name||!e(ve).url||!e(ve).token){r(Et,Hs);return}r(Et,""),r(Bt,!0);try{const n=await Ds(e(ve).url,e(ve).token);if(!n.ok){r(Et,Vs(n.error));return}const{runner:o}=await An(e(ve));r(Oe,[...e(Oe),o]),r(Ae,{...e(Ae),[o.id]:{ok:!0,latency:n.latency,loading:!1}}),r(ve,{name:"",url:"",token:"",browser:"chromium"}),r(na,!1),$("success",ll(o.name))}catch{r(Et,sl)}finally{r(Bt,!1)}}async function or(n,o){try{await Rn(n),r(Oe,e(Oe).filter(x=>x.id!==n)),$("success",il(o))}catch{$("error",rl)}}async function ls(n){r(Ae,{...e(Ae),[n]:{loading:!0}});try{const o=await Ns(n);r(Ae,{...e(Ae),[n]:{...o,loading:!1}})}catch{r(Ae,{...e(Ae),[n]:{ok:!1,error:Bs,loading:!1}})}}async function cr(n,o){r(la,n);try{const x=await Ln(n);x.ok?$("success",ol(o)):$("error",cl(o,x.error))}catch{$("error",dl(o))}finally{r(la,null),ls(n)}}async function dr(n,o){r(ia,n);try{const x=await Cn(n);x.ok?$("success",vl(o)):$("error",pl(o,x.error))}catch{$("error",_l(o))}finally{r(ia,null),setTimeout(()=>ls(n),2e3)}}function vr(n){r(oa,n.id),r(pe,{name:n.name,url:n.url,token:"",browser:n.browser}),r(rt,"")}async function pr(n){if(!e(pe).name||!e(pe).url){r(rt,Hs);return}r(rt,""),r(Ft,!0);try{if(e(pe).token){const x=await Ds(e(pe).url,e(pe).token);if(!x.ok){r(rt,Vs(x.error));return}r(Ae,{...e(Ae),[n]:{ok:!0,latency:x.latency,loading:!1}})}const{runner:o}=await Sn(n,e(pe));r(Oe,e(Oe).map(x=>x.id===n?o:x)),r(oa,null),$("success",ul(o.name))}catch{r(rt,nl)}finally{r(Ft,!1)}}async function _r(){r(Vt,!0);try{await mn(e(be)),$("success",Pl)}catch{$("error",Tl)}finally{r(Vt,!1)}}async function ur(){r(Zt,!0);try{const n=await Pn(),o=new Blob([JSON.stringify(n,null,2)],{type:"application/json"}),x=URL.createObjectURL(o),je=document.createElement("a");je.href=x,je.download=Rc(new Date().toISOString().slice(0,10)),je.click(),URL.revokeObjectURL(x),$("success",bc)}catch{$("error",fc)}finally{r(Zt,!1)}}async function br(){if(e(bt)){r(Qt,!0);try{const n=await e(bt).text(),o=JSON.parse(n),x=await Tn(o);if(x.error)throw new Error(x.error);$("success",Ec),r(be,await Os()),r(bt,null),e(Dt)&&k(Dt,e(Dt).value="")}catch(n){$("error",n.message||gc)}finally{r(Qt,!1)}}}function fr(n){r(bt,n.target.files[0]??null)}async function Er(){r(jt,!0);try{r(me,await $n(e(me))),$("success",Ql)}catch{$("error",Zl)}finally{r(jt,!1)}}async function gr(){r(Wt,!0);try{await Nn(e(qe)),r(me,{...e(me),...e(qe)}),$("success",li)}catch{$("error",ii)}finally{r(Wt,!1)}}async function hr(){r(Yt,""),r(Xt,!0);try{const{user:n}=await Dn({token:he().token,name:e(Be).name,email:e(Be).email});ua.login(he().token,{...he().user,...n}),$("success",Zi)}catch(n){r(Yt,n.message)}finally{r(Xt,!1)}}async function mr(){if(r(Nt,""),!e(fe).name||!e(fe).email||!e(fe).password){r(Nt,ho);return}r(zt,!0);try{const n=await Kn(e(fe));r(ut,[...e(ut),n]),r(fe,{name:"",email:"",password:"",role:"user"}),$("success",So(n.name))}catch(n){r(Nt,n.message)}finally{r(zt,!1)}}async function Sr(n,o){try{await Gn(n),r(ut,e(ut).filter(x=>x.id!==n)),$("success",Co(o))}catch(x){$("error",x.message)}r(Rt,null),r(Jt,!1)}async function Cr(){if(r(At,""),e(Se).newPassword!==e(Se).confirmPassword){r(At,eo);return}if(e(Se).newPassword.length<8){r(At,to);return}r(qt,!0);try{await Un({token:he().token,currentPassword:e(Se).currentPassword,newPassword:e(Se).newPassword}),r(Se,{currentPassword:"",newPassword:"",confirmPassword:""}),$("success",ao)}catch(n){r(At,n.message)}finally{r(qt,!1)}}function Lr(){ua.logout(),fn("/login")}async function is(){r(Pt,!0);try{const n=await xn();r(kt,n.mcpKey),r(ta,!0),r(xt,!0),$("success",Ki)}catch{$("error",Gi)}finally{r(Pt,!1)}}function Rr(){navigator.clipboard.writeText(e(kt)).then(()=>{r(Sa,!0),setTimeout(()=>r(Sa,!1),Qa)})}function Ar(){navigator.clipboard.writeText(e(ga)).then(()=>{r(Ca,!0),setTimeout(()=>r(Ca,!1),Qa)})}function kr(){navigator.clipboard.writeText(e(ha)).then(()=>{r(La,!0),setTimeout(()=>r(La,!1),Qa)})}async function xr(){r(ea,!0);try{r(we,await kn(e(we))),$("success",mi)}catch{$("error",Si)}finally{r(ea,!1)}}async function os(){r(Tt,!0);try{const n={...e(y)};n.backupS3SecretKey||delete n.backupS3SecretKey;const o=await In(n);if(o.error)throw new Error(o.error);e(y).backupS3SecretKey&&r(yt,!0),r(y,{...e(y),backupS3SecretKey:""}),$("success",Zo)}catch(n){$("error",n.message||ec)}finally{r(Tt,!1)}}async function Pr(){r(aa,!0),r(ft,null),r(ra,"");try{const n=await yn(e(y));if(n.error)throw new Error(n.error);r(ft,"success"),r(ra,qo)}catch(n){r(ft,"error"),r(ra,n.message||Qo)}finally{r(aa,!1)}}async function Tr(){r(sa,!0);try{const n=await wn();if(n.error)throw new Error(n.error);r(Ut,n.lastRunAt),r(st,n.lastStatus??""),$("success",hc)}catch(n){$("error",n.message||mc);const o=await $s().catch(()=>null);o&&(r(Ut,o.backupLastRunAt),r(st,o.backupLastStatus))}finally{r(sa,!1)}}const yr=new Set(["project","runners","repository","integrations","mcp","users","backup"]);wt(()=>(he(),e(xe)),()=>{he().user&&he().user.role!=="admin"&&yr.has(e(xe))&&r(xe,"account")}),wt(()=>(e(xe),e(Ra)),()=>{e(xe)==="runners"&&e(Ra)&&rr()}),wt(()=>(e(y),e(yt)),()=>{r(Ea,!!(e(y).backupS3Bucket&&e(y).backupS3AccessKey&&e(yt)))}),wt(()=>e(kt),()=>{r(ga,JSON.stringify({mcpServers:{plum:{command:"plum",args:["mcp"],env:{PLUM_API_URL:Ct,PLUM_API_KEY:e(kt)}}}},null,2))}),wt(()=>Ct,()=>{r(ha,["- name: Run Plum tests"," run: |",` curl -X POST ${Ct}/trigger \\`,' -H "Authorization: ApiKey ${{ secrets.PLUM_API_KEY }}" \\',' -H "Content-Type: application/json" \\',` -d '{"tag": "@smoke", "baseUrl": "https://your-pr-preview-url"}'`].join(`
|
|
2
|
+
`))}),wt(()=>(he(),ts),()=>{var n;r(rs,((n=he().user)==null?void 0:n.role)==="admin"?[{id:"project",label:Fs},{id:"runners",label:Ms},{id:"repository",label:jn},{id:"integrations",label:Ks},{id:"mcp",label:Xn},{id:"account",label:es},{id:"users",label:Gs},{id:"backup",label:ts}]:[{id:"account",label:es}])}),sn(),en();var cs=Ad();Zr(n=>{nn.title=Hn});var ds=Re(cs);un(ds,{get toast(){return e(ma)}});var Aa=t(ds,2),Ir=s(Aa);Ir.textContent=Vn,a(Aa);var vs=t(Aa,2),ka=s(vs),ps=s(ka);Ot(ps,5,()=>e(rs),va,(n,o)=>{var x=$c(),je=s(x,!0);a(x),v(()=>{St(x,"active",e(xe)===e(o).id),u(je,e(o).label)}),Je("click",x,()=>ns(e(o).id)),l(n,x)}),a(ps),a(ka);var _s=t(ka,2),wr=s(_s);{var Or=n=>{var o=Uc(),x=s(o),je=s(x);je.textContent=Fs;var xa=t(je,2);xa.textContent=zn,a(x);var Qe=t(x,2),Fe=s(Qe),nt=s(Fe);nt.textContent=bl;var lt=t(nt,2);B(lt),m(lt,"placeholder",fl),a(Fe);var gt=t(Fe,2),Ie=s(gt),Te=s(Ie);Te.textContent=El;var Me=t(Te,2);Me.textContent=gl,a(Ie);var Ke=t(Ie,2);B(Ke),m(Ke,"placeholder",hl),a(gt);var it=t(gt,2);{var ke=_=>{var h=Nc(),p=s(h);p.textContent=ml;var f=t(p,2);m(f,"alt",Sl),a(h),v(()=>m(f,"src",e(be).logoUrl)),Je("error",f,I=>I.target.style.display="none"),l(_,h)};U(it,_=>{e(be).logoUrl&&_(ke)})}var Ee=t(it,2),Pe=s(Ee),$e=s(Pe);$e.textContent=Cl;var Ge=t($e,2);Ge.textContent=Ll,a(Pe);var _e=t(Pe,2);v(()=>{e(be),da(()=>{})}),Ot(_e,5,()=>sr,va,(_,h)=>{var p=Dc(),f={},I=s(p,!0);a(p),v(()=>{f!==(f=e(h))&&(p.value=(p.__value=e(h))==null?"":e(h)),u(I,e(h))}),l(_,p)}),a(_e),a(Ee);var J=t(Ee,2),j=s(J),ne=s(j);ne.textContent=Rl;var g=t(ne,2);g.textContent=Al,a(j);var q=t(j,2);B(q),m(q,"max",dn),a(J);var N=t(J,2),le=s(N),oe=s(le);oe.textContent=kl;var ue=t(oe,2);ue.textContent=xl,a(le);var W=t(le,2);a(N);var P=t(N,2),L=s(P);se(L,{get disabled(){return e(Vt)},$$events:{click:_r},children:(_,h)=>{z();var p=te();v(f=>u(p,f),[()=>yl(e(Vt))],H),l(_,p)},$$slots:{default:!0}}),a(P),a(Qe),a(o),v(()=>{m(W,"aria-checked",$t()==="dark"),St(W,"on",$t()==="dark")}),V(lt,()=>e(be).name,_=>k(be,e(be).name=_)),V(Ke,()=>e(be).logoUrl,_=>k(be,e(be).logoUrl=_)),pa(_e,()=>e(be).timezone,_=>k(be,e(be).timezone=_)),V(q,()=>e(be).maxRetries,_=>k(be,e(be).maxRetries=_)),Je("click",W,lr),He(3,o,()=>Ve,()=>({y:6,duration:180})),l(n,o)},$r=n=>{var o=De(),x=Re(o);{var je=Qe=>{var Fe=Jc(),nt=s(Fe),lt=s(nt);lt.textContent=Ms;var gt=t(lt,2);gt.textContent=Jn,a(nt);var Ie=t(nt,2),Te=s(Ie),Me=s(Te),Ke=s(Me);Ke.textContent=Il;var it=t(Ke,2);it.textContent=wl,a(Me);var ke=t(Me,2);a(Te);var Ee=t(Te,2);{var Pe=J=>{var j=jc();Ot(j,5,()=>e(Oe),ne=>ne.id,(ne,g)=>{var q=De();const N=H(()=>e(Ae)[e(g).id]);var le=Re(q);{var oe=W=>{var P=Mc(),L=s(P),_=s(L),h=s(_);h.textContent=_a;var p=t(h,2);B(p),m(p,"placeholder",qs),a(_);var f=t(_,2),I=s(f),X=s(I);X.nodeValue=`${js} `;var F=t(X),T=s(F);T.nodeValue=`${Ws} `;var ae=t(T,2);ae.nodeValue=` ${Xs}`,a(F),a(I);var Q=t(I,2);B(Q),m(Q,"placeholder",Ys),a(f);var Z=t(f,2),D=s(Z);D.textContent=zs;var M=t(D,2);B(M),m(M,"placeholder",$l),a(Z);var R=t(Z,2),d=s(R);d.textContent=Js;var E=t(d,2);v(()=>{e(pe),da(()=>{e(g)})}),Ot(E,5,()=>ys,va,(b,ee)=>{var ie=Bc(),We={},ot=s(ie,!0);a(ie),v(()=>{We!==(We=e(ee).id)&&(ie.value=(ie.__value=e(ee).id)==null?"":e(ee).id),u(ot,e(ee).label)}),l(b,ie)}),a(E),a(R),a(L);var S=t(L,2);{var K=b=>{var ee=Fc(),ie=s(ee,!0);a(ee),v(()=>u(ie,e(rt))),l(b,ee)};U(S,b=>{e(rt)&&b(K)})}var G=t(S,2),w=s(G);se(w,{get disabled(){return e(Ft)},$$events:{click:()=>pr(e(g).id)},children:(b,ee)=>{z();var ie=te();v(We=>u(ie,We),[()=>jl(e(Ft))],H),l(b,ie)},$$slots:{default:!0}});var ce=t(w,2);se(ce,{variant:"ghost",get disabled(){return e(Ft)},$$events:{click:()=>{r(oa,null),r(rt,"")}},children:(b,ee)=>{z();var ie=te();ie.nodeValue=Is,l(b,ie)},$$slots:{default:!0}}),a(G),a(P),v(()=>{m(h,"for",`edit-name-${e(g).id??""}`),m(p,"id",`edit-name-${e(g).id??""}`),m(I,"for",`edit-url-${e(g).id??""}`),m(Q,"id",`edit-url-${e(g).id??""}`),m(D,"for",`edit-token-${e(g).id??""}`),m(M,"id",`edit-token-${e(g).id??""}`),m(d,"for",`edit-browser-${e(g).id??""}`),m(E,"id",`edit-browser-${e(g).id??""}`)}),V(p,()=>e(pe).name,b=>k(pe,e(pe).name=b)),V(Q,()=>e(pe).url,b=>k(pe,e(pe).url=b)),V(M,()=>e(pe).token,b=>k(pe,e(pe).token=b)),pa(E,()=>e(pe).browser,b=>k(pe,e(pe).browser=b)),He(3,P,()=>Ve,()=>({y:-4,duration:180})),l(W,P)},ue=W=>{var P=Vc(),L=s(P),_=t(s(L),2),h=s(_,!0);a(_);var p=t(_,2),f=s(p,!0);a(p);var I=t(p,2);{var X=S=>{var K=De(),G=Re(K);{var w=b=>{var ee=Kc(),ie=s(ee);a(ee),v(()=>u(ie,`${e(N).latency??""}ms`)),l(b,ee)},ce=b=>{var ee=Gc();ee.textContent=Nl,v(()=>m(ee,"title",e(N).error)),l(b,ee)};U(G,b=>{e(N).ok?b(w):b(ce,!1)})}l(S,K)},F=S=>{var K=De(),G=Re(K);{var w=ce=>{var b=Hc();b.textContent=Dl,l(ce,b)};U(G,ce=>{var b;(b=e(N))!=null&&b.loading&&ce(w)},!0)}l(S,K)};U(I,S=>{e(N)&&!e(N).loading?S(X):S(F,!1)})}a(L);var T=t(L,2),ae=s(T,!0);a(T);var Q=t(T,2),Z=s(Q);se(Z,{variant:"ghost",size:"sm",$$events:{click:()=>vr(e(g))},children:(S,K)=>{z();var G=te();G.nodeValue=pn,l(S,G)},$$slots:{default:!0}});var D=t(Z,2);const M=H(()=>e(ia)===e(g).id);se(D,{variant:"ghost",size:"sm",get disabled(){return e(M)},$$events:{click:()=>dr(e(g).id,e(g).name)},children:(S,K)=>{z();var G=te();v(w=>u(G,w),[()=>Xl(e(ia)===e(g).id)],H),l(S,G)},$$slots:{default:!0}});var R=t(D,2);const d=H(()=>e(la)===e(g).id);se(R,{variant:"ghost",size:"sm",get disabled(){return e(d)},$$events:{click:()=>cr(e(g).id,e(g).name)},children:(S,K)=>{z();var G=te();v(w=>u(G,w),[()=>Yl(e(la)===e(g).id)],H),l(S,G)},$$slots:{default:!0}});var E=t(R,2);se(E,{variant:"danger",size:"sm",$$events:{click:()=>or(e(g).id,e(g).name)},children:(S,K)=>{z();var G=te();G.nodeValue=Ul,l(S,G)},$$slots:{default:!0}}),a(Q),a(P),v(()=>{u(h,e(g).name),u(f,e(g).browser),u(ae,e(g).url)}),He(3,P,()=>Ve,()=>({y:-4,duration:180})),l(W,P)};U(le,W=>{e(oa)===e(g).id?W(oe):W(ue,!1)})}l(ne,q)}),a(j),l(J,j)};U(Ee,J=>{e(Oe).length>0&&J(Pe)})}var $e=t(Ee,2);{var Ge=J=>{var j=Yc(),ne=s(j);ne.textContent=Bl;var g=t(ne,2),q=s(g),N=s(q);N.textContent=_a;var le=t(N,2);B(le),m(le,"placeholder",qs),a(q);var oe=t(q,2),ue=s(oe),W=s(ue);W.nodeValue=`${js} `;var P=t(W),L=s(P);L.nodeValue=`${Ws} `;var _=t(L,2);_.nodeValue=` ${Xs}`,a(P),a(ue);var h=t(ue,2);B(h),m(h,"placeholder",Ys),a(oe);var p=t(oe,2),f=s(p);f.textContent=zs;var I=t(f,2);B(I),m(I,"placeholder",Ol),a(p);var X=t(p,2),F=s(X);F.textContent=Js;var T=t(F,2);v(()=>{e(ve),da(()=>{})}),Ot(T,5,()=>ys,va,(R,d)=>{var E=Wc(),S={},K=s(E,!0);a(E),v(()=>{S!==(S=e(d).id)&&(E.value=(E.__value=e(d).id)==null?"":e(d).id),u(K,e(d).label)}),l(R,E)}),a(T),a(X),a(g);var ae=t(g,2);{var Q=R=>{var d=Xc(),E=s(d,!0);a(d),v(()=>u(E,e(Et))),l(R,d)};U(ae,R=>{e(Et)&&R(Q)})}var Z=t(ae,2),D=s(Z);se(D,{get disabled(){return e(Bt)},$$events:{click:ir},children:(R,d)=>{z();var E=te();v(S=>u(E,S),[()=>Wl(e(Bt))],H),l(R,E)},$$slots:{default:!0}});var M=t(D,2);se(M,{variant:"ghost",get disabled(){return e(Bt)},$$events:{click:()=>{r(na,!1),r(Et,"")}},children:(R,d)=>{z();var E=te();E.nodeValue=Is,l(R,E)},$$slots:{default:!0}}),a(Z),a(j),V(le,()=>e(ve).name,R=>k(ve,e(ve).name=R)),V(h,()=>e(ve).url,R=>k(ve,e(ve).url=R)),V(I,()=>e(ve).token,R=>k(ve,e(ve).token=R)),pa(T,()=>e(ve).browser,R=>k(ve,e(ve).browser=R)),He(3,j,()=>Ve,()=>({y:-6,duration:200})),l(J,j)},_e=J=>{var j=zc(),ne=s(j);se(ne,{variant:"ghost",$$events:{click:()=>r(na,!0)},children:(g,q)=>{z();var N=te();N.nodeValue=Fl,l(g,N)},$$slots:{default:!0}}),a(j),l(J,j)};U($e,J=>{e(na)?J(Ge):J(_e,!1)})}a(Ie),a(Fe),v(()=>{m(ke,"aria-checked",ss()),St(ke,"on",ss())}),Je("click",ke,nr),He(3,Fe,()=>Ve,()=>({y:6,duration:180})),l(Qe,Fe)},xa=Qe=>{var Fe=De(),nt=Re(Fe);{var lt=Ie=>{var Te=qc(),Me=s(Te),Ke=s(Me);Ke.textContent=Wn;var it=t(Ke,2);it.textContent=qn,a(Me);var ke=t(Me,2),Ee=s(ke),Pe=s(Ee),$e=s(Pe);$e.textContent=zl;var Ge=t($e,2);B(Ge),m(Ge,"placeholder",Qs),a(Pe);var _e=t(Pe,2),J=s(_e);J.textContent=Jl;var j=t(J,2);B(j),m(j,"placeholder",Zs),a(_e),a(Ee);var ne=t(Ee,2),g=s(ne);g.nodeValue=`${ql} `;var q=t(g),N=s(q);a(q);var le=t(q,2),oe=s(le);a(le),a(ne);var ue=t(ne,2),W=s(ue);se(W,{get disabled(){return e(jt)},$$events:{click:Er},children:(d,E)=>{z();var S=te();v(K=>u(S,K),[()=>oi(e(jt))],H),l(d,S)},$$slots:{default:!0}}),a(ue),a(ke);var P=t(ke,2),L=s(P);L.textContent=ei;var _=t(L,2),h=s(_);h.nodeValue=`${ti} `;var p=t(h);p.textContent=ai;var f=t(p);f.nodeValue=` ${si}`,a(_),a(P);var I=t(P,2),X=s(I),F=s(X),T=s(F);T.textContent=ri;var ae=t(T,2);B(ae),a(F);var Q=t(F,2),Z=s(Q);Z.textContent=ni;var D=t(Z,2);B(D),a(Q),a(X);var M=t(X,2),R=s(M);se(R,{variant:"ghost",get disabled(){return e(Wt)},$$events:{click:gr},children:(d,E)=>{z();var S=te();v(K=>u(S,K),[()=>ci(e(Wt))],H),l(d,S)},$$slots:{default:!0}}),a(M),a(I),a(Te),v(()=>{u(N,`${(e(me).testCasePrefix||Qs)??""}-001`),u(oe,`${(e(me).testSuitePrefix||Zs)??""}-001`),m(ae,"placeholder",e(me).testCasePrefix),m(D,"placeholder",e(me).testSuitePrefix)}),V(Ge,()=>e(me).testCasePrefix,d=>k(me,e(me).testCasePrefix=d)),V(j,()=>e(me).testSuitePrefix,d=>k(me,e(me).testSuitePrefix=d)),V(ae,()=>e(qe).testCasePrefix,d=>k(qe,e(qe).testCasePrefix=d)),V(D,()=>e(qe).testSuitePrefix,d=>k(qe,e(qe).testSuitePrefix=d)),He(3,Te,()=>Ve,()=>({y:6,duration:180})),l(Ie,Te)},gt=Ie=>{var Te=De(),Me=Re(Te);{var Ke=ke=>{var Ee=Qc(),Pe=s(Ee),$e=s(Pe);$e.textContent=Ks;var Ge=t($e,2);Ge.textContent=Qn,a(Pe);var _e=t(Pe,2),J=s(_e);J.textContent=di;var j=t(J,2),ne=s(j),g=s(ne);g.textContent=vi;var q=t(g,2);q.textContent=pi,a(ne);var N=t(ne,2);B(N),m(N,"placeholder",_i),a(j);var le=t(j,2),oe=s(le),ue=s(oe);ue.textContent=ui;var W=t(ue,2);W.textContent=bi,a(oe);var P=t(oe,2);B(P),m(P,"placeholder",fi),a(le);var L=t(le,2),_=s(L),h=s(_);h.textContent=Ei;var p=t(h,2);p.textContent=gi,a(_);var f=t(_,2);B(f),m(f,"placeholder",hi),a(L);var I=t(L,2);se(I,{get disabled(){return e(ea)},$$events:{click:xr},children:(w,ce)=>{z();var b=te();v(ee=>u(b,ee),[()=>yi(e(ea))],H),l(w,b)},$$slots:{default:!0}}),a(_e);var X=t(_e,2),F=s(X);F.textContent=Ci;var T=t(F,2),ae=s(T);ae.nodeValue=`${Li} `;var Q=t(ae);Q.textContent=`POST ${Ct}/trigger`;var Z=t(Q);Z.nodeValue=` ${Ri} `;var D=t(Z,2);D.nodeValue=` ${Ai} `;var M=t(D);M.textContent=ki;var R=t(M);R.nodeValue=` ${xi} `;var d=t(R);Fn(d,{variant:"external",children:(w,ce)=>{z();var b=te();b.nodeValue=Pi,l(w,b)},$$slots:{default:!0}}),z(),a(T);var E=t(T,2),S=s(E,!0);a(E);var K=t(E,2),G=s(K);se(G,{variant:"ghost",$$events:{click:kr},children:(w,ce)=>{z();var b=te();v(ee=>u(b,ee),[()=>Ii(e(La))],H),l(w,b)},$$slots:{default:!0}}),a(K),a(X),a(Ee),v(()=>u(S,e(ha))),V(N,()=>e(we).discordWebhookUrl,w=>k(we,e(we).discordWebhookUrl=w)),V(P,()=>e(we).slackWebhookUrl,w=>k(we,e(we).slackWebhookUrl=w)),V(f,()=>e(we).notifyPublicUrl,w=>k(we,e(we).notifyPublicUrl=w)),Je("click",M,()=>ns("mcp")),He(3,Ee,()=>Ve,()=>({y:6,duration:180})),l(ke,Ee)},it=ke=>{var Ee=De(),Pe=Re(Ee);{var $e=_e=>{var J=ld(),j=s(J),ne=s(j);ne.textContent=Yn;var g=t(ne,2);g.textContent=Zn,a(j);var q=t(j,2),N=s(q);N.textContent=wi;var le=t(N,2);{var oe=L=>{var _=Zc(),h=Re(_);h.textContent=Oi;var p=t(h,2),f=s(p);se(f,{get disabled(){return e(Pt)},$$events:{click:is},children:(I,X)=>{z();var F=te();v(T=>u(F,T),[()=>Vi(e(Pt))],H),l(I,F)},$$slots:{default:!0}}),a(p),l(L,_)},ue=L=>{var _=rd(),h=Re(_),p=s(h);B(p);var f=t(p,2),I=s(f);{var X=d=>{var E=ed();l(d,E)},F=d=>{var E=td();l(d,E)};U(I,d=>{e(xt)?d(X):d(F,!1)})}a(f);var T=t(f,2);m(T,"title",Di);var ae=s(T);{var Q=d=>{var E=ad();l(d,E)},Z=d=>{var E=sd();l(d,E)};U(ae,d=>{e(Sa)?d(Q):d(Z,!1)})}a(T),a(h);var D=t(h,2);D.textContent=Ui;var M=t(D,2),R=s(M);se(R,{variant:"ghost",get disabled(){return e(Pt)},$$events:{click:is},children:(d,E)=>{z();var S=te();v(K=>u(S,K),[()=>ji(e(Pt))],H),l(d,S)},$$slots:{default:!0}}),a(M),v(()=>{m(p,"type",e(xt)?"text":"password"),_n(p,e(kt)),m(f,"title",e(xt)?$i:Ni)}),Je("click",f,()=>r(xt,!e(xt))),Je("click",T,Rr),l(L,_)};U(le,L=>{e(ta)?L(ue,!1):L(oe)})}a(q);var W=t(q,2);{var P=L=>{var _=nd(),h=s(_);h.textContent=Bi;var p=t(h,2),f=s(p);f.nodeValue=`${Fi} `;var I=t(f,2,!0);I.nodeValue=Mi,a(p);var X=t(p,2),F=s(X,!0);a(X);var T=t(X,2),ae=s(T);se(ae,{variant:"ghost",$$events:{click:Ar},children:(Q,Z)=>{z();var D=te();v(M=>u(D,M),[()=>Wi(e(Ca))],H),l(Q,D)},$$slots:{default:!0}}),a(T),a(_),v(()=>u(F,e(ga))),l(L,_)};U(W,L=>{e(ta)&&L(P)})}a(J),He(3,J,()=>Ve,()=>({y:6,duration:180})),l(_e,J)},Ge=_e=>{var J=De(),j=Re(J);{var ne=q=>{var N=cd(),le=s(N),oe=s(le);oe.textContent=es;var ue=t(oe,2);ue.textContent=el,a(le);var W=t(le,2),P=s(W);P.textContent=Xi;var L=t(P,2),_=s(L);_.textContent=_a;var h=t(_,2);B(h),a(L);var p=t(L,2),f=s(p);f.textContent=ws;var I=t(f,2);B(I),a(p);var X=t(p,2);{var F=A=>{var re=id(),de=s(re,!0);a(re),v(()=>u(de,e(Yt))),l(A,re)};U(X,A=>{e(Yt)&&A(F)})}var T=t(X,2),ae=s(T);const Q=H(()=>e(Xt)||!e(Be).name||!e(Be).email);se(ae,{get disabled(){return e(Q)},$$events:{click:hr},children:(A,re)=>{z();var de=te();v(ye=>u(de,ye),[()=>so(e(Xt))],H),l(A,de)},$$slots:{default:!0}}),a(T),a(W);var Z=t(W,2),D=s(Z);D.textContent=Yi;var M=t(D,2),R=s(M);R.textContent=zi;var d=t(R,2);B(d),a(M);var E=t(M,2),S=s(E);S.textContent=Ji;var K=t(S,2);B(K),a(E);var G=t(E,2),w=s(G);w.textContent=qi;var ce=t(w,2);B(ce),a(G);var b=t(G,2);{var ee=A=>{var re=od(),de=s(re,!0);a(re),v(()=>u(de,e(At))),l(A,re)};U(b,A=>{e(At)&&A(ee)})}var ie=t(b,2),We=s(ie);const ot=H(()=>e(qt)||!e(Se).currentPassword||!e(Se).newPassword);se(We,{get disabled(){return e(ot)},$$events:{click:Cr},children:(A,re)=>{z();var de=te();v(ye=>u(de,ye),[()=>ro(e(qt))],H),l(A,de)},$$slots:{default:!0}}),a(ie),a(Z);var ht=t(Z,2),Y=s(ht),ge=s(Y);se(ge,{variant:"danger",size:"sm",$$events:{click:Lr},children:(A,re)=>{z();var de=te();de.nodeValue=Qi,l(A,de)},$$slots:{default:!0}}),a(Y),a(ht),a(N),V(h,()=>e(Be).name,A=>k(Be,e(Be).name=A)),V(I,()=>e(Be).email,A=>k(Be,e(Be).email=A)),V(d,()=>e(Se).currentPassword,A=>k(Se,e(Se).currentPassword=A)),V(K,()=>e(Se).newPassword,A=>k(Se,e(Se).newPassword=A)),V(ce,()=>e(Se).confirmPassword,A=>k(Se,e(Se).confirmPassword=A)),He(3,N,()=>Ve,()=>({y:6,duration:180})),l(q,N)},g=q=>{var N=De(),le=Re(N);{var oe=W=>{var P=fd(),L=s(P),_=s(L);_.textContent=Gs;var h=t(_,2);h.textContent=tl,a(L);var p=t(L,2);Bn(p,{title:no,confirmLabel:lo,get open(){return e(Jt)},set open(Y){r(Jt,Y)},$$events:{confirm:()=>{var Y,ge;return Sr((Y=e(Rt))==null?void 0:Y.id,(ge=e(Rt))==null?void 0:ge.name)}},children:(Y,ge)=>{var A=De(),re=Re(A);{var de=ye=>{var ct=dd(),dt=Re(ct);dt.nodeValue=`${io} `;var Xe=t(dt),mt=s(Xe,!0);a(Xe);var Ze=t(Xe,1,!0);Ze.nodeValue=oo,v(()=>u(mt,e(Rt).name)),l(ye,ct)};U(re,ye=>{e(Rt)&&ye(de)})}l(Y,A)},$$slots:{default:!0},$$legacy:!0});var f=t(p,2),I=s(f);I.textContent=co;var X=t(I,2),F=s(X),T=s(F);T.textContent=_a;var ae=t(T,2);B(ae),m(ae,"placeholder",vo),a(F);var Q=t(F,2),Z=s(Q);Z.textContent=ws;var D=t(Z,2);B(D),m(D,"placeholder",po),a(Q),a(X);var M=t(X,2),R=s(M),d=s(R);d.textContent=_o;var E=t(d,2);B(E),a(R);var S=t(R,2),K=s(S);K.textContent=uo;var G=t(K,2);v(()=>{e(fe),da(()=>{})});var w=s(G);w.value=(w.__value="user")==null?"":"user",w.textContent=bo;var ce=t(w);ce.value=(ce.__value="admin")==null?"":"admin",ce.textContent=fo,a(G),a(S),a(M);var b=t(M,2);{var ee=Y=>{var ge=vd(),A=s(ge,!0);a(ge),v(()=>u(A,e(Nt))),l(Y,ge)};U(b,Y=>{e(Nt)&&Y(ee)})}var ie=t(b,2),We=s(ie);se(We,{get disabled(){return e(zt)},$$events:{click:mr},children:(Y,ge)=>{z();var A=te();v(re=>u(A,re),[()=>mo(e(zt))],H),l(Y,A)},$$slots:{default:!0}}),a(ie),a(f);var ot=t(f,2);{var ht=Y=>{var ge=bd();Ot(ge,5,()=>e(ut),A=>A.id,(A,re)=>{var de=ud(),ye=s(de),ct=s(ye),dt=s(ct,!0);a(ct);var Xe=t(ct,2),mt=s(Xe,!0);a(Xe),a(ye);var Ze=t(ye,2),Pa=s(Ze,!0);a(Ze);var Mt=t(Ze,2);{var ca=et=>{var Ne=pd();m(Ne,"title",Eo),Je("click",Ne,()=>{r(Rt,{id:e(re).id,name:e(re).name}),r(Jt,!0)}),l(et,Ne)},Kt=et=>{var Ne=_d();Ne.textContent=go,l(et,Ne)};U(Mt,et=>{var Ne;e(re).id!==((Ne=he().user)==null?void 0:Ne.id)?et(ca):et(Kt,!1)})}a(de),v(()=>{u(dt,e(re).name),u(mt,e(re).email),on(Ze,`role-chip ${e(re).role??""} svelte-bpb2i4`),u(Pa,e(re).role)}),l(A,de)}),a(ge),l(Y,ge)};U(ot,Y=>{e(ut).length>0&&Y(ht)})}a(P),V(ae,()=>e(fe).name,Y=>k(fe,e(fe).name=Y)),V(D,()=>e(fe).email,Y=>k(fe,e(fe).email=Y)),V(E,()=>e(fe).password,Y=>k(fe,e(fe).password=Y)),pa(G,()=>e(fe).role,Y=>k(fe,e(fe).role=Y)),He(3,P,()=>Ve,()=>({y:6,duration:180})),l(W,P)},ue=W=>{var P=De(),L=Re(P);{var _=h=>{var p=Rd(),f=s(p),I=s(f);I.textContent=ts;var X=t(I,2);X.textContent=al,a(f);var F=t(f,2),T=s(F);T.textContent=Lo;var ae=t(T,2),Q=s(ae),Z=s(Q);Z.textContent=Ro;var D=t(Z,2),M=s(D);M.nodeValue=`${Ao} `;var R=t(M,2);R.nodeValue=` ${ko}`,a(D);var d=t(D,2);se(d,{get disabled(){return e(Zt)},$$events:{click:ur},children:(O,Ce)=>{z();var Le=te();v(Ye=>u(Le,Ye),[()=>Ac(e(Zt))],H),l(O,Le)},$$slots:{default:!0}}),a(Q);var E=t(Q,4),S=s(E);S.textContent=xo;var K=t(S,2);K.textContent=Po;var G=t(K,2),w=s(G),ce=s(w);bn(ce,O=>r(Dt,O),()=>e(Dt));var b=t(ce,2),ee=s(b,!0);a(b),a(w);var ie=t(w,2);const We=H(()=>!e(bt)||e(Qt));se(ie,{get disabled(){return e(We)},$$events:{click:br},children:(O,Ce)=>{z();var Le=te();v(Ye=>u(Le,Ye),[()=>kc(e(Qt))],H),l(O,Le)},$$slots:{default:!0}}),a(G),a(E),a(ae);var ot=t(ae,2),ht=s(ot);ht.nodeValue=`${yo} `;var Y=t(ht,2);Y.nodeValue=` ${Io}`,a(ot),a(F);var ge=t(F,2),A=s(ge);A.textContent=wo;var re=t(A,2),de=s(re);de.nodeValue=`${Oo} `;var ye=t(de);ye.textContent=er;var ct=t(ye);ct.nodeValue=` ${$o}`,a(re);var dt=t(re,2),Xe=s(dt),mt=s(Xe),Ze=s(mt);Ze.textContent=er;var Pa=t(Ze,2);Pa.textContent=No,a(mt);var Mt=t(mt,2);B(Mt),m(Mt,"placeholder",Do),a(Xe);var ca=t(Xe,2),Kt=s(ca),et=s(Kt);et.textContent=Uo;var Ne=t(et,2),us=s(Ne);us.nodeValue=`${Bo} `;var Nr=t(us,2);Nr.nodeValue=` ${Fo}`,a(Ne),a(Kt);var Ta=t(Kt,2);B(Ta),m(Ta,"placeholder",Mo),a(ca),a(dt);var ya=t(dt,2),Ia=s(ya),wa=s(Ia),Dr=s(wa);Dr.textContent=Ko,a(wa);var Oa=t(wa,2);B(Oa),m(Oa,"placeholder",Go),a(Ia);var bs=t(Ia,2),$a=s(bs),fs=s($a);fs.textContent=Ho;var Ur=t(fs,2);Ur.textContent=Vo,a($a);var Na=t($a,2);B(Na),m(Na,"placeholder",jo),a(bs),a(ya);var Da=t(ya,2),Ua=s(Da),Ba=s(Ua),Br=s(Ba);Br.textContent=Wo,a(Ba);var Fa=t(Ba,2);B(Fa),m(Fa,"placeholder",Xo),a(Ua);var Es=t(Ua,2),Ma=s(Es),gs=s(Ma);gs.textContent=Yo;var hs=t(gs,2),Fr=s(hs,!0);a(hs),a(Ma);var Ka=t(Ma,2);B(Ka),a(Es),a(Da);var Ga=t(Da,2),ms=s(Ga);se(ms,{variant:"ghost",get disabled(){return e(aa)},$$events:{click:Pr},children:(O,Ce)=>{z();var Le=te();v(Ye=>u(Le,Ye),[()=>Tc(e(aa))],H),l(O,Le)},$$slots:{default:!0}});var Mr=t(ms,2);se(Mr,{get disabled(){return e(Tt)},$$events:{click:os},children:(O,Ce)=>{z();var Le=te();v(Ye=>u(Le,Ye),[()=>yc(e(Tt))],H),l(O,Le)},$$slots:{default:!0}}),a(Ga);var Kr=t(Ga,2);{var Gr=O=>{var Ce=Ed(),Le=s(Ce);a(Ce),v(()=>{St(Ce,"s3-test-success",e(ft)==="success"),St(Ce,"s3-test-error",e(ft)==="error"),u(Le,`${(e(ft)==="success"?"✓":"✗")??""}
|
|
3
|
+
${e(ra)??""}`)}),l(O,Ce)};U(Kr,O=>{e(ft)&&O(Gr)})}a(ge);var Ha=t(ge,2),Ss=s(Ha);Ss.textContent=lc;var Hr=t(Ss,2);{var Vr=O=>{var Ce=gd();Ce.textContent=ic,l(O,Ce)},jr=O=>{var Ce=Ld(),Le=Re(Ce),Ye=s(Le),Cs=s(Ye);Cs.textContent=oc;var Va=t(Cs,2);a(Ye),a(Le);var ja=t(Le,2),Wa=s(ja),Ls=s(Wa);Ls.textContent=cc;var Rs=t(Ls,2),As=s(Rs);As.nodeValue=`${dc} `;var ks=t(As,2);ks.nodeValue=` ${vc} `;var Wr=t(ks);Wr.textContent=pc,a(Rs),a(Wa);var Xa=t(Wa,2);B(Xa),m(Xa,"placeholder",_c),a(ja);var xs=t(ja,2);{var Xr=tt=>{var Gt=Cd(),vt=s(Gt),Ht=t(vt);{var zr=pt=>{var at=hd(),Ya=s(at,!0);a(at),v(za=>u(Ya,za),[()=>Ic(e(st).replace("success:",""))],H),l(pt,at)},Jr=pt=>{var at=De(),Ya=Re(at);{var za=It=>{var ze=md(),Ja=s(ze,!0);a(ze),v(Qr=>u(Ja,Qr),[()=>e(st).replace("error:","")],H),l(It,ze)},qr=It=>{var ze=Sd(),Ja=s(ze,!0);a(ze),v(()=>u(Ja,e(st))),l(It,ze)};U(Ya,It=>{var ze;(ze=e(st))!=null&&ze.startsWith("error:")?It(za):It(qr,!1)},!0)}l(pt,at)};U(Ht,pt=>{var at;(at=e(st))!=null&&at.startsWith("success:")?pt(zr):pt(Jr,!1)})}a(Gt),v(pt=>u(vt,`${uc}
|
|
4
|
+
${pt??""} — `),[()=>new Date(e(Ut)).toLocaleString()],H),l(tt,Gt)};U(xs,tt=>{e(Ut)&&tt(Xr)})}var Ps=t(xs,2),Ts=s(Ps);se(Ts,{variant:"ghost",get disabled(){return e(sa)},$$events:{click:Tr},children:(tt,Gt)=>{z();var vt=te();v(Ht=>u(vt,Ht),[()=>wc(e(sa))],H),l(tt,vt)},$$slots:{default:!0}});var Yr=t(Ts,2);se(Yr,{get disabled(){return e(Tt)},$$events:{click:os},children:(tt,Gt)=>{z();var vt=te();v(Ht=>u(vt,Ht),[()=>Oc(e(Tt))],H),l(tt,vt)},$$slots:{default:!0}}),a(Ps),v(()=>{m(Va,"aria-checked",e(y).backupEnabled),St(Va,"active",e(y).backupEnabled)}),Je("click",Va,()=>k(y,e(y).backupEnabled=!e(y).backupEnabled)),V(Xa,()=>e(y).backupCron,tt=>k(y,e(y).backupCron=tt)),l(O,Ce)};U(Hr,O=>{e(Ea)?O(jr,!1):O(Vr)})}a(Ha),a(p),v((O,Ce)=>{u(ee,e(bt)?e(bt).name:To),u(Fr,O),m(Ka,"placeholder",Ce),St(Ha,"card-disabled",!e(Ea))},[()=>xc(e(yt)),()=>Pc(e(yt))],H),Je("change",ce,fr),V(Mt,()=>e(y).backupS3Endpoint,O=>k(y,e(y).backupS3Endpoint=O)),V(Ta,()=>e(y).backupS3Region,O=>k(y,e(y).backupS3Region=O)),V(Oa,()=>e(y).backupS3Bucket,O=>k(y,e(y).backupS3Bucket=O)),V(Na,()=>e(y).backupS3Prefix,O=>k(y,e(y).backupS3Prefix=O)),V(Fa,()=>e(y).backupS3AccessKey,O=>k(y,e(y).backupS3AccessKey=O)),V(Ka,()=>e(y).backupS3SecretKey,O=>k(y,e(y).backupS3SecretKey=O)),He(3,p,()=>Ve,()=>({y:6,duration:180})),l(h,p)};U(L,h=>{e(xe)==="backup"&&h(_)},!0)}l(W,P)};U(le,W=>{e(xe)==="users"?W(oe):W(ue,!1)},!0)}l(q,N)};U(j,q=>{e(xe)==="account"?q(ne):q(g,!1)},!0)}l(_e,J)};U(Pe,_e=>{e(xe)==="mcp"?_e($e):_e(Ge,!1)},!0)}l(ke,Ee)};U(Me,ke=>{e(xe)==="integrations"?ke(Ke):ke(it,!1)},!0)}l(Ie,Te)};U(nt,Ie=>{e(xe)==="repository"?Ie(lt):Ie(gt,!1)},!0)}l(Qe,Fe)};U(x,Qe=>{e(xe)==="runners"?Qe(je):Qe(xa,!1)},!0)}l(n,o)};U(wr,n=>{e(xe)==="project"?n(Or):n($r,!1)})}a(_s),a(vs),l(i,cs),rn(),fa()}export{Vd as component};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h as X,a as _,t as E,s as k,e as Z}from"../chunks/CMBQQ9RZ.js";import{i as ee}from"../chunks/CKDtmZUQ.js";import{p as se,o as ae,s as t,t as x,c as te,$ as le,m as d,d as r,g as e,k as i,j as l,x as re}from"../chunks/BAACMRH5.js";import{i as W,s as ie,a as oe}from"../chunks/CgnwuKKO.js";import{s as u,r as I,E as ne,P as ve}from"../chunks/CUC98kMZ.js";import{b as P}from"../chunks/t-La0hgu.js";import{g as pe}from"../chunks/DMyTUV-Y.js";import{c as de,s as ce,l as fe}from"../chunks/BmZ9upwL.js";import{a as me}from"../chunks/C1Vid6wz.js";import{t as be}from"../chunks/DCgHuuvs.js";import{c as _e,C as ue,W as Ee,d as Le,Y as he,N as Ae,E as ge,e as Ce,f as Re,A as we,g as Se,h as xe}from"../chunks/Dlnxgs49.js";var Ie=E('<p class="checking svelte-1fbs494"></p>'),Pe=E('<p class="error svelte-1fbs494"> </p>'),Oe=E('<div class="card svelte-1fbs494"><div class="brand svelte-1fbs494"><span class="brand-serif svelte-1fbs494">Pl</span><span class="brand-sans svelte-1fbs494">um</span></div> <div class="heading svelte-1fbs494"><h1 class="title svelte-1fbs494"></h1> <p class="subtitle svelte-1fbs494"></p></div> <div class="fields svelte-1fbs494"><div class="field svelte-1fbs494"><label class="label svelte-1fbs494" for="name"></label> <input id="name" type="text" class="input svelte-1fbs494" autocomplete="name"></div> <div class="field svelte-1fbs494"><label class="label svelte-1fbs494" for="email"></label> <input id="email" type="email" class="input svelte-1fbs494" autocomplete="email"></div> <div class="field svelte-1fbs494"><label class="label svelte-1fbs494" for="password"></label> <input id="password" type="password" class="input svelte-1fbs494" autocomplete="new-password"></div></div> <!> <button class="submit-btn svelte-1fbs494"> </button></div>'),De=E('<div class="page svelte-1fbs494"><!></div>');function Ge(B,H){se(H,!1);const[U,F]=ie(),G=()=>oe(be,"$theme",U);let c=d(""),v=d(""),n=d(""),p=d(""),f=d(!1),O=d(!0);ae(async()=>{try{await de()||pe("/login")}catch{}t(O,!1)});async function K(){if(!e(c)||!e(v)||!e(n)){t(p,we);return}if(e(n).length<8){t(p,Se);return}t(p,""),t(f,!0);try{await ce({name:e(c),email:e(v),password:e(n)});const{token:s,user:o}=await fe({email:e(v),password:e(n)});me.login(s,o),window.location.href="/"}catch(s){t(p,s.message||xe)}finally{t(f,!1)}}ee();var m=De();X(s=>{le.title=_e});var Y=r(m);{var j=s=>{var o=Ie();o.textContent=ue,_(s,o)},q=s=>{var o=Oe(),L=l(r(o),2),D=r(L);D.textContent=Ee;var Q=l(D,2);Q.textContent=Le,i(L);var h=l(L,2),A=r(h),M=r(A);M.textContent=he;var g=l(M,2);I(g),u(g,"placeholder",Ae),i(A);var C=l(A,2),T=r(C);T.textContent=ne;var R=l(T,2);I(R),u(R,"placeholder",ge),i(C);var y=l(C,2),N=r(y);N.textContent=ve;var w=l(N,2);I(w),u(w,"placeholder",Ce),i(y),i(h);var $=l(h,2);{var V=a=>{var S=Pe(),J=r(S,!0);i(S),x(()=>k(J,e(p))),_(a,S)};W($,a=>{e(p)&&a(V)})}var b=l($,2),z=r(b,!0);i(b),i(o),x(a=>{b.disabled=e(f)||!e(c)||!e(v)||!e(n),k(z,a)},[()=>Re(e(f))],re),P(g,()=>e(c),a=>t(c,a)),P(R,()=>e(v),a=>t(v,a)),P(w,()=>e(n),a=>t(n,a)),Z("click",b,K),_(s,o)};W(Y,s=>{e(O)?s(j):s(q,!1)})}i(m),x(()=>u(m,"data-theme",G())),_(B,m),te(),F()}export{Ge as component};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"
|
|
1
|
+
{"version":"1784381622985"}
|
|
@@ -39,45 +39,55 @@
|
|
|
39
39
|
"_app/immutable/assets/Badge.D1SV0Gv7.css"
|
|
40
40
|
]
|
|
41
41
|
},
|
|
42
|
-
"
|
|
43
|
-
"file": "
|
|
44
|
-
"
|
|
45
|
-
"imports": [
|
|
46
|
-
"_index.js",
|
|
47
|
-
"_Toast.js",
|
|
48
|
-
"_attributes.js"
|
|
49
|
-
]
|
|
50
|
-
},
|
|
51
|
-
"_ConfirmModal.CdhOYVBb.css": {
|
|
52
|
-
"file": "_app/immutable/assets/ConfirmModal.CdhOYVBb.css",
|
|
53
|
-
"src": "_ConfirmModal.CdhOYVBb.css"
|
|
42
|
+
"_ConfirmModal.Dd3uP-Sk.css": {
|
|
43
|
+
"file": "_app/immutable/assets/ConfirmModal.Dd3uP-Sk.css",
|
|
44
|
+
"src": "_ConfirmModal.Dd3uP-Sk.css"
|
|
54
45
|
},
|
|
55
46
|
"_ConfirmModal.js": {
|
|
56
47
|
"file": "chunks/ConfirmModal.js",
|
|
57
48
|
"name": "ConfirmModal",
|
|
58
49
|
"imports": [
|
|
59
50
|
"_index.js",
|
|
51
|
+
"_Modal.js",
|
|
52
|
+
"_common.js",
|
|
60
53
|
"_attributes.js",
|
|
61
54
|
"_escaping.js"
|
|
62
55
|
],
|
|
63
56
|
"css": [
|
|
64
|
-
"_app/immutable/assets/ConfirmModal.
|
|
57
|
+
"_app/immutable/assets/ConfirmModal.Dd3uP-Sk.css"
|
|
65
58
|
]
|
|
66
59
|
},
|
|
67
|
-
"_EmptyState.
|
|
68
|
-
"file": "_app/immutable/assets/EmptyState.
|
|
69
|
-
"src": "_EmptyState.
|
|
60
|
+
"_EmptyState.DUDM4P19.css": {
|
|
61
|
+
"file": "_app/immutable/assets/EmptyState.DUDM4P19.css",
|
|
62
|
+
"src": "_EmptyState.DUDM4P19.css"
|
|
70
63
|
},
|
|
71
64
|
"_EmptyState.js": {
|
|
72
65
|
"file": "chunks/EmptyState.js",
|
|
73
66
|
"name": "EmptyState",
|
|
67
|
+
"imports": [
|
|
68
|
+
"_index.js",
|
|
69
|
+
"_common.js",
|
|
70
|
+
"_attributes.js",
|
|
71
|
+
"_escaping.js"
|
|
72
|
+
],
|
|
73
|
+
"css": [
|
|
74
|
+
"_app/immutable/assets/EmptyState.DUDM4P19.css"
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
"_Modal.BuaCfdLj.css": {
|
|
78
|
+
"file": "_app/immutable/assets/Modal.BuaCfdLj.css",
|
|
79
|
+
"src": "_Modal.BuaCfdLj.css"
|
|
80
|
+
},
|
|
81
|
+
"_Modal.js": {
|
|
82
|
+
"file": "chunks/Modal.js",
|
|
83
|
+
"name": "Modal",
|
|
74
84
|
"imports": [
|
|
75
85
|
"_index.js",
|
|
76
86
|
"_attributes.js",
|
|
77
87
|
"_escaping.js"
|
|
78
88
|
],
|
|
79
89
|
"css": [
|
|
80
|
-
"_app/immutable/assets/
|
|
90
|
+
"_app/immutable/assets/Modal.BuaCfdLj.css"
|
|
81
91
|
]
|
|
82
92
|
},
|
|
83
93
|
"_Pagination.DZmi2Po-.css": {
|
|
@@ -114,6 +124,10 @@
|
|
|
114
124
|
"_index2.js"
|
|
115
125
|
]
|
|
116
126
|
},
|
|
127
|
+
"_auth2.js": {
|
|
128
|
+
"file": "chunks/auth2.js",
|
|
129
|
+
"name": "auth"
|
|
130
|
+
},
|
|
117
131
|
"_client.js": {
|
|
118
132
|
"file": "chunks/client.js",
|
|
119
133
|
"name": "client",
|
|
@@ -123,6 +137,10 @@
|
|
|
123
137
|
"_index.js"
|
|
124
138
|
]
|
|
125
139
|
},
|
|
140
|
+
"_common.js": {
|
|
141
|
+
"file": "chunks/common.js",
|
|
142
|
+
"name": "common"
|
|
143
|
+
},
|
|
126
144
|
"_constants.js": {
|
|
127
145
|
"file": "chunks/constants.js",
|
|
128
146
|
"name": "constants"
|
|
@@ -174,11 +192,27 @@
|
|
|
174
192
|
"_constants.js"
|
|
175
193
|
]
|
|
176
194
|
},
|
|
195
|
+
"_reports2.js": {
|
|
196
|
+
"file": "chunks/reports2.js",
|
|
197
|
+
"name": "reports",
|
|
198
|
+
"imports": [
|
|
199
|
+
"_common.js"
|
|
200
|
+
]
|
|
201
|
+
},
|
|
202
|
+
"_repository.js": {
|
|
203
|
+
"file": "chunks/repository.js",
|
|
204
|
+
"name": "repository",
|
|
205
|
+
"imports": [
|
|
206
|
+
"_common.js"
|
|
207
|
+
]
|
|
208
|
+
},
|
|
177
209
|
"_runner.js": {
|
|
178
210
|
"file": "chunks/runner.js",
|
|
179
211
|
"name": "runner",
|
|
180
212
|
"imports": [
|
|
181
|
-
"_index2.js"
|
|
213
|
+
"_index2.js",
|
|
214
|
+
"_constants.js",
|
|
215
|
+
"_auth.js"
|
|
182
216
|
]
|
|
183
217
|
},
|
|
184
218
|
"_stores.js": {
|
|
@@ -234,11 +268,13 @@
|
|
|
234
268
|
"_index.js",
|
|
235
269
|
"_client.js",
|
|
236
270
|
"_auth.js",
|
|
271
|
+
"_runner.js",
|
|
237
272
|
"_format.js"
|
|
238
273
|
],
|
|
239
274
|
"css": [
|
|
240
275
|
"_app/immutable/assets/_layout.BuhMvMUj.css",
|
|
241
|
-
"_app/immutable/assets/
|
|
276
|
+
"_app/immutable/assets/Modal.BuaCfdLj.css",
|
|
277
|
+
"_app/immutable/assets/ConfirmModal.Dd3uP-Sk.css",
|
|
242
278
|
"_app/immutable/assets/Badge.D1SV0Gv7.css"
|
|
243
279
|
]
|
|
244
280
|
},
|
|
@@ -250,15 +286,15 @@
|
|
|
250
286
|
"imports": [
|
|
251
287
|
"_index.js",
|
|
252
288
|
"_index-server.js",
|
|
253
|
-
"_constants.js",
|
|
254
289
|
"_runner.js",
|
|
255
290
|
"_format.js",
|
|
256
291
|
"_EmptyState.js",
|
|
292
|
+
"_common.js",
|
|
257
293
|
"_escaping.js",
|
|
258
294
|
"_attributes.js"
|
|
259
295
|
],
|
|
260
296
|
"css": [
|
|
261
|
-
"_app/immutable/assets/_page.
|
|
297
|
+
"_app/immutable/assets/_page.DvMkmYA-.css"
|
|
262
298
|
]
|
|
263
299
|
},
|
|
264
300
|
"src/routes/login/+page.svelte": {
|
|
@@ -271,7 +307,9 @@
|
|
|
271
307
|
"_client.js",
|
|
272
308
|
"_auth.js",
|
|
273
309
|
"_theme.js",
|
|
274
|
-
"
|
|
310
|
+
"_auth2.js",
|
|
311
|
+
"_attributes.js",
|
|
312
|
+
"_escaping.js"
|
|
275
313
|
],
|
|
276
314
|
"css": [
|
|
277
315
|
"_app/immutable/assets/_page.BR3wgXcZ.css"
|
|
@@ -293,7 +331,8 @@
|
|
|
293
331
|
"_attributes.js",
|
|
294
332
|
"_escaping.js",
|
|
295
333
|
"_ConfirmModal.js",
|
|
296
|
-
"_EmptyState.js"
|
|
334
|
+
"_EmptyState.js",
|
|
335
|
+
"_reports2.js"
|
|
297
336
|
],
|
|
298
337
|
"css": [
|
|
299
338
|
"_app/immutable/assets/_page.0Eln51hV.css",
|
|
@@ -310,7 +349,9 @@
|
|
|
310
349
|
"_stores.js",
|
|
311
350
|
"_index-server.js",
|
|
312
351
|
"_format.js",
|
|
313
|
-
"
|
|
352
|
+
"_reports2.js",
|
|
353
|
+
"_BackLink.js",
|
|
354
|
+
"_escaping.js"
|
|
314
355
|
],
|
|
315
356
|
"css": [
|
|
316
357
|
"_app/immutable/assets/_page.BZfe6nWe.css",
|
|
@@ -330,6 +371,8 @@
|
|
|
330
371
|
"_runner.js",
|
|
331
372
|
"_reports.js",
|
|
332
373
|
"_constants.js",
|
|
374
|
+
"_common.js",
|
|
375
|
+
"_reports2.js",
|
|
333
376
|
"_format.js",
|
|
334
377
|
"_BackLink.js",
|
|
335
378
|
"_Badge.js",
|
|
@@ -350,14 +393,15 @@
|
|
|
350
393
|
"_constants.js",
|
|
351
394
|
"_auth.js",
|
|
352
395
|
"_runner.js",
|
|
396
|
+
"_common.js",
|
|
353
397
|
"_format.js",
|
|
354
|
-
"
|
|
398
|
+
"_Toast.js",
|
|
355
399
|
"_Badge.js",
|
|
400
|
+
"_Modal.js",
|
|
356
401
|
"_ConfirmModal.js",
|
|
357
|
-
"_Toast.js",
|
|
358
402
|
"_EmptyState.js",
|
|
359
|
-
"
|
|
360
|
-
"
|
|
403
|
+
"_escaping.js",
|
|
404
|
+
"_attributes.js"
|
|
361
405
|
],
|
|
362
406
|
"css": [
|
|
363
407
|
"_app/immutable/assets/_page.CBHi6pzT.css"
|
|
@@ -375,15 +419,15 @@
|
|
|
375
419
|
"_auth.js",
|
|
376
420
|
"_runner.js",
|
|
377
421
|
"_theme.js",
|
|
378
|
-
"_Button.js",
|
|
379
422
|
"_Toast.js",
|
|
380
423
|
"_ConfirmModal.js",
|
|
381
424
|
"_Badge.js",
|
|
382
|
-
"
|
|
383
|
-
"_escaping.js"
|
|
425
|
+
"_common.js",
|
|
426
|
+
"_escaping.js",
|
|
427
|
+
"_attributes.js"
|
|
384
428
|
],
|
|
385
429
|
"css": [
|
|
386
|
-
"_app/immutable/assets/_page.
|
|
430
|
+
"_app/immutable/assets/_page.BwgOqeMo.css"
|
|
387
431
|
]
|
|
388
432
|
},
|
|
389
433
|
"src/routes/setup/+page.svelte": {
|
|
@@ -396,7 +440,9 @@
|
|
|
396
440
|
"_client.js",
|
|
397
441
|
"_auth.js",
|
|
398
442
|
"_theme.js",
|
|
399
|
-
"
|
|
443
|
+
"_auth2.js",
|
|
444
|
+
"_attributes.js",
|
|
445
|
+
"_escaping.js"
|
|
400
446
|
],
|
|
401
447
|
"css": [
|
|
402
448
|
"_app/immutable/assets/_page._h2o67kg.css"
|
|
@@ -411,12 +457,15 @@
|
|
|
411
457
|
"_index.js",
|
|
412
458
|
"_constants.js",
|
|
413
459
|
"_auth.js",
|
|
414
|
-
"
|
|
460
|
+
"_runner.js",
|
|
415
461
|
"_EmptyState.js",
|
|
416
462
|
"_ConfirmModal.js",
|
|
463
|
+
"_Modal.js",
|
|
417
464
|
"_Toast.js",
|
|
418
|
-
"
|
|
419
|
-
"
|
|
465
|
+
"_common.js",
|
|
466
|
+
"_repository.js",
|
|
467
|
+
"_escaping.js",
|
|
468
|
+
"_attributes.js"
|
|
420
469
|
],
|
|
421
470
|
"css": [
|
|
422
471
|
"_app/immutable/assets/_page.5IJAEAjc.css",
|
|
@@ -432,12 +481,17 @@
|
|
|
432
481
|
"_index.js",
|
|
433
482
|
"_stores.js",
|
|
434
483
|
"_auth.js",
|
|
484
|
+
"_runner.js",
|
|
485
|
+
"_Toast.js",
|
|
486
|
+
"_Modal.js",
|
|
487
|
+
"_common.js",
|
|
488
|
+
"_repository.js",
|
|
435
489
|
"_escaping.js",
|
|
436
|
-
"
|
|
490
|
+
"_attributes.js"
|
|
437
491
|
],
|
|
438
492
|
"css": [
|
|
439
|
-
"_app/immutable/assets/_page.
|
|
440
|
-
"_app/immutable/assets/EmptyState.
|
|
493
|
+
"_app/immutable/assets/_page.BWAH0Beh.css",
|
|
494
|
+
"_app/immutable/assets/EmptyState.DUDM4P19.css"
|
|
441
495
|
]
|
|
442
496
|
},
|
|
443
497
|
"src/routes/test-repository/suites/[id]/+page.svelte": {
|
|
@@ -450,15 +504,17 @@
|
|
|
450
504
|
"_stores.js",
|
|
451
505
|
"_constants.js",
|
|
452
506
|
"_auth.js",
|
|
507
|
+
"_common.js",
|
|
453
508
|
"_ConfirmModal.js",
|
|
509
|
+
"_Modal.js",
|
|
454
510
|
"_Toast.js",
|
|
455
|
-
"
|
|
511
|
+
"_repository.js",
|
|
456
512
|
"_escaping.js",
|
|
457
513
|
"_attributes.js"
|
|
458
514
|
],
|
|
459
515
|
"css": [
|
|
460
516
|
"_app/immutable/assets/_page.Bj_a_5lv.css",
|
|
461
|
-
"_app/immutable/assets/EmptyState.
|
|
517
|
+
"_app/immutable/assets/EmptyState.DUDM4P19.css",
|
|
462
518
|
"_app/immutable/assets/Pagination.DZmi2Po-.css"
|
|
463
519
|
]
|
|
464
520
|
}
|
|
@@ -1,18 +1 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
*
|
|
4
|
-
* Plum is free software: you can redistribute it and/or modify
|
|
5
|
-
* it under the terms of the GNU General Public License as published by
|
|
6
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
7
|
-
* (at your option) any later version.
|
|
8
|
-
*
|
|
9
|
-
* Plum is distributed in the hope that it will be useful,
|
|
10
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
* GNU General Public License for more details.
|
|
13
|
-
*
|
|
14
|
-
* You should have received a copy of the GNU General Public License
|
|
15
|
-
* along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
1
|
.back-row.svelte-1qfuc04{margin-bottom:1.5rem}.back-link.svelte-1qfuc04{display:inline-flex;align-items:center;gap:.35rem;font-size:.8125rem;color:var(--text-muted);text-decoration:none;transition:color var(--duration-fast)}.back-link.svelte-1qfuc04:hover{color:var(--text)}
|
|
@@ -1,18 +1 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
*
|
|
4
|
-
* Plum is free software: you can redistribute it and/or modify
|
|
5
|
-
* it under the terms of the GNU General Public License as published by
|
|
6
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
7
|
-
* (at your option) any later version.
|
|
8
|
-
*
|
|
9
|
-
* Plum is distributed in the hope that it will be useful,
|
|
10
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
* GNU General Public License for more details.
|
|
13
|
-
*
|
|
14
|
-
* You should have received a copy of the GNU General Public License
|
|
15
|
-
* along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
1
|
.badge.svelte-f4flx{display:inline-flex;align-items:center;font-size:.68rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;padding:.2rem .6rem;border-radius:var(--radius-pill);white-space:nowrap}.pass.svelte-f4flx{background:var(--pass-soft);color:var(--pass)}.fail.svelte-f4flx{background:var(--fail-soft);color:var(--fail)}.tag.svelte-f4flx{background:var(--accent-soft);color:var(--accent)}.schedule.svelte-f4flx{background:var(--warn-soft);color:var(--warn)}.neutral.svelte-f4flx{background:var(--bg-subtle);color:var(--text-muted);border:1px solid var(--border)}.node.svelte-f4flx{background:var(--node-soft);color:var(--node)}.mcp.svelte-f4flx{background:var(--accent-soft);color:var(--accent)}.external.svelte-f4flx{background:var(--external-soft);color:var(--external)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.body.svelte-ibsxog{font-size:.9375rem;color:var(--text-muted);line-height:1.6}.body.svelte-ibsxog strong{color:var(--text);font-weight:500}.actions.svelte-ibsxog{display:flex;gap:.625rem;padding-top:.25rem}.btn-danger.svelte-ibsxog{height:34px;padding:0 1rem;font-size:.8125rem;font-family:inherit;font-weight:500;background:var(--fail);border:1px solid var(--fail);border-radius:var(--radius-sm);cursor:pointer;color:var(--white);transition:opacity var(--duration-fast)}.btn-danger.svelte-ibsxog:hover:not(:disabled){opacity:.85}.btn-danger.svelte-ibsxog:disabled{opacity:.5;cursor:not-allowed}.btn-cancel.svelte-ibsxog{height:34px;padding:0 1rem;font-size:.8125rem;font-family:inherit;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--text);transition:background var(--duration-fast)}.btn-cancel.svelte-ibsxog:hover{background:var(--bg-subtle)}
|