plum-e2e 2.9.17 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env +1 -1
- package/CLAUDE.md +1 -1
- package/README.md +7 -7
- package/backend/app.js +1 -1
- package/backend/constants/socketEvents.js +8 -14
- package/backend/lib/csv.js +21 -0
- package/backend/lib/exportResponse.js +37 -0
- package/backend/lib/serverBootstrap.js +6 -6
- package/backend/lib/serverConfig.js +5 -3
- package/backend/mcp/server.js +47 -3
- package/backend/middleware/runnerOrAdmin.js +1 -1
- package/backend/package.json +1 -1
- package/backend/prisma/migrations/20260829000000_add_run_queue/migration.sql +29 -0
- package/backend/prisma/schema.prisma +30 -0
- package/backend/routes/active-runs.routes.js +10 -6
- package/backend/routes/node.routes.js +7 -0
- package/backend/routes/reports.routes.js +19 -0
- package/backend/routes/runners.routes.js +1 -1
- package/backend/routes/test-cases.routes.js +12 -0
- package/backend/routes/test-runs.routes.js +17 -0
- package/backend/routes/test-suites.routes.js +34 -0
- package/backend/routes/trigger.routes.js +8 -5
- package/backend/scripts/{manage-runners.mjs → manage-nodes.mjs} +67 -52
- package/backend/server.js +5 -1
- package/backend/services/cronService.js +15 -443
- package/backend/services/exportService.js +339 -0
- package/backend/services/nodeExecutionService.js +13 -1
- package/backend/services/runExecutorService.js +423 -0
- package/backend/services/runQueueService.js +276 -0
- package/backend/services/runnerService.js +22 -4
- package/backend/services/testImportService.js +87 -0
- package/backend/services/triggerService.js +13 -231
- package/backend/websockets/socketHandler.js +32 -590
- package/bin/plum.js +174 -68
- package/docker-compose.yml +1 -1
- package/frontend/.svelte-kit/adapter-node/.vite/manifest.json +78 -70
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/BackLink.DRrgBGDC.css +6 -0
- package/frontend/.svelte-kit/{output/server/_app/immutable/assets/Toast.DENwYn3g.css → adapter-node/_app/immutable/assets/Button.C1zsJAUG.css} +1 -1
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/ExportMenu.DsJQ1Qua.css +6 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_layout.B4TT3qNx.css +6 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.4bPj83tb.css +6 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.Be5c3USL.css +6 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BwgtEi_a.css +6 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.ClS4XkkN.css +6 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.DOC8fPSI.css +6 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.Dm1nSEgE.css +6 -0
- package/frontend/.svelte-kit/adapter-node/chunks/BackLink.js +1 -1
- package/frontend/.svelte-kit/adapter-node/chunks/Badge.js +1 -1
- package/frontend/.svelte-kit/adapter-node/chunks/{Toast.js → Button.js} +2 -17
- package/frontend/.svelte-kit/adapter-node/chunks/ConfirmModal.js +2 -2
- package/frontend/.svelte-kit/adapter-node/chunks/EmptyState.js +2 -2
- package/frontend/.svelte-kit/adapter-node/chunks/Modal.js +1 -1
- package/frontend/.svelte-kit/adapter-node/chunks/common.js +11 -4
- package/frontend/.svelte-kit/adapter-node/chunks/constants.js +6 -4
- package/frontend/.svelte-kit/adapter-node/chunks/format.js +3 -3
- package/frontend/.svelte-kit/adapter-node/chunks/index.js +4 -4
- package/frontend/.svelte-kit/adapter-node/chunks/internal.js +1 -1
- package/frontend/.svelte-kit/adapter-node/chunks/reports.js +1 -1
- package/frontend/.svelte-kit/adapter-node/chunks/reports2.js +38 -40
- package/frontend/.svelte-kit/adapter-node/chunks/repository.js +26 -14
- package/frontend/.svelte-kit/adapter-node/chunks/runner.js +10 -20
- package/frontend/.svelte-kit/adapter-node/entries/pages/_layout.svelte.js +2 -0
- package/frontend/.svelte-kit/adapter-node/entries/pages/live/_id_/_page.svelte.js +254 -0
- package/frontend/.svelte-kit/adapter-node/entries/pages/login/_page.svelte.js +1 -1
- package/frontend/.svelte-kit/adapter-node/entries/pages/reports/_id_/_page.svelte.js +39 -25
- package/frontend/.svelte-kit/adapter-node/entries/pages/reports/_page.svelte.js +23 -19
- package/frontend/.svelte-kit/adapter-node/entries/pages/scheduled-tests/_page.svelte.js +5 -8
- package/frontend/.svelte-kit/adapter-node/entries/pages/settings/_page.svelte.js +354 -185
- package/frontend/.svelte-kit/adapter-node/entries/pages/setup/_page.svelte.js +1 -1
- package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/_page.svelte.js +55 -36
- package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/runs/_id_/_page.svelte.js +4 -7
- package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/suites/_id_/_page.svelte.js +66 -16
- package/frontend/.svelte-kit/adapter-node/manifest-full.js +10 -10
- package/frontend/.svelte-kit/adapter-node/manifest.js +10 -10
- package/frontend/.svelte-kit/adapter-node/nodes/0.js +2 -2
- package/frontend/.svelte-kit/adapter-node/nodes/1.js +1 -1
- package/frontend/.svelte-kit/adapter-node/nodes/10.js +2 -2
- package/frontend/.svelte-kit/adapter-node/nodes/11.js +2 -2
- package/frontend/.svelte-kit/adapter-node/nodes/12.js +2 -2
- package/frontend/.svelte-kit/adapter-node/nodes/2.js +1 -1
- package/frontend/.svelte-kit/adapter-node/nodes/3.js +3 -3
- package/frontend/.svelte-kit/adapter-node/nodes/4.js +3 -3
- package/frontend/.svelte-kit/adapter-node/nodes/5.js +3 -3
- package/frontend/.svelte-kit/adapter-node/nodes/6.js +3 -3
- package/frontend/.svelte-kit/adapter-node/nodes/7.js +2 -2
- package/frontend/.svelte-kit/adapter-node/nodes/8.js +2 -2
- package/frontend/.svelte-kit/adapter-node/nodes/9.js +1 -1
- package/frontend/.svelte-kit/ambient.d.ts +28 -28
- package/frontend/.svelte-kit/generated/client/app.js +4 -4
- package/frontend/.svelte-kit/generated/client/nodes/3.js +1 -1
- package/frontend/.svelte-kit/generated/client/nodes/4.js +1 -1
- package/frontend/.svelte-kit/generated/client/nodes/5.js +1 -1
- package/frontend/.svelte-kit/generated/client/nodes/6.js +1 -1
- package/frontend/.svelte-kit/generated/client-optimized/app.js +4 -4
- package/frontend/.svelte-kit/generated/client-optimized/nodes/3.js +1 -1
- package/frontend/.svelte-kit/generated/client-optimized/nodes/4.js +1 -1
- package/frontend/.svelte-kit/generated/client-optimized/nodes/5.js +1 -1
- package/frontend/.svelte-kit/generated/client-optimized/nodes/6.js +1 -1
- package/frontend/.svelte-kit/generated/server/internal.js +1 -1
- package/frontend/.svelte-kit/output/client/.vite/manifest.json +462 -403
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/0.BEqlRAtD.css +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/10.DC0wD6w_.css +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/12.Dm1nSEgE.css +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/3.Be5c3USL.css +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/5.ClS4XkkN.css +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/6.DdQVxyZK.css +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/8.DOC8fPSI.css +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/BackLink.DRrgBGDC.css +6 -0
- package/frontend/{build/client/_app/immutable/assets/Toast.DENwYn3g.css → .svelte-kit/output/client/_app/immutable/assets/Button.C1zsJAUG.css} +1 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/ExportMenu.DsJQ1Qua.css +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_layout.B4TT3qNx.css +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.4bPj83tb.css +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.Be5c3USL.css +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BwgtEi_a.css +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.ClS4XkkN.css +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.DOC8fPSI.css +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.Dm1nSEgE.css +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/3MBVX4Yb.js +175 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/6VDMVB5U.js +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/B2lVGNml.js +6 -0
- package/frontend/{build/client/_app/immutable/chunks/2zMvi6fR.js → .svelte-kit/output/client/_app/immutable/chunks/BCh31ecr.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BDb8hZHu.js +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BIf7lHIm.js +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BIjh3jiU.js +8 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BTV7EXZb.js +11 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{DMZwI8Cj.js → BWGoOYU0.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BdBJfKUi.js +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{t-La0hgu.js → BnXsGCy3.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BtTNggoY.js +8 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/C4Z3p6jE.js +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CNpD-yNH.js +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CUPWZLIN.js +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{C1Vid6wz.js → CXQhSK1T.js} +1 -1
- package/frontend/{build/client/_app/immutable/chunks/CKDtmZUQ.js → .svelte-kit/output/client/_app/immutable/chunks/CtgCYzu5.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{C8OURRSs.js → D72giPTu.js} +1 -1
- package/frontend/{build/client/_app/immutable/chunks/BmZ9upwL.js → .svelte-kit/output/client/_app/immutable/chunks/DDx3no2z.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/D_thT6pZ.js +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DeiVAbyn.js +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DiexacSB.js +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{DDZw0L0T.js → Dlymnwnf.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/gCgJ3Cwu.js +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/htkwR9b-.js +6 -0
- package/frontend/{build/client/_app/immutable/chunks/DCgHuuvs.js → .svelte-kit/output/client/_app/immutable/chunks/iL4SCrvY.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/kFFd6Oo5.js +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/pNZogwkM.js +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{w0D4Uzlq.js → prk8PJfA.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/qvxlSGpD.js +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/r_d1Iu0W.js +6 -0
- package/frontend/{build/client/_app/immutable/chunks/CNdcuGR0.js → .svelte-kit/output/client/_app/immutable/chunks/tsOANt55.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/zXSLr47H.js +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/entry/app.DgdSwPuN.js +7 -0
- package/frontend/{build/client/_app/immutable/entry/start.4qxHHAcl.js → .svelte-kit/output/client/_app/immutable/entry/start.D_lhI48n.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/0.D2F-i1I5.js +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{1.Df9sLw8b.js → 1.JIF2GfHq.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/10.A0AHLfOt.js +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/11.CVSPxlqY.js +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/12.CnAR0AQb.js +6 -0
- package/frontend/{build/client/_app/immutable/nodes/2.BCPSg7H4.js → .svelte-kit/output/client/_app/immutable/nodes/2.Bno00fr8.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/3.B6KwaCsM.js +6 -0
- package/frontend/{build/client/_app/immutable/nodes/3.8BFAJoHT.js → .svelte-kit/output/client/_app/immutable/nodes/4.BX70m3v6.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/5.UIFh06yr.js +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/6.DZ1OV24V.js +10 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/7.B_XntBZ1.js +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/8.CVHgJw-E.js +9 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{9.CvfGx3Hu.js → 9.DDDQPmMj.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/version.json +1 -1
- package/frontend/.svelte-kit/output/server/.vite/manifest.json +78 -70
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/BackLink.DRrgBGDC.css +6 -0
- package/frontend/.svelte-kit/output/{client/_app/immutable/assets/Toast.DENwYn3g.css → server/_app/immutable/assets/Button.C1zsJAUG.css} +1 -1
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/ExportMenu.DsJQ1Qua.css +6 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_layout.B4TT3qNx.css +6 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.4bPj83tb.css +6 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Be5c3USL.css +6 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BwgtEi_a.css +6 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.ClS4XkkN.css +6 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.DOC8fPSI.css +6 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Dm1nSEgE.css +6 -0
- package/frontend/.svelte-kit/output/server/chunks/BackLink.js +1 -1
- package/frontend/.svelte-kit/output/server/chunks/Badge.js +1 -1
- package/frontend/.svelte-kit/output/server/chunks/{Toast.js → Button.js} +2 -17
- package/frontend/.svelte-kit/output/server/chunks/ConfirmModal.js +2 -2
- package/frontend/.svelte-kit/output/server/chunks/EmptyState.js +2 -2
- package/frontend/.svelte-kit/output/server/chunks/Modal.js +1 -1
- package/frontend/.svelte-kit/output/server/chunks/common.js +11 -4
- package/frontend/.svelte-kit/output/server/chunks/constants.js +6 -4
- package/frontend/.svelte-kit/output/server/chunks/format.js +3 -3
- package/frontend/.svelte-kit/output/server/chunks/index.js +4 -4
- package/frontend/.svelte-kit/output/server/chunks/internal.js +1 -1
- package/frontend/.svelte-kit/output/server/chunks/reports.js +1 -1
- package/frontend/.svelte-kit/output/server/chunks/reports2.js +38 -40
- package/frontend/.svelte-kit/output/server/chunks/repository.js +26 -14
- package/frontend/.svelte-kit/output/server/chunks/runner.js +10 -20
- package/frontend/.svelte-kit/output/server/entries/pages/_layout.svelte.js +2 -0
- package/frontend/.svelte-kit/output/server/entries/pages/live/_id_/_page.svelte.js +254 -0
- package/frontend/.svelte-kit/output/server/entries/pages/login/_page.svelte.js +1 -1
- package/frontend/.svelte-kit/output/server/entries/pages/reports/_id_/_page.svelte.js +39 -25
- package/frontend/.svelte-kit/output/server/entries/pages/reports/_page.svelte.js +23 -19
- package/frontend/.svelte-kit/output/server/entries/pages/scheduled-tests/_page.svelte.js +5 -8
- package/frontend/.svelte-kit/output/server/entries/pages/settings/_page.svelte.js +354 -185
- package/frontend/.svelte-kit/output/server/entries/pages/setup/_page.svelte.js +1 -1
- package/frontend/.svelte-kit/output/server/entries/pages/test-repository/_page.svelte.js +55 -36
- package/frontend/.svelte-kit/output/server/entries/pages/test-repository/runs/_id_/_page.svelte.js +4 -7
- package/frontend/.svelte-kit/output/server/entries/pages/test-repository/suites/_id_/_page.svelte.js +66 -16
- package/frontend/.svelte-kit/output/server/manifest-full.js +10 -10
- package/frontend/.svelte-kit/output/server/manifest.js +10 -10
- package/frontend/.svelte-kit/output/server/nodes/0.js +2 -2
- package/frontend/.svelte-kit/output/server/nodes/1.js +1 -1
- package/frontend/.svelte-kit/output/server/nodes/10.js +2 -2
- package/frontend/.svelte-kit/output/server/nodes/11.js +2 -2
- package/frontend/.svelte-kit/output/server/nodes/12.js +2 -2
- package/frontend/.svelte-kit/output/server/nodes/2.js +1 -1
- package/frontend/.svelte-kit/output/server/nodes/3.js +3 -3
- package/frontend/.svelte-kit/output/server/nodes/4.js +3 -3
- package/frontend/.svelte-kit/output/server/nodes/5.js +3 -3
- package/frontend/.svelte-kit/output/server/nodes/6.js +3 -3
- package/frontend/.svelte-kit/output/server/nodes/7.js +2 -2
- package/frontend/.svelte-kit/output/server/nodes/8.js +2 -2
- package/frontend/.svelte-kit/output/server/nodes/9.js +1 -1
- package/frontend/build/client/_app/immutable/assets/0.BEqlRAtD.css +6 -0
- package/frontend/build/client/_app/immutable/assets/0.BEqlRAtD.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/0.BEqlRAtD.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/10.DC0wD6w_.css +6 -0
- package/frontend/build/client/_app/immutable/assets/10.DC0wD6w_.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/10.DC0wD6w_.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/12.Dm1nSEgE.css +6 -0
- package/frontend/build/client/_app/immutable/assets/12.Dm1nSEgE.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/12.Dm1nSEgE.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/3.Be5c3USL.css +6 -0
- package/frontend/build/client/_app/immutable/assets/3.Be5c3USL.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/3.Be5c3USL.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/5.ClS4XkkN.css +6 -0
- package/frontend/build/client/_app/immutable/assets/5.ClS4XkkN.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/5.ClS4XkkN.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/6.DdQVxyZK.css +6 -0
- package/frontend/build/client/_app/immutable/assets/6.DdQVxyZK.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/6.DdQVxyZK.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/8.DOC8fPSI.css +6 -0
- package/frontend/build/client/_app/immutable/assets/8.DOC8fPSI.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/8.DOC8fPSI.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/BackLink.DRrgBGDC.css +6 -0
- package/frontend/build/client/_app/immutable/assets/BackLink.DRrgBGDC.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/BackLink.DRrgBGDC.css.gz +0 -0
- package/frontend/{.svelte-kit/adapter-node/_app/immutable/assets/Toast.DENwYn3g.css → build/client/_app/immutable/assets/Button.C1zsJAUG.css} +1 -1
- package/frontend/build/client/_app/immutable/assets/Button.C1zsJAUG.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/Button.C1zsJAUG.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/ExportMenu.DsJQ1Qua.css +6 -0
- package/frontend/build/client/_app/immutable/assets/ExportMenu.DsJQ1Qua.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/ExportMenu.DsJQ1Qua.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_layout.B4TT3qNx.css +6 -0
- package/frontend/build/client/_app/immutable/assets/_layout.B4TT3qNx.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_layout.B4TT3qNx.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.4bPj83tb.css +6 -0
- package/frontend/build/client/_app/immutable/assets/_page.4bPj83tb.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.4bPj83tb.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.Be5c3USL.css +6 -0
- package/frontend/build/client/_app/immutable/assets/_page.Be5c3USL.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.Be5c3USL.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.BwgtEi_a.css +6 -0
- package/frontend/build/client/_app/immutable/assets/_page.BwgtEi_a.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.BwgtEi_a.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.ClS4XkkN.css +6 -0
- package/frontend/build/client/_app/immutable/assets/_page.ClS4XkkN.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.ClS4XkkN.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.DOC8fPSI.css +6 -0
- package/frontend/build/client/_app/immutable/assets/_page.DOC8fPSI.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.DOC8fPSI.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.Dm1nSEgE.css +6 -0
- package/frontend/build/client/_app/immutable/assets/_page.Dm1nSEgE.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.Dm1nSEgE.css.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/3MBVX4Yb.js +175 -0
- package/frontend/build/client/_app/immutable/chunks/3MBVX4Yb.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/3MBVX4Yb.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/6VDMVB5U.js +6 -0
- package/frontend/build/client/_app/immutable/chunks/6VDMVB5U.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/6VDMVB5U.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/B2lVGNml.js +6 -0
- package/frontend/build/client/_app/immutable/chunks/B2lVGNml.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/B2lVGNml.js.gz +0 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/2zMvi6fR.js → build/client/_app/immutable/chunks/BCh31ecr.js} +1 -1
- package/frontend/build/client/_app/immutable/chunks/BCh31ecr.js.br +6 -0
- package/frontend/build/client/_app/immutable/chunks/BCh31ecr.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/BDb8hZHu.js +6 -0
- package/frontend/build/client/_app/immutable/chunks/BDb8hZHu.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BDb8hZHu.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/BIf7lHIm.js +6 -0
- package/frontend/build/client/_app/immutable/chunks/BIf7lHIm.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BIf7lHIm.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/BIjh3jiU.js +8 -0
- package/frontend/build/client/_app/immutable/chunks/BIjh3jiU.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BIjh3jiU.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/BTV7EXZb.js +11 -0
- package/frontend/build/client/_app/immutable/chunks/BTV7EXZb.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BTV7EXZb.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{DMZwI8Cj.js → BWGoOYU0.js} +1 -1
- package/frontend/build/client/_app/immutable/chunks/BWGoOYU0.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BWGoOYU0.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/BdBJfKUi.js +6 -0
- package/frontend/build/client/_app/immutable/chunks/BdBJfKUi.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BdBJfKUi.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{t-La0hgu.js → BnXsGCy3.js} +1 -1
- package/frontend/build/client/_app/immutable/chunks/BnXsGCy3.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BnXsGCy3.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/BtTNggoY.js +8 -0
- package/frontend/build/client/_app/immutable/chunks/BtTNggoY.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BtTNggoY.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/C4Z3p6jE.js +6 -0
- package/frontend/build/client/_app/immutable/chunks/C4Z3p6jE.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/C4Z3p6jE.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/CNpD-yNH.js +6 -0
- package/frontend/build/client/_app/immutable/chunks/CNpD-yNH.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/CNpD-yNH.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/CUPWZLIN.js +6 -0
- package/frontend/build/client/_app/immutable/chunks/CUPWZLIN.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/CUPWZLIN.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{C1Vid6wz.js → CXQhSK1T.js} +1 -1
- package/frontend/build/client/_app/immutable/chunks/CXQhSK1T.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/CXQhSK1T.js.gz +0 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/CKDtmZUQ.js → build/client/_app/immutable/chunks/CtgCYzu5.js} +1 -1
- package/frontend/build/client/_app/immutable/chunks/CtgCYzu5.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/CtgCYzu5.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{C8OURRSs.js → D72giPTu.js} +1 -1
- package/frontend/build/client/_app/immutable/chunks/D72giPTu.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/D72giPTu.js.gz +0 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/BmZ9upwL.js → build/client/_app/immutable/chunks/DDx3no2z.js} +1 -1
- package/frontend/build/client/_app/immutable/chunks/DDx3no2z.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DDx3no2z.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/D_thT6pZ.js +6 -0
- package/frontend/build/client/_app/immutable/chunks/D_thT6pZ.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/D_thT6pZ.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/DeiVAbyn.js +6 -0
- package/frontend/build/client/_app/immutable/chunks/DeiVAbyn.js.br +6 -0
- package/frontend/build/client/_app/immutable/chunks/DeiVAbyn.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/DiexacSB.js +6 -0
- package/frontend/build/client/_app/immutable/chunks/DiexacSB.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DiexacSB.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{DDZw0L0T.js → Dlymnwnf.js} +1 -1
- package/frontend/build/client/_app/immutable/chunks/Dlymnwnf.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/Dlymnwnf.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/gCgJ3Cwu.js +6 -0
- package/frontend/build/client/_app/immutable/chunks/gCgJ3Cwu.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/gCgJ3Cwu.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/htkwR9b-.js +6 -0
- package/frontend/build/client/_app/immutable/chunks/htkwR9b-.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/htkwR9b-.js.gz +0 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/DCgHuuvs.js → build/client/_app/immutable/chunks/iL4SCrvY.js} +1 -1
- package/frontend/build/client/_app/immutable/chunks/iL4SCrvY.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/iL4SCrvY.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/kFFd6Oo5.js +6 -0
- package/frontend/build/client/_app/immutable/chunks/kFFd6Oo5.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/kFFd6Oo5.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/pNZogwkM.js +6 -0
- package/frontend/build/client/_app/immutable/chunks/pNZogwkM.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/pNZogwkM.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{w0D4Uzlq.js → prk8PJfA.js} +1 -1
- package/frontend/build/client/_app/immutable/chunks/prk8PJfA.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/prk8PJfA.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/qvxlSGpD.js +6 -0
- package/frontend/build/client/_app/immutable/chunks/qvxlSGpD.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/qvxlSGpD.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/r_d1Iu0W.js +6 -0
- package/frontend/build/client/_app/immutable/chunks/r_d1Iu0W.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/r_d1Iu0W.js.gz +0 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/CNdcuGR0.js → build/client/_app/immutable/chunks/tsOANt55.js} +1 -1
- package/frontend/build/client/_app/immutable/chunks/tsOANt55.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/tsOANt55.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/zXSLr47H.js +6 -0
- package/frontend/build/client/_app/immutable/chunks/zXSLr47H.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/zXSLr47H.js.gz +0 -0
- package/frontend/build/client/_app/immutable/entry/app.DgdSwPuN.js +7 -0
- package/frontend/build/client/_app/immutable/entry/app.DgdSwPuN.js.br +0 -0
- package/frontend/build/client/_app/immutable/entry/app.DgdSwPuN.js.gz +0 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/entry/start.4qxHHAcl.js → build/client/_app/immutable/entry/start.D_lhI48n.js} +1 -1
- package/frontend/build/client/_app/immutable/entry/{start.4qxHHAcl.js.br → start.D_lhI48n.js.br} +1 -1
- package/frontend/build/client/_app/immutable/entry/{start.4qxHHAcl.js.gz → start.D_lhI48n.js.gz} +0 -0
- package/frontend/build/client/_app/immutable/nodes/0.D2F-i1I5.js +6 -0
- package/frontend/build/client/_app/immutable/nodes/0.D2F-i1I5.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/0.D2F-i1I5.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/{1.Df9sLw8b.js → 1.JIF2GfHq.js} +1 -1
- package/frontend/build/client/_app/immutable/nodes/1.JIF2GfHq.js.br +5 -0
- package/frontend/build/client/_app/immutable/nodes/1.JIF2GfHq.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/10.A0AHLfOt.js +6 -0
- package/frontend/build/client/_app/immutable/nodes/10.A0AHLfOt.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/10.A0AHLfOt.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/11.CVSPxlqY.js +6 -0
- package/frontend/build/client/_app/immutable/nodes/11.CVSPxlqY.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/11.CVSPxlqY.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/12.CnAR0AQb.js +6 -0
- package/frontend/build/client/_app/immutable/nodes/12.CnAR0AQb.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/12.CnAR0AQb.js.gz +0 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/nodes/2.BCPSg7H4.js → build/client/_app/immutable/nodes/2.Bno00fr8.js} +1 -1
- package/frontend/build/client/_app/immutable/nodes/2.Bno00fr8.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/2.Bno00fr8.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/3.B6KwaCsM.js +6 -0
- package/frontend/build/client/_app/immutable/nodes/3.B6KwaCsM.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/3.B6KwaCsM.js.gz +0 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/nodes/3.8BFAJoHT.js → build/client/_app/immutable/nodes/4.BX70m3v6.js} +1 -1
- package/frontend/build/client/_app/immutable/nodes/4.BX70m3v6.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/4.BX70m3v6.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/5.UIFh06yr.js +6 -0
- package/frontend/build/client/_app/immutable/nodes/5.UIFh06yr.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/5.UIFh06yr.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/6.DZ1OV24V.js +10 -0
- package/frontend/build/client/_app/immutable/nodes/6.DZ1OV24V.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/6.DZ1OV24V.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/7.B_XntBZ1.js +6 -0
- package/frontend/build/client/_app/immutable/nodes/7.B_XntBZ1.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/7.B_XntBZ1.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/8.CVHgJw-E.js +9 -0
- package/frontend/build/client/_app/immutable/nodes/8.CVHgJw-E.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/8.CVHgJw-E.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/{9.CvfGx3Hu.js → 9.DDDQPmMj.js} +1 -1
- package/frontend/build/client/_app/immutable/nodes/9.DDDQPmMj.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/9.DDDQPmMj.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/server/chunks/0-38cvTs44.js +22 -0
- package/frontend/build/server/chunks/0-38cvTs44.js.map +5 -0
- package/frontend/build/server/chunks/{1-Kxn9d30Z.js → 1-CcYsajvR.js} +3 -3
- package/frontend/build/server/chunks/{1-Kxn9d30Z.js.map → 1-CcYsajvR.js.map} +1 -1
- package/frontend/build/server/chunks/10-CFR2MUJt.js +14 -0
- package/frontend/build/server/chunks/10-CFR2MUJt.js.map +5 -0
- package/frontend/build/server/chunks/11-BmkiRQ9D.js +14 -0
- package/frontend/build/server/chunks/11-BmkiRQ9D.js.map +5 -0
- package/frontend/build/server/chunks/12-BphJAwnL.js +14 -0
- package/frontend/build/server/chunks/12-BphJAwnL.js.map +5 -0
- package/frontend/build/server/chunks/2-Dalgd2D4.js +14 -0
- package/frontend/build/server/chunks/{2-Dc_rKWoK.js.map → 2-Dalgd2D4.js.map} +1 -1
- package/frontend/build/server/chunks/3-BvsmdXCj.js +14 -0
- package/frontend/build/server/chunks/3-BvsmdXCj.js.map +5 -0
- package/frontend/build/server/chunks/4-CN18WCEn.js +14 -0
- package/frontend/build/server/chunks/4-CN18WCEn.js.map +5 -0
- package/frontend/build/server/chunks/5-BwLYF3xL.js +14 -0
- package/frontend/build/server/chunks/5-BwLYF3xL.js.map +5 -0
- package/frontend/build/server/chunks/6-DTM2N_k3.js +14 -0
- package/frontend/build/server/chunks/6-DTM2N_k3.js.map +5 -0
- package/frontend/build/server/chunks/7-DTNbErSe.js +14 -0
- package/frontend/build/server/chunks/7-DTNbErSe.js.map +5 -0
- package/frontend/build/server/chunks/8-BfCbb7pl.js +14 -0
- package/frontend/build/server/chunks/8-BfCbb7pl.js.map +5 -0
- package/frontend/build/server/chunks/9-CQKepnMw.js +14 -0
- package/frontend/build/server/chunks/{9-DirZG_Lu.js.map → 9-CQKepnMw.js.map} +1 -1
- package/frontend/build/server/chunks/{BackLink-BJ8NaemM.js → BackLink-CMpNTYqE.js} +2 -2
- package/frontend/build/server/chunks/BackLink-CMpNTYqE.js.map +5 -0
- package/frontend/build/server/chunks/{Badge-44ZTDx0V.js → Badge-BTWnF9pA.js} +2 -2
- package/frontend/build/server/chunks/Badge-BTWnF9pA.js.map +5 -0
- package/frontend/build/server/chunks/{Toast-v-q4ZnYq.js → Button-B9h9viZX.js} +3 -17
- package/frontend/build/server/chunks/Button-B9h9viZX.js.map +5 -0
- package/frontend/build/server/chunks/{ConfirmModal-C0EAXcq_.js → ConfirmModal-C6Cz898n.js} +4 -4
- package/frontend/build/server/chunks/ConfirmModal-C6Cz898n.js.map +5 -0
- package/frontend/build/server/chunks/{EmptyState-BA_eXaeR.js → EmptyState-CRtsJIv6.js} +3 -3
- package/frontend/build/server/chunks/EmptyState-CRtsJIv6.js.map +5 -0
- package/frontend/build/server/chunks/{Modal-DChG187n.js → Modal-BJJMnfIg.js} +2 -2
- package/frontend/build/server/chunks/Modal-BJJMnfIg.js.map +5 -0
- package/frontend/build/server/chunks/_layout.svelte-B8vZGefg.js +28 -0
- package/frontend/build/server/chunks/_layout.svelte-B8vZGefg.js.map +5 -0
- package/frontend/build/server/chunks/{_page.svelte-Kg69DDaM.js → _page.svelte-BrYksycU.js} +5 -5
- package/frontend/build/server/chunks/_page.svelte-BrYksycU.js.map +5 -0
- package/frontend/build/server/chunks/_page.svelte-BrnXHxJ4.js +69 -0
- package/frontend/build/server/chunks/_page.svelte-BrnXHxJ4.js.map +5 -0
- package/frontend/build/server/chunks/_page.svelte-C2WqvInJ.js +898 -0
- package/frontend/build/server/chunks/_page.svelte-C2WqvInJ.js.map +5 -0
- package/frontend/build/server/chunks/{_page.svelte-04WxjOuH.js → _page.svelte-CP6jA1ex.js} +9 -9
- package/frontend/build/server/chunks/{_page.svelte-04WxjOuH.js.map → _page.svelte-CP6jA1ex.js.map} +1 -1
- package/frontend/build/server/chunks/{_page.svelte-D3E6Eojd.js → _page.svelte-Cf6bI1Y2.js} +5 -5
- package/frontend/build/server/chunks/_page.svelte-Cf6bI1Y2.js.map +5 -0
- package/frontend/build/server/chunks/{_page.svelte-1as75nPc.js → _page.svelte-D6b-klLK.js} +33 -29
- package/frontend/build/server/chunks/_page.svelte-D6b-klLK.js.map +5 -0
- package/frontend/build/server/chunks/{_page.svelte-CWWeZuid.js → _page.svelte-DBjTpquQ.js} +73 -24
- package/frontend/build/server/chunks/_page.svelte-DBjTpquQ.js.map +5 -0
- package/frontend/build/server/chunks/{_page.svelte-CB8-QBNg.js → _page.svelte-DM1_y4Oq.js} +61 -42
- package/frontend/build/server/chunks/_page.svelte-DM1_y4Oq.js.map +5 -0
- package/frontend/build/server/chunks/_page.svelte-Mo-O3HJ5.js +257 -0
- package/frontend/build/server/chunks/_page.svelte-Mo-O3HJ5.js.map +5 -0
- package/frontend/build/server/chunks/{_page.svelte-BuFusRK1.js → _page.svelte-mZF4NrfU.js} +14 -17
- package/frontend/build/server/chunks/_page.svelte-mZF4NrfU.js.map +5 -0
- package/frontend/build/server/chunks/{_page.svelte-1jo8MapI.js → _page.svelte-nrlgIFaU.js} +13 -15
- package/frontend/build/server/chunks/_page.svelte-nrlgIFaU.js.map +5 -0
- package/frontend/build/server/chunks/{auth-Chw-wBpI.js → auth-DDPlushv.js} +2 -2
- package/frontend/build/server/chunks/{auth-Chw-wBpI.js.map → auth-DDPlushv.js.map} +1 -1
- package/frontend/build/server/chunks/{client-DEmxR_a-.js → client-CsTiGNZy.js} +2 -2
- package/frontend/build/server/chunks/{client-DEmxR_a-.js.map → client-CsTiGNZy.js.map} +1 -1
- package/frontend/build/server/chunks/{common-DYYTVHPw.js → common-DS-Z0UFe.js} +7 -2
- package/frontend/build/server/chunks/common-DS-Z0UFe.js.map +5 -0
- package/frontend/build/server/chunks/{constants-CXTaQaB6.js → constants-OmHysD51.js} +3 -2
- package/frontend/build/server/chunks/constants-OmHysD51.js.map +5 -0
- package/frontend/build/server/chunks/{error.svelte-BD3xNemk.js → error.svelte-BXr4lXlB.js} +3 -3
- package/frontend/build/server/chunks/{error.svelte-BD3xNemk.js.map → error.svelte-BXr4lXlB.js.map} +1 -1
- package/frontend/build/server/chunks/{format-CiNRMfHu.js → format-Bqb0as15.js} +2 -2
- package/frontend/build/server/chunks/{format-CiNRMfHu.js.map → format-Bqb0as15.js.map} +1 -1
- package/frontend/build/server/chunks/{index-server-B3M9vyh2.js → index-server-53nOZg5X.js} +2 -2
- package/frontend/build/server/chunks/{index-server-B3M9vyh2.js.map → index-server-53nOZg5X.js.map} +1 -1
- package/frontend/build/server/chunks/{index2-5R1tbrep.js → index2-DGcbugKe.js} +2 -2
- package/frontend/build/server/chunks/{index2-5R1tbrep.js.map → index2-DGcbugKe.js.map} +1 -1
- package/frontend/build/server/chunks/{reports-D_ApeeNh.js → reports-chCHCDzB.js} +2 -2
- package/frontend/build/server/chunks/{reports-D_ApeeNh.js.map → reports-chCHCDzB.js.map} +1 -1
- package/frontend/build/server/chunks/{reports2-BtElN_53.js → reports2-Dr3zu9CD.js} +8 -9
- package/frontend/build/server/chunks/reports2-Dr3zu9CD.js.map +5 -0
- package/frontend/build/server/chunks/{repository-FYYV_vKE.js → repository-DSsWVKEb.js} +9 -3
- package/frontend/build/server/chunks/repository-DSsWVKEb.js.map +5 -0
- package/frontend/build/server/chunks/runner-aaUtOqck.js +27 -0
- package/frontend/build/server/chunks/runner-aaUtOqck.js.map +5 -0
- package/frontend/build/server/chunks/{stores-BLenR3c1.js → stores-C4ZkywTG.js} +3 -3
- package/frontend/build/server/chunks/{stores-BLenR3c1.js.map → stores-C4ZkywTG.js.map} +1 -1
- package/frontend/build/server/chunks/{theme-nAx-GvX_.js → theme-C81wSe5T.js} +2 -2
- package/frontend/build/server/chunks/{theme-nAx-GvX_.js.map → theme-C81wSe5T.js.map} +1 -1
- package/frontend/build/server/index.js +2 -2
- package/frontend/build/server/index.js.map +1 -1
- package/frontend/build/server/manifest.js +23 -23
- package/frontend/build/server/manifest.js.map +1 -1
- package/frontend/package-lock.json +14 -0
- package/frontend/package.json +2 -0
- package/frontend/src/lib/api/reports.js +7 -0
- package/frontend/src/lib/api/repository.js +28 -0
- package/frontend/src/lib/components/layout/RunnerPanel.svelte +187 -266
- package/frontend/src/lib/components/reports/RecordingPlayer.svelte +172 -2
- package/frontend/src/lib/components/ui/ExportMenu.svelte +154 -0
- package/frontend/src/lib/components/ui/NotificationStack.svelte +177 -0
- package/frontend/src/lib/constants.js +1 -1
- package/frontend/src/lib/copy/common.js +9 -0
- package/frontend/src/lib/copy/reports.js +29 -0
- package/frontend/src/lib/copy/repository.js +4 -0
- package/frontend/src/lib/copy/runners.js +9 -6
- package/frontend/src/lib/copy/settings.js +15 -0
- package/frontend/src/lib/socketEvents.js +3 -15
- package/frontend/src/lib/stores/notifications.js +23 -0
- package/frontend/src/lib/stores/replayVideo.js +51 -0
- package/frontend/src/lib/stores/runner.js +62 -46
- package/frontend/src/lib/utils/download.js +28 -0
- package/frontend/src/lib/utils/replayCapture.js +91 -0
- package/frontend/src/lib/utils/replayVideo.js +111 -0
- package/frontend/src/routes/+layout.svelte +2 -0
- package/frontend/src/routes/{reports/live → live/[id]}/+page.svelte +112 -183
- package/frontend/src/routes/reports/[id]/+page.svelte +38 -3
- package/frontend/src/routes/scheduled-tests/+page.svelte +11 -19
- package/frontend/src/routes/settings/+page.svelte +140 -56
- package/frontend/src/routes/test-repository/+page.svelte +44 -16
- package/frontend/src/routes/test-repository/runs/[id]/+page.svelte +14 -23
- package/frontend/src/routes/test-repository/suites/[id]/+page.svelte +38 -22
- package/package.json +1 -1
- package/backend/services/activeRunsService.js +0 -55
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/BackLink.CvWWuO3h.css +0 -6
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_layout.BuhMvMUj.css +0 -6
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.0Eln51hV.css +0 -6
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.5IJAEAjc.css +0 -6
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BZfe6nWe.css +0 -6
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.Bj_a_5lv.css +0 -6
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BwgOqeMo.css +0 -6
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.CFnbmY-D.css +0 -6
- package/frontend/.svelte-kit/adapter-node/entries/pages/reports/live/_page.svelte.js +0 -247
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/0.BhSG-jZH.css +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/10.CdaQUS6U.css +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/12.Bj_a_5lv.css +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/4.0Eln51hV.css +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/5.DFV9OgAu.css +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/6.CFnbmY-D.css +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/8.BwgOqeMo.css +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/BackLink.CvWWuO3h.css +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/Button.FOWXxvc7.css +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_layout.BuhMvMUj.css +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.0Eln51hV.css +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.5IJAEAjc.css +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BZfe6nWe.css +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.Bj_a_5lv.css +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BwgOqeMo.css +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.CFnbmY-D.css +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/3InFPLvE.js +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BAACMRH5.js +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BAMUGSh7.js +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BKuh57WU.js +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BUwxRmHf.js +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CGeZlCaI.js +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CMBQQ9RZ.js +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CMEtqUfQ.js +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CUC98kMZ.js +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CgnwuKKO.js +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Co3xKhEp.js +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CuqnZUex.js +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CzlPaHY9.js +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DHM6H-es.js +0 -7
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DSLBMEpr.js +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DbgD7JLa.js +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/TOCyHP97.js +0 -11
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/kkA1mrsH.js +0 -8
- package/frontend/.svelte-kit/output/client/_app/immutable/entry/app.KrtMZ3my.js +0 -7
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/0.C8DodwXs.js +0 -11
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/10.DEbnxfND.js +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/11.BViaDK2m.js +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/12.BMSCSd88.js +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/4.D-YT_JJe.js +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/5.DVeH2eQP.js +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/6.DI7-IJhN.js +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/7.C-pKvVZy.js +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/8.93Mb3ofT.js +0 -9
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/BackLink.CvWWuO3h.css +0 -6
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_layout.BuhMvMUj.css +0 -6
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.0Eln51hV.css +0 -6
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.5IJAEAjc.css +0 -6
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BZfe6nWe.css +0 -6
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Bj_a_5lv.css +0 -6
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BwgOqeMo.css +0 -6
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CFnbmY-D.css +0 -6
- package/frontend/.svelte-kit/output/server/entries/pages/reports/live/_page.svelte.js +0 -247
- package/frontend/build/client/_app/immutable/assets/0.BhSG-jZH.css +0 -6
- 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 -6
- 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/12.Bj_a_5lv.css +0 -6
- 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/4.0Eln51hV.css +0 -6
- 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 -6
- 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 -6
- 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/8.BwgOqeMo.css +0 -6
- 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/BackLink.CvWWuO3h.css +0 -6
- 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/Button.FOWXxvc7.css +0 -6
- 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/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 -6
- 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 -6
- 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 -6
- 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.BZfe6nWe.css +0 -6
- 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 -6
- 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 +0 -6
- 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.CFnbmY-D.css +0 -6
- 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/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 +0 -6
- 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/build/client/_app/immutable/chunks/BAACMRH5.js +0 -6
- 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 +0 -6
- 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 +0 -6
- 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/BUwxRmHf.js +0 -6
- 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/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.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/C1Vid6wz.js.gz +0 -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 +0 -6
- 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.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/CKDtmZUQ.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/CMBQQ9RZ.js +0 -6
- 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 +0 -6
- 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.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/CNdcuGR0.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/CUC98kMZ.js +0 -6
- 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 +0 -6
- 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 +0 -6
- 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 +0 -6
- package/frontend/build/client/_app/immutable/chunks/CuqnZUex.js.br +0 -5
- package/frontend/build/client/_app/immutable/chunks/CuqnZUex.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/CzlPaHY9.js +0 -6
- 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.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DCgHuuvs.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/DDZw0L0T.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DDZw0L0T.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/DHM6H-es.js +0 -7
- 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.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DMZwI8Cj.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/DSLBMEpr.js +0 -6
- 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/DbgD7JLa.js +0 -6
- 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/TOCyHP97.js +0 -11
- 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/kkA1mrsH.js +0 -8
- package/frontend/build/client/_app/immutable/chunks/kkA1mrsH.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/kkA1mrsH.js.gz +0 -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.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/w0D4Uzlq.js.gz +0 -0
- package/frontend/build/client/_app/immutable/entry/app.KrtMZ3my.js +0 -7
- package/frontend/build/client/_app/immutable/entry/app.KrtMZ3my.js.br +0 -0
- package/frontend/build/client/_app/immutable/entry/app.KrtMZ3my.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/0.C8DodwXs.js +0 -11
- package/frontend/build/client/_app/immutable/nodes/0.C8DodwXs.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/0.C8DodwXs.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/1.Df9sLw8b.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/1.Df9sLw8b.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/10.DEbnxfND.js +0 -6
- 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.BViaDK2m.js +0 -6
- package/frontend/build/client/_app/immutable/nodes/11.BViaDK2m.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/11.BViaDK2m.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/12.BMSCSd88.js +0 -6
- package/frontend/build/client/_app/immutable/nodes/12.BMSCSd88.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/12.BMSCSd88.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/2.BCPSg7H4.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/2.BCPSg7H4.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/3.8BFAJoHT.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/3.8BFAJoHT.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/4.D-YT_JJe.js +0 -6
- 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.DVeH2eQP.js +0 -6
- package/frontend/build/client/_app/immutable/nodes/5.DVeH2eQP.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/5.DVeH2eQP.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/6.DI7-IJhN.js +0 -6
- package/frontend/build/client/_app/immutable/nodes/6.DI7-IJhN.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/6.DI7-IJhN.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/7.C-pKvVZy.js +0 -6
- 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.93Mb3ofT.js +0 -9
- package/frontend/build/client/_app/immutable/nodes/8.93Mb3ofT.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/8.93Mb3ofT.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/9.CvfGx3Hu.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/9.CvfGx3Hu.js.gz +0 -0
- package/frontend/build/server/chunks/0-D5YWFygh.js +0 -22
- package/frontend/build/server/chunks/0-D5YWFygh.js.map +0 -5
- package/frontend/build/server/chunks/10-l6_ikL_D.js +0 -14
- package/frontend/build/server/chunks/10-l6_ikL_D.js.map +0 -5
- package/frontend/build/server/chunks/11-CNLerze_.js +0 -14
- package/frontend/build/server/chunks/11-CNLerze_.js.map +0 -5
- package/frontend/build/server/chunks/12-De6Ol6pu.js +0 -14
- package/frontend/build/server/chunks/12-De6Ol6pu.js.map +0 -5
- package/frontend/build/server/chunks/2-Dc_rKWoK.js +0 -14
- package/frontend/build/server/chunks/3-DrRqVrcX.js +0 -14
- package/frontend/build/server/chunks/3-DrRqVrcX.js.map +0 -5
- package/frontend/build/server/chunks/4-Bo04DC5Z.js +0 -14
- package/frontend/build/server/chunks/4-Bo04DC5Z.js.map +0 -5
- package/frontend/build/server/chunks/5-CFeE5dPZ.js +0 -14
- package/frontend/build/server/chunks/5-CFeE5dPZ.js.map +0 -5
- package/frontend/build/server/chunks/6-DZk37MZH.js +0 -14
- package/frontend/build/server/chunks/6-DZk37MZH.js.map +0 -5
- package/frontend/build/server/chunks/7-DiQJZEF_.js +0 -14
- package/frontend/build/server/chunks/7-DiQJZEF_.js.map +0 -5
- package/frontend/build/server/chunks/8-CKPVFOqJ.js +0 -14
- package/frontend/build/server/chunks/8-CKPVFOqJ.js.map +0 -5
- package/frontend/build/server/chunks/9-DirZG_Lu.js +0 -14
- package/frontend/build/server/chunks/BackLink-BJ8NaemM.js.map +0 -5
- package/frontend/build/server/chunks/Badge-44ZTDx0V.js.map +0 -5
- package/frontend/build/server/chunks/ConfirmModal-C0EAXcq_.js.map +0 -5
- package/frontend/build/server/chunks/EmptyState-BA_eXaeR.js.map +0 -5
- package/frontend/build/server/chunks/Modal-DChG187n.js.map +0 -5
- package/frontend/build/server/chunks/Toast-v-q4ZnYq.js.map +0 -5
- package/frontend/build/server/chunks/_layout.svelte-CHVI3Prt.js +0 -29
- package/frontend/build/server/chunks/_layout.svelte-CHVI3Prt.js.map +0 -5
- package/frontend/build/server/chunks/_page.svelte-1as75nPc.js.map +0 -5
- package/frontend/build/server/chunks/_page.svelte-1jo8MapI.js.map +0 -5
- package/frontend/build/server/chunks/_page.svelte-8gELc_B1.js +0 -729
- package/frontend/build/server/chunks/_page.svelte-8gELc_B1.js.map +0 -5
- package/frontend/build/server/chunks/_page.svelte-BuFusRK1.js.map +0 -5
- package/frontend/build/server/chunks/_page.svelte-CAVyp70V.js +0 -250
- package/frontend/build/server/chunks/_page.svelte-CAVyp70V.js.map +0 -5
- package/frontend/build/server/chunks/_page.svelte-CB8-QBNg.js.map +0 -5
- package/frontend/build/server/chunks/_page.svelte-CWWeZuid.js.map +0 -5
- package/frontend/build/server/chunks/_page.svelte-D3E6Eojd.js.map +0 -5
- package/frontend/build/server/chunks/_page.svelte-Kg69DDaM.js.map +0 -5
- package/frontend/build/server/chunks/_page.svelte-L9fuiN_q.js +0 -57
- package/frontend/build/server/chunks/_page.svelte-L9fuiN_q.js.map +0 -5
- package/frontend/build/server/chunks/common-DYYTVHPw.js.map +0 -5
- package/frontend/build/server/chunks/constants-CXTaQaB6.js.map +0 -5
- package/frontend/build/server/chunks/reports2-BtElN_53.js.map +0 -5
- package/frontend/build/server/chunks/repository-FYYV_vKE.js.map +0 -5
- package/frontend/build/server/chunks/runner-DC7hXbnY.js +0 -37
- package/frontend/build/server/chunks/runner-DC7hXbnY.js.map +0 -5
- package/frontend/src/lib/components/ui/Toast.svelte +0 -24
- /package/frontend/.svelte-kit/output/client/_app/immutable/assets/{3.BR3wgXcZ.css → 4.BR3wgXcZ.css} +0 -0
- /package/frontend/build/client/_app/immutable/assets/{3.BR3wgXcZ.css → 4.BR3wgXcZ.css} +0 -0
- /package/frontend/build/client/_app/immutable/assets/{3.BR3wgXcZ.css.br → 4.BR3wgXcZ.css.br} +0 -0
- /package/frontend/build/client/_app/immutable/assets/{3.BR3wgXcZ.css.gz → 4.BR3wgXcZ.css.gz} +0 -0
|
@@ -3,18 +3,38 @@
|
|
|
3
3
|
* Licensed under the MIT License. See LICENSE file in the project root for details.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import { a0 as store_get, a2 as copy_payload, a3 as assign_payload, a1 as unsubscribe_stores, p as pop, a as push, Y as ensure_array_like, X as head, Z as stringify } from "../../../chunks/index.js";
|
|
7
7
|
import "../../../chunks/client.js";
|
|
8
|
-
import {
|
|
8
|
+
import { p as page } from "../../../chunks/stores.js";
|
|
9
|
+
import { A as API_BASE, T as TOAST_TIMEOUT_MS, M as MAX_TEST_RETRIES, B as BROWSERS } from "../../../chunks/constants.js";
|
|
9
10
|
import { a as auth } from "../../../chunks/auth.js";
|
|
10
|
-
import {
|
|
11
|
+
import { a as builtInEnabled } from "../../../chunks/runner.js";
|
|
11
12
|
import { t as theme } from "../../../chunks/theme.js";
|
|
12
|
-
import {
|
|
13
|
+
import { B as Button } from "../../../chunks/Button.js";
|
|
14
|
+
import { w as writable } from "../../../chunks/index2.js";
|
|
13
15
|
import { C as ConfirmModal } from "../../../chunks/ConfirmModal.js";
|
|
14
16
|
import { B as Badge } from "../../../chunks/Badge.js";
|
|
15
17
|
import { a as SAVE_LABEL, b as CANCEL_LABEL, E as EDIT_LABEL, c as EMAIL_LABEL } from "../../../chunks/common.js";
|
|
16
18
|
import { e as escape_html } from "../../../chunks/escaping.js";
|
|
17
19
|
import { a as attr } from "../../../chunks/attributes.js";
|
|
20
|
+
function authHeaders() {
|
|
21
|
+
return { Authorization: `Bearer ${auth.getToken()}` };
|
|
22
|
+
}
|
|
23
|
+
async function fetchS3Backups() {
|
|
24
|
+
const res = await fetch(`${API_BASE}/backup/s3-backups`, { headers: authHeaders() });
|
|
25
|
+
return res.json();
|
|
26
|
+
}
|
|
27
|
+
const notifications = writable([]);
|
|
28
|
+
let seq = 0;
|
|
29
|
+
function notify(type, message, { sticky = false, timeout = TOAST_TIMEOUT_MS } = {}) {
|
|
30
|
+
const id = ++seq;
|
|
31
|
+
notifications.update((list) => [...list, { id, type, message, sticky }]);
|
|
32
|
+
if (!sticky) setTimeout(() => dismissNotification(id), timeout);
|
|
33
|
+
return id;
|
|
34
|
+
}
|
|
35
|
+
function dismissNotification(id) {
|
|
36
|
+
notifications.update((list) => list.filter((n) => n.id !== id));
|
|
37
|
+
}
|
|
18
38
|
const PAGE_TITLE = "Settings — Plum";
|
|
19
39
|
const HEADING = "Settings";
|
|
20
40
|
const NAME_LABEL = "Name";
|
|
@@ -22,6 +42,13 @@ const PROJECT_LABEL = "Project";
|
|
|
22
42
|
const RUNNERS_LABEL = "Runners";
|
|
23
43
|
const REPOSITORY_NAV_LABEL = "Repository";
|
|
24
44
|
const REPOSITORY_HEADING = "Test Repository";
|
|
45
|
+
const TEST_CASES_NAV_LABEL = "Test Cases";
|
|
46
|
+
const TEST_CASES_HEADING = "Test Cases";
|
|
47
|
+
const TEST_CASES_DESC = "Bring test cases in from a Plum export file.";
|
|
48
|
+
const TC_IMPORT_CARD_TITLE = "Import";
|
|
49
|
+
const TC_IMPORT_DESC = "Upload a JSON file exported from Test Repository. Suites and cases are added as new records.";
|
|
50
|
+
const TC_IMPORT_HINT = "A case is skipped when its ID already exists here. Cases with a different prefix or no ID are imported with a fresh ID.";
|
|
51
|
+
const tcImportLabel = (importing) => "Import";
|
|
25
52
|
const INTEGRATIONS_LABEL = "Integrations";
|
|
26
53
|
const MCP_NAV_LABEL = "MCP";
|
|
27
54
|
const MCP_HEADING = "MCP Integration";
|
|
@@ -90,7 +117,7 @@ const SLACK_WEBHOOK_LABEL = "Slack Webhook URL";
|
|
|
90
117
|
const SLACK_WEBHOOK_HINT = "Leave blank to disable Slack notifications";
|
|
91
118
|
const SLACK_WEBHOOK_PLACEHOLDER = "https://hooks.slack.com/services/…";
|
|
92
119
|
const PUBLIC_URL_LABEL = "Public URL";
|
|
93
|
-
const PUBLIC_URL_HINT = "Base URL of this Plum instance
|
|
120
|
+
const PUBLIC_URL_HINT = "Base URL of this Plum instance — used to link reports in notifications, and by remote runner nodes to stream live test output back here";
|
|
94
121
|
const PUBLIC_URL_PLACEHOLDER = "https://plum.yourcompany.com";
|
|
95
122
|
const CI_TRIGGERS_CARD_TITLE = "CI / External Triggers";
|
|
96
123
|
const CI_DESC_PART1 = "Trigger a Plum run from GitHub Actions (e.g. on a pull request, against its preview deployment) or any other external script by calling";
|
|
@@ -132,8 +159,10 @@ const EXPORT_BLOCK_DESC_SUFFIX = "file with all cron jobs, test cases, test runs
|
|
|
132
159
|
const IMPORT_BLOCK_TITLE = "Import";
|
|
133
160
|
const IMPORT_BLOCK_DESC = "Restores all data from a previously exported backup. Existing records are overwritten. Cron jobs are re-scheduled after import.";
|
|
134
161
|
const CHOOSE_FILE_LABEL = "Choose file…";
|
|
135
|
-
const
|
|
136
|
-
const
|
|
162
|
+
const INCLUDE_REPORTS_LABEL = "Include reports & recordings";
|
|
163
|
+
const INCLUDE_REPORTS_HINT = "Applies to both manual export and scheduled S3 backups. Can make backups significantly larger — recordings are session replays, not just screenshots.";
|
|
164
|
+
const includeReportsDisclaimer = (included) => 'Reports are not included in backups — enable "Include reports & recordings" above, or run pg_dump directly on the PostgreSQL volume, to back up report history.';
|
|
165
|
+
const saveIncludeReportsLabel = (saving) => SAVE_LABEL;
|
|
137
166
|
const S3_STORAGE_CARD_TITLE = "S3 Storage";
|
|
138
167
|
const S3_STORAGE_DESC_PREFIX = "Works with any S3-compatible provider — Cloudflare R2, Backblaze B2, AWS S3, or MinIO. Leave";
|
|
139
168
|
const ENDPOINT_URL_LABEL = "Endpoint URL";
|
|
@@ -157,6 +186,13 @@ const SAVE_S3_CONFIG_LABEL = "Save S3 Config";
|
|
|
157
186
|
const SECRET_KEY_REQUIRED_HINT = "Required";
|
|
158
187
|
const SECRET_KEY_SET_PLACEHOLDER = "••••••••";
|
|
159
188
|
const SECRET_KEY_UNSET_PLACEHOLDER = "Enter secret key";
|
|
189
|
+
const RESTORE_FROM_S3_CARD_TITLE = "Restore from S3";
|
|
190
|
+
const RESTORE_FROM_S3_DESC = "Restores directly from a backup already uploaded to S3 — no need to download it yourself first. Existing records are overwritten. Cron jobs are re-scheduled after restore.";
|
|
191
|
+
const CONFIGURE_S3_FIRST_RESTORE_MESSAGE = "Configure S3 storage above to restore from it.";
|
|
192
|
+
const NO_S3_BACKUPS_MESSAGE = "No backups found at this bucket/prefix.";
|
|
193
|
+
const REFRESH_LABEL = "Refresh";
|
|
194
|
+
const RESTORE_CONFIRM_TITLE = "Restore this backup?";
|
|
195
|
+
const LIST_S3_BACKUPS_FAILED = "Failed to list S3 backups.";
|
|
160
196
|
const SCHEDULED_BACKUP_CARD_TITLE = "Scheduled Backup";
|
|
161
197
|
const CONFIGURE_S3_FIRST_MESSAGE = "Configure S3 storage above to enable scheduled backups.";
|
|
162
198
|
const ENABLE_SCHEDULED_BACKUP_LABEL = "Enable scheduled backup";
|
|
@@ -175,18 +211,32 @@ const testConnectionLabel = (testing) => TEST_CONNECTION_LABEL;
|
|
|
175
211
|
const saveS3ConfigLabel = (saving) => SAVE_S3_CONFIG_LABEL;
|
|
176
212
|
const uploadS3NowLabel = (running) => UPLOAD_TO_S3_NOW_LABEL;
|
|
177
213
|
const saveScheduleLabel = (saving) => SAVE_SCHEDULE_LABEL;
|
|
214
|
+
const restoreLabel = (restoring) => restoring ? "Restoring…" : "Restore";
|
|
215
|
+
const refreshingLabel = (loading) => loading ? "Loading…" : REFRESH_LABEL;
|
|
216
|
+
const backupSizeLabel = (bytes) => `${(bytes / 1024).toFixed(1)} KB`;
|
|
178
217
|
function _page($$payload, $$props) {
|
|
179
218
|
push();
|
|
180
219
|
var $$store_subs;
|
|
181
220
|
let s3Configured, ciWorkflowSnippet, navItems;
|
|
182
|
-
|
|
221
|
+
const VALID_SECTIONS = /* @__PURE__ */ new Set([
|
|
222
|
+
"project",
|
|
223
|
+
"runners",
|
|
224
|
+
"repository",
|
|
225
|
+
"testcases",
|
|
226
|
+
"integrations",
|
|
227
|
+
"mcp",
|
|
228
|
+
"account",
|
|
229
|
+
"users",
|
|
230
|
+
"backup"
|
|
231
|
+
]);
|
|
232
|
+
const querySection = store_get($$store_subs ??= {}, "$page", page).url.searchParams.get("section");
|
|
233
|
+
let section = VALID_SECTIONS.has(querySection) && querySection || typeof sessionStorage !== "undefined" && sessionStorage.getItem("plum:settings:section") || "project";
|
|
183
234
|
let project = {
|
|
184
235
|
name: "",
|
|
185
236
|
logoUrl: "",
|
|
186
237
|
maxRetries: 0
|
|
187
238
|
};
|
|
188
239
|
let projectSaving = false;
|
|
189
|
-
let toast = null;
|
|
190
240
|
const TIMEZONES = (() => {
|
|
191
241
|
try {
|
|
192
242
|
return Intl.supportedValuesOf("timeZone");
|
|
@@ -229,12 +279,19 @@ function _page($$payload, $$props) {
|
|
|
229
279
|
backupS3Bucket: "",
|
|
230
280
|
backupS3AccessKey: "",
|
|
231
281
|
backupS3SecretKey: "",
|
|
232
|
-
backupS3Prefix: ""
|
|
282
|
+
backupS3Prefix: "",
|
|
283
|
+
backupIncludeReports: false
|
|
233
284
|
};
|
|
234
285
|
let backupConfigSaving = false;
|
|
286
|
+
let includeReportsSaving = false;
|
|
235
287
|
let backupS3SecretKeySet = false;
|
|
236
288
|
let backupTestingS3 = false;
|
|
237
289
|
let backupRunningNow = false;
|
|
290
|
+
let s3Backups = [];
|
|
291
|
+
let s3BackupsLoaded = false;
|
|
292
|
+
let loadingS3Backups = false;
|
|
293
|
+
let restoringKey = null;
|
|
294
|
+
let restoreConfirmOpen = false;
|
|
238
295
|
let runners = [];
|
|
239
296
|
let pingResults = {};
|
|
240
297
|
let stoppingId = null;
|
|
@@ -246,10 +303,23 @@ function _page($$payload, $$props) {
|
|
|
246
303
|
token: ""
|
|
247
304
|
};
|
|
248
305
|
let editFormSaving = false;
|
|
306
|
+
async function loadS3Backups() {
|
|
307
|
+
loadingS3Backups = true;
|
|
308
|
+
try {
|
|
309
|
+
const result = await fetchS3Backups();
|
|
310
|
+
if (result.error) throw new Error(result.error);
|
|
311
|
+
s3Backups = result.backups ?? [];
|
|
312
|
+
} catch (e) {
|
|
313
|
+
notify("error", e.message || LIST_S3_BACKUPS_FAILED);
|
|
314
|
+
} finally {
|
|
315
|
+
loadingS3Backups = false;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
249
318
|
const ADMIN_SECTIONS = /* @__PURE__ */ new Set([
|
|
250
319
|
"project",
|
|
251
320
|
"runners",
|
|
252
321
|
"repository",
|
|
322
|
+
"testcases",
|
|
253
323
|
"integrations",
|
|
254
324
|
"mcp",
|
|
255
325
|
"users",
|
|
@@ -259,6 +329,10 @@ function _page($$payload, $$props) {
|
|
|
259
329
|
section = "account";
|
|
260
330
|
}
|
|
261
331
|
s3Configured = false;
|
|
332
|
+
if (s3Configured && !s3BackupsLoaded) {
|
|
333
|
+
s3BackupsLoaded = true;
|
|
334
|
+
loadS3Backups();
|
|
335
|
+
}
|
|
262
336
|
JSON.stringify(
|
|
263
337
|
{
|
|
264
338
|
mcpServers: {
|
|
@@ -284,6 +358,7 @@ function _page($$payload, $$props) {
|
|
|
284
358
|
{ id: "project", label: PROJECT_LABEL },
|
|
285
359
|
{ id: "runners", label: RUNNERS_LABEL },
|
|
286
360
|
{ id: "repository", label: REPOSITORY_NAV_LABEL },
|
|
361
|
+
{ id: "testcases", label: TEST_CASES_NAV_LABEL },
|
|
287
362
|
{ id: "integrations", label: INTEGRATIONS_LABEL },
|
|
288
363
|
{ id: "mcp", label: MCP_NAV_LABEL },
|
|
289
364
|
{ id: "account", label: ACCOUNT_LABEL },
|
|
@@ -297,28 +372,27 @@ function _page($$payload, $$props) {
|
|
|
297
372
|
head($$payload2, ($$payload3) => {
|
|
298
373
|
$$payload3.title = `<title>${escape_html(PAGE_TITLE)}</title>`;
|
|
299
374
|
});
|
|
300
|
-
|
|
301
|
-
$$payload2.out += `<!----> <div class="page-header svelte-bpb2i4"><h1 class="svelte-bpb2i4">${escape_html(HEADING)}</h1></div> <div class="settings-layout svelte-bpb2i4"><aside class="settings-sidebar svelte-bpb2i4"><nav class="svelte-bpb2i4"><!--[-->`;
|
|
375
|
+
$$payload2.out += `<div class="page-header svelte-m3ck68"><h1 class="svelte-m3ck68">${escape_html(HEADING)}</h1></div> <div class="settings-layout svelte-m3ck68"><aside class="settings-sidebar svelte-m3ck68"><nav class="svelte-m3ck68"><!--[-->`;
|
|
302
376
|
for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
|
|
303
377
|
let item = each_array[$$index];
|
|
304
|
-
$$payload2.out += `<button${attr("class", `sidebar-item svelte-
|
|
378
|
+
$$payload2.out += `<button${attr("class", `sidebar-item svelte-m3ck68 ${stringify([section === item.id ? "active" : ""].filter(Boolean).join(" "))}`)}>${escape_html(item.label)}</button>`;
|
|
305
379
|
}
|
|
306
|
-
$$payload2.out += `<!--]--></nav></aside> <div class="settings-content svelte-
|
|
380
|
+
$$payload2.out += `<!--]--></nav></aside> <div class="settings-content svelte-m3ck68">`;
|
|
307
381
|
if (section === "project") {
|
|
308
382
|
$$payload2.out += "<!--[-->";
|
|
309
383
|
const each_array_1 = ensure_array_like(TIMEZONES);
|
|
310
|
-
$$payload2.out += `<div class="content-section svelte-
|
|
384
|
+
$$payload2.out += `<div class="content-section svelte-m3ck68"><div class="content-header svelte-m3ck68"><h2 class="svelte-m3ck68">${escape_html(PROJECT_LABEL)}</h2> <p class="content-desc svelte-m3ck68">${escape_html(PROJECT_DESC)}</p></div> <div class="card settings-card svelte-m3ck68"><div class="field"><label class="field-label svelte-m3ck68" for="project-name">${escape_html(PROJECT_NAME_LABEL)}</label> <input id="project-name" type="text" class="field-input"${attr("value", project.name)}${attr("placeholder", PROJECT_NAME_PLACEHOLDER)}></div> <div class="field"><label class="field-label svelte-m3ck68" for="project-logo"><span>${escape_html(LOGO_URL_LABEL)}</span> <span class="field-hint svelte-m3ck68">${escape_html(LOGO_URL_HINT)}</span></label> <input id="project-logo" type="url" class="field-input"${attr("value", project.logoUrl)}${attr("placeholder", LOGO_URL_PLACEHOLDER)}></div> `;
|
|
311
385
|
{
|
|
312
386
|
$$payload2.out += "<!--[!-->";
|
|
313
387
|
}
|
|
314
|
-
$$payload2.out += `<!--]--> <div class="field"><label class="field-label svelte-
|
|
388
|
+
$$payload2.out += `<!--]--> <div class="field"><label class="field-label svelte-m3ck68" for="project-timezone"><span>${escape_html(TIMEZONE_LABEL)}</span> <span class="field-hint svelte-m3ck68">${escape_html(TIMEZONE_HINT)}</span></label> <select id="project-timezone" class="field-input"><!--[-->`;
|
|
315
389
|
for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {
|
|
316
390
|
let tz = each_array_1[$$index_1];
|
|
317
391
|
$$payload2.out += `<option${attr("value", tz)}>${escape_html(tz)}</option>`;
|
|
318
392
|
}
|
|
319
|
-
$$payload2.out += `<!--]--></select></div> <div class="field"><label class="field-label svelte-
|
|
393
|
+
$$payload2.out += `<!--]--></select></div> <div class="field"><label class="field-label svelte-m3ck68" for="project-max-retries"><span>${escape_html(RETRY_FAILED_TESTS_LABEL)}</span> <span class="field-hint svelte-m3ck68">${escape_html(RETRY_FAILED_TESTS_HINT)}</span></label> <input id="project-max-retries" type="number" class="field-input" min="0"${attr("max", MAX_TEST_RETRIES)}${attr("value", project.maxRetries)}></div> <div class="toggle-row svelte-m3ck68"><div class="toggle-info svelte-m3ck68"><span class="toggle-label svelte-m3ck68">${escape_html(DARK_MODE_LABEL)}</span> <span class="toggle-desc svelte-m3ck68">${escape_html(DARK_MODE_DESC)}</span></div> <button${attr("class", `toggle-switch svelte-m3ck68 ${stringify([
|
|
320
394
|
store_get($$store_subs ??= {}, "$theme", theme) === "dark" ? "on" : ""
|
|
321
|
-
].filter(Boolean).join(" "))}`)} role="switch"${attr("aria-checked", store_get($$store_subs ??= {}, "$theme", theme) === "dark")}><span class="toggle-thumb svelte-
|
|
395
|
+
].filter(Boolean).join(" "))}`)} role="switch"${attr("aria-checked", store_get($$store_subs ??= {}, "$theme", theme) === "dark")}><span class="toggle-thumb svelte-m3ck68"></span></button></div> <div class="card-footer svelte-m3ck68">`;
|
|
322
396
|
Button($$payload2, {
|
|
323
397
|
disabled: projectSaving,
|
|
324
398
|
children: ($$payload3) => {
|
|
@@ -331,20 +405,20 @@ function _page($$payload, $$props) {
|
|
|
331
405
|
$$payload2.out += "<!--[!-->";
|
|
332
406
|
if (section === "runners") {
|
|
333
407
|
$$payload2.out += "<!--[-->";
|
|
334
|
-
$$payload2.out += `<div class="content-section svelte-
|
|
408
|
+
$$payload2.out += `<div class="content-section svelte-m3ck68"><div class="content-header svelte-m3ck68"><h2 class="svelte-m3ck68">${escape_html(RUNNERS_LABEL)}</h2> <p class="content-desc svelte-m3ck68">${escape_html(RUNNERS_DESC)}</p></div> <div class="card settings-card svelte-m3ck68"><div class="toggle-row svelte-m3ck68"><div class="toggle-info svelte-m3ck68"><span class="toggle-label svelte-m3ck68">${escape_html(BUILTIN_RUNNER_TOGGLE_LABEL)}</span> <span class="toggle-desc svelte-m3ck68">${escape_html(BUILTIN_RUNNER_TOGGLE_DESC)}</span></div> <button${attr("class", `toggle-switch svelte-m3ck68 ${stringify([
|
|
335
409
|
store_get($$store_subs ??= {}, "$builtInEnabled", builtInEnabled) ? "on" : ""
|
|
336
|
-
].filter(Boolean).join(" "))}`)} role="switch"${attr("aria-checked", store_get($$store_subs ??= {}, "$builtInEnabled", builtInEnabled))}><span class="toggle-thumb svelte-
|
|
410
|
+
].filter(Boolean).join(" "))}`)} role="switch"${attr("aria-checked", store_get($$store_subs ??= {}, "$builtInEnabled", builtInEnabled))}><span class="toggle-thumb svelte-m3ck68"></span></button></div> `;
|
|
337
411
|
if (runners.length > 0) {
|
|
338
412
|
$$payload2.out += "<!--[-->";
|
|
339
413
|
const each_array_2 = ensure_array_like(runners);
|
|
340
|
-
$$payload2.out += `<div class="runner-cards svelte-
|
|
414
|
+
$$payload2.out += `<div class="runner-cards svelte-m3ck68"><!--[-->`;
|
|
341
415
|
for (let $$index_3 = 0, $$length = each_array_2.length; $$index_3 < $$length; $$index_3++) {
|
|
342
416
|
let r = each_array_2[$$index_3];
|
|
343
417
|
const ping = pingResults[r.id];
|
|
344
418
|
if (editingId === r.id) {
|
|
345
419
|
$$payload2.out += "<!--[-->";
|
|
346
420
|
const each_array_3 = ensure_array_like(BROWSERS);
|
|
347
|
-
$$payload2.out += `<div class="runner-card editing svelte-
|
|
421
|
+
$$payload2.out += `<div class="runner-card editing svelte-m3ck68"><div class="runner-form-fields svelte-m3ck68"><div class="field"><label class="field-label svelte-m3ck68"${attr("for", `edit-name-${stringify(r.id)}`)}>${escape_html(NAME_LABEL)}</label> <input${attr("id", `edit-name-${stringify(r.id)}`)} type="text" class="field-input"${attr("value", editForm.name)}${attr("placeholder", RUNNER_NAME_PLACEHOLDER)}></div> <div class="field"><label class="field-label svelte-m3ck68"${attr("for", `edit-url-${stringify(r.id)}`)}>${escape_html(RUNNER_URL_LABEL)} <span class="field-hint svelte-m3ck68">${escape_html(RUNNER_URL_HINT_PREFIX)} <code>host.docker.internal</code> ${escape_html(RUNNER_URL_HINT_SUFFIX)}</span></label> <input${attr("id", `edit-url-${stringify(r.id)}`)} type="url" class="field-input"${attr("value", editForm.url)}${attr("placeholder", RUNNER_URL_PLACEHOLDER)}></div> <div class="field"><label class="field-label svelte-m3ck68"${attr("for", `edit-token-${stringify(r.id)}`)}>${escape_html(TOKEN_LABEL)}</label> <input${attr("id", `edit-token-${stringify(r.id)}`)} type="text" class="field-input"${attr("value", editForm.token)}${attr("placeholder", KEEP_TOKEN_PLACEHOLDER)} spellcheck="false" autocomplete="off"></div> <div class="field"><label class="field-label svelte-m3ck68"${attr("for", `edit-browser-${stringify(r.id)}`)}>${escape_html(BROWSER_LABEL)}</label> <select${attr("id", `edit-browser-${stringify(r.id)}`)} class="field-input"><!--[-->`;
|
|
348
422
|
for (let $$index_2 = 0, $$length2 = each_array_3.length; $$index_2 < $$length2; $$index_2++) {
|
|
349
423
|
let b = each_array_3[$$index_2];
|
|
350
424
|
$$payload2.out += `<option${attr("value", b.id)}>${escape_html(b.label)}</option>`;
|
|
@@ -353,7 +427,7 @@ function _page($$payload, $$props) {
|
|
|
353
427
|
{
|
|
354
428
|
$$payload2.out += "<!--[!-->";
|
|
355
429
|
}
|
|
356
|
-
$$payload2.out += `<!--]--> <div class="runner-form-actions svelte-
|
|
430
|
+
$$payload2.out += `<!--]--> <div class="runner-form-actions svelte-m3ck68">`;
|
|
357
431
|
Button($$payload2, {
|
|
358
432
|
disabled: editFormSaving,
|
|
359
433
|
children: ($$payload3) => {
|
|
@@ -373,28 +447,28 @@ function _page($$payload, $$props) {
|
|
|
373
447
|
$$payload2.out += `<!----></div></div>`;
|
|
374
448
|
} else {
|
|
375
449
|
$$payload2.out += "<!--[!-->";
|
|
376
|
-
$$payload2.out += `<div class="runner-card svelte-
|
|
450
|
+
$$payload2.out += `<div class="runner-card svelte-m3ck68"><div class="runner-card-header svelte-m3ck68"><svg class="runner-card-icon svelte-m3ck68" 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-m3ck68">${escape_html(r.name)}</span> <span class="runner-browser-pill svelte-m3ck68">${escape_html(r.browser)}</span> `;
|
|
377
451
|
if (ping && !ping.loading) {
|
|
378
452
|
$$payload2.out += "<!--[-->";
|
|
379
453
|
if (ping.ok) {
|
|
380
454
|
$$payload2.out += "<!--[-->";
|
|
381
|
-
$$payload2.out += `<span class="ping-badge ok svelte-
|
|
455
|
+
$$payload2.out += `<span class="ping-badge ok svelte-m3ck68">${escape_html(ping.latency)}ms</span>`;
|
|
382
456
|
} else {
|
|
383
457
|
$$payload2.out += "<!--[!-->";
|
|
384
|
-
$$payload2.out += `<span class="ping-badge fail svelte-
|
|
458
|
+
$$payload2.out += `<span class="ping-badge fail svelte-m3ck68"${attr("title", ping.error)}>${escape_html(RUNNER_UNREACHABLE_LABEL)}</span>`;
|
|
385
459
|
}
|
|
386
460
|
$$payload2.out += `<!--]-->`;
|
|
387
461
|
} else {
|
|
388
462
|
$$payload2.out += "<!--[!-->";
|
|
389
463
|
if (ping?.loading) {
|
|
390
464
|
$$payload2.out += "<!--[-->";
|
|
391
|
-
$$payload2.out += `<span class="ping-badge pinging svelte-
|
|
465
|
+
$$payload2.out += `<span class="ping-badge pinging svelte-m3ck68">${escape_html(RUNNER_PINGING_LABEL)}</span>`;
|
|
392
466
|
} else {
|
|
393
467
|
$$payload2.out += "<!--[!-->";
|
|
394
468
|
}
|
|
395
469
|
$$payload2.out += `<!--]-->`;
|
|
396
470
|
}
|
|
397
|
-
$$payload2.out += `<!--]--></div> <p class="runner-card-url svelte-
|
|
471
|
+
$$payload2.out += `<!--]--></div> <p class="runner-card-url svelte-m3ck68">${escape_html(r.url)}</p> <div class="runner-card-actions svelte-m3ck68">`;
|
|
398
472
|
Button($$payload2, {
|
|
399
473
|
variant: "ghost",
|
|
400
474
|
size: "sm",
|
|
@@ -443,7 +517,7 @@ function _page($$payload, $$props) {
|
|
|
443
517
|
$$payload2.out += `<!--]--> `;
|
|
444
518
|
{
|
|
445
519
|
$$payload2.out += "<!--[!-->";
|
|
446
|
-
$$payload2.out += `<div class="card-footer svelte-
|
|
520
|
+
$$payload2.out += `<div class="card-footer svelte-m3ck68">`;
|
|
447
521
|
Button($$payload2, {
|
|
448
522
|
variant: "ghost",
|
|
449
523
|
children: ($$payload3) => {
|
|
@@ -458,7 +532,7 @@ function _page($$payload, $$props) {
|
|
|
458
532
|
$$payload2.out += "<!--[!-->";
|
|
459
533
|
if (section === "repository") {
|
|
460
534
|
$$payload2.out += "<!--[-->";
|
|
461
|
-
$$payload2.out += `<div class="content-section svelte-
|
|
535
|
+
$$payload2.out += `<div class="content-section svelte-m3ck68"><div class="content-header svelte-m3ck68"><h2 class="svelte-m3ck68">${escape_html(REPOSITORY_HEADING)}</h2> <p class="content-desc svelte-m3ck68">${escape_html(REPOSITORY_DESC)}</p></div> <div class="card settings-card svelte-m3ck68"><div class="field-row svelte-m3ck68"><div class="field"><label class="field-label svelte-m3ck68" for="tc-prefix">${escape_html(CASE_PREFIX_LABEL)}</label> <input id="tc-prefix" type="text" class="field-input mono svelte-m3ck68"${attr("value", prefixes.testCasePrefix)}${attr("placeholder", CASE_PREFIX_PLACEHOLDER)} maxlength="10"></div> <div class="field"><label class="field-label svelte-m3ck68" for="ts-prefix">${escape_html(SUITE_PREFIX_LABEL)}</label> <input id="ts-prefix" type="text" class="field-input mono svelte-m3ck68"${attr("value", prefixes.testSuitePrefix)}${attr("placeholder", SUITE_PREFIX_PLACEHOLDER)} maxlength="10"></div></div> <p class="content-desc svelte-m3ck68">${escape_html(EXAMPLES_LABEL)} <code class="code-sample svelte-m3ck68">${escape_html(prefixes.testCasePrefix)}-001</code>, <code class="code-sample svelte-m3ck68">${escape_html(prefixes.testSuitePrefix)}-001</code></p> <div class="card-footer svelte-m3ck68">`;
|
|
462
536
|
Button($$payload2, {
|
|
463
537
|
disabled: prefixesSaving,
|
|
464
538
|
children: ($$payload3) => {
|
|
@@ -466,7 +540,7 @@ function _page($$payload, $$props) {
|
|
|
466
540
|
},
|
|
467
541
|
$$slots: { default: true }
|
|
468
542
|
});
|
|
469
|
-
$$payload2.out += `<!----></div></div> <div class="content-header svelte-
|
|
543
|
+
$$payload2.out += `<!----></div></div> <div class="content-header svelte-m3ck68" style="margin-top: 1rem"><h2 class="svelte-m3ck68">${escape_html(MIGRATE_IDS_HEADING)}</h2> <p class="content-desc svelte-m3ck68">${escape_html(MIGRATE_DESC_PREFIX)} <strong>${escape_html(MIGRATE_DESC_STRONG)}</strong> ${escape_html(MIGRATE_DESC_SUFFIX)}</p></div> <div class="card settings-card svelte-m3ck68"><div class="field-row svelte-m3ck68"><div class="field"><label class="field-label svelte-m3ck68" for="mig-tc">${escape_html(NEW_CASE_PREFIX_LABEL)}</label> <input id="mig-tc" type="text" class="field-input mono svelte-m3ck68"${attr("value", migrateForm.testCasePrefix)}${attr("placeholder", prefixes.testCasePrefix)} maxlength="10"></div> <div class="field"><label class="field-label svelte-m3ck68" for="mig-ts">${escape_html(NEW_SUITE_PREFIX_LABEL)}</label> <input id="mig-ts" type="text" class="field-input mono svelte-m3ck68"${attr("value", migrateForm.testSuitePrefix)}${attr("placeholder", prefixes.testSuitePrefix)} maxlength="10"></div></div> <div class="card-footer svelte-m3ck68">`;
|
|
470
544
|
Button($$payload2, {
|
|
471
545
|
variant: "ghost",
|
|
472
546
|
disabled: migrating,
|
|
@@ -478,207 +552,204 @@ function _page($$payload, $$props) {
|
|
|
478
552
|
$$payload2.out += `<!----></div></div></div>`;
|
|
479
553
|
} else {
|
|
480
554
|
$$payload2.out += "<!--[!-->";
|
|
481
|
-
if (section === "
|
|
555
|
+
if (section === "testcases") {
|
|
482
556
|
$$payload2.out += "<!--[-->";
|
|
483
|
-
$$payload2.out += `<div class="content-section svelte-
|
|
557
|
+
$$payload2.out += `<div class="content-section svelte-m3ck68"><div class="content-header svelte-m3ck68"><h2 class="svelte-m3ck68">${escape_html(TEST_CASES_HEADING)}</h2> <p class="content-desc svelte-m3ck68">${escape_html(TEST_CASES_DESC)}</p></div> <div class="card settings-card svelte-m3ck68"><p class="card-title">${escape_html(TC_IMPORT_CARD_TITLE)}</p> <div class="backup-block svelte-m3ck68"><p class="backup-block-desc svelte-m3ck68">${escape_html(TC_IMPORT_DESC)}</p> <div class="import-row svelte-m3ck68"><label class="file-label svelte-m3ck68"><input type="file" accept=".json,application/json" class="file-input-hidden svelte-m3ck68"> <span class="file-btn svelte-m3ck68">${escape_html(CHOOSE_FILE_LABEL)}</span></label> `;
|
|
484
558
|
Button($$payload2, {
|
|
485
|
-
disabled:
|
|
559
|
+
disabled: true,
|
|
486
560
|
children: ($$payload3) => {
|
|
487
|
-
$$payload3.out += `<!---->${escape_html(
|
|
561
|
+
$$payload3.out += `<!---->${escape_html(tcImportLabel())}`;
|
|
488
562
|
},
|
|
489
563
|
$$slots: { default: true }
|
|
490
564
|
});
|
|
491
|
-
$$payload2.out += `<!----></div>
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
},
|
|
497
|
-
$$slots: { default: true }
|
|
498
|
-
});
|
|
499
|
-
$$payload2.out += `<!---->.</p> <pre class="mcp-snippet svelte-bpb2i4">${escape_html(ciWorkflowSnippet)}</pre> <div class="card-footer svelte-bpb2i4">`;
|
|
500
|
-
Button($$payload2, {
|
|
501
|
-
variant: "ghost",
|
|
502
|
-
children: ($$payload3) => {
|
|
503
|
-
$$payload3.out += `<!---->${escape_html(copyCiSnippetLabel())}`;
|
|
504
|
-
},
|
|
505
|
-
$$slots: { default: true }
|
|
506
|
-
});
|
|
507
|
-
$$payload2.out += `<!----></div></div></div>`;
|
|
565
|
+
$$payload2.out += `<!----></div> `;
|
|
566
|
+
{
|
|
567
|
+
$$payload2.out += "<!--[!-->";
|
|
568
|
+
}
|
|
569
|
+
$$payload2.out += `<!--]--> <p class="backup-block-desc svelte-m3ck68">${escape_html(TC_IMPORT_HINT)}</p></div></div></div>`;
|
|
508
570
|
} else {
|
|
509
571
|
$$payload2.out += "<!--[!-->";
|
|
510
|
-
if (section === "
|
|
572
|
+
if (section === "integrations") {
|
|
511
573
|
$$payload2.out += "<!--[-->";
|
|
512
|
-
$$payload2.out += `<div class="content-section svelte-
|
|
513
|
-
{
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
$$
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
}
|
|
529
|
-
$$payload2
|
|
574
|
+
$$payload2.out += `<div class="content-section svelte-m3ck68"><div class="content-header svelte-m3ck68"><h2 class="svelte-m3ck68">${escape_html(INTEGRATIONS_LABEL)}</h2> <p class="content-desc svelte-m3ck68">${escape_html(INTEGRATIONS_DESC)}</p></div> <div class="card settings-card svelte-m3ck68"><p class="card-title">${escape_html(WEBHOOKS_CARD_TITLE)}</p> <div class="field"><label class="field-label svelte-m3ck68" for="discord-url"><span>${escape_html(DISCORD_WEBHOOK_LABEL)}</span> <span class="field-hint svelte-m3ck68">${escape_html(DISCORD_WEBHOOK_HINT)}</span></label> <input id="discord-url" type="url" class="field-input"${attr("value", integrations.discordWebhookUrl)}${attr("placeholder", DISCORD_WEBHOOK_PLACEHOLDER)}></div> <div class="field"><label class="field-label svelte-m3ck68" for="slack-url"><span>${escape_html(SLACK_WEBHOOK_LABEL)}</span> <span class="field-hint svelte-m3ck68">${escape_html(SLACK_WEBHOOK_HINT)}</span></label> <input id="slack-url" type="url" class="field-input"${attr("value", integrations.slackWebhookUrl)}${attr("placeholder", SLACK_WEBHOOK_PLACEHOLDER)}></div> <div class="field"><label class="field-label svelte-m3ck68" for="public-url"><span>${escape_html(PUBLIC_URL_LABEL)}</span> <span class="field-hint svelte-m3ck68">${escape_html(PUBLIC_URL_HINT)}</span></label> <input id="public-url" type="url" class="field-input"${attr("value", integrations.notifyPublicUrl)}${attr("placeholder", PUBLIC_URL_PLACEHOLDER)}></div> `;
|
|
575
|
+
Button($$payload2, {
|
|
576
|
+
disabled: integrationsSaving,
|
|
577
|
+
children: ($$payload3) => {
|
|
578
|
+
$$payload3.out += `<!---->${escape_html(saveIntegrationsLabel())}`;
|
|
579
|
+
},
|
|
580
|
+
$$slots: { default: true }
|
|
581
|
+
});
|
|
582
|
+
$$payload2.out += `<!----></div> <div class="card settings-card svelte-m3ck68"><p class="card-title">${escape_html(CI_TRIGGERS_CARD_TITLE)}</p> <p class="content-desc svelte-m3ck68">${escape_html(CI_DESC_PART1)} <code class="code-sample svelte-m3ck68">POST ${escape_html(API_BASE)}/trigger</code> ${escape_html(CI_DESC_PART2)} <code class="code-sample svelte-m3ck68">Authorization: ApiKey …</code> ${escape_html(CI_DESC_PART3)} <button class="link-btn svelte-m3ck68">${escape_html(MCP_TAB_LINK_LABEL)}</button> ${escape_html(CI_DESC_PART4)} `;
|
|
583
|
+
Badge($$payload2, {
|
|
584
|
+
variant: "external",
|
|
585
|
+
children: ($$payload3) => {
|
|
586
|
+
$$payload3.out += `<!---->${escape_html(EXTERNAL_BADGE_LABEL)}`;
|
|
587
|
+
},
|
|
588
|
+
$$slots: { default: true }
|
|
589
|
+
});
|
|
590
|
+
$$payload2.out += `<!---->.</p> <pre class="mcp-snippet svelte-m3ck68">${escape_html(ciWorkflowSnippet)}</pre> <div class="card-footer svelte-m3ck68">`;
|
|
591
|
+
Button($$payload2, {
|
|
592
|
+
variant: "ghost",
|
|
593
|
+
children: ($$payload3) => {
|
|
594
|
+
$$payload3.out += `<!---->${escape_html(copyCiSnippetLabel())}`;
|
|
595
|
+
},
|
|
596
|
+
$$slots: { default: true }
|
|
597
|
+
});
|
|
598
|
+
$$payload2.out += `<!----></div></div></div>`;
|
|
530
599
|
} else {
|
|
531
600
|
$$payload2.out += "<!--[!-->";
|
|
532
|
-
if (section === "
|
|
601
|
+
if (section === "mcp") {
|
|
533
602
|
$$payload2.out += "<!--[-->";
|
|
534
|
-
$$payload2.out += `<div class="content-section svelte-
|
|
603
|
+
$$payload2.out += `<div class="content-section svelte-m3ck68"><div class="content-header svelte-m3ck68"><h2 class="svelte-m3ck68">${escape_html(MCP_HEADING)}</h2> <p class="content-desc svelte-m3ck68">${escape_html(MCP_DESC)}</p></div> <div class="card settings-card svelte-m3ck68"><p class="card-title">${escape_html(API_KEY_CARD_TITLE)}</p> `;
|
|
535
604
|
{
|
|
536
|
-
$$payload2.out += "<!--[
|
|
605
|
+
$$payload2.out += "<!--[-->";
|
|
606
|
+
$$payload2.out += `<p class="content-desc svelte-m3ck68">${escape_html(NO_KEY_GENERATED_MESSAGE)}</p> <div class="card-footer svelte-m3ck68">`;
|
|
607
|
+
Button($$payload2, {
|
|
608
|
+
disabled: mcpGenerating,
|
|
609
|
+
children: ($$payload3) => {
|
|
610
|
+
$$payload3.out += `<!---->${escape_html(generateKeyLabel())}`;
|
|
611
|
+
},
|
|
612
|
+
$$slots: { default: true }
|
|
613
|
+
});
|
|
614
|
+
$$payload2.out += `<!----></div>`;
|
|
537
615
|
}
|
|
538
|
-
$$payload2.out += `<!--]
|
|
539
|
-
Button($$payload2, {
|
|
540
|
-
disabled: true,
|
|
541
|
-
children: ($$payload3) => {
|
|
542
|
-
$$payload3.out += `<!---->${escape_html(saveProfileLabel())}`;
|
|
543
|
-
},
|
|
544
|
-
$$slots: { default: true }
|
|
545
|
-
});
|
|
546
|
-
$$payload2.out += `<!----></div></div> <div class="card settings-card svelte-bpb2i4"><p class="card-title">${escape_html(CHANGE_PASSWORD_CARD_TITLE)}</p> <div class="field"><label class="field-label svelte-bpb2i4" for="pw-current">${escape_html(CURRENT_PASSWORD_LABEL)}</label> <input id="pw-current" type="password" class="field-input"${attr("value", pwForm.currentPassword)} autocomplete="current-password"></div> <div class="field"><label class="field-label svelte-bpb2i4" for="pw-new">${escape_html(NEW_PASSWORD_LABEL)}</label> <input id="pw-new" type="password" class="field-input"${attr("value", pwForm.newPassword)} autocomplete="new-password"></div> <div class="field"><label class="field-label svelte-bpb2i4" for="pw-confirm">${escape_html(CONFIRM_NEW_PASSWORD_LABEL)}</label> <input id="pw-confirm" type="password" class="field-input"${attr("value", pwForm.confirmPassword)} autocomplete="new-password"></div> `;
|
|
616
|
+
$$payload2.out += `<!--]--></div> `;
|
|
547
617
|
{
|
|
548
618
|
$$payload2.out += "<!--[!-->";
|
|
549
619
|
}
|
|
550
|
-
$$payload2.out += `<!--]
|
|
551
|
-
Button($$payload2, {
|
|
552
|
-
disabled: true,
|
|
553
|
-
children: ($$payload3) => {
|
|
554
|
-
$$payload3.out += `<!---->${escape_html(changePasswordLabel())}`;
|
|
555
|
-
},
|
|
556
|
-
$$slots: { default: true }
|
|
557
|
-
});
|
|
558
|
-
$$payload2.out += `<!----></div></div> <div class="card settings-card svelte-bpb2i4"><div class="card-footer svelte-bpb2i4">`;
|
|
559
|
-
Button($$payload2, {
|
|
560
|
-
variant: "danger",
|
|
561
|
-
size: "sm",
|
|
562
|
-
children: ($$payload3) => {
|
|
563
|
-
$$payload3.out += `<!---->${escape_html(SIGN_OUT_LABEL)}`;
|
|
564
|
-
},
|
|
565
|
-
$$slots: { default: true }
|
|
566
|
-
});
|
|
567
|
-
$$payload2.out += `<!----></div></div></div>`;
|
|
620
|
+
$$payload2.out += `<!--]--></div>`;
|
|
568
621
|
} else {
|
|
569
622
|
$$payload2.out += "<!--[!-->";
|
|
570
|
-
if (section === "
|
|
623
|
+
if (section === "account") {
|
|
571
624
|
$$payload2.out += "<!--[-->";
|
|
572
|
-
$$payload2.out += `<div class="content-section svelte-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
set open($$value) {
|
|
580
|
-
confirmDeleteUserOpen = $$value;
|
|
581
|
-
$$settled = false;
|
|
582
|
-
},
|
|
625
|
+
$$payload2.out += `<div class="content-section svelte-m3ck68"><div class="content-header svelte-m3ck68"><h2 class="svelte-m3ck68">${escape_html(ACCOUNT_LABEL)}</h2> <p class="content-desc svelte-m3ck68">${escape_html(ACCOUNT_DESC)}</p></div> <div class="card settings-card svelte-m3ck68"><p class="card-title">${escape_html(PROFILE_CARD_TITLE)}</p> <div class="field"><label class="field-label svelte-m3ck68" for="profile-name">${escape_html(NAME_LABEL)}</label> <input id="profile-name" type="text" class="field-input"${attr("value", profileForm.name)}></div> <div class="field"><label class="field-label svelte-m3ck68" for="profile-email">${escape_html(EMAIL_LABEL)}</label> <input id="profile-email" type="email" class="field-input"${attr("value", profileForm.email)}></div> `;
|
|
626
|
+
{
|
|
627
|
+
$$payload2.out += "<!--[!-->";
|
|
628
|
+
}
|
|
629
|
+
$$payload2.out += `<!--]--> <div class="card-footer svelte-m3ck68">`;
|
|
630
|
+
Button($$payload2, {
|
|
631
|
+
disabled: true,
|
|
583
632
|
children: ($$payload3) => {
|
|
584
|
-
{
|
|
585
|
-
$$payload3.out += "<!--[!-->";
|
|
586
|
-
}
|
|
587
|
-
$$payload3.out += `<!--]-->`;
|
|
633
|
+
$$payload3.out += `<!---->${escape_html(saveProfileLabel())}`;
|
|
588
634
|
},
|
|
589
635
|
$$slots: { default: true }
|
|
590
636
|
});
|
|
591
|
-
$$payload2.out +=
|
|
637
|
+
$$payload2.out += `<!----></div></div> <div class="card settings-card svelte-m3ck68"><p class="card-title">${escape_html(CHANGE_PASSWORD_CARD_TITLE)}</p> <div class="field"><label class="field-label svelte-m3ck68" for="pw-current">${escape_html(CURRENT_PASSWORD_LABEL)}</label> <input id="pw-current" type="password" class="field-input"${attr("value", pwForm.currentPassword)} autocomplete="current-password"></div> <div class="field"><label class="field-label svelte-m3ck68" for="pw-new">${escape_html(NEW_PASSWORD_LABEL)}</label> <input id="pw-new" type="password" class="field-input"${attr("value", pwForm.newPassword)} autocomplete="new-password"></div> <div class="field"><label class="field-label svelte-m3ck68" for="pw-confirm">${escape_html(CONFIRM_NEW_PASSWORD_LABEL)}</label> <input id="pw-confirm" type="password" class="field-input"${attr("value", pwForm.confirmPassword)} autocomplete="new-password"></div> `;
|
|
592
638
|
{
|
|
593
639
|
$$payload2.out += "<!--[!-->";
|
|
594
640
|
}
|
|
595
|
-
$$payload2.out += `<!--]--> <div class="card-footer svelte-
|
|
641
|
+
$$payload2.out += `<!--]--> <div class="card-footer svelte-m3ck68">`;
|
|
596
642
|
Button($$payload2, {
|
|
597
|
-
disabled:
|
|
643
|
+
disabled: true,
|
|
598
644
|
children: ($$payload3) => {
|
|
599
|
-
$$payload3.out += `<!---->${escape_html(
|
|
645
|
+
$$payload3.out += `<!---->${escape_html(changePasswordLabel())}`;
|
|
600
646
|
},
|
|
601
647
|
$$slots: { default: true }
|
|
602
648
|
});
|
|
603
|
-
$$payload2.out += `<!----></div></div>
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
$$
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
$$payload2.out += `<button class="icon-btn danger svelte-bpb2i4"${attr("title", REMOVE_USER_ICON_TITLE)}><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>`;
|
|
614
|
-
} else {
|
|
615
|
-
$$payload2.out += "<!--[!-->";
|
|
616
|
-
$$payload2.out += `<span class="you-chip svelte-bpb2i4">${escape_html(YOU_CHIP_LABEL)}</span>`;
|
|
617
|
-
}
|
|
618
|
-
$$payload2.out += `<!--]--></div>`;
|
|
619
|
-
}
|
|
620
|
-
$$payload2.out += `<!--]--></div>`;
|
|
621
|
-
} else {
|
|
622
|
-
$$payload2.out += "<!--[!-->";
|
|
623
|
-
}
|
|
624
|
-
$$payload2.out += `<!--]--></div>`;
|
|
649
|
+
$$payload2.out += `<!----></div></div> <div class="card settings-card svelte-m3ck68"><div class="card-footer svelte-m3ck68">`;
|
|
650
|
+
Button($$payload2, {
|
|
651
|
+
variant: "danger",
|
|
652
|
+
size: "sm",
|
|
653
|
+
children: ($$payload3) => {
|
|
654
|
+
$$payload3.out += `<!---->${escape_html(SIGN_OUT_LABEL)}`;
|
|
655
|
+
},
|
|
656
|
+
$$slots: { default: true }
|
|
657
|
+
});
|
|
658
|
+
$$payload2.out += `<!----></div></div></div>`;
|
|
625
659
|
} else {
|
|
626
660
|
$$payload2.out += "<!--[!-->";
|
|
627
|
-
if (section === "
|
|
661
|
+
if (section === "users") {
|
|
628
662
|
$$payload2.out += "<!--[-->";
|
|
629
|
-
$$payload2.out += `<div class="content-section svelte-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
663
|
+
$$payload2.out += `<div class="content-section svelte-m3ck68"><div class="content-header svelte-m3ck68"><h2 class="svelte-m3ck68">${escape_html(USERS_LABEL)}</h2> <p class="content-desc svelte-m3ck68">${escape_html(USERS_DESC)}</p></div> `;
|
|
664
|
+
ConfirmModal($$payload2, {
|
|
665
|
+
title: REMOVE_USER_MODAL_TITLE,
|
|
666
|
+
confirmLabel: REMOVE_USER_LABEL,
|
|
667
|
+
get open() {
|
|
668
|
+
return confirmDeleteUserOpen;
|
|
634
669
|
},
|
|
635
|
-
$$
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
Button($$payload2, {
|
|
639
|
-
disabled: true,
|
|
640
|
-
children: ($$payload3) => {
|
|
641
|
-
$$payload3.out += `<!---->${escape_html(importLabel())}`;
|
|
670
|
+
set open($$value) {
|
|
671
|
+
confirmDeleteUserOpen = $$value;
|
|
672
|
+
$$settled = false;
|
|
642
673
|
},
|
|
643
|
-
$$slots: { default: true }
|
|
644
|
-
});
|
|
645
|
-
$$payload2.out += `<!----></div></div></div> <p class="backup-disclaimer svelte-bpb2i4">${escape_html(BACKUP_DISCLAIMER_PREFIX)} <code>pg_dump</code> ${escape_html(BACKUP_DISCLAIMER_SUFFIX)}</p></div> <div class="card settings-card svelte-bpb2i4"><p class="card-title">${escape_html(S3_STORAGE_CARD_TITLE)}</p> <p class="backup-block-desc svelte-bpb2i4" style="margin-bottom: 1.25rem;">${escape_html(S3_STORAGE_DESC_PREFIX)} <strong>${escape_html(ENDPOINT_URL_LABEL)}</strong> ${escape_html(S3_STORAGE_DESC_SUFFIX)}</p> <div class="field-row svelte-bpb2i4"><div class="field"><label class="field-label svelte-bpb2i4" for="s3-endpoint"><span>${escape_html(ENDPOINT_URL_LABEL)}</span> <span class="field-hint svelte-bpb2i4">${escape_html(ENDPOINT_URL_HINT)}</span></label> <input id="s3-endpoint" type="url" class="field-input"${attr("value", backupConfig.backupS3Endpoint)}${attr("placeholder", ENDPOINT_URL_PLACEHOLDER)}></div> <div class="field"><label class="field-label svelte-bpb2i4" for="s3-region"><span>${escape_html(REGION_LABEL)}</span> <span class="field-hint svelte-bpb2i4">${escape_html(REGION_HINT_PREFIX)} <code>auto</code> ${escape_html(REGION_HINT_SUFFIX)}</span></label> <input id="s3-region" type="text" class="field-input"${attr("value", backupConfig.backupS3Region)}${attr("placeholder", REGION_PLACEHOLDER)}></div></div> <div class="field-row svelte-bpb2i4"><div class="field"><label class="field-label svelte-bpb2i4" for="s3-bucket"><span>${escape_html(BUCKET_LABEL)}</span></label> <input id="s3-bucket" type="text" class="field-input"${attr("value", backupConfig.backupS3Bucket)}${attr("placeholder", BUCKET_PLACEHOLDER)}></div> <div class="field"><label class="field-label svelte-bpb2i4" for="s3-prefix"><span>${escape_html(PATH_PREFIX_LABEL)}</span> <span class="field-hint svelte-bpb2i4">${escape_html(PATH_PREFIX_HINT)}</span></label> <input id="s3-prefix" type="text" class="field-input"${attr("value", backupConfig.backupS3Prefix)}${attr("placeholder", PATH_PREFIX_PLACEHOLDER)}></div></div> <div class="field-row svelte-bpb2i4"><div class="field"><label class="field-label svelte-bpb2i4" for="s3-access-key"><span>${escape_html(ACCESS_KEY_LABEL)}</span></label> <input id="s3-access-key" type="text" class="field-input"${attr("value", backupConfig.backupS3AccessKey)}${attr("placeholder", ACCESS_KEY_PLACEHOLDER)} autocomplete="off"></div> <div class="field"><label class="field-label svelte-bpb2i4" for="s3-secret-key"><span>${escape_html(SECRET_KEY_LABEL)}</span> <span class="field-hint svelte-bpb2i4">${escape_html(secretKeyHint())}</span></label> <input id="s3-secret-key" type="password" class="field-input"${attr("value", backupConfig.backupS3SecretKey)}${attr("placeholder", secretKeyPlaceholder(backupS3SecretKeySet))} autocomplete="new-password"></div></div> <div class="backup-actions svelte-bpb2i4">`;
|
|
646
|
-
Button($$payload2, {
|
|
647
|
-
variant: "ghost",
|
|
648
|
-
disabled: backupTestingS3,
|
|
649
674
|
children: ($$payload3) => {
|
|
650
|
-
|
|
675
|
+
{
|
|
676
|
+
$$payload3.out += "<!--[!-->";
|
|
677
|
+
}
|
|
678
|
+
$$payload3.out += `<!--]-->`;
|
|
651
679
|
},
|
|
652
680
|
$$slots: { default: true }
|
|
653
681
|
});
|
|
654
|
-
$$payload2.out += `<!----> `;
|
|
682
|
+
$$payload2.out += `<!----> <div class="card settings-card svelte-m3ck68"><p class="card-title">${escape_html(ADD_USER_CARD_TITLE)}</p> <div class="field-row svelte-m3ck68"><div class="field"><label class="field-label svelte-m3ck68" for="u-name">${escape_html(NAME_LABEL)}</label> <input id="u-name" type="text" class="field-input"${attr("value", userForm.name)}${attr("placeholder", USER_NAME_PLACEHOLDER)}></div> <div class="field"><label class="field-label svelte-m3ck68" for="u-email">${escape_html(EMAIL_LABEL)}</label> <input id="u-email" type="email" class="field-input"${attr("value", userForm.email)}${attr("placeholder", USER_EMAIL_PLACEHOLDER)}></div></div> <div class="field-row svelte-m3ck68"><div class="field"><label class="field-label svelte-m3ck68" for="u-pw">${escape_html(PASSWORD_LABEL)}</label> <input id="u-pw" type="password" class="field-input"${attr("value", userForm.password)} autocomplete="new-password"></div> <div class="field"><label class="field-label svelte-m3ck68" for="u-role">${escape_html(ROLE_LABEL)}</label> <select id="u-role" class="field-input"><option value="user">${escape_html(USER_ROLE_OPTION)}</option><option value="admin">${escape_html(ADMIN_ROLE_OPTION)}</option></select></div></div> `;
|
|
683
|
+
{
|
|
684
|
+
$$payload2.out += "<!--[!-->";
|
|
685
|
+
}
|
|
686
|
+
$$payload2.out += `<!--]--> <div class="card-footer svelte-m3ck68">`;
|
|
655
687
|
Button($$payload2, {
|
|
656
|
-
disabled:
|
|
688
|
+
disabled: userFormSaving,
|
|
657
689
|
children: ($$payload3) => {
|
|
658
|
-
$$payload3.out += `<!---->${escape_html(
|
|
690
|
+
$$payload3.out += `<!---->${escape_html(addUserLabel())}`;
|
|
659
691
|
},
|
|
660
692
|
$$slots: { default: true }
|
|
661
693
|
});
|
|
662
|
-
$$payload2.out += `<!----></div> `;
|
|
663
|
-
{
|
|
664
|
-
$$payload2.out += "<!--[!-->";
|
|
665
|
-
}
|
|
666
|
-
$$payload2.out += `<!--]--></div> <div${attr("class", `card settings-card svelte-bpb2i4 ${stringify([!s3Configured ? "card-disabled" : ""].filter(Boolean).join(" "))}`)}><p class="card-title">${escape_html(SCHEDULED_BACKUP_CARD_TITLE)}</p> `;
|
|
667
|
-
if (!s3Configured) {
|
|
694
|
+
$$payload2.out += `<!----></div></div> `;
|
|
695
|
+
if (allUsers.length > 0) {
|
|
668
696
|
$$payload2.out += "<!--[-->";
|
|
669
|
-
|
|
697
|
+
const each_array_5 = ensure_array_like(allUsers);
|
|
698
|
+
$$payload2.out += `<div class="users-table svelte-m3ck68"><!--[-->`;
|
|
699
|
+
for (let $$index_5 = 0, $$length = each_array_5.length; $$index_5 < $$length; $$index_5++) {
|
|
700
|
+
let u = each_array_5[$$index_5];
|
|
701
|
+
$$payload2.out += `<div class="user-row svelte-m3ck68"><div class="user-info svelte-m3ck68"><span class="user-name svelte-m3ck68">${escape_html(u.name)}</span> <span class="user-email svelte-m3ck68">${escape_html(u.email)}</span></div> <span${attr("class", `role-chip ${stringify(u.role)} svelte-m3ck68`)}>${escape_html(u.role)}</span> `;
|
|
702
|
+
if (u.id !== store_get($$store_subs ??= {}, "$auth", auth).user?.id) {
|
|
703
|
+
$$payload2.out += "<!--[-->";
|
|
704
|
+
$$payload2.out += `<button class="icon-btn danger svelte-m3ck68"${attr("title", REMOVE_USER_ICON_TITLE)}><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>`;
|
|
705
|
+
} else {
|
|
706
|
+
$$payload2.out += "<!--[!-->";
|
|
707
|
+
$$payload2.out += `<span class="you-chip svelte-m3ck68">${escape_html(YOU_CHIP_LABEL)}</span>`;
|
|
708
|
+
}
|
|
709
|
+
$$payload2.out += `<!--]--></div>`;
|
|
710
|
+
}
|
|
711
|
+
$$payload2.out += `<!--]--></div>`;
|
|
670
712
|
} else {
|
|
671
713
|
$$payload2.out += "<!--[!-->";
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
714
|
+
}
|
|
715
|
+
$$payload2.out += `<!--]--></div>`;
|
|
716
|
+
} else {
|
|
717
|
+
$$payload2.out += "<!--[!-->";
|
|
718
|
+
if (section === "backup") {
|
|
719
|
+
$$payload2.out += "<!--[-->";
|
|
720
|
+
$$payload2.out += `<div class="content-section svelte-m3ck68"><div class="content-header svelte-m3ck68"><h2 class="svelte-m3ck68">${escape_html(BACKUP_LABEL)}</h2> <p class="content-desc svelte-m3ck68">${escape_html(BACKUP_DESC)}</p></div> <div class="card settings-card svelte-m3ck68"><p class="card-title">${escape_html(MANUAL_BACKUP_CARD_TITLE)}</p> <div class="backup-row svelte-m3ck68"><div class="backup-block svelte-m3ck68"><p class="backup-block-title svelte-m3ck68">${escape_html(EXPORT_BLOCK_TITLE)}</p> <p class="backup-block-desc svelte-m3ck68">${escape_html(EXPORT_BLOCK_DESC_PREFIX)} <code class="svelte-m3ck68">.json</code> ${escape_html(EXPORT_BLOCK_DESC_SUFFIX)}</p> `;
|
|
721
|
+
Button($$payload2, {
|
|
722
|
+
disabled: exporting,
|
|
723
|
+
children: ($$payload3) => {
|
|
724
|
+
$$payload3.out += `<!---->${escape_html(exportLabel())}`;
|
|
725
|
+
},
|
|
726
|
+
$$slots: { default: true }
|
|
727
|
+
});
|
|
728
|
+
$$payload2.out += `<!----></div> <div class="backup-divider svelte-m3ck68"></div> <div class="backup-block svelte-m3ck68"><p class="backup-block-title svelte-m3ck68">${escape_html(IMPORT_BLOCK_TITLE)}</p> <p class="backup-block-desc svelte-m3ck68">${escape_html(IMPORT_BLOCK_DESC)}</p> <div class="import-row svelte-m3ck68"><label class="file-label svelte-m3ck68"><input type="file" accept=".json" class="file-input-hidden svelte-m3ck68"> <span class="file-btn svelte-m3ck68">${escape_html(CHOOSE_FILE_LABEL)}</span></label> `;
|
|
729
|
+
Button($$payload2, {
|
|
730
|
+
disabled: true,
|
|
731
|
+
children: ($$payload3) => {
|
|
732
|
+
$$payload3.out += `<!---->${escape_html(importLabel())}`;
|
|
733
|
+
},
|
|
734
|
+
$$slots: { default: true }
|
|
735
|
+
});
|
|
736
|
+
$$payload2.out += `<!----></div></div></div> <div class="include-reports-row svelte-m3ck68"><label class="field-label backup-toggle-label svelte-m3ck68" for="include-reports"><span class="svelte-m3ck68">${escape_html(INCLUDE_REPORTS_LABEL)} <span class="field-hint svelte-m3ck68">${escape_html(INCLUDE_REPORTS_HINT)}</span></span> <button id="include-reports"${attr("class", `toggle-btn svelte-m3ck68 ${stringify([
|
|
737
|
+
""
|
|
738
|
+
].filter(Boolean).join(" "))}`)} role="switch"${attr("aria-checked", backupConfig.backupIncludeReports)}><span class="toggle-thumb svelte-m3ck68"></span></button></label> `;
|
|
739
|
+
Button($$payload2, {
|
|
740
|
+
variant: "ghost",
|
|
741
|
+
disabled: includeReportsSaving,
|
|
742
|
+
children: ($$payload3) => {
|
|
743
|
+
$$payload3.out += `<!---->${escape_html(saveIncludeReportsLabel())}`;
|
|
744
|
+
},
|
|
745
|
+
$$slots: { default: true }
|
|
746
|
+
});
|
|
747
|
+
$$payload2.out += `<!----></div> <p class="backup-disclaimer svelte-m3ck68">${escape_html(includeReportsDisclaimer())}</p></div> <div class="card settings-card svelte-m3ck68"><p class="card-title">${escape_html(S3_STORAGE_CARD_TITLE)}</p> <p class="backup-block-desc svelte-m3ck68" style="margin-bottom: 1.25rem;">${escape_html(S3_STORAGE_DESC_PREFIX)} <strong>${escape_html(ENDPOINT_URL_LABEL)}</strong> ${escape_html(S3_STORAGE_DESC_SUFFIX)}</p> <div class="field-row svelte-m3ck68"><div class="field"><label class="field-label svelte-m3ck68" for="s3-endpoint"><span>${escape_html(ENDPOINT_URL_LABEL)}</span> <span class="field-hint svelte-m3ck68">${escape_html(ENDPOINT_URL_HINT)}</span></label> <input id="s3-endpoint" type="url" class="field-input"${attr("value", backupConfig.backupS3Endpoint)}${attr("placeholder", ENDPOINT_URL_PLACEHOLDER)}></div> <div class="field"><label class="field-label svelte-m3ck68" for="s3-region"><span>${escape_html(REGION_LABEL)}</span> <span class="field-hint svelte-m3ck68">${escape_html(REGION_HINT_PREFIX)} <code>auto</code> ${escape_html(REGION_HINT_SUFFIX)}</span></label> <input id="s3-region" type="text" class="field-input"${attr("value", backupConfig.backupS3Region)}${attr("placeholder", REGION_PLACEHOLDER)}></div></div> <div class="field-row svelte-m3ck68"><div class="field"><label class="field-label svelte-m3ck68" for="s3-bucket"><span>${escape_html(BUCKET_LABEL)}</span></label> <input id="s3-bucket" type="text" class="field-input"${attr("value", backupConfig.backupS3Bucket)}${attr("placeholder", BUCKET_PLACEHOLDER)}></div> <div class="field"><label class="field-label svelte-m3ck68" for="s3-prefix"><span>${escape_html(PATH_PREFIX_LABEL)}</span> <span class="field-hint svelte-m3ck68">${escape_html(PATH_PREFIX_HINT)}</span></label> <input id="s3-prefix" type="text" class="field-input"${attr("value", backupConfig.backupS3Prefix)}${attr("placeholder", PATH_PREFIX_PLACEHOLDER)}></div></div> <div class="field-row svelte-m3ck68"><div class="field"><label class="field-label svelte-m3ck68" for="s3-access-key"><span>${escape_html(ACCESS_KEY_LABEL)}</span></label> <input id="s3-access-key" type="text" class="field-input"${attr("value", backupConfig.backupS3AccessKey)}${attr("placeholder", ACCESS_KEY_PLACEHOLDER)} autocomplete="off"></div> <div class="field"><label class="field-label svelte-m3ck68" for="s3-secret-key"><span>${escape_html(SECRET_KEY_LABEL)}</span> <span class="field-hint svelte-m3ck68">${escape_html(secretKeyHint())}</span></label> <input id="s3-secret-key" type="password" class="field-input"${attr("value", backupConfig.backupS3SecretKey)}${attr("placeholder", secretKeyPlaceholder(backupS3SecretKeySet))} autocomplete="new-password"></div></div> <div class="backup-actions svelte-m3ck68">`;
|
|
677
748
|
Button($$payload2, {
|
|
678
749
|
variant: "ghost",
|
|
679
|
-
disabled:
|
|
750
|
+
disabled: backupTestingS3,
|
|
680
751
|
children: ($$payload3) => {
|
|
681
|
-
$$payload3.out += `<!---->${escape_html(
|
|
752
|
+
$$payload3.out += `<!---->${escape_html(testConnectionLabel())}`;
|
|
682
753
|
},
|
|
683
754
|
$$slots: { default: true }
|
|
684
755
|
});
|
|
@@ -686,15 +757,113 @@ function _page($$payload, $$props) {
|
|
|
686
757
|
Button($$payload2, {
|
|
687
758
|
disabled: backupConfigSaving,
|
|
688
759
|
children: ($$payload3) => {
|
|
689
|
-
$$payload3.out += `<!---->${escape_html(
|
|
760
|
+
$$payload3.out += `<!---->${escape_html(saveS3ConfigLabel())}`;
|
|
761
|
+
},
|
|
762
|
+
$$slots: { default: true }
|
|
763
|
+
});
|
|
764
|
+
$$payload2.out += `<!----></div> `;
|
|
765
|
+
{
|
|
766
|
+
$$payload2.out += "<!--[!-->";
|
|
767
|
+
}
|
|
768
|
+
$$payload2.out += `<!--]--></div> `;
|
|
769
|
+
ConfirmModal($$payload2, {
|
|
770
|
+
title: RESTORE_CONFIRM_TITLE,
|
|
771
|
+
confirmLabel: restoreLabel(false),
|
|
772
|
+
loading: false,
|
|
773
|
+
get open() {
|
|
774
|
+
return restoreConfirmOpen;
|
|
775
|
+
},
|
|
776
|
+
set open($$value) {
|
|
777
|
+
restoreConfirmOpen = $$value;
|
|
778
|
+
$$settled = false;
|
|
779
|
+
},
|
|
780
|
+
children: ($$payload3) => {
|
|
781
|
+
{
|
|
782
|
+
$$payload3.out += "<!--[!-->";
|
|
783
|
+
}
|
|
784
|
+
$$payload3.out += `<!--]-->`;
|
|
690
785
|
},
|
|
691
786
|
$$slots: { default: true }
|
|
692
787
|
});
|
|
693
|
-
$$payload2.out +=
|
|
788
|
+
$$payload2.out += `<!----> <div${attr("class", `card settings-card svelte-m3ck68 ${stringify([!s3Configured ? "card-disabled" : ""].filter(Boolean).join(" "))}`)}><div class="card-title-row svelte-m3ck68"><p class="card-title svelte-m3ck68">${escape_html(RESTORE_FROM_S3_CARD_TITLE)}</p> `;
|
|
789
|
+
if (s3Configured) {
|
|
790
|
+
$$payload2.out += "<!--[-->";
|
|
791
|
+
Button($$payload2, {
|
|
792
|
+
variant: "ghost",
|
|
793
|
+
disabled: loadingS3Backups,
|
|
794
|
+
children: ($$payload3) => {
|
|
795
|
+
$$payload3.out += `<!---->${escape_html(refreshingLabel(loadingS3Backups))}`;
|
|
796
|
+
},
|
|
797
|
+
$$slots: { default: true }
|
|
798
|
+
});
|
|
799
|
+
} else {
|
|
800
|
+
$$payload2.out += "<!--[!-->";
|
|
801
|
+
}
|
|
802
|
+
$$payload2.out += `<!--]--></div> `;
|
|
803
|
+
if (!s3Configured) {
|
|
804
|
+
$$payload2.out += "<!--[-->";
|
|
805
|
+
$$payload2.out += `<p class="backup-block-desc svelte-m3ck68">${escape_html(CONFIGURE_S3_FIRST_RESTORE_MESSAGE)}</p>`;
|
|
806
|
+
} else {
|
|
807
|
+
$$payload2.out += "<!--[!-->";
|
|
808
|
+
$$payload2.out += `<p class="backup-block-desc svelte-m3ck68" style="margin-bottom: 1rem;">${escape_html(RESTORE_FROM_S3_DESC)}</p> `;
|
|
809
|
+
if (s3Backups.length === 0) {
|
|
810
|
+
$$payload2.out += "<!--[-->";
|
|
811
|
+
$$payload2.out += `<p class="backup-block-desc svelte-m3ck68">${escape_html(loadingS3Backups ? refreshingLabel(true) : NO_S3_BACKUPS_MESSAGE)}</p>`;
|
|
812
|
+
} else {
|
|
813
|
+
$$payload2.out += "<!--[!-->";
|
|
814
|
+
const each_array_6 = ensure_array_like(s3Backups);
|
|
815
|
+
$$payload2.out += `<ul class="s3-backup-list svelte-m3ck68"><!--[-->`;
|
|
816
|
+
for (let $$index_6 = 0, $$length = each_array_6.length; $$index_6 < $$length; $$index_6++) {
|
|
817
|
+
let backup = each_array_6[$$index_6];
|
|
818
|
+
$$payload2.out += `<li class="s3-backup-row svelte-m3ck68"><div class="s3-backup-info svelte-m3ck68"><span class="s3-backup-key svelte-m3ck68">${escape_html(backup.key)}</span> <span class="s3-backup-meta svelte-m3ck68">${escape_html(new Date(backup.lastModified).toLocaleString())} · ${escape_html(backupSizeLabel(backup.size))}</span></div> `;
|
|
819
|
+
Button($$payload2, {
|
|
820
|
+
variant: "ghost",
|
|
821
|
+
disabled: restoringKey === backup.key,
|
|
822
|
+
children: ($$payload3) => {
|
|
823
|
+
$$payload3.out += `<!---->${escape_html(restoreLabel(restoringKey === backup.key))}`;
|
|
824
|
+
},
|
|
825
|
+
$$slots: { default: true }
|
|
826
|
+
});
|
|
827
|
+
$$payload2.out += `<!----></li>`;
|
|
828
|
+
}
|
|
829
|
+
$$payload2.out += `<!--]--></ul>`;
|
|
830
|
+
}
|
|
831
|
+
$$payload2.out += `<!--]-->`;
|
|
832
|
+
}
|
|
833
|
+
$$payload2.out += `<!--]--></div> <div${attr("class", `card settings-card svelte-m3ck68 ${stringify([!s3Configured ? "card-disabled" : ""].filter(Boolean).join(" "))}`)}><p class="card-title">${escape_html(SCHEDULED_BACKUP_CARD_TITLE)}</p> `;
|
|
834
|
+
if (!s3Configured) {
|
|
835
|
+
$$payload2.out += "<!--[-->";
|
|
836
|
+
$$payload2.out += `<p class="backup-block-desc svelte-m3ck68">${escape_html(CONFIGURE_S3_FIRST_MESSAGE)}</p>`;
|
|
837
|
+
} else {
|
|
838
|
+
$$payload2.out += "<!--[!-->";
|
|
839
|
+
$$payload2.out += `<div class="field"><label class="field-label backup-toggle-label svelte-m3ck68" for="backup-enabled"><span>${escape_html(ENABLE_SCHEDULED_BACKUP_LABEL)}</span> <button id="backup-enabled"${attr("class", `toggle-btn svelte-m3ck68 ${stringify([""].filter(Boolean).join(" "))}`)} role="switch"${attr("aria-checked", backupConfig.backupEnabled)}><span class="toggle-thumb svelte-m3ck68"></span></button></label></div> <div class="field"><label class="field-label svelte-m3ck68" for="backup-cron"><span>${escape_html(CRON_EXPRESSION_LABEL)}</span> <span class="field-hint svelte-m3ck68">${escape_html(CRON_HINT_PREFIX)} <code>0 2 * * *</code> ${escape_html(CRON_HINT_SUFFIX)} <a href="https://crontab.guru" target="_blank" rel="noopener noreferrer">${escape_html(CRONTAB_LINK_LABEL)}</a></span></label> <input id="backup-cron" type="text" class="field-input field-input-mono svelte-m3ck68"${attr("value", backupConfig.backupCron)}${attr("placeholder", CRON_PLACEHOLDER)}></div> `;
|
|
840
|
+
{
|
|
841
|
+
$$payload2.out += "<!--[!-->";
|
|
842
|
+
}
|
|
843
|
+
$$payload2.out += `<!--]--> <div class="backup-actions svelte-m3ck68">`;
|
|
844
|
+
Button($$payload2, {
|
|
845
|
+
variant: "ghost",
|
|
846
|
+
disabled: backupRunningNow,
|
|
847
|
+
children: ($$payload3) => {
|
|
848
|
+
$$payload3.out += `<!---->${escape_html(uploadS3NowLabel())}`;
|
|
849
|
+
},
|
|
850
|
+
$$slots: { default: true }
|
|
851
|
+
});
|
|
852
|
+
$$payload2.out += `<!----> `;
|
|
853
|
+
Button($$payload2, {
|
|
854
|
+
disabled: backupConfigSaving,
|
|
855
|
+
children: ($$payload3) => {
|
|
856
|
+
$$payload3.out += `<!---->${escape_html(saveScheduleLabel())}`;
|
|
857
|
+
},
|
|
858
|
+
$$slots: { default: true }
|
|
859
|
+
});
|
|
860
|
+
$$payload2.out += `<!----></div>`;
|
|
861
|
+
}
|
|
862
|
+
$$payload2.out += `<!--]--></div></div>`;
|
|
863
|
+
} else {
|
|
864
|
+
$$payload2.out += "<!--[!-->";
|
|
694
865
|
}
|
|
695
|
-
$$payload2.out += `<!--]
|
|
696
|
-
} else {
|
|
697
|
-
$$payload2.out += "<!--[!-->";
|
|
866
|
+
$$payload2.out += `<!--]-->`;
|
|
698
867
|
}
|
|
699
868
|
$$payload2.out += `<!--]-->`;
|
|
700
869
|
}
|