plum-e2e 2.5.14 → 2.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/backend/app.js +4 -1
- package/backend/constants/triggers.js +3 -1
- package/backend/lib/retryRunner.js +61 -0
- package/backend/lib/screenshotPoller.js +43 -0
- package/backend/mcp/server.js +8 -1
- package/backend/prisma/migrations/20260713090000_add_report_duration/migration.sql +2 -0
- package/backend/prisma/migrations/20260714070000_add_project_max_retries/migration.sql +2 -0
- package/backend/prisma/schema.prisma +2 -0
- package/backend/routes/node.routes.js +20 -0
- package/backend/routes/runners.routes.js +19 -10
- package/backend/routes/settings.routes.js +2 -2
- package/backend/routes/trigger.routes.js +124 -29
- package/backend/server.js +22 -2
- package/backend/services/cronService.js +253 -48
- package/backend/services/reportService.js +81 -7
- package/backend/services/runnerService.js +25 -0
- package/backend/services/settingsService.js +3 -2
- package/backend/websockets/socketHandler.js +202 -111
- package/frontend/.svelte-kit/adapter-node/.vite/manifest.json +312 -37
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/BackLink.CvWWuO3h.css +18 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/Badge.D1SV0Gv7.css +18 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/ConfirmModal.CdhOYVBb.css +18 -0
- package/frontend/.svelte-kit/{output/client/_app/immutable/chunks/rVEKg0Ak.js → adapter-node/_app/immutable/assets/EmptyState.BdO1q9cJ.css} +1 -1
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/Pagination.DZmi2Po-.css +18 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/Toast.DENwYn3g.css +18 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_layout.BuhMvMUj.css +18 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.0Eln51hV.css +18 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.5IJAEAjc.css +18 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BJ-I1gHO.css +18 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BR3wgXcZ.css +18 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BZfe6nWe.css +18 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.Bhof07Eg.css +18 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.Bj_a_5lv.css +18 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.CBHi6pzT.css +18 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.CFnbmY-D.css +18 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.CrXpMrqh.css +18 -0
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page._h2o67kg.css +18 -0
- package/frontend/.svelte-kit/adapter-node/chunks/BackLink.js +29 -0
- package/frontend/.svelte-kit/adapter-node/chunks/Badge.js +3 -3
- package/frontend/.svelte-kit/adapter-node/chunks/Button.js +4 -3
- package/frontend/.svelte-kit/adapter-node/chunks/ConfirmModal.js +74 -0
- package/frontend/.svelte-kit/adapter-node/chunks/EmptyState.js +34 -0
- package/frontend/.svelte-kit/adapter-node/chunks/Toast.js +36 -0
- package/frontend/.svelte-kit/adapter-node/chunks/auth.js +61 -0
- package/frontend/.svelte-kit/adapter-node/chunks/client.js +9 -2
- package/frontend/.svelte-kit/adapter-node/chunks/constants.js +41 -0
- package/frontend/.svelte-kit/adapter-node/chunks/exports.js +7 -65
- package/frontend/.svelte-kit/adapter-node/chunks/format.js +51 -0
- package/frontend/.svelte-kit/adapter-node/chunks/index-server.js +31 -0
- package/frontend/.svelte-kit/adapter-node/chunks/index.js +71 -50
- package/frontend/.svelte-kit/adapter-node/chunks/index2.js +76 -0
- package/frontend/.svelte-kit/adapter-node/chunks/internal.js +3 -4
- package/frontend/.svelte-kit/adapter-node/chunks/reports.js +16 -33
- package/frontend/.svelte-kit/adapter-node/chunks/runner.js +45 -0
- package/frontend/.svelte-kit/adapter-node/chunks/stores.js +43 -0
- package/frontend/{build/client/_app/immutable/chunks/rVEKg0Ak.js → .svelte-kit/adapter-node/chunks/theme.js} +9 -1
- package/frontend/.svelte-kit/{output/client/_app/immutable/entry/start.GiBry-lw.js → adapter-node/entries/pages/_layout.js} +4 -1
- package/frontend/.svelte-kit/adapter-node/entries/pages/_layout.svelte.js +10 -154
- package/frontend/.svelte-kit/adapter-node/entries/pages/_page.svelte.js +46 -28
- package/frontend/.svelte-kit/adapter-node/entries/pages/login/_page.svelte.js +40 -0
- package/frontend/.svelte-kit/adapter-node/entries/pages/reports/_id_/_page.svelte.js +62 -0
- package/frontend/.svelte-kit/adapter-node/entries/pages/reports/_page.svelte.js +167 -89
- package/frontend/.svelte-kit/adapter-node/entries/pages/reports/live/_page.svelte.js +257 -0
- package/frontend/.svelte-kit/adapter-node/entries/pages/scheduled-tests/_page.svelte.js +91 -52
- package/frontend/.svelte-kit/adapter-node/entries/pages/settings/_page.svelte.js +562 -0
- package/frontend/.svelte-kit/adapter-node/entries/pages/setup/_page.svelte.js +40 -0
- package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/_page.svelte.js +421 -0
- package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/runs/_id_/_page.svelte.js +62 -0
- package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/suites/_id_/_page.svelte.js +198 -0
- package/frontend/.svelte-kit/adapter-node/index.js +2 -1
- package/frontend/.svelte-kit/adapter-node/manifest-full.js +64 -8
- package/frontend/.svelte-kit/adapter-node/manifest.js +64 -8
- package/frontend/.svelte-kit/adapter-node/nodes/0.js +5 -3
- package/frontend/.svelte-kit/adapter-node/nodes/1.js +1 -1
- package/frontend/.svelte-kit/adapter-node/nodes/10.js +25 -0
- package/frontend/.svelte-kit/adapter-node/nodes/11.js +25 -0
- package/frontend/.svelte-kit/adapter-node/nodes/12.js +25 -0
- package/frontend/.svelte-kit/adapter-node/nodes/2.js +2 -2
- 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 +25 -0
- package/frontend/.svelte-kit/adapter-node/nodes/7.js +25 -0
- package/frontend/.svelte-kit/adapter-node/nodes/8.js +25 -0
- package/frontend/.svelte-kit/adapter-node/nodes/9.js +25 -0
- package/frontend/.svelte-kit/ambient.d.ts +4 -0
- package/frontend/.svelte-kit/generated/client-optimized/app.js +18 -4
- package/frontend/.svelte-kit/generated/client-optimized/nodes/0.js +2 -0
- package/frontend/.svelte-kit/generated/client-optimized/nodes/10.js +18 -0
- package/frontend/.svelte-kit/generated/client-optimized/nodes/11.js +18 -0
- package/frontend/.svelte-kit/generated/client-optimized/nodes/12.js +18 -0
- 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 +18 -0
- package/frontend/.svelte-kit/generated/client-optimized/nodes/7.js +18 -0
- package/frontend/.svelte-kit/generated/client-optimized/nodes/8.js +18 -0
- package/frontend/.svelte-kit/generated/client-optimized/nodes/9.js +18 -0
- package/frontend/.svelte-kit/generated/server/internal.js +1 -1
- package/frontend/.svelte-kit/output/client/.vite/manifest.json +486 -155
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/0.BhSG-jZH.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/10.CdaQUS6U.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/11.BJ-I1gHO.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/12.Bj_a_5lv.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/2.CrXpMrqh.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/3.BR3wgXcZ.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/4.0Eln51hV.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/5.DFV9OgAu.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/6.CFnbmY-D.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/7.CBHi6pzT.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/8.Bhof07Eg.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/9._h2o67kg.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/BackLink.CvWWuO3h.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/Badge.D1SV0Gv7.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/Button.FOWXxvc7.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/ConfirmModal.CdhOYVBb.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/ConfirmModal.DmxkcwXv.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/EmptyState.BdO1q9cJ.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/Pagination.DZmi2Po-.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/Toast.DENwYn3g.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_layout.BuhMvMUj.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.0Eln51hV.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.5IJAEAjc.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BJ-I1gHO.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BR3wgXcZ.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BZfe6nWe.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.Bhof07Eg.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.Bj_a_5lv.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.CBHi6pzT.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.CFnbmY-D.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.CrXpMrqh.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page._h2o67kg.css +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/B0pefNHY.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BFEiffAL.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{CJ8q7g9Y.js → BFgtfHj2.js} +1 -1
- package/frontend/.svelte-kit/{adapter-node/chunks/equality.js → output/client/_app/immutable/chunks/BIRVeCLU.js} +1 -14
- package/frontend/.svelte-kit/output/{server/chunks/equality.js → client/_app/immutable/chunks/BKCNyxZ2.js} +1 -14
- package/frontend/{build/client/_app/immutable/chunks/CHV2KnPr.js → .svelte-kit/output/client/_app/immutable/chunks/BLAiBE__.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BVMec-1T.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BeO8veBd.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Bfc47y5P.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BgNaeXAp.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BkKmeUbA.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/C3SY6-sX.js +19 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/C4eeChIU.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/C67QNx7Z.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CVV6HrFb.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CstKKb9b.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CxTX_lpP.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CyQ_oBw2.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{CwBTqcbj.js → DGryW1Vp.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{BKz6FZdB.js → DIx44H9N.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DP6QP4L6.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DmRbbcS3.js +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/IFIFk6zi.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/KJdjlibc.js +20 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/ll-VsEGv.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/raHbXn_9.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/uFRI_bmR.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/entry/app.Dz_CBZcR.js +19 -0
- package/frontend/{build/client/_app/immutable/entry/start.GiBry-lw.js → .svelte-kit/output/client/_app/immutable/entry/start.MMlC62np.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/0.CKD9Qja6.js +23 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{1.N4gjrCnX.js → 1.Dbck5ct8.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/10.BfmGpmC1.js +19 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/11.C7l9HPom.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/12.Iu9bcGdC.js +19 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/2.BqQhRvYh.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/3.BZRTKadS.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/4.BfKoPKdM.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/5.B4a2uCWn.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/6.CI508CMS.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/7.3x_eiof1.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/8.BfUuob4H.js +29 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/9.BZhCKRJe.js +18 -0
- package/frontend/.svelte-kit/output/client/_app/version.json +1 -1
- package/frontend/.svelte-kit/output/client/favicon-32x32.png +0 -0
- package/frontend/.svelte-kit/output/client/favicon.ico +0 -0
- package/frontend/.svelte-kit/output/server/.vite/manifest.json +312 -37
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/BackLink.CvWWuO3h.css +18 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/Badge.D1SV0Gv7.css +18 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/ConfirmModal.CdhOYVBb.css +18 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/EmptyState.BdO1q9cJ.css +18 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/Pagination.DZmi2Po-.css +18 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/Toast.DENwYn3g.css +18 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_layout.BuhMvMUj.css +18 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.0Eln51hV.css +18 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.5IJAEAjc.css +18 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BJ-I1gHO.css +18 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BR3wgXcZ.css +18 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BZfe6nWe.css +18 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Bhof07Eg.css +18 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Bj_a_5lv.css +18 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CBHi6pzT.css +18 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CFnbmY-D.css +18 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CrXpMrqh.css +18 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page._h2o67kg.css +18 -0
- package/frontend/.svelte-kit/output/server/chunks/BackLink.js +29 -0
- package/frontend/.svelte-kit/output/server/chunks/Badge.js +3 -3
- package/frontend/.svelte-kit/output/server/chunks/Button.js +4 -3
- package/frontend/.svelte-kit/output/server/chunks/ConfirmModal.js +74 -0
- package/frontend/.svelte-kit/output/server/chunks/EmptyState.js +34 -0
- package/frontend/.svelte-kit/output/server/chunks/Toast.js +36 -0
- package/frontend/.svelte-kit/output/server/chunks/auth.js +61 -0
- package/frontend/.svelte-kit/output/server/chunks/client.js +9 -2
- package/frontend/.svelte-kit/output/server/chunks/constants.js +41 -0
- package/frontend/.svelte-kit/output/server/chunks/exports.js +7 -65
- package/frontend/.svelte-kit/output/server/chunks/format.js +51 -0
- package/frontend/.svelte-kit/output/server/chunks/index-server.js +31 -0
- package/frontend/.svelte-kit/output/server/chunks/index.js +71 -50
- package/frontend/.svelte-kit/output/server/chunks/index2.js +76 -0
- package/frontend/.svelte-kit/output/server/chunks/internal.js +3 -4
- package/frontend/.svelte-kit/output/server/chunks/reports.js +16 -33
- package/frontend/.svelte-kit/output/server/chunks/runner.js +45 -0
- package/frontend/.svelte-kit/output/server/chunks/stores.js +43 -0
- package/frontend/.svelte-kit/output/server/chunks/theme.js +26 -0
- package/frontend/.svelte-kit/output/server/entries/pages/_layout.js +21 -0
- package/frontend/.svelte-kit/output/server/entries/pages/_layout.svelte.js +10 -154
- package/frontend/.svelte-kit/output/server/entries/pages/_page.svelte.js +46 -28
- package/frontend/.svelte-kit/output/server/entries/pages/login/_page.svelte.js +40 -0
- package/frontend/.svelte-kit/output/server/entries/pages/reports/_id_/_page.svelte.js +62 -0
- package/frontend/.svelte-kit/output/server/entries/pages/reports/_page.svelte.js +167 -89
- package/frontend/.svelte-kit/output/server/entries/pages/reports/live/_page.svelte.js +257 -0
- package/frontend/.svelte-kit/output/server/entries/pages/scheduled-tests/_page.svelte.js +91 -52
- package/frontend/.svelte-kit/output/server/entries/pages/settings/_page.svelte.js +562 -0
- package/frontend/.svelte-kit/output/server/entries/pages/setup/_page.svelte.js +40 -0
- package/frontend/.svelte-kit/output/server/entries/pages/test-repository/_page.svelte.js +421 -0
- package/frontend/.svelte-kit/output/server/entries/pages/test-repository/runs/_id_/_page.svelte.js +62 -0
- package/frontend/.svelte-kit/output/server/entries/pages/test-repository/suites/_id_/_page.svelte.js +198 -0
- package/frontend/.svelte-kit/output/server/index.js +2 -1
- package/frontend/.svelte-kit/output/server/manifest-full.js +64 -8
- package/frontend/.svelte-kit/output/server/manifest.js +64 -8
- package/frontend/.svelte-kit/output/server/nodes/0.js +5 -3
- package/frontend/.svelte-kit/output/server/nodes/1.js +1 -1
- package/frontend/.svelte-kit/output/server/nodes/10.js +25 -0
- package/frontend/.svelte-kit/output/server/nodes/11.js +25 -0
- package/frontend/.svelte-kit/output/server/nodes/12.js +25 -0
- package/frontend/.svelte-kit/output/server/nodes/2.js +2 -2
- 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 +25 -0
- package/frontend/.svelte-kit/output/server/nodes/7.js +25 -0
- package/frontend/.svelte-kit/output/server/nodes/8.js +25 -0
- package/frontend/.svelte-kit/output/server/nodes/9.js +25 -0
- package/frontend/build/client/_app/immutable/assets/0.BhSG-jZH.css +18 -0
- package/frontend/build/client/_app/immutable/assets/0.BhSG-jZH.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/0.BhSG-jZH.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/10.CdaQUS6U.css +18 -0
- package/frontend/build/client/_app/immutable/assets/10.CdaQUS6U.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/10.CdaQUS6U.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/11.BJ-I1gHO.css +18 -0
- package/frontend/build/client/_app/immutable/assets/11.BJ-I1gHO.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/11.BJ-I1gHO.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/12.Bj_a_5lv.css +18 -0
- package/frontend/build/client/_app/immutable/assets/12.Bj_a_5lv.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/12.Bj_a_5lv.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/2.CrXpMrqh.css +18 -0
- package/frontend/build/client/_app/immutable/assets/2.CrXpMrqh.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/2.CrXpMrqh.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/3.BR3wgXcZ.css +18 -0
- package/frontend/build/client/_app/immutable/assets/3.BR3wgXcZ.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/3.BR3wgXcZ.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/4.0Eln51hV.css +18 -0
- package/frontend/build/client/_app/immutable/assets/4.0Eln51hV.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/4.0Eln51hV.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/5.DFV9OgAu.css +18 -0
- package/frontend/build/client/_app/immutable/assets/5.DFV9OgAu.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/5.DFV9OgAu.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/6.CFnbmY-D.css +18 -0
- package/frontend/build/client/_app/immutable/assets/6.CFnbmY-D.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/6.CFnbmY-D.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/7.CBHi6pzT.css +18 -0
- package/frontend/build/client/_app/immutable/assets/7.CBHi6pzT.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/7.CBHi6pzT.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/8.Bhof07Eg.css +18 -0
- package/frontend/build/client/_app/immutable/assets/8.Bhof07Eg.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/8.Bhof07Eg.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/9._h2o67kg.css +18 -0
- package/frontend/build/client/_app/immutable/assets/9._h2o67kg.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/9._h2o67kg.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/BackLink.CvWWuO3h.css +18 -0
- package/frontend/build/client/_app/immutable/{chunks/rVEKg0Ak.js.br → assets/BackLink.CvWWuO3h.css.br} +0 -0
- package/frontend/build/client/_app/immutable/{chunks/rVEKg0Ak.js.gz → assets/BackLink.CvWWuO3h.css.gz} +0 -0
- package/frontend/build/client/_app/immutable/assets/Badge.D1SV0Gv7.css +18 -0
- package/frontend/build/client/_app/immutable/assets/Badge.D1SV0Gv7.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/{Badge.DLLowvEA.css.gz → Badge.D1SV0Gv7.css.gz} +0 -0
- package/frontend/build/client/_app/immutable/assets/Button.FOWXxvc7.css +18 -0
- package/frontend/build/client/_app/immutable/assets/Button.FOWXxvc7.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/Button.FOWXxvc7.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/ConfirmModal.CdhOYVBb.css +18 -0
- package/frontend/build/client/_app/immutable/assets/ConfirmModal.CdhOYVBb.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/ConfirmModal.CdhOYVBb.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/ConfirmModal.DmxkcwXv.css +18 -0
- package/frontend/build/client/_app/immutable/assets/ConfirmModal.DmxkcwXv.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/ConfirmModal.DmxkcwXv.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/EmptyState.BdO1q9cJ.css +18 -0
- package/frontend/build/client/_app/immutable/{chunks/CJ8q7g9Y.js.br → assets/EmptyState.BdO1q9cJ.css.br} +0 -0
- package/frontend/build/client/_app/immutable/assets/EmptyState.BdO1q9cJ.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/Pagination.DZmi2Po-.css +18 -0
- package/frontend/build/client/_app/immutable/assets/Pagination.DZmi2Po-.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/Pagination.DZmi2Po-.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/Toast.DENwYn3g.css +18 -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 +18 -0
- package/frontend/build/client/_app/immutable/assets/_layout.BuhMvMUj.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_layout.BuhMvMUj.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.0Eln51hV.css +18 -0
- package/frontend/build/client/_app/immutable/assets/_page.0Eln51hV.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.0Eln51hV.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.5IJAEAjc.css +18 -0
- package/frontend/build/client/_app/immutable/assets/_page.5IJAEAjc.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.5IJAEAjc.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.BJ-I1gHO.css +18 -0
- package/frontend/build/client/_app/immutable/assets/_page.BJ-I1gHO.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.BJ-I1gHO.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.BR3wgXcZ.css +18 -0
- package/frontend/build/client/_app/immutable/assets/_page.BR3wgXcZ.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.BR3wgXcZ.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.BZfe6nWe.css +18 -0
- package/frontend/build/client/_app/immutable/assets/_page.BZfe6nWe.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.BZfe6nWe.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.Bhof07Eg.css +18 -0
- package/frontend/build/client/_app/immutable/assets/_page.Bhof07Eg.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.Bhof07Eg.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.Bj_a_5lv.css +18 -0
- package/frontend/build/client/_app/immutable/assets/_page.Bj_a_5lv.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.Bj_a_5lv.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.CBHi6pzT.css +18 -0
- package/frontend/build/client/_app/immutable/assets/_page.CBHi6pzT.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.CBHi6pzT.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.CFnbmY-D.css +18 -0
- package/frontend/build/client/_app/immutable/assets/_page.CFnbmY-D.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.CFnbmY-D.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.CrXpMrqh.css +18 -0
- package/frontend/build/client/_app/immutable/assets/_page.CrXpMrqh.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.CrXpMrqh.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page._h2o67kg.css +18 -0
- package/frontend/build/client/_app/immutable/assets/_page._h2o67kg.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page._h2o67kg.css.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/B0pefNHY.js +18 -0
- package/frontend/build/client/_app/immutable/chunks/B0pefNHY.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/B0pefNHY.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/BFEiffAL.js +18 -0
- package/frontend/build/client/_app/immutable/chunks/BFEiffAL.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BFEiffAL.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{CJ8q7g9Y.js → BFgtfHj2.js} +1 -1
- package/frontend/build/client/_app/immutable/chunks/BFgtfHj2.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/{CJ8q7g9Y.js.gz → BFgtfHj2.js.gz} +0 -0
- package/frontend/build/client/_app/immutable/chunks/BIRVeCLU.js +18 -0
- package/frontend/build/client/_app/immutable/chunks/{CHV2KnPr.js.gz → BIRVeCLU.js.br} +0 -0
- package/frontend/build/client/_app/immutable/chunks/BIRVeCLU.js.gz +0 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/oc0we5Us.js → build/client/_app/immutable/chunks/BKCNyxZ2.js} +1 -1
- package/frontend/build/client/_app/immutable/chunks/BKCNyxZ2.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BKCNyxZ2.js.gz +0 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/CHV2KnPr.js → build/client/_app/immutable/chunks/BLAiBE__.js} +1 -1
- package/frontend/build/client/_app/immutable/chunks/{CHV2KnPr.js.br → BLAiBE__.js.br} +2 -2
- package/frontend/build/client/_app/immutable/{assets/Badge.DLLowvEA.css.br → chunks/BLAiBE__.js.gz} +0 -0
- package/frontend/build/client/_app/immutable/chunks/BVMec-1T.js +18 -0
- package/frontend/build/client/_app/immutable/chunks/BVMec-1T.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BVMec-1T.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/BeO8veBd.js +18 -0
- package/frontend/build/client/_app/immutable/chunks/BeO8veBd.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BeO8veBd.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/Bfc47y5P.js +18 -0
- package/frontend/build/client/_app/immutable/chunks/Bfc47y5P.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/Bfc47y5P.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/BgNaeXAp.js +18 -0
- package/frontend/build/client/_app/immutable/chunks/BgNaeXAp.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BgNaeXAp.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/BkKmeUbA.js +18 -0
- package/frontend/build/client/_app/immutable/chunks/BkKmeUbA.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BkKmeUbA.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/C3SY6-sX.js +19 -0
- package/frontend/build/client/_app/immutable/chunks/C3SY6-sX.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/C3SY6-sX.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/C4eeChIU.js +18 -0
- package/frontend/build/client/_app/immutable/chunks/C4eeChIU.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/C4eeChIU.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/C67QNx7Z.js +18 -0
- package/frontend/build/client/_app/immutable/chunks/C67QNx7Z.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/C67QNx7Z.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/CVV6HrFb.js +18 -0
- package/frontend/build/client/_app/immutable/chunks/CVV6HrFb.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/CVV6HrFb.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/CstKKb9b.js +18 -0
- package/frontend/build/client/_app/immutable/chunks/CstKKb9b.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/CstKKb9b.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/CxTX_lpP.js +18 -0
- package/frontend/build/client/_app/immutable/chunks/CxTX_lpP.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/CxTX_lpP.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/CyQ_oBw2.js +18 -0
- package/frontend/build/client/_app/immutable/chunks/CyQ_oBw2.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/CyQ_oBw2.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/DGryW1Vp.js +18 -0
- package/frontend/build/client/_app/immutable/chunks/DGryW1Vp.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DGryW1Vp.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/DIx44H9N.js +18 -0
- package/frontend/build/client/_app/immutable/chunks/DIx44H9N.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DIx44H9N.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/DP6QP4L6.js +18 -0
- package/frontend/build/client/_app/immutable/chunks/DP6QP4L6.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DP6QP4L6.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/DmRbbcS3.js +23 -0
- package/frontend/build/client/_app/immutable/chunks/DmRbbcS3.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DmRbbcS3.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/IFIFk6zi.js +18 -0
- package/frontend/build/client/_app/immutable/chunks/IFIFk6zi.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/IFIFk6zi.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/KJdjlibc.js +20 -0
- package/frontend/build/client/_app/immutable/chunks/KJdjlibc.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/KJdjlibc.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/ll-VsEGv.js +18 -0
- package/frontend/build/client/_app/immutable/chunks/ll-VsEGv.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/ll-VsEGv.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/raHbXn_9.js +18 -0
- package/frontend/build/client/_app/immutable/chunks/raHbXn_9.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/raHbXn_9.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/uFRI_bmR.js +18 -0
- package/frontend/build/client/_app/immutable/chunks/uFRI_bmR.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/uFRI_bmR.js.gz +0 -0
- package/frontend/build/client/_app/immutable/entry/app.Dz_CBZcR.js +19 -0
- package/frontend/build/client/_app/immutable/entry/app.Dz_CBZcR.js.br +0 -0
- package/frontend/build/client/_app/immutable/entry/app.Dz_CBZcR.js.gz +0 -0
- package/frontend/build/client/_app/immutable/entry/start.MMlC62np.js +18 -0
- package/frontend/build/client/_app/immutable/entry/{start.GiBry-lw.js.br → start.MMlC62np.js.br} +1 -1
- package/frontend/build/client/_app/immutable/entry/{start.GiBry-lw.js.gz → start.MMlC62np.js.gz} +0 -0
- package/frontend/build/client/_app/immutable/nodes/0.CKD9Qja6.js +23 -0
- package/frontend/build/client/_app/immutable/nodes/0.CKD9Qja6.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/0.CKD9Qja6.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/{1.N4gjrCnX.js → 1.Dbck5ct8.js} +1 -1
- package/frontend/build/client/_app/immutable/nodes/1.Dbck5ct8.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/1.Dbck5ct8.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/10.BfmGpmC1.js +19 -0
- package/frontend/build/client/_app/immutable/nodes/10.BfmGpmC1.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/10.BfmGpmC1.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/11.C7l9HPom.js +18 -0
- package/frontend/build/client/_app/immutable/nodes/11.C7l9HPom.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/11.C7l9HPom.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/12.Iu9bcGdC.js +19 -0
- package/frontend/build/client/_app/immutable/nodes/12.Iu9bcGdC.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/12.Iu9bcGdC.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/2.BqQhRvYh.js +18 -0
- package/frontend/build/client/_app/immutable/nodes/2.BqQhRvYh.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/2.BqQhRvYh.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/3.BZRTKadS.js +18 -0
- package/frontend/build/client/_app/immutable/nodes/3.BZRTKadS.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/3.BZRTKadS.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/4.BfKoPKdM.js +18 -0
- package/frontend/build/client/_app/immutable/nodes/4.BfKoPKdM.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/4.BfKoPKdM.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/5.B4a2uCWn.js +18 -0
- package/frontend/build/client/_app/immutable/nodes/5.B4a2uCWn.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/5.B4a2uCWn.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/6.CI508CMS.js +18 -0
- package/frontend/build/client/_app/immutable/nodes/6.CI508CMS.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/6.CI508CMS.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/7.3x_eiof1.js +18 -0
- package/frontend/build/client/_app/immutable/nodes/7.3x_eiof1.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/7.3x_eiof1.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/8.BfUuob4H.js +29 -0
- package/frontend/build/client/_app/immutable/nodes/8.BfUuob4H.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/8.BfUuob4H.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/9.BZhCKRJe.js +18 -0
- package/frontend/build/client/_app/immutable/nodes/9.BZhCKRJe.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/9.BZhCKRJe.js.gz +0 -0
- package/frontend/build/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/client/favicon-32x32.png +0 -0
- package/frontend/build/client/favicon.ico +0 -0
- package/frontend/build/server/chunks/0-Dzas6zkl.js +34 -0
- package/frontend/build/server/chunks/0-Dzas6zkl.js.map +17 -0
- package/frontend/build/server/chunks/{1-hso3H4Ax.js → 1-B4EsP8yr.js} +3 -3
- package/frontend/build/server/chunks/{1-hso3H4Ax.js.map → 1-B4EsP8yr.js.map} +1 -1
- package/frontend/build/server/chunks/10-UhDQZ5BY.js +26 -0
- package/frontend/build/server/chunks/10-UhDQZ5BY.js.map +17 -0
- package/frontend/build/server/chunks/11-mTH3nQlX.js +26 -0
- package/frontend/build/server/chunks/11-mTH3nQlX.js.map +17 -0
- package/frontend/build/server/chunks/12-9mg6kp53.js +26 -0
- package/frontend/build/server/chunks/12-9mg6kp53.js.map +17 -0
- package/frontend/build/server/chunks/{4-2UUrCVtM.js → 2-Bkz8H7CT.js} +5 -5
- package/frontend/build/server/chunks/2-Bkz8H7CT.js.map +17 -0
- package/frontend/build/server/chunks/{3-BYumY9dv.js → 3-DDtaiqu7.js} +4 -4
- package/frontend/build/server/chunks/3-DDtaiqu7.js.map +17 -0
- package/frontend/build/server/chunks/4-DbdkTAvS.js +26 -0
- package/frontend/build/server/chunks/4-DbdkTAvS.js.map +17 -0
- package/frontend/build/server/chunks/{5-C2_y_fwT.js → 5-CK5hY2WF.js} +4 -4
- package/frontend/build/server/chunks/5-CK5hY2WF.js.map +17 -0
- package/frontend/build/server/chunks/6-Cps9fL3Z.js +26 -0
- package/frontend/build/server/chunks/6-Cps9fL3Z.js.map +17 -0
- package/frontend/build/server/chunks/7-CgUpbaJD.js +26 -0
- package/frontend/build/server/chunks/7-CgUpbaJD.js.map +17 -0
- package/frontend/build/server/chunks/8-dilaVKYo.js +26 -0
- package/frontend/build/server/chunks/8-dilaVKYo.js.map +17 -0
- package/frontend/build/server/chunks/{2-BSZWXCWp.js → 9-CUJxgoIN.js} +5 -5
- package/frontend/build/server/chunks/9-CUJxgoIN.js.map +17 -0
- package/frontend/build/server/chunks/BackLink-KxZNqsaq.js +30 -0
- package/frontend/build/server/chunks/BackLink-KxZNqsaq.js.map +17 -0
- package/frontend/build/server/chunks/{Badge-CC4U7C0c.js → Badge-B5V-z6pI.js} +4 -4
- package/frontend/build/server/chunks/Badge-B5V-z6pI.js.map +17 -0
- package/frontend/build/server/chunks/{Button-BLkPicwS.js → Button-CuacyA7Y.js} +4 -4
- package/frontend/build/server/chunks/Button-CuacyA7Y.js.map +17 -0
- package/frontend/build/server/chunks/ConfirmModal-DBtnLLsU.js +73 -0
- package/frontend/build/server/chunks/ConfirmModal-DBtnLLsU.js.map +17 -0
- package/frontend/build/server/chunks/EmptyState-B74-VZ15.js +34 -0
- package/frontend/build/server/chunks/EmptyState-B74-VZ15.js.map +17 -0
- package/frontend/build/server/chunks/Toast-DDF2wi_5.js +37 -0
- package/frontend/build/server/chunks/Toast-DDF2wi_5.js.map +17 -0
- package/frontend/build/server/chunks/_layout.svelte-DoJXDbP1.js +39 -0
- package/frontend/build/server/chunks/_layout.svelte-DoJXDbP1.js.map +17 -0
- package/frontend/build/server/chunks/_page.svelte-BETENC2e.js +67 -0
- package/frontend/build/server/chunks/_page.svelte-BETENC2e.js.map +17 -0
- package/frontend/build/server/chunks/_page.svelte-C0vstY93.js +219 -0
- package/frontend/build/server/chunks/_page.svelte-C0vstY93.js.map +17 -0
- package/frontend/build/server/chunks/_page.svelte-CC27sZag.js +421 -0
- package/frontend/build/server/chunks/_page.svelte-CC27sZag.js.map +17 -0
- package/frontend/build/server/chunks/{_page.svelte-s6ZIOitT.js → _page.svelte-CYkOPxn2.js} +47 -29
- package/frontend/build/server/chunks/_page.svelte-CYkOPxn2.js.map +17 -0
- package/frontend/build/server/chunks/_page.svelte-CperUuP9.js +564 -0
- package/frontend/build/server/chunks/_page.svelte-CperUuP9.js.map +17 -0
- package/frontend/build/server/chunks/_page.svelte-CwrCf0C8.js +65 -0
- package/frontend/build/server/chunks/_page.svelte-CwrCf0C8.js.map +17 -0
- package/frontend/build/server/chunks/_page.svelte-DALHRFEX.js +43 -0
- package/frontend/build/server/chunks/_page.svelte-DALHRFEX.js.map +17 -0
- package/frontend/build/server/chunks/_page.svelte-DNNyBx4y.js +43 -0
- package/frontend/build/server/chunks/_page.svelte-DNNyBx4y.js.map +17 -0
- package/frontend/build/server/chunks/_page.svelte-DqWsUJRp.js +199 -0
- package/frontend/build/server/chunks/_page.svelte-DqWsUJRp.js.map +17 -0
- package/frontend/build/server/chunks/_page.svelte-LcJmR5du.js +219 -0
- package/frontend/build/server/chunks/_page.svelte-LcJmR5du.js.map +17 -0
- package/frontend/build/server/chunks/_page.svelte-gnktnXKP.js +259 -0
- package/frontend/build/server/chunks/_page.svelte-gnktnXKP.js.map +17 -0
- package/frontend/build/server/chunks/auth-rlH-cIzn.js +62 -0
- package/frontend/build/server/chunks/auth-rlH-cIzn.js.map +17 -0
- package/frontend/build/server/chunks/{client-C9IaEwNo.js → client-DyII78e0.js} +9 -4
- package/frontend/build/server/chunks/client-DyII78e0.js.map +17 -0
- package/frontend/build/server/chunks/constants-Drz-Vo39.js +35 -0
- package/frontend/build/server/chunks/constants-Drz-Vo39.js.map +17 -0
- package/frontend/build/server/chunks/{error.svelte-HKBv5sQT.js → error.svelte-BDW3iP1O.js} +4 -4
- package/frontend/build/server/chunks/{error.svelte-HKBv5sQT.js.map → error.svelte-BDW3iP1O.js.map} +1 -1
- package/frontend/build/server/chunks/{exports-OxlCJ8yE.js → exports-D0QHgeSL.js} +2 -67
- package/frontend/build/server/chunks/exports-D0QHgeSL.js.map +17 -0
- package/frontend/build/server/chunks/format-D26ZQccb.js +49 -0
- package/frontend/build/server/chunks/format-D26ZQccb.js.map +17 -0
- package/frontend/build/server/chunks/index-server-Dr2Nvcmu.js +31 -0
- package/frontend/build/{client/_app/immutable/chunks/BKz6FZdB.js.br → server/chunks/index-server-Dr2Nvcmu.js.map} +0 -0
- package/frontend/build/server/chunks/{index-CjHlq1kt.js → index2-DG8XHU5D.js} +81 -10
- package/frontend/build/server/chunks/index2-DG8XHU5D.js.map +17 -0
- package/frontend/build/server/chunks/reports-Bgi7V5N7.js +40 -0
- package/frontend/build/server/chunks/reports-Bgi7V5N7.js.map +17 -0
- package/frontend/build/server/chunks/runner-D18Ml_vF.js +42 -0
- package/frontend/build/server/chunks/runner-D18Ml_vF.js.map +17 -0
- package/frontend/build/server/chunks/{reports-D3ZeYSmi.js → stores-DlkXV308.js} +4 -16
- package/frontend/build/server/chunks/stores-DlkXV308.js.map +17 -0
- package/frontend/build/server/chunks/theme-D_NKm6iI.js +27 -0
- package/frontend/build/server/chunks/theme-D_NKm6iI.js.map +17 -0
- package/frontend/build/server/index.js +4 -4
- package/frontend/build/server/index.js.map +1 -1
- package/frontend/build/server/manifest.js +69 -13
- package/frontend/build/server/manifest.js.map +1 -1
- package/frontend/src/lib/api/runners.js +10 -0
- package/frontend/src/lib/api/settings.js +3 -3
- package/frontend/src/lib/components/layout/RunnerPanel.svelte +108 -21
- package/frontend/src/lib/components/ui/Badge.svelte +6 -1
- package/frontend/src/lib/constants.js +3 -1
- package/frontend/src/lib/stores/runner.js +5 -2
- package/frontend/src/lib/styles/tokens.css +4 -0
- package/frontend/src/lib/utils/format.js +3 -0
- package/frontend/src/routes/reports/[id]/+page.svelte +13 -1
- package/frontend/src/routes/reports/live/+page.svelte +38 -17
- package/frontend/src/routes/scheduled-tests/+page.svelte +2 -2
- package/frontend/src/routes/settings/+page.svelte +134 -3
- package/package.json +1 -1
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/Badge.DLLowvEA.css +0 -34
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/Button.cBruH0aD.css +0 -34
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_layout.D7eM-6MV.css +0 -34
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BVnUajEa.css +0 -34
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.CGnCsn5q.css +0 -34
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.DBhBrHFz.css +0 -34
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.DOqo0UR4.css +0 -34
- package/frontend/.svelte-kit/adapter-node/entries/pages/reports/_slug_/_page.svelte.js +0 -42
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/0.CnXRuPt4.css +0 -34
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/2.CGnCsn5q.css +0 -34
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/3.BVnUajEa.css +0 -34
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/4.DBhBrHFz.css +0 -34
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/5.D93VAB-w.css +0 -34
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/Badge.DLLowvEA.css +0 -34
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/Button.cBruH0aD.css +0 -34
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_layout.D7eM-6MV.css +0 -34
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BVnUajEa.css +0 -34
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.CGnCsn5q.css +0 -34
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.DBhBrHFz.css +0 -34
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.DOqo0UR4.css +0 -34
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/B0bn91RF.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/B1kE5jmt.js +0 -23
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Be4iUAB0.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BpaMqo9O.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Bt3-Z7H1.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Cit9MuSg.js +0 -20
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DBk3zeq4.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DFJLQFic.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DTUE7kkY.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/IYPwzKs_.js +0 -20
- package/frontend/.svelte-kit/output/client/_app/immutable/entry/app.C2MbX06K.js +0 -19
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/0.BsCYK-Tn.js +0 -21
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/2.D9yQNzK8.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/3.CBC5WvNb.js +0 -18
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/4.BU6UZHSE.js +0 -19
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/5.Dzzfrntl.js +0 -18
- package/frontend/.svelte-kit/output/client/favicon.png +0 -0
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/Badge.DLLowvEA.css +0 -34
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/Button.cBruH0aD.css +0 -34
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_layout.D7eM-6MV.css +0 -34
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BVnUajEa.css +0 -34
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CGnCsn5q.css +0 -34
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.DBhBrHFz.css +0 -34
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.DOqo0UR4.css +0 -34
- package/frontend/.svelte-kit/output/server/entries/pages/reports/_slug_/_page.svelte.js +0 -42
- package/frontend/build/client/_app/immutable/assets/0.CnXRuPt4.css +0 -34
- package/frontend/build/client/_app/immutable/assets/0.CnXRuPt4.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/0.CnXRuPt4.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/2.CGnCsn5q.css +0 -34
- package/frontend/build/client/_app/immutable/assets/2.CGnCsn5q.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/2.CGnCsn5q.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/3.BVnUajEa.css +0 -34
- package/frontend/build/client/_app/immutable/assets/3.BVnUajEa.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/3.BVnUajEa.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/4.DBhBrHFz.css +0 -34
- package/frontend/build/client/_app/immutable/assets/4.DBhBrHFz.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/4.DBhBrHFz.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/5.D93VAB-w.css +0 -34
- package/frontend/build/client/_app/immutable/assets/5.D93VAB-w.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/5.D93VAB-w.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/Badge.DLLowvEA.css +0 -34
- package/frontend/build/client/_app/immutable/assets/Button.cBruH0aD.css +0 -34
- package/frontend/build/client/_app/immutable/assets/Button.cBruH0aD.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/Button.cBruH0aD.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_layout.D7eM-6MV.css +0 -34
- package/frontend/build/client/_app/immutable/assets/_layout.D7eM-6MV.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_layout.D7eM-6MV.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.BVnUajEa.css +0 -34
- package/frontend/build/client/_app/immutable/assets/_page.BVnUajEa.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.BVnUajEa.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.CGnCsn5q.css +0 -34
- package/frontend/build/client/_app/immutable/assets/_page.CGnCsn5q.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.CGnCsn5q.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.DBhBrHFz.css +0 -34
- package/frontend/build/client/_app/immutable/assets/_page.DBhBrHFz.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.DBhBrHFz.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.DOqo0UR4.css +0 -34
- package/frontend/build/client/_app/immutable/assets/_page.DOqo0UR4.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.DOqo0UR4.css.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/B0bn91RF.js +0 -18
- package/frontend/build/client/_app/immutable/chunks/B0bn91RF.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/B0bn91RF.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/B1kE5jmt.js +0 -23
- package/frontend/build/client/_app/immutable/chunks/B1kE5jmt.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/B1kE5jmt.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/BKz6FZdB.js +0 -18
- package/frontend/build/client/_app/immutable/chunks/BKz6FZdB.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/Be4iUAB0.js +0 -18
- package/frontend/build/client/_app/immutable/chunks/Be4iUAB0.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/Be4iUAB0.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/BpaMqo9O.js +0 -18
- package/frontend/build/client/_app/immutable/chunks/BpaMqo9O.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/BpaMqo9O.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/Bt3-Z7H1.js +0 -18
- package/frontend/build/client/_app/immutable/chunks/Bt3-Z7H1.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/Bt3-Z7H1.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/Cit9MuSg.js +0 -20
- package/frontend/build/client/_app/immutable/chunks/Cit9MuSg.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/Cit9MuSg.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/CwBTqcbj.js +0 -18
- package/frontend/build/client/_app/immutable/chunks/CwBTqcbj.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/CwBTqcbj.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/DBk3zeq4.js +0 -18
- package/frontend/build/client/_app/immutable/chunks/DBk3zeq4.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DBk3zeq4.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/DFJLQFic.js +0 -18
- package/frontend/build/client/_app/immutable/chunks/DFJLQFic.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DFJLQFic.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/DTUE7kkY.js +0 -18
- package/frontend/build/client/_app/immutable/chunks/DTUE7kkY.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DTUE7kkY.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/IYPwzKs_.js +0 -20
- package/frontend/build/client/_app/immutable/chunks/IYPwzKs_.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/IYPwzKs_.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/oc0we5Us.js +0 -18
- package/frontend/build/client/_app/immutable/chunks/oc0we5Us.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/oc0we5Us.js.gz +0 -0
- package/frontend/build/client/_app/immutable/entry/app.C2MbX06K.js +0 -19
- package/frontend/build/client/_app/immutable/entry/app.C2MbX06K.js.br +0 -0
- package/frontend/build/client/_app/immutable/entry/app.C2MbX06K.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/0.BsCYK-Tn.js +0 -21
- package/frontend/build/client/_app/immutable/nodes/0.BsCYK-Tn.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/0.BsCYK-Tn.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/1.N4gjrCnX.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/1.N4gjrCnX.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/2.D9yQNzK8.js +0 -18
- package/frontend/build/client/_app/immutable/nodes/2.D9yQNzK8.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/2.D9yQNzK8.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/3.CBC5WvNb.js +0 -18
- package/frontend/build/client/_app/immutable/nodes/3.CBC5WvNb.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/3.CBC5WvNb.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/4.BU6UZHSE.js +0 -19
- package/frontend/build/client/_app/immutable/nodes/4.BU6UZHSE.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/4.BU6UZHSE.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/5.Dzzfrntl.js +0 -18
- package/frontend/build/client/_app/immutable/nodes/5.Dzzfrntl.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/5.Dzzfrntl.js.gz +0 -0
- package/frontend/build/client/favicon.png +0 -0
- package/frontend/build/server/chunks/0-BFfqmlsS.js +0 -26
- package/frontend/build/server/chunks/0-BFfqmlsS.js.map +0 -17
- package/frontend/build/server/chunks/2-BSZWXCWp.js.map +0 -17
- package/frontend/build/server/chunks/3-BYumY9dv.js.map +0 -17
- package/frontend/build/server/chunks/4-2UUrCVtM.js.map +0 -17
- package/frontend/build/server/chunks/5-C2_y_fwT.js.map +0 -17
- package/frontend/build/server/chunks/Badge-CC4U7C0c.js.map +0 -17
- package/frontend/build/server/chunks/Button-BLkPicwS.js.map +0 -17
- package/frontend/build/server/chunks/_layout.svelte-Bfxcj9C6.js +0 -183
- package/frontend/build/server/chunks/_layout.svelte-Bfxcj9C6.js.map +0 -17
- package/frontend/build/server/chunks/_page.svelte-DEK6UvaI.js +0 -45
- package/frontend/build/server/chunks/_page.svelte-DEK6UvaI.js.map +0 -17
- package/frontend/build/server/chunks/_page.svelte-DScVdHOq.js +0 -142
- package/frontend/build/server/chunks/_page.svelte-DScVdHOq.js.map +0 -17
- package/frontend/build/server/chunks/_page.svelte-Ns7w2sZt.js +0 -180
- package/frontend/build/server/chunks/_page.svelte-Ns7w2sZt.js.map +0 -17
- package/frontend/build/server/chunks/_page.svelte-s6ZIOitT.js.map +0 -17
- package/frontend/build/server/chunks/client-C9IaEwNo.js.map +0 -17
- package/frontend/build/server/chunks/exports-OxlCJ8yE.js.map +0 -17
- package/frontend/build/server/chunks/index-CjHlq1kt.js.map +0 -17
- package/frontend/build/server/chunks/reports-D3ZeYSmi.js.map +0 -17
|
@@ -39,7 +39,9 @@
|
|
|
39
39
|
updateRunner,
|
|
40
40
|
deleteRunner,
|
|
41
41
|
pingRunner,
|
|
42
|
-
probeRunner
|
|
42
|
+
probeRunner,
|
|
43
|
+
stopRunner,
|
|
44
|
+
restartRunner
|
|
43
45
|
} from '$lib/api/runners';
|
|
44
46
|
import { fetchPrefixes, savePrefixes, migratePrefixes } from '$lib/api/repository';
|
|
45
47
|
import { updateProfile, changePassword } from '$lib/api/auth';
|
|
@@ -51,10 +53,11 @@
|
|
|
51
53
|
import { builtInEnabled } from '$lib/stores/runner';
|
|
52
54
|
import { auth } from '$lib/stores/auth';
|
|
53
55
|
import { theme } from '$lib/stores/theme';
|
|
54
|
-
import { BROWSERS, TOAST_TIMEOUT_MS } from '$lib/constants';
|
|
56
|
+
import { API_BASE, BROWSERS, TOAST_TIMEOUT_MS, MAX_TEST_RETRIES } from '$lib/constants';
|
|
55
57
|
import Button from '$lib/components/ui/Button.svelte';
|
|
56
58
|
import Toast from '$lib/components/ui/Toast.svelte';
|
|
57
59
|
import ConfirmModal from '$lib/components/ui/ConfirmModal.svelte';
|
|
60
|
+
import Badge from '$lib/components/ui/Badge.svelte';
|
|
58
61
|
|
|
59
62
|
/** @type {'project' | 'runners' | 'repository' | 'integrations' | 'mcp' | 'account' | 'users' | 'backup'} */
|
|
60
63
|
let section =
|
|
@@ -68,7 +71,7 @@
|
|
|
68
71
|
} catch {}
|
|
69
72
|
}
|
|
70
73
|
|
|
71
|
-
let project = { name: '', logoUrl: '', timezone: 'UTC' };
|
|
74
|
+
let project = { name: '', logoUrl: '', timezone: 'UTC', maxRetries: 0 };
|
|
72
75
|
let projectSaving = false;
|
|
73
76
|
let toast = null;
|
|
74
77
|
|
|
@@ -114,6 +117,7 @@
|
|
|
114
117
|
let mcpGenerating = false;
|
|
115
118
|
let mcpKeyCopied = false;
|
|
116
119
|
let mcpSnippetCopied = false;
|
|
120
|
+
let ciSnippetCopied = false;
|
|
117
121
|
|
|
118
122
|
let backupConfig = {
|
|
119
123
|
backupEnabled: false,
|
|
@@ -140,6 +144,8 @@
|
|
|
140
144
|
let runnerFormSaving = false;
|
|
141
145
|
let runnerFormOpen = false;
|
|
142
146
|
let pingResults = {};
|
|
147
|
+
let stoppingId = null;
|
|
148
|
+
let restartingId = null;
|
|
143
149
|
let editingId = null;
|
|
144
150
|
let editForm = { name: '', url: '', token: '', browser: 'chromium' };
|
|
145
151
|
let editFormError = '';
|
|
@@ -278,6 +284,51 @@
|
|
|
278
284
|
}
|
|
279
285
|
}
|
|
280
286
|
|
|
287
|
+
async function refreshPing(id) {
|
|
288
|
+
pingResults = { ...pingResults, [id]: { loading: true } };
|
|
289
|
+
try {
|
|
290
|
+
const result = await pingRunner(id);
|
|
291
|
+
pingResults = { ...pingResults, [id]: { ...result, loading: false } };
|
|
292
|
+
} catch {
|
|
293
|
+
pingResults = { ...pingResults, [id]: { ok: false, error: 'Network error', loading: false } };
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
async function handleStopRunner(id, name) {
|
|
298
|
+
stoppingId = id;
|
|
299
|
+
try {
|
|
300
|
+
const result = await stopRunner(id);
|
|
301
|
+
if (result.ok) {
|
|
302
|
+
showToast('success', `Runner "${name}" stopped.`);
|
|
303
|
+
} else {
|
|
304
|
+
showToast('error', `Could not stop "${name}": ${result.error ?? 'unknown error'}`);
|
|
305
|
+
}
|
|
306
|
+
} catch {
|
|
307
|
+
showToast('error', `Could not stop "${name}".`);
|
|
308
|
+
} finally {
|
|
309
|
+
stoppingId = null;
|
|
310
|
+
refreshPing(id);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
async function handleRestartRunner(id, name) {
|
|
315
|
+
restartingId = id;
|
|
316
|
+
try {
|
|
317
|
+
const result = await restartRunner(id);
|
|
318
|
+
if (result.ok) {
|
|
319
|
+
showToast('success', `Runner "${name}" restarting…`);
|
|
320
|
+
} else {
|
|
321
|
+
showToast('error', `Could not restart "${name}": ${result.error ?? 'unknown error'}`);
|
|
322
|
+
}
|
|
323
|
+
} catch {
|
|
324
|
+
showToast('error', `Could not restart "${name}".`);
|
|
325
|
+
} finally {
|
|
326
|
+
restartingId = null;
|
|
327
|
+
// Give the replacement process a moment to bind before checking on it.
|
|
328
|
+
setTimeout(() => refreshPing(id), 2000);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
|
|
281
332
|
function startEdit(r) {
|
|
282
333
|
editingId = r.id;
|
|
283
334
|
editForm = { name: r.name, url: r.url, token: r.token, browser: r.browser };
|
|
@@ -497,6 +548,13 @@
|
|
|
497
548
|
});
|
|
498
549
|
}
|
|
499
550
|
|
|
551
|
+
function handleCopyCiSnippet() {
|
|
552
|
+
navigator.clipboard.writeText(ciWorkflowSnippet).then(() => {
|
|
553
|
+
ciSnippetCopied = true;
|
|
554
|
+
setTimeout(() => (ciSnippetCopied = false), 1500);
|
|
555
|
+
});
|
|
556
|
+
}
|
|
557
|
+
|
|
500
558
|
async function handleSaveIntegrations() {
|
|
501
559
|
integrationsSaving = true;
|
|
502
560
|
try {
|
|
@@ -586,6 +644,15 @@
|
|
|
586
644
|
2
|
|
587
645
|
);
|
|
588
646
|
|
|
647
|
+
$: ciWorkflowSnippet = [
|
|
648
|
+
'- name: Run Plum tests',
|
|
649
|
+
' run: |',
|
|
650
|
+
` curl -X POST ${API_BASE}/trigger \\`,
|
|
651
|
+
' -H "Authorization: ApiKey ${{ secrets.PLUM_API_KEY }}" \\',
|
|
652
|
+
' -H "Content-Type: application/json" \\',
|
|
653
|
+
' -d \'{"tag": "@smoke", "baseUrl": "https://your-pr-preview-url"}\''
|
|
654
|
+
].join('\n');
|
|
655
|
+
|
|
589
656
|
const ADMIN_SECTIONS = new Set([
|
|
590
657
|
'project',
|
|
591
658
|
'runners',
|
|
@@ -699,6 +766,24 @@
|
|
|
699
766
|
</select>
|
|
700
767
|
</div>
|
|
701
768
|
|
|
769
|
+
<div class="field">
|
|
770
|
+
<label class="field-label" for="project-max-retries">
|
|
771
|
+
<span>Retry failed tests</span>
|
|
772
|
+
<span class="field-hint">
|
|
773
|
+
Automatically re-run failed scenarios up to this many times before finalizing the
|
|
774
|
+
report. 0 disables retries.
|
|
775
|
+
</span>
|
|
776
|
+
</label>
|
|
777
|
+
<input
|
|
778
|
+
id="project-max-retries"
|
|
779
|
+
type="number"
|
|
780
|
+
class="field-input"
|
|
781
|
+
min="0"
|
|
782
|
+
max={MAX_TEST_RETRIES}
|
|
783
|
+
bind:value={project.maxRetries}
|
|
784
|
+
/>
|
|
785
|
+
</div>
|
|
786
|
+
|
|
702
787
|
<!-- Dark mode toggle -->
|
|
703
788
|
<div class="toggle-row">
|
|
704
789
|
<div class="toggle-info">
|
|
@@ -860,6 +945,20 @@
|
|
|
860
945
|
<p class="runner-card-url">{r.url}</p>
|
|
861
946
|
<div class="runner-card-actions">
|
|
862
947
|
<Button variant="ghost" size="sm" on:click={() => startEdit(r)}>Edit</Button>
|
|
948
|
+
<Button
|
|
949
|
+
variant="ghost"
|
|
950
|
+
size="sm"
|
|
951
|
+
disabled={restartingId === r.id}
|
|
952
|
+
on:click={() => handleRestartRunner(r.id, r.name)}
|
|
953
|
+
>{restartingId === r.id ? 'Restarting…' : 'Restart'}</Button
|
|
954
|
+
>
|
|
955
|
+
<Button
|
|
956
|
+
variant="ghost"
|
|
957
|
+
size="sm"
|
|
958
|
+
disabled={stoppingId === r.id}
|
|
959
|
+
on:click={() => handleStopRunner(r.id, r.name)}
|
|
960
|
+
>{stoppingId === r.id ? 'Stopping…' : 'Stop'}</Button
|
|
961
|
+
>
|
|
863
962
|
<Button
|
|
864
963
|
variant="danger"
|
|
865
964
|
size="sm"
|
|
@@ -1096,6 +1195,27 @@
|
|
|
1096
1195
|
{integrationsSaving ? 'Saving…' : 'Save Integrations'}
|
|
1097
1196
|
</Button>
|
|
1098
1197
|
</div>
|
|
1198
|
+
|
|
1199
|
+
<div class="card settings-card">
|
|
1200
|
+
<p class="card-title">CI / External Triggers</p>
|
|
1201
|
+
<p class="content-desc">
|
|
1202
|
+
Trigger a Plum run from GitHub Actions (e.g. on a pull request, against its preview
|
|
1203
|
+
deployment) or any other external script by calling <code class="code-sample"
|
|
1204
|
+
>POST {API_BASE}/trigger</code
|
|
1205
|
+
>
|
|
1206
|
+
with an
|
|
1207
|
+
<code class="code-sample">Authorization: ApiKey …</code> header. Generate a key on the
|
|
1208
|
+
<button class="link-btn" on:click={() => setSection('mcp')}>MCP tab</button>
|
|
1209
|
+
and store it as a repo secret — never commit it directly. Runs triggered this way show up
|
|
1210
|
+
in Reports tagged <Badge variant="external">External</Badge>.
|
|
1211
|
+
</p>
|
|
1212
|
+
<pre class="mcp-snippet">{ciWorkflowSnippet}</pre>
|
|
1213
|
+
<div class="card-footer">
|
|
1214
|
+
<Button variant="ghost" on:click={handleCopyCiSnippet}>
|
|
1215
|
+
{ciSnippetCopied ? 'Copied!' : 'Copy Workflow Step'}
|
|
1216
|
+
</Button>
|
|
1217
|
+
</div>
|
|
1218
|
+
</div>
|
|
1099
1219
|
</div>
|
|
1100
1220
|
|
|
1101
1221
|
<!-- MCP -->
|
|
@@ -1946,6 +2066,7 @@
|
|
|
1946
2066
|
.runner-card-actions {
|
|
1947
2067
|
display: flex;
|
|
1948
2068
|
align-items: center;
|
|
2069
|
+
flex-wrap: wrap;
|
|
1949
2070
|
gap: 0.375rem;
|
|
1950
2071
|
padding-left: calc(13px + 0.5rem);
|
|
1951
2072
|
margin-top: 0.125rem;
|
|
@@ -2201,6 +2322,16 @@
|
|
|
2201
2322
|
border-radius: 3px;
|
|
2202
2323
|
}
|
|
2203
2324
|
|
|
2325
|
+
.link-btn {
|
|
2326
|
+
font: inherit;
|
|
2327
|
+
color: var(--accent);
|
|
2328
|
+
background: none;
|
|
2329
|
+
border: none;
|
|
2330
|
+
padding: 0;
|
|
2331
|
+
cursor: pointer;
|
|
2332
|
+
text-decoration: underline;
|
|
2333
|
+
}
|
|
2334
|
+
|
|
2204
2335
|
.account-info {
|
|
2205
2336
|
display: flex;
|
|
2206
2337
|
flex-direction: column;
|
package/package.json
CHANGED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
*
|
|
4
|
-
* Plum is free software: you can redistribute it and/or modify
|
|
5
|
-
* it under the terms of the GNU General Public License as published by
|
|
6
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
7
|
-
* (at your option) any later version.
|
|
8
|
-
*
|
|
9
|
-
* Plum is distributed in the hope that it will be useful,
|
|
10
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
* GNU General Public License for more details.
|
|
13
|
-
*
|
|
14
|
-
* You should have received a copy of the GNU General Public License
|
|
15
|
-
* along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
/*
|
|
19
|
-
This file is part of Plum.
|
|
20
|
-
|
|
21
|
-
Plum is free software: you can redistribute it and/or modify
|
|
22
|
-
it under the terms of the GNU General Public License as published by
|
|
23
|
-
the Free Software Foundation, either version 3 of the License, or
|
|
24
|
-
(at your option) any later version.
|
|
25
|
-
|
|
26
|
-
Plum is distributed in the hope that it will be useful,
|
|
27
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
28
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
29
|
-
GNU General Public License for more details.
|
|
30
|
-
|
|
31
|
-
You should have received a copy of the GNU General Public License
|
|
32
|
-
along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
33
|
-
*/
|
|
34
|
-
.badge.svelte-imjoo5{display:inline-flex;align-items:center;font-size:.68rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;padding:.2rem .6rem;border-radius:100px;white-space:nowrap}.pass.svelte-imjoo5{background:var(--pass-soft);color:var(--pass)}.fail.svelte-imjoo5{background:var(--fail-soft);color:var(--fail)}.tag.svelte-imjoo5{background:var(--accent-soft);color:var(--accent)}.schedule.svelte-imjoo5{background:var(--warn-soft);color:var(--warn)}.neutral.svelte-imjoo5{background:var(--bg-subtle);color:var(--text-muted);border:1px solid var(--border)}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
*
|
|
4
|
-
* Plum is free software: you can redistribute it and/or modify
|
|
5
|
-
* it under the terms of the GNU General Public License as published by
|
|
6
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
7
|
-
* (at your option) any later version.
|
|
8
|
-
*
|
|
9
|
-
* Plum is distributed in the hope that it will be useful,
|
|
10
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
* GNU General Public License for more details.
|
|
13
|
-
*
|
|
14
|
-
* You should have received a copy of the GNU General Public License
|
|
15
|
-
* along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
/*
|
|
19
|
-
This file is part of Plum.
|
|
20
|
-
|
|
21
|
-
Plum is free software: you can redistribute it and/or modify
|
|
22
|
-
it under the terms of the GNU General Public License as published by
|
|
23
|
-
the Free Software Foundation, either version 3 of the License, or
|
|
24
|
-
(at your option) any later version.
|
|
25
|
-
|
|
26
|
-
Plum is distributed in the hope that it will be useful,
|
|
27
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
28
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
29
|
-
GNU General Public License for more details.
|
|
30
|
-
|
|
31
|
-
You should have received a copy of the GNU General Public License
|
|
32
|
-
along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
33
|
-
*/
|
|
34
|
-
.btn.svelte-1mw9qtj{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;font-family:var(--font-body);font-weight:400;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;white-space:nowrap;text-decoration:none;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out),opacity var(--duration-fast)}.btn.svelte-1mw9qtj:active:not(:disabled){transform:scale(.97)}.btn.svelte-1mw9qtj:disabled{opacity:.38;cursor:not-allowed}.sm.svelte-1mw9qtj{font-size:.75rem;padding:.3rem .75rem;border-radius:var(--radius-sm)}.md.svelte-1mw9qtj{font-size:.875rem;padding:.55rem 1.25rem}.primary.svelte-1mw9qtj{background:var(--accent);color:#fff;border-color:var(--accent)}.primary.svelte-1mw9qtj:hover:not(:disabled){filter:brightness(1.12);box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 30%,transparent)}.ghost.svelte-1mw9qtj{background:transparent;color:var(--text-muted);border-color:var(--border)}.ghost.svelte-1mw9qtj:hover:not(:disabled){background:var(--bg-subtle);color:var(--text);border-color:var(--text-muted)}.danger.svelte-1mw9qtj{background:transparent;color:var(--fail);border-color:var(--fail)}.danger.svelte-1mw9qtj:hover:not(:disabled){background:var(--fail-soft)}.outline.svelte-1mw9qtj{background:transparent;color:var(--accent);border-color:var(--accent)}.outline.svelte-1mw9qtj:hover:not(:disabled){background:var(--accent-soft)}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
*
|
|
4
|
-
* Plum is free software: you can redistribute it and/or modify
|
|
5
|
-
* it under the terms of the GNU General Public License as published by
|
|
6
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
7
|
-
* (at your option) any later version.
|
|
8
|
-
*
|
|
9
|
-
* Plum is distributed in the hope that it will be useful,
|
|
10
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
* GNU General Public License for more details.
|
|
13
|
-
*
|
|
14
|
-
* You should have received a copy of the GNU General Public License
|
|
15
|
-
* along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
/*
|
|
19
|
-
This file is part of Plum.
|
|
20
|
-
|
|
21
|
-
Plum is free software: you can redistribute it and/or modify
|
|
22
|
-
it under the terms of the GNU General Public License as published by
|
|
23
|
-
the Free Software Foundation, either version 3 of the License, or
|
|
24
|
-
(at your option) any later version.
|
|
25
|
-
|
|
26
|
-
Plum is distributed in the hope that it will be useful,
|
|
27
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
28
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
29
|
-
GNU General Public License for more details.
|
|
30
|
-
|
|
31
|
-
You should have received a copy of the GNU General Public License
|
|
32
|
-
along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
33
|
-
*/
|
|
34
|
-
*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.block{display:block}.flex{display:flex}.table{display:table}.contents{display:contents}.hidden{display:none}.flex-shrink{flex-shrink:1}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.flex-wrap{flex-wrap:wrap}.border{border-width:1px}.uppercase{text-transform:uppercase}.outline{outline-style:solid}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}:root{--bg: #fdfcfb;--bg-subtle: #f7f6f4;--bg-elevated: #ffffff;--border: #e9e5df;--text: #18160f;--text-muted: #9c9185;--accent: #5c1b87;--accent-soft: #f3eaff;--pass: #16a34a;--pass-soft: #dcfce7;--fail: #dc2626;--fail-soft: #fee2e2;--warn: #d97706;--warn-soft: #fef3c7;--terminal-bg: #0d0c08;--terminal-text: #d6d0c8;--font-display: "Playfair Display", Georgia, serif;--font-body: "DM Sans", system-ui, -apple-system, sans-serif;--ease-out: cubic-bezier(.16, 1, .3, 1);--duration-fast: .14s;--duration-base: .24s;--duration-slow: .4s;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px}[data-theme=dark]{--bg: #101009;--bg-subtle: #1a1910;--bg-elevated: #201f14;--border: #2e2c1e;--text: #f0ede6;--text-muted: #706a5e;--accent: #d0a5f5;--accent-soft: #1b0d30;--pass: #22c55e;--pass-soft: #0d2118;--fail: #f87171;--fail-soft: #2d1010;--warn: #fbbf24;--warn-soft: #2a1f06;--terminal-bg: #080807;--terminal-text: #cbc5bd}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);font-weight:300;font-size:1rem;line-height:1.65;background-color:var(--bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.07'/%3E%3C/svg%3E");background-size:200px 200px;color:var(--text);transition:background-color var(--duration-base) var(--ease-out),color var(--duration-base) var(--ease-out);-webkit-font-smoothing:antialiased}h1{font-family:var(--font-display);font-weight:400;line-height:1.1;letter-spacing:-.015em;color:var(--text)}h2,h3{font-family:var(--font-display);font-weight:400;line-height:1.2;color:var(--text)}a{color:inherit;text-decoration:none}button{font-family:var(--font-body)}.field{display:flex;flex-direction:column;gap:.375rem}.field-label{display:flex;justify-content:space-between;font-size:.8125rem;font-weight:400;color:var(--text-muted)}.field-hint{font-size:.75rem;color:var(--text-muted)}.field-input{width:100%;padding:.6rem .875rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-subtle);color:var(--text);font-family:var(--font-body);font-size:.875rem;font-weight:300;outline:none;transition:border-color var(--duration-fast),box-shadow var(--duration-fast);-webkit-appearance:none;-moz-appearance:none;appearance:none}.field-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field-input:disabled{opacity:.5;cursor:not-allowed}.field-input::-moz-placeholder{color:var(--text-muted)}.field-input::placeholder{color:var(--text-muted)}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table th{text-align:left;padding:.5rem 1rem;font-family:var(--font-body);font-weight:500;font-size:.7rem;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border)}.data-table td{padding:.875rem 1rem;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;transition:background var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out)}.card-title{font-family:var(--font-display);font-size:1.25rem;font-weight:400;color:var(--text);margin-bottom:.25rem}.card-subtitle{font-size:.8125rem;color:var(--text-muted);margin-bottom:1.25rem}.alert{display:flex;align-items:center;gap:.625rem;padding:.75rem 1rem;border-radius:var(--radius-md);font-size:.875rem;font-weight:400}.alert-success{background:var(--pass-soft);color:var(--pass)}.alert-error{background:var(--fail-soft);color:var(--fail)}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.nav.svelte-6bgush{position:sticky;top:0;z-index:40;background:var(--bg);border-bottom:1px solid var(--border);transition:background var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out)}.inner.svelte-6bgush{max-width:1200px;margin:0 auto;padding:0 1.5rem;height:56px;display:flex;align-items:center;gap:2rem}.brand.svelte-6bgush{font-size:1.2rem;letter-spacing:-.02em;flex-shrink:0;text-decoration:none}.brand-serif.svelte-6bgush{font-family:var(--font-display);font-weight:400;color:var(--accent)}.brand-sans.svelte-6bgush{font-family:var(--font-body);font-weight:400;color:var(--text)}.links.svelte-6bgush{display:flex;gap:.125rem;flex:1}.link.svelte-6bgush{font-size:.875rem;font-weight:400;color:var(--text-muted);text-decoration:none;padding:.35rem .75rem;border-radius:var(--radius-sm);transition:color var(--duration-fast),background var(--duration-fast)}.link.svelte-6bgush:hover{color:var(--text);background:var(--bg-subtle)}.link.active.svelte-6bgush{color:var(--accent);background:var(--accent-soft)}.actions.svelte-6bgush{display:flex;align-items:center;gap:.5rem;margin-left:auto}.theme-btn.svelte-6bgush{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast)}.theme-btn.svelte-6bgush:hover{background:var(--bg-subtle);color:var(--text);border-color:var(--text-muted)}.hamburger.svelte-6bgush{display:none;flex-direction:column;justify-content:center;gap:4px;width:34px;height:34px;background:none;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:0 8px}.hamburger.svelte-6bgush span:where(.svelte-6bgush){display:block;width:100%;height:1.5px;background:var(--text-muted);border-radius:2px;transform-origin:center;transition:transform var(--duration-base) var(--ease-out),opacity var(--duration-fast)}.hamburger.svelte-6bgush span.rotated:where(.svelte-6bgush){transform:translateY(5.5px) rotate(45deg)}.hamburger.svelte-6bgush span.hidden:where(.svelte-6bgush){opacity:0}.hamburger.svelte-6bgush span.rotated-reverse:where(.svelte-6bgush){transform:translateY(-5.5px) rotate(-45deg)}.mobile-menu.svelte-6bgush{border-top:1px solid var(--border);padding:.75rem 1.5rem 1rem;display:flex;flex-direction:column;gap:.125rem}.mobile-link.svelte-6bgush{color:var(--text-muted);text-decoration:none;font-size:.9375rem;font-weight:400;padding:.5rem .75rem;border-radius:var(--radius-sm);transition:background var(--duration-fast),color var(--duration-fast)}.mobile-link.svelte-6bgush:hover,.mobile-link.active.svelte-6bgush{background:var(--bg-subtle);color:var(--text)}.mobile-link.active.svelte-6bgush{color:var(--accent);background:var(--accent-soft)}@media (max-width: 640px){.links.svelte-6bgush{display:none}.hamburger.svelte-6bgush{display:flex}}.shell.svelte-28zx1m{max-width:1200px;margin:0 auto;padding:2.5rem 1.5rem 5rem}.terminal-wrap.svelte-olniy1{border-radius:var(--radius-md);overflow:hidden;border:1px solid rgba(255,255,255,.06)}.terminal-bar.svelte-olniy1{display:flex;align-items:center;gap:6px;padding:.6rem .875rem;background:#0000004d}.dot.svelte-olniy1{display:block;width:10px;height:10px;border-radius:50%}.red.svelte-olniy1{background:#ff5f57}.yellow.svelte-olniy1{background:#febc2e}.green.svelte-olniy1{background:#28c840}.terminal.svelte-olniy1{font-family:JetBrains Mono,Fira Code,Cascadia Code,Courier New,monospace;font-size:.78rem;line-height:1.75;background:var(--terminal-bg);color:var(--terminal-text);padding:1rem;min-height:220px;max-height:280px;overflow-y:auto;white-space:pre-wrap;word-break:break-word;margin:0}.terminal.svelte-olniy1::-webkit-scrollbar{width:4px}.terminal.svelte-olniy1::-webkit-scrollbar-track{background:transparent}.terminal.svelte-olniy1::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.panel.svelte-ynu3lh{position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--bg-elevated);border-top:1px solid var(--border);box-shadow:0 -4px 24px #0000000f;transition:box-shadow var(--duration-base) var(--ease-out)}.panel.expanded.svelte-ynu3lh{box-shadow:0 -8px 40px #0000001a}.bar.svelte-ynu3lh{display:flex;align-items:center;gap:.75rem;padding:0 1.5rem;height:48px;cursor:default}.bar-left.svelte-ynu3lh{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.status-dot.svelte-ynu3lh{flex-shrink:0;width:8px;height:8px;border-radius:50%;transition:background var(--duration-base)}.status-dot.pulse.svelte-ynu3lh{animation:svelte-ynu3lh-statusPulse 1.6s ease-in-out infinite}@keyframes svelte-ynu3lh-statusPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}.status-label.svelte-ynu3lh{font-size:.7rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);flex-shrink:0}.run-id.svelte-ynu3lh{font-size:.75rem;color:var(--text-muted);font-family:JetBrains Mono,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-dots.svelte-ynu3lh{display:flex;align-items:center;gap:4px;flex-shrink:0}.dot.svelte-ynu3lh{width:7px;height:7px;border-radius:50%;background:var(--border);transition:background var(--duration-base),transform var(--duration-fast)}.dot.running.svelte-ynu3lh{background:var(--pass);animation:svelte-ynu3lh-dotBeat 1.4s ease-in-out infinite}.dot.pass.svelte-ynu3lh{background:var(--pass)}.dot.fail.svelte-ynu3lh{background:var(--fail)}@keyframes svelte-ynu3lh-dotBeat{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.65)}}.expand-btn.svelte-ynu3lh{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-muted);cursor:pointer;flex-shrink:0;transition:background var(--duration-fast),color var(--duration-fast)}.expand-btn.svelte-ynu3lh:hover{background:var(--bg-subtle);color:var(--text)}.expand-btn.svelte-ynu3lh svg:where(.svelte-ynu3lh){transition:transform var(--duration-base) var(--ease-out)}.expand-btn.svelte-ynu3lh svg.rotated:where(.svelte-ynu3lh){transform:rotate(180deg)}.body.svelte-ynu3lh{padding:.875rem 1.5rem 1.125rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.75rem}.controls.svelte-ynu3lh{display:flex;align-items:center;gap:.625rem}.run-input.svelte-ynu3lh{flex:1}.workers-control.svelte-ynu3lh{display:flex;gap:2px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px;flex-shrink:0}.worker-btn.svelte-ynu3lh{font-family:var(--font-body);font-size:.75rem;font-weight:400;min-width:2rem;padding:.2rem .5rem;border:none;border-radius:4px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast)}.worker-btn.svelte-ynu3lh:hover:not(.active){background:var(--bg-elevated);color:var(--text)}.worker-btn.active.svelte-ynu3lh{background:var(--bg-elevated);color:var(--accent);font-weight:500;box-shadow:0 1px 3px #00000014}.report-row.svelte-ynu3lh{display:flex}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
*
|
|
4
|
-
* Plum is free software: you can redistribute it and/or modify
|
|
5
|
-
* it under the terms of the GNU General Public License as published by
|
|
6
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
7
|
-
* (at your option) any later version.
|
|
8
|
-
*
|
|
9
|
-
* Plum is distributed in the hope that it will be useful,
|
|
10
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
* GNU General Public License for more details.
|
|
13
|
-
*
|
|
14
|
-
* You should have received a copy of the GNU General Public License
|
|
15
|
-
* along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
/*
|
|
19
|
-
This file is part of Plum.
|
|
20
|
-
|
|
21
|
-
Plum is free software: you can redistribute it and/or modify
|
|
22
|
-
it under the terms of the GNU General Public License as published by
|
|
23
|
-
the Free Software Foundation, either version 3 of the License, or
|
|
24
|
-
(at your option) any later version.
|
|
25
|
-
|
|
26
|
-
Plum is distributed in the hope that it will be useful,
|
|
27
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
28
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
29
|
-
GNU General Public License for more details.
|
|
30
|
-
|
|
31
|
-
You should have received a copy of the GNU General Public License
|
|
32
|
-
along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
33
|
-
*/
|
|
34
|
-
.pagination.svelte-tsubiy{display:flex;align-items:center;justify-content:center;gap:.25rem}button.svelte-tsubiy{min-width:2rem;height:2rem;padding:0 .25rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-muted);font-family:var(--font-body);font-size:.8125rem;cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast)}button.svelte-tsubiy:disabled{opacity:.3;cursor:not-allowed}button.active.svelte-tsubiy{background:var(--accent);color:#fff;border-color:var(--accent)}button.svelte-tsubiy:hover:not(:disabled):not(.active){background:var(--bg-subtle);color:var(--text)}.page-header.svelte-wxbf05{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.header-top.svelte-wxbf05{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}h1.svelte-wxbf05{font-size:2.5rem;margin-bottom:.25rem}.subtitle.svelte-wxbf05{color:var(--text-muted);font-size:.875rem}.rate-display.svelte-wxbf05{display:flex;flex-direction:column;align-items:flex-end;gap:.1rem}.rate-number.svelte-wxbf05{font-family:var(--font-display);font-size:2.75rem;line-height:1;font-weight:400}.rate-number.pass.svelte-wxbf05{color:var(--pass)}.rate-number.warn.svelte-wxbf05{color:var(--warn)}.rate-number.fail.svelte-wxbf05{color:var(--fail)}.rate-label.svelte-wxbf05{font-size:.75rem;color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase}.stats-bar.svelte-wxbf05{margin-bottom:1rem}.pass-bar-track.svelte-wxbf05{height:3px;background:var(--fail-soft);border-radius:100px;overflow:hidden;margin-bottom:.5rem}.pass-bar-fill.svelte-wxbf05{height:100%;background:var(--pass);border-radius:100px;transition:width .9s var(--ease-out) .1s}.bar-legend.svelte-wxbf05{display:flex;gap:1rem}.legend-pass.svelte-wxbf05{font-size:.75rem;color:var(--pass);font-weight:500}.legend-fail.svelte-wxbf05{font-size:.75rem;color:var(--fail);font-weight:500}.trend-row.svelte-wxbf05{display:flex;align-items:center;gap:.75rem}.trend-label.svelte-wxbf05{font-size:.7rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);flex-shrink:0}.trend-dots.svelte-wxbf05{display:flex;align-items:center;gap:5px}.trend-dot.svelte-wxbf05{width:9px;height:9px;border-radius:50%;transition:transform var(--duration-fast);animation:fadeUp .3s var(--ease-out) both}.trend-dot.svelte-wxbf05:hover{transform:scale(1.4)}.trend-dot.pass.svelte-wxbf05{background:var(--pass)}.trend-dot.fail.svelte-wxbf05{background:var(--fail)}.trend-hint.svelte-wxbf05{font-size:.68rem;color:var(--text-muted);opacity:.6}.report-list.svelte-wxbf05{display:flex;flex-direction:column;gap:.5rem}.report-item.svelte-wxbf05{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1.25rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);text-decoration:none;color:inherit;border-left-width:3px;transition:background var(--duration-fast),transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast);animation:fadeUp .32s var(--ease-out) both}.report-item.svelte-wxbf05:hover{background:var(--bg-subtle);transform:translate(2px);box-shadow:0 2px 12px #0000000a}.report-item.is-pass.svelte-wxbf05{border-left-color:var(--pass)}.report-item.is-fail.svelte-wxbf05{border-left-color:var(--fail)}.item-left.svelte-wxbf05{display:flex;align-items:center;gap:.875rem;min-width:0}.status-mark.svelte-wxbf05{font-size:.875rem;font-weight:600;flex-shrink:0;width:20px;text-align:center}.status-mark.pass.svelte-wxbf05{color:var(--pass)}.status-mark.fail.svelte-wxbf05{color:var(--fail)}.item-meta.svelte-wxbf05{display:flex;align-items:center;gap:.625rem;min-width:0}.item-tags.svelte-wxbf05{font-family:JetBrains Mono,monospace;font-size:.8rem;color:var(--text);white-space:nowrap}.item-badges.svelte-wxbf05{flex-shrink:0}.item-right.svelte-wxbf05{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.item-date.svelte-wxbf05{font-size:.8rem;color:var(--text-muted);white-space:nowrap}.item-arrow.svelte-wxbf05{color:var(--text-muted);transition:transform var(--duration-fast) var(--ease-out),color var(--duration-fast)}.report-item.svelte-wxbf05:hover .item-arrow:where(.svelte-wxbf05){transform:translate(3px);color:var(--text)}.pagination-wrap.svelte-wxbf05{margin-top:1.25rem}.empty.svelte-wxbf05{color:var(--text-muted);font-size:.9375rem;padding:3rem 0;text-align:center}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
*
|
|
4
|
-
* Plum is free software: you can redistribute it and/or modify
|
|
5
|
-
* it under the terms of the GNU General Public License as published by
|
|
6
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
7
|
-
* (at your option) any later version.
|
|
8
|
-
*
|
|
9
|
-
* Plum is distributed in the hope that it will be useful,
|
|
10
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
* GNU General Public License for more details.
|
|
13
|
-
*
|
|
14
|
-
* You should have received a copy of the GNU General Public License
|
|
15
|
-
* along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
/*
|
|
19
|
-
This file is part of Plum.
|
|
20
|
-
|
|
21
|
-
Plum is free software: you can redistribute it and/or modify
|
|
22
|
-
it under the terms of the GNU General Public License as published by
|
|
23
|
-
the Free Software Foundation, either version 3 of the License, or
|
|
24
|
-
(at your option) any later version.
|
|
25
|
-
|
|
26
|
-
Plum is distributed in the hope that it will be useful,
|
|
27
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
28
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
29
|
-
GNU General Public License for more details.
|
|
30
|
-
|
|
31
|
-
You should have received a copy of the GNU General Public License
|
|
32
|
-
along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
33
|
-
*/
|
|
34
|
-
.page-header.svelte-10529e9{margin-bottom:1.75rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.header-top.svelte-10529e9{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}h1.svelte-10529e9{font-size:2.5rem;margin-bottom:.25rem}.subtitle.svelte-10529e9{color:var(--text-muted);font-size:.875rem}.search-row.svelte-10529e9{display:flex;gap:.75rem}.search-wrap.svelte-10529e9{position:relative;flex:1;max-width:480px}.search-icon.svelte-10529e9{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.search-input.svelte-10529e9{width:100%;padding:.55rem .875rem .55rem 2.25rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-subtle);color:var(--text);font-family:var(--font-body);font-size:.875rem;font-weight:300;outline:none;transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}.search-input.svelte-10529e9:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--bg-elevated)}.search-input.svelte-10529e9::-moz-placeholder{color:var(--text-muted)}.search-input.svelte-10529e9::placeholder{color:var(--text-muted)}.search-clear.svelte-10529e9{position:absolute;right:.625rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:none;background:var(--border);color:var(--text-muted);cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast)}.search-clear.svelte-10529e9:hover{background:var(--text-muted);color:var(--bg)}.suites.svelte-10529e9{display:flex;flex-direction:column;gap:1rem}.suite.svelte-10529e9{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:visible;background:var(--bg-elevated);animation:fadeUp .35s var(--ease-out) both}.suite-header.svelte-10529e9{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1.25rem;background:var(--bg-subtle);border-bottom:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.suite-meta.svelte-10529e9{display:flex;align-items:center;gap:.625rem;flex:1;min-width:0}.suite-badges.svelte-10529e9{display:flex;gap:.25rem;flex-shrink:0}.suite-name.svelte-10529e9{font-size:.9rem;font-weight:400;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.suite-count.svelte-10529e9{font-size:.75rem;color:var(--text-muted);flex-shrink:0}.run-btn.svelte-10529e9{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-body);font-size:.75rem;font-weight:400;padding:.3rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-muted);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast)}.run-btn.svelte-10529e9:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.tests.svelte-10529e9{display:flex;flex-direction:column}.test-row.svelte-10529e9{border-bottom:1px solid var(--border);animation:fadeUp .3s var(--ease-out) both}.test-row.svelte-10529e9:last-child{border-bottom:none}.test-main.svelte-10529e9{display:flex;align-items:center;gap:.625rem;padding:.75rem 1.25rem}.run-icon-btn.svelte-10529e9{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;flex-shrink:0;transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast)}.run-icon-btn.svelte-10529e9:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.test-ids.svelte-10529e9{display:flex;gap:.25rem;flex-shrink:0}.id-pill.svelte-10529e9{position:relative;font-size:.68rem;font-weight:500;letter-spacing:.04em;color:var(--accent);background:var(--accent-soft);border:none;border-radius:100px;padding:.15rem .55rem;cursor:pointer;font-family:JetBrains Mono,monospace;transition:background var(--duration-fast),color var(--duration-fast),filter var(--duration-fast)}.id-pill.svelte-10529e9:hover{filter:brightness(.92)}.id-pill.copied.svelte-10529e9{color:var(--pass);background:var(--pass-soft)}.id-pill.copied.svelte-10529e9:after{content:"Copied";position:absolute;left:50%;bottom:calc(100% + 6px);z-index:50;transform:translate(-50%);padding:.16rem .42rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--pass);box-shadow:0 4px 14px #00000014;font-family:var(--font-body);font-size:.65rem;font-weight:500;letter-spacing:0;pointer-events:none;animation:svelte-10529e9-copiedPop 1.4s var(--ease-out) both}.test-name.svelte-10529e9{flex:1;font-size:.875rem;color:var(--text);min-width:0}.outline-badge.svelte-10529e9{display:inline-block;font-size:.62rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;background:var(--warn-soft);color:var(--warn);padding:.1rem .4rem;border-radius:100px;margin-left:.4rem;vertical-align:middle}.steps-toggle.svelte-10529e9{display:inline-flex;align-items:center;gap:.2rem;font-family:var(--font-body);font-size:.72rem;font-weight:400;color:var(--text-muted);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.2rem .5rem;cursor:pointer;flex-shrink:0;transition:background var(--duration-fast),color var(--duration-fast)}.steps-toggle.svelte-10529e9:hover{background:var(--bg-subtle);color:var(--text)}.steps-toggle.svelte-10529e9 svg:where(.svelte-10529e9){transition:transform var(--duration-fast) var(--ease-out)}.steps-toggle.svelte-10529e9 svg.rotated:where(.svelte-10529e9){transform:rotate(90deg)}.steps.svelte-10529e9{padding:.75rem 1.25rem .875rem 3.75rem;background:var(--bg-subtle);border-top:1px solid var(--border)}.step-list.svelte-10529e9{list-style:none;display:flex;flex-direction:column;gap:.3rem}.step.svelte-10529e9{font-size:.8125rem;color:var(--text-muted);font-family:JetBrains Mono,monospace;line-height:1.5;padding-left:1rem;position:relative}.step.svelte-10529e9:before{content:"›";position:absolute;left:0;color:var(--accent);font-family:var(--font-body)}.examples.svelte-10529e9{margin-top:.75rem;padding-top:.75rem;border-top:1px dashed var(--border)}.examples-label.svelte-10529e9{display:block;font-size:.68rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.5rem}.examples-table-wrap.svelte-10529e9{overflow-x:auto}.examples-table.svelte-10529e9{border-collapse:collapse;font-size:.78rem;font-family:JetBrains Mono,monospace;width:auto}.examples-table.svelte-10529e9 th:where(.svelte-10529e9){text-align:left;padding:.3rem .75rem;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);font-family:var(--font-body);font-weight:500}.examples-table.svelte-10529e9 td:where(.svelte-10529e9){padding:.3rem .75rem;color:var(--text-muted);border-bottom:1px solid var(--border)}.examples-table.svelte-10529e9 tbody:where(.svelte-10529e9) tr:where(.svelte-10529e9):last-child td:where(.svelte-10529e9){border-bottom:none}.empty.svelte-10529e9{color:var(--text-muted);font-size:.9375rem;padding:3rem 0;text-align:center}@keyframes svelte-10529e9-copiedPop{0%{opacity:0;transform:translate(-50%,4px) scale(.96)}12%,78%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%,-2px) scale(.98)}}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
*
|
|
4
|
-
* Plum is free software: you can redistribute it and/or modify
|
|
5
|
-
* it under the terms of the GNU General Public License as published by
|
|
6
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
7
|
-
* (at your option) any later version.
|
|
8
|
-
*
|
|
9
|
-
* Plum is distributed in the hope that it will be useful,
|
|
10
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
* GNU General Public License for more details.
|
|
13
|
-
*
|
|
14
|
-
* You should have received a copy of the GNU General Public License
|
|
15
|
-
* along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
/*
|
|
19
|
-
This file is part of Plum.
|
|
20
|
-
|
|
21
|
-
Plum is free software: you can redistribute it and/or modify
|
|
22
|
-
it under the terms of the GNU General Public License as published by
|
|
23
|
-
the Free Software Foundation, either version 3 of the License, or
|
|
24
|
-
(at your option) any later version.
|
|
25
|
-
|
|
26
|
-
Plum is distributed in the hope that it will be useful,
|
|
27
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
28
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
29
|
-
GNU General Public License for more details.
|
|
30
|
-
|
|
31
|
-
You should have received a copy of the GNU General Public License
|
|
32
|
-
along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
33
|
-
*/
|
|
34
|
-
.back-row.svelte-pys2u{margin-bottom:1.5rem}.back-link.svelte-pys2u{display:inline-flex;align-items:center;gap:.35rem;font-size:.8125rem;color:var(--text-muted);text-decoration:none;transition:color var(--duration-fast)}.back-link.svelte-pys2u:hover{color:var(--text)}.report-header.svelte-pys2u{border-radius:var(--radius-lg);border:1px solid var(--border);border-left-width:4px;padding:1.5rem;margin-bottom:2rem;background:var(--bg-elevated);animation:fadeUp .35s var(--ease-out) both}.report-header.pass.svelte-pys2u{border-left-color:var(--pass)}.report-header.fail.svelte-pys2u{border-left-color:var(--fail)}.header-main.svelte-pys2u{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}.header-status.svelte-pys2u{display:flex;align-items:center;gap:1rem}.status-icon.svelte-pys2u{font-size:2rem;line-height:1;font-weight:600}.report-header.pass.svelte-pys2u .status-icon:where(.svelte-pys2u){color:var(--pass)}.report-header.fail.svelte-pys2u .status-icon:where(.svelte-pys2u){color:var(--fail)}h1.svelte-pys2u{font-size:2rem;margin-bottom:.2rem}.header-meta.svelte-pys2u{font-size:.8125rem;color:var(--text-muted);display:flex;align-items:center;gap:.5rem}.mono.svelte-pys2u{font-family:JetBrains Mono,monospace;font-size:.78rem}.header-stats.svelte-pys2u{display:flex;gap:1.5rem;align-items:flex-start;flex-shrink:0}.stat.svelte-pys2u{display:flex;flex-direction:column;align-items:center;gap:.1rem}.stat-num.svelte-pys2u{font-family:var(--font-display);font-size:1.75rem;line-height:1;font-weight:400;color:var(--text)}.stat-label.svelte-pys2u{font-size:.68rem;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase}.pass-color.svelte-pys2u{color:var(--pass)}.fail-color.svelte-pys2u{color:var(--fail)}.muted-color.svelte-pys2u{color:var(--text-muted)}.feature.svelte-pys2u{margin-bottom:1.5rem;animation:fadeUp .35s var(--ease-out) both}.feature-header.svelte-pys2u{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.feature-name.svelte-pys2u{font-size:1.1rem;font-family:var(--font-display);font-weight:400}.feature-file.svelte-pys2u{font-family:JetBrains Mono,monospace;font-size:.72rem;color:var(--text-muted);margin-left:auto}.scenarios.svelte-pys2u{display:flex;flex-direction:column;gap:.375rem}.scenario.svelte-pys2u{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);overflow:hidden;animation:fadeUp .3s var(--ease-out) both}.scenario-header.svelte-pys2u{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;width:100%;background:transparent;border:none;cursor:pointer;text-align:left;font-family:var(--font-body);transition:background var(--duration-fast)}.scenario-header.svelte-pys2u:hover{background:var(--bg-subtle)}.scenario-status-dot.svelte-pys2u{width:8px;height:8px;border-radius:50%;flex-shrink:0}.scenario-status-dot.pass.svelte-pys2u{background:var(--pass)}.scenario-status-dot.fail.svelte-pys2u{background:var(--fail)}.scenario-status-dot.skip.svelte-pys2u{background:var(--text-muted)}.scenario-name.svelte-pys2u{flex:1;font-size:.875rem;color:var(--text);font-weight:400;text-align:left;display:inline-flex;align-items:center;gap:.4rem;min-width:0}.scenario-count.svelte-pys2u{font-size:.65rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border);border-radius:100px;padding:.05rem .4rem;white-space:nowrap}.scenario-tags.svelte-pys2u{display:flex;gap:.25rem;flex-shrink:0}.tag-chip.svelte-pys2u{font-size:.65rem;font-family:JetBrains Mono,monospace;background:var(--accent-soft);color:var(--accent);padding:.1rem .4rem;border-radius:100px}.scenario-duration.svelte-pys2u{font-size:.75rem;color:var(--text-muted);font-family:JetBrains Mono,monospace;flex-shrink:0}.chevron.svelte-pys2u{color:var(--text-muted);flex-shrink:0;transition:transform var(--duration-fast) var(--ease-out)}.chevron.rotated.svelte-pys2u{transform:rotate(90deg)}.steps.svelte-pys2u{border-top:1px solid var(--border);background:var(--bg-subtle);padding:.5rem 0}.example-header.svelte-pys2u{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem .25rem 1.25rem;color:var(--text-muted);font-size:.72rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.example-header.svelte-pys2u:not(:first-child){margin-top:.375rem;border-top:1px dashed var(--border)}.example-header.svelte-pys2u .scenario-duration:where(.svelte-pys2u){margin-left:auto}.step.svelte-pys2u{padding:.375rem 1rem .375rem 1.25rem}.step-fail.svelte-pys2u{background:color-mix(in srgb,var(--fail-soft) 40%,transparent)}.step-skip.svelte-pys2u{opacity:.5}.step-row.svelte-pys2u{display:flex;align-items:baseline;gap:.5rem}.step-status-icon.svelte-pys2u{font-size:.75rem;font-weight:600;width:14px;flex-shrink:0;color:var(--text-muted)}.step-fail.svelte-pys2u .step-status-icon:where(.svelte-pys2u){color:var(--fail)}.step.svelte-pys2u:not(.step-fail):not(.step-skip) .step-status-icon:where(.svelte-pys2u){color:var(--pass)}.kw.svelte-pys2u{font-size:.72rem;font-weight:500;letter-spacing:.04em;flex-shrink:0;padding:.05rem .4rem;border-radius:3px;font-family:JetBrains Mono,monospace}.kw-given.svelte-pys2u{background:var(--accent-soft);color:var(--accent)}.kw-when.svelte-pys2u{background:var(--warn-soft);color:var(--warn)}.kw-then.svelte-pys2u{background:var(--pass-soft);color:var(--pass)}.kw-and.svelte-pys2u{background:var(--bg-elevated);color:var(--text-muted);border:1px solid var(--border)}.step-name.svelte-pys2u{flex:1;font-size:.8125rem;color:var(--text);font-family:JetBrains Mono,monospace}.step-duration.svelte-pys2u{font-size:.7rem;color:var(--text-muted);font-family:JetBrains Mono,monospace;flex-shrink:0}.step-error.svelte-pys2u{margin:.375rem 0 .25rem 1.75rem;padding:.625rem .875rem;background:var(--fail-soft);color:var(--fail);border-radius:var(--radius-sm);font-family:JetBrains Mono,monospace;font-size:.75rem;line-height:1.6;white-space:pre-wrap;word-break:break-word;border-left:2px solid var(--fail)}.screenshot-wrap.svelte-pys2u{margin:.5rem 0 .25rem 1.75rem}.screenshot-toggle.svelte-pys2u{font-size:.75rem;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.screenshot.svelte-pys2u{margin-top:.5rem;max-width:100%;border-radius:var(--radius-sm);border:1px solid var(--border)}.loading-state.svelte-pys2u{display:flex;justify-content:center;padding:4rem 0}.loading-dots.svelte-pys2u{display:flex;gap:6px;align-items:center}.loading-dots.svelte-pys2u span:where(.svelte-pys2u){width:8px;height:8px;border-radius:50%;background:var(--accent);animation:svelte-pys2u-dotBeat 1.2s ease-in-out infinite}.loading-dots.svelte-pys2u span:where(.svelte-pys2u):nth-child(2){animation-delay:.2s}.loading-dots.svelte-pys2u span:where(.svelte-pys2u):nth-child(3){animation-delay:.4s}@keyframes svelte-pys2u-dotBeat{0%,to{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.6)}}.error-state.svelte-pys2u{padding:3rem 0;color:var(--fail);text-align:center;font-size:.9375rem}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
*
|
|
4
|
-
* Plum is free software: you can redistribute it and/or modify
|
|
5
|
-
* it under the terms of the GNU General Public License as published by
|
|
6
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
7
|
-
* (at your option) any later version.
|
|
8
|
-
*
|
|
9
|
-
* Plum is distributed in the hope that it will be useful,
|
|
10
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
* GNU General Public License for more details.
|
|
13
|
-
*
|
|
14
|
-
* You should have received a copy of the GNU General Public License
|
|
15
|
-
* along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
/*
|
|
19
|
-
This file is part of Plum.
|
|
20
|
-
|
|
21
|
-
Plum is free software: you can redistribute it and/or modify
|
|
22
|
-
it under the terms of the GNU General Public License as published by
|
|
23
|
-
the Free Software Foundation, either version 3 of the License, or
|
|
24
|
-
(at your option) any later version.
|
|
25
|
-
|
|
26
|
-
Plum is distributed in the hope that it will be useful,
|
|
27
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
28
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
29
|
-
GNU General Public License for more details.
|
|
30
|
-
|
|
31
|
-
You should have received a copy of the GNU General Public License
|
|
32
|
-
along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
33
|
-
*/
|
|
34
|
-
.backdrop.svelte-aus6t7{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:50;padding:1rem;backdrop-filter:blur(2px)}.panel.svelte-aus6t7{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.75rem;width:100%;max-width:480px;box-shadow:0 4px 6px #0000000a,0 24px 64px #00000024}.header.svelte-aus6t7{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.title.svelte-aus6t7{font-family:var(--font-display);font-size:1.2rem;font-weight:400;color:var(--text)}.close-btn.svelte-aus6t7{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-muted);cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast)}.close-btn.svelte-aus6t7:hover{background:var(--bg-subtle);color:var(--text)}.body.svelte-aus6t7{display:flex;flex-direction:column;gap:1rem}.page-header.svelte-1ugkbyh{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.header-row.svelte-1ugkbyh{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.page-header.svelte-1ugkbyh h1:where(.svelte-1ugkbyh){font-size:2.5rem;margin-bottom:.375rem}.subtitle.svelte-1ugkbyh{color:var(--text-muted);font-size:.9375rem}.job-row.svelte-1ugkbyh{animation:fadeUp .32s var(--ease-out) both}.toast.svelte-1ugkbyh{margin-bottom:1.25rem;border-radius:var(--radius-md)}.table-wrap.svelte-1ugkbyh{overflow-x:auto}.job-name.svelte-1ugkbyh{font-weight:400;font-size:.875rem}.tag-text.svelte-1ugkbyh{font-family:JetBrains Mono,monospace;font-size:.78rem;color:var(--text-muted)}.actions-cell.svelte-1ugkbyh{display:flex;gap:.375rem}.empty.svelte-1ugkbyh{padding:3rem 1.5rem;color:var(--text-muted);font-size:.9375rem;text-align:center}.modal-form.svelte-1ugkbyh{display:flex;flex-direction:column;gap:1rem}.form-error.svelte-1ugkbyh{font-size:.8125rem;color:var(--fail)}.confirm-text.svelte-1ugkbyh{font-size:.9375rem;color:var(--text-muted);line-height:1.6}.confirm-text.svelte-1ugkbyh strong:where(.svelte-1ugkbyh){color:var(--text);font-weight:500}.confirm-actions.svelte-1ugkbyh{display:flex;gap:.625rem;padding-top:.25rem}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
*
|
|
4
|
-
* Plum is free software: you can redistribute it and/or modify
|
|
5
|
-
* it under the terms of the GNU General Public License as published by
|
|
6
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
7
|
-
* (at your option) any later version.
|
|
8
|
-
*
|
|
9
|
-
* Plum is distributed in the hope that it will be useful,
|
|
10
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
* GNU General Public License for more details.
|
|
13
|
-
*
|
|
14
|
-
* You should have received a copy of the GNU General Public License
|
|
15
|
-
* along with Plum. If not, see https://www.gnu.org/licenses/.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import { X as store_get, Y as unsubscribe_stores, p as pop, a as push } from "../../../../chunks/index.js";
|
|
19
|
-
import { a as parseReport, p as page } from "../../../../chunks/reports.js";
|
|
20
|
-
/* empty css */
|
|
21
|
-
function _page($$payload, $$props) {
|
|
22
|
-
push();
|
|
23
|
-
var $$store_subs;
|
|
24
|
-
const fileName = decodeURIComponent(store_get($$store_subs ??= {}, "$page", page).params.slug);
|
|
25
|
-
const meta = parseReport(fileName);
|
|
26
|
-
meta?.status === "PASS";
|
|
27
|
-
$$payload.out += `<div class="back-row svelte-pys2u"><a href="/reports" class="back-link svelte-pys2u"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-pys2u"><line x1="19" y1="12" x2="5" y2="12" class="svelte-pys2u"></line><polyline points="12 19 5 12 12 5" class="svelte-pys2u"></polyline></svg> Reports</a></div> `;
|
|
28
|
-
{
|
|
29
|
-
$$payload.out += "<!--[!-->";
|
|
30
|
-
{
|
|
31
|
-
$$payload.out += "<!--[-->";
|
|
32
|
-
$$payload.out += `<div class="loading-state svelte-pys2u"><div class="loading-dots svelte-pys2u"><span class="svelte-pys2u"></span><span class="svelte-pys2u"></span><span class="svelte-pys2u"></span></div></div>`;
|
|
33
|
-
}
|
|
34
|
-
$$payload.out += `<!--]-->`;
|
|
35
|
-
}
|
|
36
|
-
$$payload.out += `<!--]-->`;
|
|
37
|
-
if ($$store_subs) unsubscribe_stores($$store_subs);
|
|
38
|
-
pop();
|
|
39
|
-
}
|
|
40
|
-
export {
|
|
41
|
-
_page as default
|
|
42
|
-
};
|