@selvajs/selva 4.3.0 → 4.3.2
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/build/client/_app/immutable/chunks/BFB-Wryr.js +3 -0
- package/build/client/_app/immutable/chunks/BFB-Wryr.js.br +0 -0
- package/build/client/_app/immutable/chunks/BFB-Wryr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{0owY5F6O.js → BIPTdS6l.js} +1 -1
- package/build/client/_app/immutable/chunks/BIPTdS6l.js.br +0 -0
- package/build/client/_app/immutable/chunks/BIPTdS6l.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{1O7Vyn3x.js → DB7_JmaS.js} +1 -1
- package/build/client/_app/immutable/chunks/DB7_JmaS.js.br +0 -0
- package/build/client/_app/immutable/chunks/DB7_JmaS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{XwEuxkth.js → DMnAurq3.js} +1 -1
- package/build/client/_app/immutable/chunks/DMnAurq3.js.br +0 -0
- package/build/client/_app/immutable/chunks/DMnAurq3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CpzrN_ad.js → DhA-kqQ_.js} +1 -1
- package/build/client/_app/immutable/chunks/DhA-kqQ_.js.br +0 -0
- package/build/client/_app/immutable/chunks/DhA-kqQ_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{D0jw87aj.js → pKBJ9bi5.js} +1 -1
- package/build/client/_app/immutable/chunks/pKBJ9bi5.js.br +0 -0
- package/build/client/_app/immutable/chunks/pKBJ9bi5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{D1FLuKx5.js → xYkEs8xj.js} +1 -1
- package/build/client/_app/immutable/chunks/xYkEs8xj.js.br +0 -0
- package/build/client/_app/immutable/chunks/xYkEs8xj.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.BU1ZTica.js → app.CJipkP9j.js} +2 -2
- package/build/client/_app/immutable/entry/app.CJipkP9j.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CJipkP9j.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.C30s0s_U.js +1 -0
- package/build/client/_app/immutable/entry/start.C30s0s_U.js.br +0 -0
- package/build/client/_app/immutable/entry/start.C30s0s_U.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.BGw1TtE-.js → 1.UesQk3ur.js} +1 -1
- package/build/client/_app/immutable/nodes/1.UesQk3ur.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.UesQk3ur.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{11.DUHLFhc8.js → 11.DVAsawo1.js} +1 -1
- package/build/client/_app/immutable/nodes/11.DVAsawo1.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.DVAsawo1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{13.DUetX8JN.js → 13.hYwrJxQf.js} +1 -1
- package/build/client/_app/immutable/nodes/13.hYwrJxQf.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.hYwrJxQf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{14.BMNgebxg.js → 14.C6ZevMuN.js} +1 -1
- package/build/client/_app/immutable/nodes/14.C6ZevMuN.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.C6ZevMuN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{15.czhLtsoD.js → 15.CooHDT1H.js} +10 -10
- package/build/client/_app/immutable/nodes/15.CooHDT1H.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.CooHDT1H.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{16.BK5X4N0B.js → 16.DL3OJYUz.js} +1 -1
- package/build/client/_app/immutable/nodes/16.DL3OJYUz.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.DL3OJYUz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{17.DESUDRJ7.js → 17.VLSKwwTe.js} +1 -1
- package/build/client/_app/immutable/nodes/17.VLSKwwTe.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.VLSKwwTe.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{19.BGOmShx1.js → 19.DEmoM61q.js} +1 -1
- package/build/client/_app/immutable/nodes/19.DEmoM61q.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.DEmoM61q.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{2.Bil4apV-.js → 2.__o9viyw.js} +1 -1
- package/build/client/_app/immutable/nodes/2.__o9viyw.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.__o9viyw.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{20.BN9CyZsk.js → 20.BhoClIzu.js} +1 -1
- package/build/client/_app/immutable/nodes/20.BhoClIzu.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.BhoClIzu.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{21.DLY2CWfL.js → 21.C7sGgRRB.js} +1 -1
- package/build/client/_app/immutable/nodes/21.C7sGgRRB.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.C7sGgRRB.js.gz +0 -0
- package/build/client/_app/immutable/nodes/23.DpJMyDHf.js +16 -0
- package/build/client/_app/immutable/nodes/23.DpJMyDHf.js.br +0 -0
- package/build/client/_app/immutable/nodes/23.DpJMyDHf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{24.C9nhiSAI.js → 24.akDUFOHX.js} +1 -1
- package/build/client/_app/immutable/nodes/24.akDUFOHX.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.akDUFOHX.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{27.DDMHOK1v.js → 27.C7Z5K5-N.js} +1 -1
- package/build/client/_app/immutable/nodes/27.C7Z5K5-N.js.br +0 -0
- package/build/client/_app/immutable/nodes/27.C7Z5K5-N.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{28.BKxO5tXo.js → 28.DsYdbqJ6.js} +1 -1
- package/build/client/_app/immutable/nodes/28.DsYdbqJ6.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.DsYdbqJ6.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{29.BE9agX-A.js → 29.f_5spqDA.js} +1 -1
- package/build/client/_app/immutable/nodes/29.f_5spqDA.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.f_5spqDA.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{3.Cr_OcaHZ.js → 3.DJPc2r7n.js} +1 -1
- package/build/client/_app/immutable/nodes/3.DJPc2r7n.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.DJPc2r7n.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{30.1oMiKsa_.js → 30.DnPUoc2g.js} +1 -1
- package/build/client/_app/immutable/nodes/30.DnPUoc2g.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.DnPUoc2g.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.R3EURuYN.js → 5.DrQdcjub.js} +1 -1
- package/build/client/_app/immutable/nodes/5.DrQdcjub.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.DrQdcjub.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.XEBvU5zF.js → 6.BmcssQiY.js} +1 -1
- package/build/client/_app/immutable/nodes/6.BmcssQiY.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BmcssQiY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.aBxKpwwY.js → 7.BA0T73d4.js} +1 -1
- package/build/client/_app/immutable/nodes/7.BA0T73d4.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.BA0T73d4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{8.CEAXwPtw.js → 8.CYmo0hsm.js} +1 -1
- package/build/client/_app/immutable/nodes/8.CYmo0hsm.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.CYmo0hsm.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{9.DNoTcl-q.js → 9.C4vTaUsb.js} +1 -1
- package/build/client/_app/immutable/nodes/9.C4vTaUsb.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.C4vTaUsb.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/{1-CTiyXq5H.js → 1-BPbyVSIF.js} +2 -2
- package/build/server/chunks/{1-CTiyXq5H.js.map → 1-BPbyVSIF.js.map} +1 -1
- package/build/server/chunks/{11-BvWfYPvY.js → 11-BYuF1Td9.js} +2 -2
- package/build/server/chunks/{11-BvWfYPvY.js.map → 11-BYuF1Td9.js.map} +1 -1
- package/build/server/chunks/{13-UcumwEMR.js → 13-DcpchQmL.js} +2 -2
- package/build/server/chunks/{13-UcumwEMR.js.map → 13-DcpchQmL.js.map} +1 -1
- package/build/server/chunks/{14-DDGpNRmy.js → 14-BTVvIuFC.js} +2 -2
- package/build/server/chunks/{14-DDGpNRmy.js.map → 14-BTVvIuFC.js.map} +1 -1
- package/build/server/chunks/{15-CRsKpL17.js → 15-C0QaYdSK.js} +4 -4
- package/build/server/chunks/{15-CRsKpL17.js.map → 15-C0QaYdSK.js.map} +1 -1
- package/build/server/chunks/{16-Brrnhdb0.js → 16-CwbBOBd5.js} +2 -2
- package/build/server/chunks/{16-Brrnhdb0.js.map → 16-CwbBOBd5.js.map} +1 -1
- package/build/server/chunks/{17-nTtqXZFS.js → 17-DIk9Au74.js} +2 -2
- package/build/server/chunks/{17-nTtqXZFS.js.map → 17-DIk9Au74.js.map} +1 -1
- package/build/server/chunks/{19-C6JT4QWN.js → 19-D6NrpnRc.js} +2 -2
- package/build/server/chunks/{19-C6JT4QWN.js.map → 19-D6NrpnRc.js.map} +1 -1
- package/build/server/chunks/{2-Bzu1IIyQ.js → 2-2E3i2cf_.js} +2 -2
- package/build/server/chunks/{2-Bzu1IIyQ.js.map → 2-2E3i2cf_.js.map} +1 -1
- package/build/server/chunks/{20-BuEknXxb.js → 20-DiOIohUX.js} +2 -2
- package/build/server/chunks/{20-BuEknXxb.js.map → 20-DiOIohUX.js.map} +1 -1
- package/build/server/chunks/{21-C8VCOVHZ.js → 21-CgHi7yI5.js} +2 -2
- package/build/server/chunks/{21-C8VCOVHZ.js.map → 21-CgHi7yI5.js.map} +1 -1
- package/build/server/chunks/{23-B2o_ghvU.js → 23-DTcMzBzp.js} +2 -2
- package/build/server/chunks/{23-B2o_ghvU.js.map → 23-DTcMzBzp.js.map} +1 -1
- package/build/server/chunks/{24-Q1fbSR2o.js → 24-DOGX3DCm.js} +2 -2
- package/build/server/chunks/{24-Q1fbSR2o.js.map → 24-DOGX3DCm.js.map} +1 -1
- package/build/server/chunks/{27-5VeF0OHT.js → 27--tJwS_a7.js} +2 -2
- package/build/server/chunks/{27-5VeF0OHT.js.map → 27--tJwS_a7.js.map} +1 -1
- package/build/server/chunks/{28-GJ_nbLXN.js → 28-C4P7hGLb.js} +2 -2
- package/build/server/chunks/{28-GJ_nbLXN.js.map → 28-C4P7hGLb.js.map} +1 -1
- package/build/server/chunks/{29-lZH9mmI0.js → 29-RU3GFSpO.js} +2 -2
- package/build/server/chunks/{29-lZH9mmI0.js.map → 29-RU3GFSpO.js.map} +1 -1
- package/build/server/chunks/{3-BlqLiQTJ.js → 3-DlD6O9OY.js} +2 -2
- package/build/server/chunks/{3-BlqLiQTJ.js.map → 3-DlD6O9OY.js.map} +1 -1
- package/build/server/chunks/{30-CA_ezUGl.js → 30-SafLxSr6.js} +2 -2
- package/build/server/chunks/{30-CA_ezUGl.js.map → 30-SafLxSr6.js.map} +1 -1
- package/build/server/chunks/{5-0tLn4w9t.js → 5--tp1W32w.js} +2 -2
- package/build/server/chunks/{5-0tLn4w9t.js.map → 5--tp1W32w.js.map} +1 -1
- package/build/server/chunks/{6-Dk8-CNQc.js → 6-DparXzR7.js} +2 -2
- package/build/server/chunks/{6-Dk8-CNQc.js.map → 6-DparXzR7.js.map} +1 -1
- package/build/server/chunks/{7-g1mcBFfT.js → 7-e_-6B_yY.js} +2 -2
- package/build/server/chunks/{7-g1mcBFfT.js.map → 7-e_-6B_yY.js.map} +1 -1
- package/build/server/chunks/{8-BXyJwXPH.js → 8-BU4iMsB8.js} +2 -2
- package/build/server/chunks/{8-BXyJwXPH.js.map → 8-BU4iMsB8.js.map} +1 -1
- package/build/server/chunks/{9-B3S-g_A8.js → 9-CtbkBbpt.js} +3 -3
- package/build/server/chunks/{9-B3S-g_A8.js.map → 9-CtbkBbpt.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-BMk_ClLw.js → _page.svelte-CRT9J600.js} +5 -5
- package/build/server/chunks/{_page.svelte-BMk_ClLw.js.map → _page.svelte-CRT9J600.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-CR79Ws-C.js → _page.svelte-hocrtSBC.js} +19 -27
- package/build/server/chunks/_page.svelte-hocrtSBC.js.map +1 -0
- package/build/server/chunks/{_server.ts-Xl5CYncx.js → _server.ts-CgAD4Qlv.js} +14 -1
- package/build/server/chunks/_server.ts-CgAD4Qlv.js.map +1 -0
- package/build/server/chunks/{_server.ts-CBAiDOcP.js → _server.ts-DWCKRNAG.js} +5 -2
- package/build/server/chunks/_server.ts-DWCKRNAG.js.map +1 -0
- package/build/server/chunks/_server.ts-Db9C0y4L.js +162 -0
- package/build/server/chunks/_server.ts-Db9C0y4L.js.map +1 -0
- package/build/server/index.js +1 -1
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +27 -27
- package/build/server/manifest.js.map +1 -1
- package/package.json +1 -1
- package/build/client/_app/immutable/chunks/0owY5F6O.js.br +0 -0
- package/build/client/_app/immutable/chunks/0owY5F6O.js.gz +0 -0
- package/build/client/_app/immutable/chunks/1O7Vyn3x.js.br +0 -0
- package/build/client/_app/immutable/chunks/1O7Vyn3x.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BjlANOwQ.js +0 -3
- package/build/client/_app/immutable/chunks/BjlANOwQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/BjlANOwQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CpzrN_ad.js.br +0 -0
- package/build/client/_app/immutable/chunks/CpzrN_ad.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D0jw87aj.js.br +0 -0
- package/build/client/_app/immutable/chunks/D0jw87aj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D1FLuKx5.js.br +0 -0
- package/build/client/_app/immutable/chunks/D1FLuKx5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/XwEuxkth.js.br +0 -0
- package/build/client/_app/immutable/chunks/XwEuxkth.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.BU1ZTica.js.br +0 -0
- package/build/client/_app/immutable/entry/app.BU1ZTica.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.C_5mwPOZ.js +0 -1
- package/build/client/_app/immutable/entry/start.C_5mwPOZ.js.br +0 -2
- package/build/client/_app/immutable/entry/start.C_5mwPOZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.BGw1TtE-.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.BGw1TtE-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.DUHLFhc8.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.DUHLFhc8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.DUetX8JN.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.DUetX8JN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.BMNgebxg.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.BMNgebxg.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.czhLtsoD.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.czhLtsoD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/16.BK5X4N0B.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.BK5X4N0B.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.DESUDRJ7.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.DESUDRJ7.js.gz +0 -0
- package/build/client/_app/immutable/nodes/19.BGOmShx1.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.BGOmShx1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.Bil4apV-.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.Bil4apV-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/20.BN9CyZsk.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.BN9CyZsk.js.gz +0 -0
- package/build/client/_app/immutable/nodes/21.DLY2CWfL.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.DLY2CWfL.js.gz +0 -0
- package/build/client/_app/immutable/nodes/23.DwnJEjle.js +0 -16
- package/build/client/_app/immutable/nodes/23.DwnJEjle.js.br +0 -0
- package/build/client/_app/immutable/nodes/23.DwnJEjle.js.gz +0 -0
- package/build/client/_app/immutable/nodes/24.C9nhiSAI.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.C9nhiSAI.js.gz +0 -0
- package/build/client/_app/immutable/nodes/27.DDMHOK1v.js.br +0 -0
- package/build/client/_app/immutable/nodes/27.DDMHOK1v.js.gz +0 -0
- package/build/client/_app/immutable/nodes/28.BKxO5tXo.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.BKxO5tXo.js.gz +0 -0
- package/build/client/_app/immutable/nodes/29.BE9agX-A.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.BE9agX-A.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.Cr_OcaHZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.Cr_OcaHZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/30.1oMiKsa_.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.1oMiKsa_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.R3EURuYN.js.br +0 -1
- package/build/client/_app/immutable/nodes/5.R3EURuYN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.XEBvU5zF.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.XEBvU5zF.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.aBxKpwwY.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.aBxKpwwY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.CEAXwPtw.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.CEAXwPtw.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.DNoTcl-q.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.DNoTcl-q.js.gz +0 -0
- package/build/server/chunks/_page.svelte-CR79Ws-C.js.map +0 -1
- package/build/server/chunks/_server.ts-BvMDaAZY.js +0 -75
- package/build/server/chunks/_server.ts-BvMDaAZY.js.map +0 -1
- package/build/server/chunks/_server.ts-CBAiDOcP.js.map +0 -1
- package/build/server/chunks/_server.ts-Xl5CYncx.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_page.svelte-hocrtSBC.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/admin/system/_page.svelte.js"],"sourcesContent":["import { aj as spread_props, I as escape_html, k as attr_class, am as stringify, j as attr, y as derived, G as ensure_array_like, T as head } from \"../../../../chunks/renderer.js\";\nimport { C as Card, a as Card_content } from \"../../../../chunks/card-content.js\";\nimport { C as Card_header, a as Card_title } from \"../../../../chunks/card-title.js\";\nimport { C as Card_description } from \"../../../../chunks/card-description.js\";\nimport { B as Button } from \"../../../../chunks/button.js\";\nimport { R as Refresh_cw } from \"../../../../chunks/refresh-cw.js\";\nimport { I as Icon } from \"../../../../chunks/Icon2.js\";\nimport { T as Triangle_alert } from \"../../../../chunks/triangle-alert.js\";\nimport { R as Root, b as Alert_dialog_content, e as Alert_dialog_header, f as Alert_dialog_title, c as Alert_dialog_description, d as Alert_dialog_footer, a as Alert_dialog_cancel, A as Alert_dialog_action } from \"../../../../chunks/index4.js\";\nimport { S as SectionHeader } from \"../../../../chunks/SectionHeader.js\";\nfunction Circle_check($$renderer, $$props) {\n let { $$slots, $$events, ...props } = $$props;\n const iconNode = [\n [\"circle\", { \"cx\": \"12\", \"cy\": \"12\", \"r\": \"10\" }],\n [\"path\", { \"d\": \"m9 12 2 2 4-4\" }]\n ];\n Icon($$renderer, spread_props([{ name: \"circle-check\" }, props, { iconNode }]));\n}\nfunction Circle_x($$renderer, $$props) {\n let { $$slots, $$events, ...props } = $$props;\n const iconNode = [\n [\"circle\", { \"cx\": \"12\", \"cy\": \"12\", \"r\": \"10\" }],\n [\"path\", { \"d\": \"m15 9-6 6\" }],\n [\"path\", { \"d\": \"m9 9 6 6\" }]\n ];\n Icon($$renderer, spread_props([{ name: \"circle-x\" }, props, { iconNode }]));\n}\nfunction Info($$renderer, $$props) {\n let { $$slots, $$events, ...props } = $$props;\n const iconNode = [\n [\"circle\", { \"cx\": \"12\", \"cy\": \"12\", \"r\": \"10\" }],\n [\"path\", { \"d\": \"M12 16v-4\" }],\n [\"path\", { \"d\": \"M12 8h.01\" }]\n ];\n Icon($$renderer, spread_props([{ name: \"info\" }, props, { iconNode }]));\n}\nfunction Minus($$renderer, $$props) {\n let { $$slots, $$events, ...props } = $$props;\n const iconNode = [[\"path\", { \"d\": \"M5 12h14\" }]];\n Icon($$renderer, spread_props([{ name: \"minus\" }, props, { iconNode }]));\n}\nfunction Stethoscope($$renderer, $$props) {\n let { $$slots, $$events, ...props } = $$props;\n const iconNode = [\n [\"path\", { \"d\": \"M11 2v2\" }],\n [\"path\", { \"d\": \"M5 2v2\" }],\n [\n \"path\",\n {\n \"d\": \"M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1\"\n }\n ],\n [\"path\", { \"d\": \"M8 15a6 6 0 0 0 12 0v-3\" }],\n [\"circle\", { \"cx\": \"20\", \"cy\": \"10\", \"r\": \"2\" }]\n ];\n Icon($$renderer, spread_props([{ name: \"stethoscope\" }, props, { iconNode }]));\n}\nfunction firstMatch(logs, re) {\n const m = re.exec(logs);\n return m ? m[1] : void 0;\n}\nfunction parseVersions(logs) {\n const avail = /Available:\\s*(\\d+\\.\\d+\\.\\d+[^\\s]*)\\s*(?:→|->)\\s*(\\d+\\.\\d+\\.\\d+[^\\s]*)/.exec(logs);\n if (avail) return { from: avail[1], to: avail[2] };\n const from = firstMatch(logs, /Current @selvajs\\/selva:\\s*v?(\\d+\\.\\d+\\.\\d+[^\\s]*)/);\n const to = firstMatch(logs, /New @selvajs\\/selva:\\s*v?(\\d+\\.\\d+\\.\\d+[^\\s]*)/);\n return { from, to };\n}\nfunction has(logs, needle) {\n return logs.includes(needle);\n}\nfunction deriveOutcome(exitCode, logs) {\n const { from, to } = parseVersions(logs);\n if (exitCode === null) {\n return { severity: \"pending\", title: \"Update in progress…\" };\n }\n if (exitCode === 6 || has(logs, \"Manual recovery required\") || has(logs, \"manual intervention required\")) {\n return {\n severity: \"critical\",\n title: \"Update failed AND rollback failed — the app may be OFFLINE\",\n detail: \"Both the new version and the rollback failed their health check. SSH into the server and run: `pm2 logs selva-compute`, then `pm2 start ecosystem.config.cjs` from the deployment directory.\",\n from,\n to\n };\n }\n if (exitCode === -2) {\n return {\n severity: \"critical\",\n title: \"App did not come back online within 5 minutes\",\n detail: \"The update may still be finishing in the background, or the new process is crash-looping. Check `pm2 logs selva-compute`. Do not re-run the update until you have confirmed the current state.\",\n from,\n to\n };\n }\n if (exitCode === 5 || has(logs, \"Rolled back\")) {\n return {\n severity: \"warning\",\n title: `Update failed — safely rolled back${from ? ` to ${from}` : \"\"}. The app is online.`,\n detail: \"The new version failed its health check, so the previous version was restored and is serving normally. Review the log below for why the new version failed before retrying.\",\n from,\n to\n };\n }\n if (has(logs, \"npm cache may be stale\") || has(logs, \"No version change\")) {\n return {\n severity: \"warning\",\n title: \"No version change — npm installed the same version.\",\n detail: \"Your npm cache may be stale. On the server: `npm cache clean --force`, remove node_modules + package-lock.json, then `npm install --prefer-online`.\",\n from,\n to\n };\n }\n if (exitCode === 0) {\n if (has(logs, \"Already on the latest version\") || has(logs, \"Nothing to do\")) {\n return {\n severity: \"info\",\n title: `Already up to date${from ? ` (${from})` : \"\"} — nothing to install.`,\n detail: \"No changes were made and the app was not restarted.\",\n from,\n to\n };\n }\n if (from && to && from !== to) {\n return {\n severity: \"success\",\n title: `Updated ${from} → ${to}. The app is back online.`,\n from,\n to\n };\n }\n if (to) {\n return {\n severity: \"success\",\n title: `Update complete — now on ${to}. The app is back online.`,\n from,\n to\n };\n }\n return {\n severity: \"success\",\n title: \"Update completed and the app is back online.\",\n from,\n to\n };\n }\n return {\n severity: \"critical\",\n title: `Update failed (exit code ${exitCode}).`,\n detail: \"The update did not complete cleanly. Review the log below, and check `pm2 logs selva-compute` to confirm whether the app is currently online.\",\n from,\n to\n };\n}\nfunction UpdateSection($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n currentVersion,\n isRunning = false,\n isRestarting = false,\n logs = \"\",\n exitCode = null,\n onRun\n } = $$props;\n let showRunConfirm = false;\n let outcome = derived(() => exitCode === null ? null : deriveOutcome(exitCode, logs));\n const severityStyles = {\n success: {\n text: \"text-success\",\n border: \"border-success/40\",\n bg: \"bg-success/10\",\n icon: Circle_check\n },\n info: {\n text: \"text-foreground\",\n border: \"border-border\",\n bg: \"bg-muted/50\",\n icon: Info\n },\n warning: {\n text: \"text-warning\",\n border: \"border-warning/40\",\n bg: \"bg-warning/10\",\n icon: Triangle_alert\n },\n critical: {\n text: \"text-destructive\",\n border: \"border-destructive/40\",\n bg: \"bg-destructive/10\",\n icon: Circle_x\n },\n pending: {\n text: \"text-muted-foreground\",\n border: \"border-border\",\n bg: \"bg-muted/50\",\n icon: Refresh_cw\n }\n };\n function buttonLabel() {\n if (isRestarting) return \"Restarting & verifying…\";\n if (isRunning) return \"Running…\";\n return \"Run Update\";\n }\n function handleRunClick() {\n showRunConfirm = true;\n }\n function confirmRun() {\n showRunConfirm = false;\n onRun?.();\n }\n if (Card) {\n $$renderer2.push(\"<!--[-->\");\n Card($$renderer2, {\n children: ($$renderer3) => {\n if (Card_header) {\n $$renderer3.push(\"<!--[-->\");\n Card_header($$renderer3, {\n children: ($$renderer4) => {\n $$renderer4.push(`<div class=\"flex items-start justify-between gap-3\">`);\n if (Card_title) {\n $$renderer4.push(\"<!--[-->\");\n Card_title($$renderer4, {\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->Application Update`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(\"<!--]-->\");\n } else {\n $$renderer4.push(\"<!--[!-->\");\n $$renderer4.push(\"<!--]-->\");\n }\n $$renderer4.push(` `);\n if (currentVersion) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<span class=\"border-border bg-muted text-muted-foreground rounded-full border px-2 py-0.5 font-mono text-xs\" title=\"Currently installed @selvajs/selva version\">v${escape_html(currentVersion)}</span>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--></div> `);\n if (Card_description) {\n $$renderer4.push(\"<!--[-->\");\n Card_description($$renderer4, {\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->Run the update script to pull latest changes and restart`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(\"<!--]-->\");\n } else {\n $$renderer4.push(\"<!--[!-->\");\n $$renderer4.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer3.push(\"<!--]-->\");\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(\"<!--]-->\");\n }\n $$renderer3.push(` `);\n if (Card_content) {\n $$renderer3.push(\"<!--[-->\");\n Card_content($$renderer3, {\n class: \"space-y-4\",\n children: ($$renderer4) => {\n Button($$renderer4, {\n onclick: handleRunClick,\n disabled: isRunning,\n variant: \"destructive\",\n children: ($$renderer5) => {\n if (isRestarting) {\n $$renderer5.push(\"<!--[0-->\");\n Refresh_cw($$renderer5, { class: \"mr-2 h-4 w-4 animate-spin\" });\n } else {\n $$renderer5.push(\"<!--[-1-->\");\n }\n $$renderer5.push(`<!--]--> ${escape_html(buttonLabel())}`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(`<!----> `);\n if (isRestarting && exitCode === null) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<div class=\"border-border bg-muted/50 text-muted-foreground flex items-center gap-2 rounded-md border px-3 py-2 text-sm\">`);\n Refresh_cw($$renderer4, { class: \"h-4 w-4 animate-spin\" });\n $$renderer4.push(`<!----> <span>PM2 is restarting the app — waiting for the new process to come online…</span></div>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--> `);\n if (outcome()) {\n $$renderer4.push(\"<!--[0-->\");\n const style = severityStyles[outcome().severity];\n const Icon2 = style.icon;\n $$renderer4.push(`<div${attr_class(`flex items-start gap-3 rounded-md border px-3 py-3 ${stringify(style.border)} ${stringify(style.bg)}`)}${attr(\"role\", outcome().severity === \"critical\" ? \"alert\" : \"status\")}${attr(\"aria-live\", outcome().severity === \"critical\" ? \"assertive\" : \"polite\")}>`);\n if (Icon2) {\n $$renderer4.push(\"<!--[-->\");\n Icon2($$renderer4, { class: `mt-0.5 h-5 w-5 shrink-0 ${stringify(style.text)}` });\n $$renderer4.push(\"<!--]-->\");\n } else {\n $$renderer4.push(\"<!--[!-->\");\n $$renderer4.push(\"<!--]-->\");\n }\n $$renderer4.push(` <div class=\"min-w-0 space-y-1\"><p${attr_class(`text-sm font-medium ${stringify(style.text)}`)}>${escape_html(outcome().title)}</p> `);\n if (outcome().from && outcome().to && outcome().from !== outcome().to) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<p class=\"text-muted-foreground font-mono text-xs\">${escape_html(outcome().from)} → ${escape_html(outcome().to)}</p>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--> `);\n if (outcome().detail) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<p class=\"text-muted-foreground text-xs whitespace-pre-line\">${escape_html(outcome().detail)}</p>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--></div></div>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--> `);\n if (logs) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<div class=\"space-y-2\"><h4 class=\"text-sm font-medium\">Update Logs</h4> <pre class=\"bg-muted text-foreground max-h-96 overflow-auto rounded-md p-4 font-mono text-xs\">${escape_html(logs)}</pre></div>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]-->`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(\"<!--]-->\");\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer2.push(\"<!--]-->\");\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(\"<!--]-->\");\n }\n $$renderer2.push(` `);\n if (Root) {\n $$renderer2.push(\"<!--[-->\");\n Root($$renderer2, {\n open: showRunConfirm,\n onOpenChange: (o) => showRunConfirm = o,\n children: ($$renderer3) => {\n if (Alert_dialog_content) {\n $$renderer3.push(\"<!--[-->\");\n Alert_dialog_content($$renderer3, {\n children: ($$renderer4) => {\n if (Alert_dialog_header) {\n $$renderer4.push(\"<!--[-->\");\n Alert_dialog_header($$renderer4, {\n children: ($$renderer5) => {\n if (Alert_dialog_title) {\n $$renderer5.push(\"<!--[-->\");\n Alert_dialog_title($$renderer5, {\n children: ($$renderer6) => {\n $$renderer6.push(`<!---->Run Update?`);\n },\n $$slots: { default: true }\n });\n $$renderer5.push(\"<!--]-->\");\n } else {\n $$renderer5.push(\"<!--[!-->\");\n $$renderer5.push(\"<!--]-->\");\n }\n $$renderer5.push(` `);\n if (Alert_dialog_description) {\n $$renderer5.push(\"<!--[-->\");\n Alert_dialog_description($$renderer5, {\n children: ($$renderer6) => {\n $$renderer6.push(`<!---->This will pull the latest changes and restart the application. The service will be\n\t\t\t\ttemporarily unavailable.`);\n },\n $$slots: { default: true }\n });\n $$renderer5.push(\"<!--]-->\");\n } else {\n $$renderer5.push(\"<!--[!-->\");\n $$renderer5.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer4.push(\"<!--]-->\");\n } else {\n $$renderer4.push(\"<!--[!-->\");\n $$renderer4.push(\"<!--]-->\");\n }\n $$renderer4.push(` `);\n if (Alert_dialog_footer) {\n $$renderer4.push(\"<!--[-->\");\n Alert_dialog_footer($$renderer4, {\n children: ($$renderer5) => {\n if (Alert_dialog_cancel) {\n $$renderer5.push(\"<!--[-->\");\n Alert_dialog_cancel($$renderer5, {\n children: ($$renderer6) => {\n $$renderer6.push(`<!---->Cancel`);\n },\n $$slots: { default: true }\n });\n $$renderer5.push(\"<!--]-->\");\n } else {\n $$renderer5.push(\"<!--[!-->\");\n $$renderer5.push(\"<!--]-->\");\n }\n $$renderer5.push(` `);\n if (Alert_dialog_action) {\n $$renderer5.push(\"<!--[-->\");\n Alert_dialog_action($$renderer5, {\n onclick: confirmRun,\n disabled: isRunning,\n children: ($$renderer6) => {\n $$renderer6.push(`<!---->${escape_html(isRestarting ? \"Restarting…\" : \"Continue\")}`);\n },\n $$slots: { default: true }\n });\n $$renderer5.push(\"<!--]-->\");\n } else {\n $$renderer5.push(\"<!--[!-->\");\n $$renderer5.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer4.push(\"<!--]-->\");\n } else {\n $$renderer4.push(\"<!--[!-->\");\n $$renderer4.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer3.push(\"<!--]-->\");\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer2.push(\"<!--]-->\");\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(\"<!--]-->\");\n }\n });\n}\nfunction HealthSection($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let running = false;\n let report = null;\n let error = null;\n const statusStyle = {\n ok: { text: \"text-success\", icon: Circle_check, label: \"OK\" },\n degraded: { text: \"text-warning\", icon: Triangle_alert, label: \"Degraded\" },\n error: { text: \"text-destructive\", icon: Circle_x, label: \"Error\" },\n not_applicable: { text: \"text-muted-foreground\", icon: Minus, label: \"N/A\" }\n };\n async function runCheck() {\n running = true;\n error = null;\n try {\n const res = await fetch(\"/admin/api/system/health\", { cache: \"no-store\" });\n if (!res.ok) {\n error = `Health check request failed (HTTP ${res.status}).`;\n report = null;\n return;\n }\n report = await res.json();\n } catch (err) {\n error = err instanceof Error ? err.message : \"Health check request failed.\";\n report = null;\n } finally {\n running = false;\n }\n }\n if (Card) {\n $$renderer2.push(\"<!--[-->\");\n Card($$renderer2, {\n children: ($$renderer3) => {\n if (Card_header) {\n $$renderer3.push(\"<!--[-->\");\n Card_header($$renderer3, {\n children: ($$renderer4) => {\n if (Card_title) {\n $$renderer4.push(\"<!--[-->\");\n Card_title($$renderer4, {\n class: \"text-sm font-medium\",\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->System health`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(\"<!--]-->\");\n } else {\n $$renderer4.push(\"<!--[!-->\");\n $$renderer4.push(\"<!--]-->\");\n }\n $$renderer4.push(` `);\n if (Card_description) {\n $$renderer4.push(\"<!--[-->\");\n Card_description($$renderer4, {\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->Re-runs runtime integrity checks live (not the cached boot snapshot), so results reflect the\n\t\t\tcurrent state after any fix.`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(\"<!--]-->\");\n } else {\n $$renderer4.push(\"<!--[!-->\");\n $$renderer4.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer3.push(\"<!--]-->\");\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(\"<!--]-->\");\n }\n $$renderer3.push(` `);\n if (Card_content) {\n $$renderer3.push(\"<!--[-->\");\n Card_content($$renderer3, {\n class: \"space-y-4\",\n children: ($$renderer4) => {\n Button($$renderer4, {\n onclick: runCheck,\n disabled: running,\n variant: \"outline\",\n children: ($$renderer5) => {\n Stethoscope($$renderer5, {\n class: `mr-2 h-4 w-4 ${stringify(running ? \"animate-pulse\" : \"\")}`\n });\n $$renderer5.push(`<!----> ${escape_html(running ? \"Checking…\" : \"Run health check\")}`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(`<!----> `);\n if (error) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<div class=\"border-destructive/40 bg-destructive/10 text-destructive flex items-start gap-2 rounded-md border px-3 py-2 text-sm\" role=\"alert\">`);\n Circle_x($$renderer4, { class: \"mt-0.5 h-4 w-4 shrink-0\" });\n $$renderer4.push(`<!----> <span>${escape_html(error)}</span></div>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--> `);\n if (report) {\n $$renderer4.push(\"<!--[0-->\");\n const overall = statusStyle[report.overall];\n const OverallIcon = overall.icon;\n $$renderer4.push(`<div class=\"space-y-3\"><div${attr_class(`flex items-center gap-2 text-sm font-medium ${stringify(overall.text)}`)}>`);\n if (OverallIcon) {\n $$renderer4.push(\"<!--[-->\");\n OverallIcon($$renderer4, { class: \"h-5 w-5\" });\n $$renderer4.push(\"<!--]-->\");\n } else {\n $$renderer4.push(\"<!--[!-->\");\n $$renderer4.push(\"<!--]-->\");\n }\n $$renderer4.push(` <span>${escape_html(report.overall === \"ok\" ? \"All checks passed\" : report.overall === \"degraded\" ? \"Attention needed\" : report.overall === \"error\" ? \"Check failed to run\" : \"No applicable checks\")}</span> <span class=\"text-muted-foreground ml-auto text-xs font-normal\">${escape_html(new Date(report.checkedAt).toLocaleTimeString())}</span></div> <div class=\"divide-y rounded-lg border\"><!--[-->`);\n const each_array = ensure_array_like(report.checks);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let check = each_array[$$index];\n const style = statusStyle[check.status];\n const Icon2 = style.icon;\n $$renderer4.push(`<div class=\"flex items-start gap-3 px-4 py-3\">`);\n if (Icon2) {\n $$renderer4.push(\"<!--[-->\");\n Icon2($$renderer4, { class: `mt-0.5 h-4 w-4 shrink-0 ${stringify(style.text)}` });\n $$renderer4.push(\"<!--]-->\");\n } else {\n $$renderer4.push(\"<!--[!-->\");\n $$renderer4.push(\"<!--]-->\");\n }\n $$renderer4.push(` <div class=\"min-w-0 flex-1 space-y-1\"><div class=\"flex items-center justify-between gap-2\"><span class=\"text-sm font-medium\">${escape_html(check.label)}</span> <span${attr_class(`rounded-full border px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase ${stringify(style.text)}`)}>${escape_html(style.label)}</span></div> <p class=\"text-muted-foreground text-xs\">${escape_html(check.summary)}</p> `);\n if (check.remediation) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<p class=\"text-foreground text-xs\">${escape_html(check.remediation)}</p>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--></div></div>`);\n }\n $$renderer4.push(`<!--]--></div></div>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]-->`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(\"<!--]-->\");\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer2.push(\"<!--]-->\");\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(\"<!--]-->\");\n }\n });\n}\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { data } = $$props;\n const flagDescriptions = {\n ALLOW_CROSS_ORG_PUBLIC: \"When on, projects can be made visible to every authenticated user on the instance, not just their own org.\",\n ALLOW_ORG_COMPUTE_OVERRIDE: \"When on, individual orgs can configure their own Rhino.Compute server instead of the instance pool.\",\n ALLOW_ORG_CREATION: 'When on, signed-in users see a \"Create organization\" action. Off by default in self-hosted instances.',\n ENABLE_PLATFORM_PROJECTS: \"When on, the Admin → Projects surface is reachable: instance admins can create platform-owned projects and grant view/solve access to orgs or individual users. When off, the surface 404s and platform-visibility projects are hidden everywhere — existing rows are preserved.\",\n ENABLE_SHARING: \"When on, editors can mint per-definition share links that grant anonymous external access. When off, the mint/list/revoke routes return 404 and any previously-minted tokens stop resolving.\"\n };\n let updateRunning = false;\n let updateLogs = \"\";\n let updateExitCode = null;\n let updateRestarting = false;\n async function fetchHealth() {\n try {\n const res = await fetch(\"/api/health\", { cache: \"no-store\" });\n if (!res.ok) return null;\n return await res.json();\n } catch {\n return null;\n }\n }\n async function fetchUpdateLog() {\n try {\n const res = await fetch(\"/admin/api/system/update\", { cache: \"no-store\" });\n if (!res.ok) return null;\n return await res.text();\n } catch {\n return null;\n }\n }\n function exitCodeFromLog(log) {\n if (/\\bManual recovery required\\b/.test(log)) return 6;\n if (/\\bRolled back to .* — previous version is online\\b/.test(log)) return 5;\n if (/New process failed health check/.test(log) && !/Rolled back/.test(log)) return 3;\n if (/\\[FATAL\\]/.test(log) && !/\\[DONE\\]/.test(log)) return 1;\n if (/\\[DONE\\]/.test(log)) return 0;\n return null;\n }\n async function waitForAppRestart(previousInstanceId) {\n updateLogs += \"\\nWaiting for app to come back online…\\n\";\n await new Promise((r) => setTimeout(r, 2e3));\n const maxAttempts = 150;\n for (let i = 0; i < maxAttempts; i++) {\n const [health, log] = await Promise.all([fetchHealth(), fetchUpdateLog()]);\n if (log && log.trim().length > 0) {\n updateLogs = log;\n }\n const newProcessUp = health?.instanceId && health.instanceId !== previousInstanceId;\n const logVerdict = exitCodeFromLog(updateLogs);\n if (newProcessUp) {\n updateExitCode = logVerdict ?? 0;\n updateRunning = false;\n updateRestarting = false;\n return;\n }\n if (!previousInstanceId && health && logVerdict !== null) {\n updateExitCode = logVerdict;\n updateRunning = false;\n updateRestarting = false;\n return;\n }\n await new Promise((r) => setTimeout(r, 2e3));\n }\n const finalLog = await fetchUpdateLog();\n if (finalLog && finalLog.trim().length > 0) updateLogs = finalLog;\n updateLogs += \"\\n⚠ App did not come back within 5 minutes — check PM2 logs.\\n\";\n updateExitCode = -2;\n updateRunning = false;\n updateRestarting = false;\n }\n async function runUpdate() {\n updateRunning = true;\n updateRestarting = false;\n updateLogs = \"\";\n updateExitCode = null;\n const preHealth = await fetchHealth();\n const previousInstanceId = preHealth?.instanceId ?? null;\n try {\n const response = await fetch(\"/admin/api/system/update\", { method: \"POST\" });\n if (!response.ok) {\n updateLogs = \"Failed to start update process\";\n updateExitCode = response.status;\n updateRunning = false;\n return;\n }\n const reader = response.body?.getReader();\n const decoder = new TextDecoder();\n if (!reader) {\n updateLogs = \"Failed to read response\";\n updateExitCode = -1;\n updateRunning = false;\n return;\n }\n let buffer = \"\";\n let sawRestarting = false;\n let sawExit = false;\n let streamExitCode = null;\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n buffer += decoder.decode(value, { stream: true });\n const parts = buffer.split(\"\\n\\n\");\n buffer = parts.pop();\n for (const part of parts) {\n if (!part.startsWith(\"data: \")) continue;\n try {\n const event = JSON.parse(part.slice(6));\n if (event.type === \"log\") {\n updateLogs += event.data + \"\\n\";\n } else if (event.type === \"restarting\") {\n updateLogs += event.data + \"\\n\";\n updateRestarting = true;\n sawRestarting = true;\n } else if (event.type === \"exit\") {\n sawExit = true;\n streamExitCode = event.code;\n }\n } catch {\n }\n }\n }\n if (sawRestarting) {\n await waitForAppRestart(previousInstanceId);\n } else if (sawExit && streamExitCode === 0) {\n updateExitCode = 0;\n updateRunning = false;\n } else if (sawExit) {\n updateExitCode = streamExitCode ?? -1;\n updateRunning = false;\n } else {\n await waitForAppRestart(previousInstanceId);\n }\n } catch (err) {\n if (updateRestarting) {\n await waitForAppRestart(previousInstanceId);\n } else {\n updateLogs += \"\\nError: \" + (err instanceof Error ? err.message : \"Unknown error\");\n updateExitCode = -1;\n updateRunning = false;\n }\n }\n }\n head(\"1uq49ma\", $$renderer2, ($$renderer3) => {\n $$renderer3.title(($$renderer4) => {\n $$renderer4.push(`<title>Admin · System</title>`);\n });\n });\n $$renderer2.push(`<div class=\"space-y-6\">`);\n SectionHeader($$renderer2, {\n eyebrow: \"Admin\",\n title: \"System settings\",\n description: \"Instance-wide configuration, platform flags, and the update runner. To change platform flags, edit SELVA_FLAG_* in your .env and restart the app.\"\n });\n $$renderer2.push(`<!----> `);\n if (Card) {\n $$renderer2.push(\"<!--[-->\");\n Card($$renderer2, {\n children: ($$renderer3) => {\n if (Card_header) {\n $$renderer3.push(\"<!--[-->\");\n Card_header($$renderer3, {\n children: ($$renderer4) => {\n if (Card_title) {\n $$renderer4.push(\"<!--[-->\");\n Card_title($$renderer4, {\n class: \"text-sm font-medium\",\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->Platform flags`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(\"<!--]-->\");\n } else {\n $$renderer4.push(\"<!--[!-->\");\n $$renderer4.push(\"<!--]-->\");\n }\n $$renderer4.push(` `);\n if (Card_description) {\n $$renderer4.push(\"<!--[-->\");\n Card_description($$renderer4, {\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->Resolved state of the env-driven flags that control instance behavior. To change a flag,\n\t\t\t\tedit your environment configuration and restart the app.`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(\"<!--]-->\");\n } else {\n $$renderer4.push(\"<!--[!-->\");\n $$renderer4.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer3.push(\"<!--]-->\");\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(\"<!--]-->\");\n }\n $$renderer3.push(` `);\n if (Card_content) {\n $$renderer3.push(\"<!--[-->\");\n Card_content($$renderer3, {\n children: ($$renderer4) => {\n $$renderer4.push(`<div class=\"divide-y rounded-lg border\"><!--[-->`);\n const each_array = ensure_array_like(Object.entries(data.flags));\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let [name, value] = each_array[$$index];\n $$renderer4.push(`<div class=\"flex items-start justify-between gap-4 px-4 py-3\"><div class=\"min-w-0 flex-1\"><code class=\"text-foreground font-mono text-xs\">${escape_html(name)}</code> <p class=\"text-muted-foreground mt-1 text-xs\">${escape_html(flagDescriptions[name])}</p></div> <span${attr_class(`rounded-full border px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase ${value ? \"border-success/40 bg-success/10 text-success\" : \"border-border text-muted-foreground\"}`)}>${escape_html(value ? \"On\" : \"Off\")}</span></div>`);\n }\n $$renderer4.push(`<!--]--></div>`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(\"<!--]-->\");\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer2.push(\"<!--]-->\");\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(\"<!--]-->\");\n }\n $$renderer2.push(` `);\n if (data.isInstanceAdmin) {\n $$renderer2.push(\"<!--[0-->\");\n HealthSection($$renderer2);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> `);\n if (data.canManageUpdates) {\n $$renderer2.push(\"<!--[0-->\");\n UpdateSection($$renderer2, {\n currentVersion: data.version,\n isRunning: updateRunning,\n isRestarting: updateRestarting,\n logs: updateLogs,\n exitCode: updateExitCode,\n onRun: runUpdate\n });\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></div>`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { json } from '@sveltejs/kit';
|
|
2
2
|
import { execSync } from 'child_process';
|
|
3
|
+
import { randomUUID } from 'crypto';
|
|
4
|
+
import { createRequire } from 'module';
|
|
3
5
|
import { g as getBootHealth, i as isDegraded } from './bootHealth.server-CLLVkbZZ.js';
|
|
4
6
|
import './context-DKDYb-He.js';
|
|
5
7
|
import 'zod';
|
|
@@ -19,17 +21,28 @@ const STARTUP_COMMIT = (() => {
|
|
|
19
21
|
return null;
|
|
20
22
|
}
|
|
21
23
|
})();
|
|
24
|
+
const INSTANCE_ID = randomUUID();
|
|
25
|
+
const RUNTIME_VERSION = (() => {
|
|
26
|
+
try {
|
|
27
|
+
const require2 = createRequire(import.meta.url);
|
|
28
|
+
return require2("@selvajs/selva/package.json").version;
|
|
29
|
+
} catch {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
})();
|
|
22
33
|
const GET = async () => {
|
|
23
34
|
const boot = await getBootHealth();
|
|
24
35
|
const degraded = isDegraded(boot);
|
|
25
36
|
const body = {
|
|
26
37
|
status: degraded ? "degraded" : "ok",
|
|
27
38
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
39
|
+
instanceId: INSTANCE_ID,
|
|
28
40
|
commit: STARTUP_COMMIT,
|
|
41
|
+
version: RUNTIME_VERSION,
|
|
29
42
|
boot
|
|
30
43
|
};
|
|
31
44
|
return json(body, { status: degraded ? 503 : 200 });
|
|
32
45
|
};
|
|
33
46
|
|
|
34
47
|
export { GET };
|
|
35
|
-
//# sourceMappingURL=_server.ts-
|
|
48
|
+
//# sourceMappingURL=_server.ts-CgAD4Qlv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-CgAD4Qlv.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/health/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { execSync } from \"child_process\";\nimport { randomUUID } from \"crypto\";\nimport { createRequire } from \"module\";\nimport { g as getBootHealth, i as isDegraded } from \"../../../../chunks/bootHealth.server.js\";\nconst STARTUP_COMMIT = (() => {\n try {\n return execSync(\"git rev-parse HEAD\", { encoding: \"utf8\" }).trim();\n } catch {\n return null;\n }\n})();\nconst INSTANCE_ID = randomUUID();\nconst RUNTIME_VERSION = (() => {\n try {\n const require2 = createRequire(import.meta.url);\n return require2(\"@selvajs/selva/package.json\").version;\n } catch {\n return null;\n }\n})();\nconst GET = async () => {\n const boot = await getBootHealth();\n const degraded = isDegraded(boot);\n const body = {\n status: degraded ? \"degraded\" : \"ok\",\n timestamp: (/* @__PURE__ */ new Date()).toISOString(),\n instanceId: INSTANCE_ID,\n commit: STARTUP_COMMIT,\n version: RUNTIME_VERSION,\n boot\n };\n return json(body, { status: degraded ? 503 : 200 });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAKA,MAAM,cAAc,GAAG,CAAC,MAAM;AAC9B,EAAE,IAAI;AACN,IAAI,OAAO,QAAQ,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE;AACtE,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,IAAI;AACf,EAAE;AACF,CAAC,GAAG;AACJ,MAAM,WAAW,GAAG,UAAU,EAAE;AAChC,MAAM,eAAe,GAAG,CAAC,MAAM;AAC/B,EAAE,IAAI;AACN,IAAI,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AACnD,IAAI,OAAO,QAAQ,CAAC,6BAA6B,CAAC,CAAC,OAAO;AAC1D,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,IAAI;AACf,EAAE;AACF,CAAC,GAAG;AACC,MAAC,GAAG,GAAG,YAAY;AACxB,EAAE,MAAM,IAAI,GAAG,MAAM,aAAa,EAAE;AACpC,EAAE,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;AACnC,EAAE,MAAM,IAAI,GAAG;AACf,IAAI,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI;AACxC,IAAI,SAAS,EAAE,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE;AACzD,IAAI,UAAU,EAAE,WAAW;AAC3B,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,OAAO,EAAE,eAAe;AAC5B,IAAI;AACJ,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;AACrD;;;;"}
|
|
@@ -20,9 +20,12 @@ const POST = async ({ request, locals, url }) => {
|
|
|
20
20
|
throw error(400, "projectId query parameter is required");
|
|
21
21
|
}
|
|
22
22
|
const { project } = await requireCanCreateDefinition(locals, projectId);
|
|
23
|
+
const computeServerId = url.searchParams.get("computeServerId");
|
|
23
24
|
let server;
|
|
24
25
|
try {
|
|
25
|
-
server = await resolveServerForOrg(locals.ctx, project.orgId
|
|
26
|
+
server = await resolveServerForOrg(locals.ctx, project.orgId, {
|
|
27
|
+
definitionPin: computeServerId
|
|
28
|
+
});
|
|
26
29
|
} catch (err) {
|
|
27
30
|
if (err instanceof ComputeServerUnconfiguredError) throw error(503, err.message);
|
|
28
31
|
throw err;
|
|
@@ -54,4 +57,4 @@ const POST = async ({ request, locals, url }) => {
|
|
|
54
57
|
};
|
|
55
58
|
|
|
56
59
|
export { POST };
|
|
57
|
-
//# sourceMappingURL=_server.ts-
|
|
60
|
+
//# sourceMappingURL=_server.ts-DWCKRNAG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-DWCKRNAG.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/compute/schema/_server.ts.js"],"sourcesContent":["import { r as resolveServerForOrg, C as ComputeServerUnconfiguredError } from \"../../../../../chunks/api-errors.js\";\nimport { r as requireCanCreateDefinition } from \"../../../../../chunks/access.server.js\";\nimport { error } from \"@sveltejs/kit\";\nimport { camelcaseKeys } from \"@selvajs/compute/core\";\nconst POST = async ({ request, locals, url }) => {\n const projectId = url.searchParams.get(\"projectId\");\n if (!projectId) {\n throw error(400, \"projectId query parameter is required\");\n }\n const { project } = await requireCanCreateDefinition(locals, projectId);\n const computeServerId = url.searchParams.get(\"computeServerId\");\n let server;\n try {\n server = await resolveServerForOrg(locals.ctx, project.orgId, {\n definitionPin: computeServerId\n });\n } catch (err) {\n if (err instanceof ComputeServerUnconfiguredError) throw error(503, err.message);\n throw err;\n }\n const formData = await request.formData();\n const schemaUrl = new URL(\"/grasshopper/schema\", server.serverUrl).toString();\n const headers = {};\n if (server.apiKey) {\n headers[\"RhinoComputeKey\"] = server.apiKey;\n }\n let response;\n try {\n response = await fetch(schemaUrl, { method: \"POST\", headers, body: formData });\n } catch {\n throw error(503, \"Compute server is unreachable\");\n }\n if (!response.ok) {\n throw error(response.status, \"Compute server error\");\n }\n const raw = await response.json();\n const results = camelcaseKeys(Array.isArray(raw) ? raw : [raw]);\n const schemas = results.flatMap((r) => r.schemas ?? []);\n if (schemas.length === 0) {\n throw error(422, \"No schemas found in definition\");\n }\n return new Response(JSON.stringify(schemas), {\n headers: { \"Content-Type\": \"application/json\" }\n });\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAIK,MAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK;AACjD,EAAE,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC;AACrD,EAAE,IAAI,CAAC,SAAS,EAAE;AAClB,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,uCAAuC,CAAC;AAC7D,EAAE;AACF,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,0BAA0B,CAAC,MAAM,EAAE,SAAS,CAAC;AACzE,EAAE,MAAM,eAAe,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC;AACjE,EAAE,IAAI,MAAM;AACZ,EAAE,IAAI;AACN,IAAI,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE;AAClE,MAAM,aAAa,EAAE;AACrB,KAAK,CAAC;AACN,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,IAAI,GAAG,YAAY,8BAA8B,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;AACpF,IAAI,MAAM,GAAG;AACb,EAAE;AACF,EAAE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE;AAC3C,EAAE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;AAC/E,EAAE,MAAM,OAAO,GAAG,EAAE;AACpB,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE;AACrB,IAAI,OAAO,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC,MAAM;AAC9C,EAAE;AACF,EAAE,IAAI,QAAQ;AACd,EAAE,IAAI;AACN,IAAI,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAClF,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,+BAA+B,CAAC;AACrD,EAAE;AACF,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AACpB,IAAI,MAAM,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;AACxD,EAAE;AACF,EAAE,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AACnC,EAAE,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACjE,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;AACzD,EAAE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,gCAAgC,CAAC;AACtD,EAAE;AACF,EAAE,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;AAC/C,IAAI,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB;AACjD,GAAG,CAAC;AACJ;;;;"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { json } from '@sveltejs/kit';
|
|
2
|
+
import { randomUUID } from 'node:crypto';
|
|
3
|
+
import { mkdir, writeFile, unlink } from 'node:fs/promises';
|
|
4
|
+
import { resolve, join } from 'node:path';
|
|
5
|
+
import { p as private_env } from './shared-server-C3WdcJCQ.js';
|
|
6
|
+
import './context-DKDYb-He.js';
|
|
7
|
+
import { f as findServerById } from './utils2-BsnrDRob.js';
|
|
8
|
+
import { t as providers, L as LocalComputeServerStore, c as getComputeServerConfigStore } from './providers.server-wGknM6CR.js';
|
|
9
|
+
import { z as requirePermission } from './access.server-ByXvmWyF.js';
|
|
10
|
+
import 'zod';
|
|
11
|
+
import 'node:url';
|
|
12
|
+
import 'node:fs';
|
|
13
|
+
import '@supabase/supabase-js';
|
|
14
|
+
import './api-errors-C0SWfJj5.js';
|
|
15
|
+
import '@selvajs/compute/core';
|
|
16
|
+
|
|
17
|
+
function atRestSecretsCheck(report) {
|
|
18
|
+
const base = { id: "at-rest-secrets", label: "Compute server secrets" };
|
|
19
|
+
if (report === null) {
|
|
20
|
+
return {
|
|
21
|
+
...base,
|
|
22
|
+
status: "not_applicable",
|
|
23
|
+
summary: "The active data provider does not encrypt secrets at this layer — nothing to verify."
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
if (report.ok) {
|
|
27
|
+
return {
|
|
28
|
+
...base,
|
|
29
|
+
status: "ok",
|
|
30
|
+
summary: "All stored compute server API keys decrypt under the current SELVA_AT_REST_KEY."
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
const failed = report.failures.map((f) => `"${f.serverLabel}" (${f.reason}${f.cause ? `: ${f.cause}` : ""})`).join(", ");
|
|
34
|
+
const plaintext = report.plaintextFound;
|
|
35
|
+
return {
|
|
36
|
+
...base,
|
|
37
|
+
status: "degraded",
|
|
38
|
+
summary: `${report.failures.length} compute server key(s) could not be loaded: ${failed}.`,
|
|
39
|
+
remediation: plaintext ? "A key is stored in plaintext on disk — re-enter it via /admin/compute so it is encrypted." : "The stored ciphertext does not match the current SELVA_AT_REST_KEY (rotated key or restored backup). Re-enter the affected keys via /admin/compute, or restore the original SELVA_AT_REST_KEY, then run this check again."
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
const COMPUTE_PING_TIMEOUT_MS = 8e3;
|
|
43
|
+
async function computeReachabilityCheck(locals) {
|
|
44
|
+
const base = { id: "compute-reachable", label: "Default compute server" };
|
|
45
|
+
let config;
|
|
46
|
+
try {
|
|
47
|
+
config = await getComputeServerConfigStore().getConfig(locals.ctx);
|
|
48
|
+
} catch (err) {
|
|
49
|
+
return {
|
|
50
|
+
...base,
|
|
51
|
+
status: "error",
|
|
52
|
+
summary: `Could not read compute config: ${err instanceof Error ? err.message : String(err)}`
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
const server = config.defaultServerId ? findServerById(config, config.defaultServerId) : void 0;
|
|
56
|
+
if (!server) {
|
|
57
|
+
return {
|
|
58
|
+
...base,
|
|
59
|
+
status: "not_applicable",
|
|
60
|
+
summary: "No default compute server is configured — nothing to reach.",
|
|
61
|
+
remediation: "Add a server and set it as default in /admin/compute."
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
const controller = new AbortController();
|
|
65
|
+
const timer = setTimeout(() => controller.abort(), COMPUTE_PING_TIMEOUT_MS);
|
|
66
|
+
try {
|
|
67
|
+
const headers = {};
|
|
68
|
+
if (server.apiKey) headers["RhinoComputeKey"] = server.apiKey;
|
|
69
|
+
const res = await fetch(new URL("/healthcheck", server.serverUrl).toString(), {
|
|
70
|
+
signal: controller.signal,
|
|
71
|
+
headers
|
|
72
|
+
});
|
|
73
|
+
if (res.ok) {
|
|
74
|
+
return { ...base, status: "ok", summary: `"${server.label}" answered /healthcheck (200).` };
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
...base,
|
|
78
|
+
status: "degraded",
|
|
79
|
+
summary: `"${server.label}" responded ${res.status} to /healthcheck.`,
|
|
80
|
+
remediation: res.status === 401 || res.status === 403 ? "Authentication rejected — verify the API key in /admin/compute." : "The server is reachable but unhealthy. Check the Rhino.Compute host."
|
|
81
|
+
};
|
|
82
|
+
} catch (err) {
|
|
83
|
+
const aborted = err instanceof Error && err.name === "AbortError";
|
|
84
|
+
return {
|
|
85
|
+
...base,
|
|
86
|
+
status: "degraded",
|
|
87
|
+
summary: aborted ? `"${server.label}" did not respond within ${COMPUTE_PING_TIMEOUT_MS / 1e3}s.` : `"${server.label}" is unreachable: ${err instanceof Error ? err.message : String(err)}.`,
|
|
88
|
+
remediation: `Confirm the Rhino.Compute host is running and ${server.serverUrl} is correct.`
|
|
89
|
+
};
|
|
90
|
+
} finally {
|
|
91
|
+
clearTimeout(timer);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
async function dataPathWritableCheck() {
|
|
95
|
+
const base = { id: "data-path-writable", label: "Data path writable" };
|
|
96
|
+
if (!(providers.data.computeServer instanceof LocalComputeServerStore)) {
|
|
97
|
+
return {
|
|
98
|
+
...base,
|
|
99
|
+
status: "not_applicable",
|
|
100
|
+
summary: "The active data provider does not persist to a local DATA_PATH."
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
const dataPath = private_env.DATA_PATH;
|
|
104
|
+
if (!dataPath) {
|
|
105
|
+
return {
|
|
106
|
+
...base,
|
|
107
|
+
status: "error",
|
|
108
|
+
summary: "DATA_PATH is unset but the local provider is active.",
|
|
109
|
+
remediation: "Set DATA_PATH in .env and restart."
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
const absolute = resolve(dataPath);
|
|
113
|
+
const probe = join(absolute, `.health-probe-${randomUUID()}`);
|
|
114
|
+
try {
|
|
115
|
+
await mkdir(absolute, { recursive: true });
|
|
116
|
+
await writeFile(probe, "ok");
|
|
117
|
+
await unlink(probe);
|
|
118
|
+
return { ...base, status: "ok", summary: `DATA_PATH (${dataPath}) is writable.` };
|
|
119
|
+
} catch (err) {
|
|
120
|
+
return {
|
|
121
|
+
...base,
|
|
122
|
+
status: "degraded",
|
|
123
|
+
summary: `DATA_PATH (${dataPath}) is not writable: ${err instanceof Error ? err.message : String(err)}.`,
|
|
124
|
+
remediation: "Check free disk space and that the directory is owned by the user running the app (`df -h`, `ls -la`)."
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
const GET = async ({ locals }) => {
|
|
129
|
+
requirePermission(locals, "instance_admin");
|
|
130
|
+
const checks = [];
|
|
131
|
+
const store = providers.data.computeServer;
|
|
132
|
+
if (store instanceof LocalComputeServerStore) {
|
|
133
|
+
try {
|
|
134
|
+
checks.push(atRestSecretsCheck(await store.verifySecrets()));
|
|
135
|
+
} catch (err) {
|
|
136
|
+
checks.push({
|
|
137
|
+
id: "at-rest-secrets",
|
|
138
|
+
label: "Compute server secrets",
|
|
139
|
+
status: "error",
|
|
140
|
+
summary: `Verification threw: ${err instanceof Error ? err.message : String(err)}`,
|
|
141
|
+
remediation: "Check server logs (`pm2 logs selva-compute`) for the underlying error."
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
} else {
|
|
145
|
+
checks.push(atRestSecretsCheck(null));
|
|
146
|
+
}
|
|
147
|
+
checks.push(...await Promise.all([computeReachabilityCheck(locals), dataPathWritableCheck()]));
|
|
148
|
+
const rank = {
|
|
149
|
+
ok: 0,
|
|
150
|
+
not_applicable: 0,
|
|
151
|
+
degraded: 2,
|
|
152
|
+
error: 3
|
|
153
|
+
};
|
|
154
|
+
const overall = checks.reduce(
|
|
155
|
+
(worst, c) => rank[c.status] > rank[worst] ? c.status : worst,
|
|
156
|
+
"ok"
|
|
157
|
+
);
|
|
158
|
+
return json({ overall, checkedAt: (/* @__PURE__ */ new Date()).toISOString(), checks });
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
export { GET };
|
|
162
|
+
//# sourceMappingURL=_server.ts-Db9C0y4L.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-Db9C0y4L.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/system/health/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { randomUUID } from \"node:crypto\";\nimport { mkdir, writeFile, unlink } from \"node:fs/promises\";\nimport { resolve, join } from \"node:path\";\nimport { p as private_env } from \"../../../../../../chunks/shared-server.js\";\nimport \"../../../../../../chunks/context.js\";\nimport { f as findServerById } from \"../../../../../../chunks/utils2.js\";\nimport { t as providers, L as LocalComputeServerStore, c as getComputeServerConfigStore } from \"../../../../../../chunks/providers.server.js\";\nimport { z as requirePermission } from \"../../../../../../chunks/access.server.js\";\nfunction atRestSecretsCheck(report) {\n const base = { id: \"at-rest-secrets\", label: \"Compute server secrets\" };\n if (report === null) {\n return {\n ...base,\n status: \"not_applicable\",\n summary: \"The active data provider does not encrypt secrets at this layer — nothing to verify.\"\n };\n }\n if (report.ok) {\n return {\n ...base,\n status: \"ok\",\n summary: \"All stored compute server API keys decrypt under the current SELVA_AT_REST_KEY.\"\n };\n }\n const failed = report.failures.map((f) => `\"${f.serverLabel}\" (${f.reason}${f.cause ? `: ${f.cause}` : \"\"})`).join(\", \");\n const plaintext = report.plaintextFound;\n return {\n ...base,\n status: \"degraded\",\n summary: `${report.failures.length} compute server key(s) could not be loaded: ${failed}.`,\n remediation: plaintext ? \"A key is stored in plaintext on disk — re-enter it via /admin/compute so it is encrypted.\" : \"The stored ciphertext does not match the current SELVA_AT_REST_KEY (rotated key or restored backup). Re-enter the affected keys via /admin/compute, or restore the original SELVA_AT_REST_KEY, then run this check again.\"\n };\n}\nconst COMPUTE_PING_TIMEOUT_MS = 8e3;\nasync function computeReachabilityCheck(locals) {\n const base = { id: \"compute-reachable\", label: \"Default compute server\" };\n let config;\n try {\n config = await getComputeServerConfigStore().getConfig(locals.ctx);\n } catch (err) {\n return {\n ...base,\n status: \"error\",\n summary: `Could not read compute config: ${err instanceof Error ? err.message : String(err)}`\n };\n }\n const server = config.defaultServerId ? findServerById(config, config.defaultServerId) : void 0;\n if (!server) {\n return {\n ...base,\n status: \"not_applicable\",\n summary: \"No default compute server is configured — nothing to reach.\",\n remediation: \"Add a server and set it as default in /admin/compute.\"\n };\n }\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), COMPUTE_PING_TIMEOUT_MS);\n try {\n const headers = {};\n if (server.apiKey) headers[\"RhinoComputeKey\"] = server.apiKey;\n const res = await fetch(new URL(\"/healthcheck\", server.serverUrl).toString(), {\n signal: controller.signal,\n headers\n });\n if (res.ok) {\n return { ...base, status: \"ok\", summary: `\"${server.label}\" answered /healthcheck (200).` };\n }\n return {\n ...base,\n status: \"degraded\",\n summary: `\"${server.label}\" responded ${res.status} to /healthcheck.`,\n remediation: res.status === 401 || res.status === 403 ? \"Authentication rejected — verify the API key in /admin/compute.\" : \"The server is reachable but unhealthy. Check the Rhino.Compute host.\"\n };\n } catch (err) {\n const aborted = err instanceof Error && err.name === \"AbortError\";\n return {\n ...base,\n status: \"degraded\",\n summary: aborted ? `\"${server.label}\" did not respond within ${COMPUTE_PING_TIMEOUT_MS / 1e3}s.` : `\"${server.label}\" is unreachable: ${err instanceof Error ? err.message : String(err)}.`,\n remediation: `Confirm the Rhino.Compute host is running and ${server.serverUrl} is correct.`\n };\n } finally {\n clearTimeout(timer);\n }\n}\nasync function dataPathWritableCheck() {\n const base = { id: \"data-path-writable\", label: \"Data path writable\" };\n if (!(providers.data.computeServer instanceof LocalComputeServerStore)) {\n return {\n ...base,\n status: \"not_applicable\",\n summary: \"The active data provider does not persist to a local DATA_PATH.\"\n };\n }\n const dataPath = private_env.DATA_PATH;\n if (!dataPath) {\n return {\n ...base,\n status: \"error\",\n summary: \"DATA_PATH is unset but the local provider is active.\",\n remediation: \"Set DATA_PATH in .env and restart.\"\n };\n }\n const absolute = resolve(dataPath);\n const probe = join(absolute, `.health-probe-${randomUUID()}`);\n try {\n await mkdir(absolute, { recursive: true });\n await writeFile(probe, \"ok\");\n await unlink(probe);\n return { ...base, status: \"ok\", summary: `DATA_PATH (${dataPath}) is writable.` };\n } catch (err) {\n return {\n ...base,\n status: \"degraded\",\n summary: `DATA_PATH (${dataPath}) is not writable: ${err instanceof Error ? err.message : String(err)}.`,\n remediation: \"Check free disk space and that the directory is owned by the user running the app (`df -h`, `ls -la`).\"\n };\n }\n}\nconst GET = async ({ locals }) => {\n requirePermission(locals, \"instance_admin\");\n const checks = [];\n const store = providers.data.computeServer;\n if (store instanceof LocalComputeServerStore) {\n try {\n checks.push(atRestSecretsCheck(await store.verifySecrets()));\n } catch (err) {\n checks.push({\n id: \"at-rest-secrets\",\n label: \"Compute server secrets\",\n status: \"error\",\n summary: `Verification threw: ${err instanceof Error ? err.message : String(err)}`,\n remediation: \"Check server logs (`pm2 logs selva-compute`) for the underlying error.\"\n });\n }\n } else {\n checks.push(atRestSecretsCheck(null));\n }\n checks.push(...await Promise.all([computeReachabilityCheck(locals), dataPathWritableCheck()]));\n const rank = {\n ok: 0,\n not_applicable: 0,\n degraded: 2,\n error: 3\n };\n const overall = checks.reduce(\n (worst, c) => rank[c.status] > rank[worst] ? c.status : worst,\n \"ok\"\n );\n return json({ overall, checkedAt: (/* @__PURE__ */ new Date()).toISOString(), checks });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":"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"}
|
package/build/server/index.js
CHANGED
|
@@ -1171,7 +1171,7 @@ const options = {
|
|
|
1171
1171
|
<div class="error">
|
|
1172
1172
|
<span class="status">` + status + '</span>\n <div class="message">\n <h1>' + message + "</h1>\n </div>\n </div>\n </body>\n</html>\n"
|
|
1173
1173
|
},
|
|
1174
|
-
version_hash: "
|
|
1174
|
+
version_hash: "2hphrz"
|
|
1175
1175
|
};
|
|
1176
1176
|
async function get_hooks() {
|
|
1177
1177
|
let handle;
|