@openpalm/ui 0.12.44-beta.3 → 0.12.44
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/.openpalm-ui-version +1 -1
- package/build/client/_app/immutable/chunks/BK-tywES.js +1 -0
- package/build/client/_app/immutable/chunks/BK-tywES.js.br +2 -0
- package/build/client/_app/immutable/chunks/BK-tywES.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{evi_gjgm.js → BOfhzsO0.js} +1 -1
- package/build/client/_app/immutable/chunks/BOfhzsO0.js.br +0 -0
- package/build/client/_app/immutable/chunks/BOfhzsO0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{f7RVXtqW.js → C263EwX8.js} +1 -1
- package/build/client/_app/immutable/chunks/C263EwX8.js.br +0 -0
- package/build/client/_app/immutable/chunks/C263EwX8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{K3qHYojq.js → CLensmFQ.js} +2 -2
- package/build/client/_app/immutable/chunks/CLensmFQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/CLensmFQ.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.scW_rA1f.js → app.kSnQAR_r.js} +2 -2
- package/build/client/_app/immutable/entry/app.kSnQAR_r.js.br +0 -0
- package/build/client/_app/immutable/entry/app.kSnQAR_r.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CjknpNta.js +1 -0
- package/build/client/_app/immutable/entry/start.CjknpNta.js.br +0 -0
- package/build/client/_app/immutable/entry/start.CjknpNta.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.D8frsOTg.js → 1.BsVZFCPI.js} +1 -1
- package/build/client/_app/immutable/nodes/1.BsVZFCPI.js.br +1 -0
- package/build/client/_app/immutable/nodes/1.BsVZFCPI.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{10.D09OIQtP.js → 10.f9V6641a.js} +1 -1
- package/build/client/_app/immutable/nodes/10.f9V6641a.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.f9V6641a.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{4.SLNOQQJ_.js → 4.7q4gRwAu.js} +1 -1
- package/build/client/_app/immutable/nodes/4.7q4gRwAu.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.7q4gRwAu.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.CHXC0PYo.js → 5.0eWsC6Gy.js} +1 -1
- package/build/client/_app/immutable/nodes/5.0eWsC6Gy.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.0eWsC6Gy.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.CflBuifB.js → 6.BhH4GsOD.js} +1 -1
- package/build/client/_app/immutable/nodes/6.BhH4GsOD.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BhH4GsOD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.B01_Onpp.js → 7.DxSYgHDg.js} +1 -1
- package/build/client/_app/immutable/nodes/7.DxSYgHDg.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.DxSYgHDg.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{8.D9cL-FQ9.js → 8._je1c8Vn.js} +1 -1
- package/build/client/_app/immutable/nodes/8._je1c8Vn.js.br +0 -0
- package/build/client/_app/immutable/nodes/8._je1c8Vn.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{9.Bqodt8Cm.js → 9.CX1687Ng.js} +1 -1
- package/build/client/_app/immutable/nodes/9.CX1687Ng.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.CX1687Ng.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +2 -1
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/1-D1gNV4OA.js +9 -0
- package/build/server/chunks/{1-Be_FBgct.js.map → 1-D1gNV4OA.js.map} +1 -1
- package/build/server/chunks/{10-CgFhl2si.js → 10-C1p2XJG4.js} +6 -6
- package/build/server/chunks/{10-CgFhl2si.js.map → 10-C1p2XJG4.js.map} +1 -1
- package/build/server/chunks/{4-CgZ0-JhO.js → 4-CoWnFM_n.js} +3 -3
- package/build/server/chunks/{4-CgZ0-JhO.js.map → 4-CoWnFM_n.js.map} +1 -1
- package/build/server/chunks/{5-BnUNuayr.js → 5-BoOkg3j-.js} +3 -3
- package/build/server/chunks/{5-BnUNuayr.js.map → 5-BoOkg3j-.js.map} +1 -1
- package/build/server/chunks/{6-K3sBGaqK.js → 6-C2CYPs5n.js} +3 -3
- package/build/server/chunks/{6-K3sBGaqK.js.map → 6-C2CYPs5n.js.map} +1 -1
- package/build/server/chunks/{7-BxMrewON.js → 7-CD4RFM-K.js} +3 -3
- package/build/server/chunks/{7-BxMrewON.js.map → 7-CD4RFM-K.js.map} +1 -1
- package/build/server/chunks/{8-BDQoz7Yb.js → 8-CGK5TPxb.js} +3 -3
- package/build/server/chunks/{8-BDQoz7Yb.js.map → 8-CGK5TPxb.js.map} +1 -1
- package/build/server/chunks/{9-Bk90d9MC.js → 9-CwsLxJkm.js} +3 -3
- package/build/server/chunks/{9-Bk90d9MC.js.map → 9-CwsLxJkm.js.map} +1 -1
- package/build/server/chunks/{Navbar-B7kohQC7.js → Navbar-BR0J8rAC.js} +4 -4
- package/build/server/chunks/{Navbar-B7kohQC7.js.map → Navbar-BR0J8rAC.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DxgOXUYx.js → _page.svelte-8cQtZj7v.js} +6 -6
- package/build/server/chunks/{_page.svelte-DxgOXUYx.js.map → _page.svelte-8cQtZj7v.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-G_myvmwm.js → _page.svelte-Bg8heLoI.js} +2 -2
- package/build/server/chunks/{_page.svelte-G_myvmwm.js.map → _page.svelte-Bg8heLoI.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-BV0SPaXX.js → _page.svelte-CGyQoVDs.js} +6 -6
- package/build/server/chunks/{_page.svelte-BV0SPaXX.js.map → _page.svelte-CGyQoVDs.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DiSEzF5O.js → _page.svelte-CJaj_qOx.js} +3 -3
- package/build/server/chunks/{_page.svelte-DiSEzF5O.js.map → _page.svelte-CJaj_qOx.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DSGtyXDq.js → _page.svelte-CgIVqoEs.js} +4 -4
- package/build/server/chunks/{_page.svelte-DSGtyXDq.js.map → _page.svelte-CgIVqoEs.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-D-3EmDHN.js → _page.svelte-Dc1I8reh.js} +6 -6
- package/build/server/chunks/{_page.svelte-D-3EmDHN.js.map → _page.svelte-Dc1I8reh.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-BQA9Az_o.js → _page.svelte-DjJOojFy.js} +3 -3
- package/build/server/chunks/{_page.svelte-BQA9Az_o.js.map → _page.svelte-DjJOojFy.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CoDgsnOz.js → _server.ts-0QNGItBX.js} +5 -5
- package/build/server/chunks/{_server.ts-CoDgsnOz.js.map → _server.ts-0QNGItBX.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DwIATHTF.js → _server.ts-4G38ZiPm.js} +5 -5
- package/build/server/chunks/{_server.ts-DwIATHTF.js.map → _server.ts-4G38ZiPm.js.map} +1 -1
- package/build/server/chunks/{_server.ts-ChXBGWNM.js → _server.ts-4Xr9h6Pa.js} +5 -5
- package/build/server/chunks/{_server.ts-ChXBGWNM.js.map → _server.ts-4Xr9h6Pa.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CsxfTfQB.js → _server.ts-7lvswLUR.js} +5 -5
- package/build/server/chunks/{_server.ts-CsxfTfQB.js.map → _server.ts-7lvswLUR.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bd7fIWHv.js → _server.ts-8QPo43Xf.js} +5 -5
- package/build/server/chunks/{_server.ts-Bd7fIWHv.js.map → _server.ts-8QPo43Xf.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BkSP8fI5.js → _server.ts-B8PEGtZu.js} +5 -5
- package/build/server/chunks/{_server.ts-BkSP8fI5.js.map → _server.ts-B8PEGtZu.js.map} +1 -1
- package/build/server/chunks/{_server.ts-loKJhr9m.js → _server.ts-B8ckfBOc.js} +5 -5
- package/build/server/chunks/{_server.ts-loKJhr9m.js.map → _server.ts-B8ckfBOc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DCYju4kE.js → _server.ts-BAwI28Af.js} +2 -2
- package/build/server/chunks/{_server.ts-DCYju4kE.js.map → _server.ts-BAwI28Af.js.map} +1 -1
- package/build/server/chunks/{_server.ts-R8N1thiU.js → _server.ts-BGDMBqlE.js} +5 -5
- package/build/server/chunks/{_server.ts-R8N1thiU.js.map → _server.ts-BGDMBqlE.js.map} +1 -1
- package/build/server/chunks/{_server.ts-dJqUwjBG.js → _server.ts-BGR9YdsG.js} +5 -5
- package/build/server/chunks/{_server.ts-dJqUwjBG.js.map → _server.ts-BGR9YdsG.js.map} +1 -1
- package/build/server/chunks/{_server.ts-pN2_RNME.js → _server.ts-BIdmvsMv.js} +5 -5
- package/build/server/chunks/{_server.ts-pN2_RNME.js.map → _server.ts-BIdmvsMv.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B4N6yIHH.js → _server.ts-BPOWpbse.js} +5 -5
- package/build/server/chunks/{_server.ts-B4N6yIHH.js.map → _server.ts-BPOWpbse.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BlyT77Gt.js → _server.ts-BQ3TKJuk.js} +2 -2
- package/build/server/chunks/{_server.ts-BlyT77Gt.js.map → _server.ts-BQ3TKJuk.js.map} +1 -1
- package/build/server/chunks/{_server.ts-ByobQEh8.js → _server.ts-BVN3CaiN.js} +5 -5
- package/build/server/chunks/{_server.ts-ByobQEh8.js.map → _server.ts-BVN3CaiN.js.map} +1 -1
- package/build/server/chunks/{_server.ts-ObEIo-_2.js → _server.ts-BWo-OyxA.js} +6 -6
- package/build/server/chunks/{_server.ts-ObEIo-_2.js.map → _server.ts-BWo-OyxA.js.map} +1 -1
- package/build/server/chunks/{_server.ts-xQEsxLEm.js → _server.ts-BadRoa1z.js} +5 -5
- package/build/server/chunks/{_server.ts-xQEsxLEm.js.map → _server.ts-BadRoa1z.js.map} +1 -1
- package/build/server/chunks/{_server.ts-rvTK7f5g.js → _server.ts-BjRpt-15.js} +5 -5
- package/build/server/chunks/{_server.ts-rvTK7f5g.js.map → _server.ts-BjRpt-15.js.map} +1 -1
- package/build/server/chunks/{_server.ts-gJtvf-1m.js → _server.ts-BpHYyIAQ.js} +5 -5
- package/build/server/chunks/{_server.ts-gJtvf-1m.js.map → _server.ts-BpHYyIAQ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-QQehD7cM.js → _server.ts-BqdrhN6T.js} +6 -6
- package/build/server/chunks/{_server.ts-QQehD7cM.js.map → _server.ts-BqdrhN6T.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CR2NW-56.js → _server.ts-BuZUw21A.js} +5 -5
- package/build/server/chunks/{_server.ts-CR2NW-56.js.map → _server.ts-BuZUw21A.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bhb2MsuB.js → _server.ts-Buq94QaZ.js} +5 -5
- package/build/server/chunks/{_server.ts-Bhb2MsuB.js.map → _server.ts-Buq94QaZ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-MsE7m-Ib.js → _server.ts-BuwilXIo.js} +5 -5
- package/build/server/chunks/{_server.ts-MsE7m-Ib.js.map → _server.ts-BuwilXIo.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BLypVTZC.js → _server.ts-Bvd-ia9u.js} +7 -7
- package/build/server/chunks/{_server.ts-BLypVTZC.js.map → _server.ts-Bvd-ia9u.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DSBTtSoe.js → _server.ts-C654vCNg.js} +5 -5
- package/build/server/chunks/{_server.ts-DSBTtSoe.js.map → _server.ts-C654vCNg.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BE8xxxh4.js → _server.ts-C7FAbT1j.js} +5 -5
- package/build/server/chunks/{_server.ts-BE8xxxh4.js.map → _server.ts-C7FAbT1j.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bc6kBQje.js → _server.ts-CDRiwnDy.js} +5 -5
- package/build/server/chunks/{_server.ts-Bc6kBQje.js.map → _server.ts-CDRiwnDy.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CRt_QuCx.js → _server.ts-CELMsabp.js} +5 -5
- package/build/server/chunks/{_server.ts-CRt_QuCx.js.map → _server.ts-CELMsabp.js.map} +1 -1
- package/build/server/chunks/{_server.ts-_U5ignFa.js → _server.ts-CGAgOt_d.js} +5 -5
- package/build/server/chunks/{_server.ts-_U5ignFa.js.map → _server.ts-CGAgOt_d.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D9jFrHf1.js → _server.ts-CJLdr-ks.js} +5 -5
- package/build/server/chunks/{_server.ts-D9jFrHf1.js.map → _server.ts-CJLdr-ks.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DZPgnoao.js → _server.ts-CRTwAa3N.js} +5 -5
- package/build/server/chunks/{_server.ts-DZPgnoao.js.map → _server.ts-CRTwAa3N.js.map} +1 -1
- package/build/server/chunks/{_server.ts-UfKg827Y.js → _server.ts-CUwTItmT.js} +7 -7
- package/build/server/chunks/{_server.ts-UfKg827Y.js.map → _server.ts-CUwTItmT.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B9eA40qC.js → _server.ts-CWz_Oxl8.js} +6 -6
- package/build/server/chunks/{_server.ts-B9eA40qC.js.map → _server.ts-CWz_Oxl8.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DE3_ZGUk.js → _server.ts-Cbgo5wRt.js} +6 -6
- package/build/server/chunks/{_server.ts-DE3_ZGUk.js.map → _server.ts-Cbgo5wRt.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BU0fw9E4.js → _server.ts-CbwHb5ED.js} +4 -4
- package/build/server/chunks/{_server.ts-BU0fw9E4.js.map → _server.ts-CbwHb5ED.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CCsdIs-l.js → _server.ts-CgzPyTwl.js} +5 -5
- package/build/server/chunks/{_server.ts-CCsdIs-l.js.map → _server.ts-CgzPyTwl.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DhhnrLdY.js → _server.ts-CnKA-6OD.js} +5 -5
- package/build/server/chunks/{_server.ts-DhhnrLdY.js.map → _server.ts-CnKA-6OD.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dja6Y8p4.js → _server.ts-ConZrEff.js} +5 -5
- package/build/server/chunks/{_server.ts-Dja6Y8p4.js.map → _server.ts-ConZrEff.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CE2ezAeu.js → _server.ts-Cq_S1dN_.js} +5 -5
- package/build/server/chunks/{_server.ts-CE2ezAeu.js.map → _server.ts-Cq_S1dN_.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DeJMe5lt.js → _server.ts-CsrnhmTb.js} +5 -5
- package/build/server/chunks/{_server.ts-DeJMe5lt.js.map → _server.ts-CsrnhmTb.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CHXPCAzX.js → _server.ts-CtaNnF4U.js} +6 -6
- package/build/server/chunks/{_server.ts-CHXPCAzX.js.map → _server.ts-CtaNnF4U.js.map} +1 -1
- package/build/server/chunks/{_server.ts-r6F68IJm.js → _server.ts-CuGyrveA.js} +5 -5
- package/build/server/chunks/{_server.ts-r6F68IJm.js.map → _server.ts-CuGyrveA.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BUEfj2T3.js → _server.ts-D-jybdjv.js} +5 -5
- package/build/server/chunks/{_server.ts-BUEfj2T3.js.map → _server.ts-D-jybdjv.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bp_JJ3Ry.js → _server.ts-D-tp2zQP.js} +6 -6
- package/build/server/chunks/{_server.ts-Bp_JJ3Ry.js.map → _server.ts-D-tp2zQP.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BdWDIGyT.js → _server.ts-D0VED1uF.js} +2 -2
- package/build/server/chunks/{_server.ts-BdWDIGyT.js.map → _server.ts-D0VED1uF.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D5Qro70k.js → _server.ts-D0hW9gvU.js} +5 -5
- package/build/server/chunks/{_server.ts-D5Qro70k.js.map → _server.ts-D0hW9gvU.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bi-9Fq3Q.js → _server.ts-D13Tjtky.js} +2 -2
- package/build/server/chunks/{_server.ts-Bi-9Fq3Q.js.map → _server.ts-D13Tjtky.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bo08JCzM.js → _server.ts-D2QecBSj.js} +7 -7
- package/build/server/chunks/{_server.ts-Bo08JCzM.js.map → _server.ts-D2QecBSj.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DdHyNcLI.js → _server.ts-D2tB04Uo.js} +5 -5
- package/build/server/chunks/{_server.ts-DdHyNcLI.js.map → _server.ts-D2tB04Uo.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DhTNMZ4m.js → _server.ts-D4_tom-k.js} +5 -5
- package/build/server/chunks/{_server.ts-DhTNMZ4m.js.map → _server.ts-D4_tom-k.js.map} +1 -1
- package/build/server/chunks/{_server.ts-RiPz6KP0.js → _server.ts-D5zW4x4G.js} +7 -7
- package/build/server/chunks/{_server.ts-RiPz6KP0.js.map → _server.ts-D5zW4x4G.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CQ0CsPks.js → _server.ts-D9pV4tLm.js} +5 -5
- package/build/server/chunks/{_server.ts-CQ0CsPks.js.map → _server.ts-D9pV4tLm.js.map} +1 -1
- package/build/server/chunks/{_server.ts-tc6muvlk.js → _server.ts-DFzmbpC_.js} +5 -5
- package/build/server/chunks/{_server.ts-tc6muvlk.js.map → _server.ts-DFzmbpC_.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BjvG9AOp.js → _server.ts-DH0mwAYJ.js} +5 -5
- package/build/server/chunks/{_server.ts-BjvG9AOp.js.map → _server.ts-DH0mwAYJ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CodJB2EC.js → _server.ts-DIvIb0la.js} +6 -6
- package/build/server/chunks/{_server.ts-CodJB2EC.js.map → _server.ts-DIvIb0la.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CxtUgVNi.js → _server.ts-DZ7G-dxe.js} +5 -5
- package/build/server/chunks/{_server.ts-CxtUgVNi.js.map → _server.ts-DZ7G-dxe.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CaFDz7oT.js → _server.ts-D_QxAyAv.js} +5 -5
- package/build/server/chunks/{_server.ts-CaFDz7oT.js.map → _server.ts-D_QxAyAv.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dxl41ml8.js → _server.ts-DhAVjiUd.js} +6 -6
- package/build/server/chunks/{_server.ts-Dxl41ml8.js.map → _server.ts-DhAVjiUd.js.map} +1 -1
- package/build/server/chunks/{_server.ts-crEtp4pS.js → _server.ts-DlRhaMZr.js} +5 -5
- package/build/server/chunks/{_server.ts-crEtp4pS.js.map → _server.ts-DlRhaMZr.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CZs8tTdq.js → _server.ts-DoGLNPhD.js} +5 -5
- package/build/server/chunks/{_server.ts-CZs8tTdq.js.map → _server.ts-DoGLNPhD.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Crx3CUZA.js → _server.ts-DsK5y38H.js} +5 -5
- package/build/server/chunks/{_server.ts-Crx3CUZA.js.map → _server.ts-DsK5y38H.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CmTkJvgz.js → _server.ts-Du2mXeIc.js} +6 -6
- package/build/server/chunks/{_server.ts-CmTkJvgz.js.map → _server.ts-Du2mXeIc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DO0Gws6m.js → _server.ts-DymagmXD.js} +5 -5
- package/build/server/chunks/{_server.ts-DO0Gws6m.js.map → _server.ts-DymagmXD.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DkmtpSsU.js → _server.ts-Dzt_2LfE.js} +5 -5
- package/build/server/chunks/{_server.ts-DkmtpSsU.js.map → _server.ts-Dzt_2LfE.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CaVKwpSi.js → _server.ts-F0itNDlp.js} +7 -7
- package/build/server/chunks/{_server.ts-CaVKwpSi.js.map → _server.ts-F0itNDlp.js.map} +1 -1
- package/build/server/chunks/{_server.ts-AVed3ywC.js → _server.ts-FgPiO6C7.js} +5 -5
- package/build/server/chunks/{_server.ts-AVed3ywC.js.map → _server.ts-FgPiO6C7.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DiEYiuZF.js → _server.ts-GrWc2_wY.js} +5 -5
- package/build/server/chunks/{_server.ts-DiEYiuZF.js.map → _server.ts-GrWc2_wY.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DRVktFYD.js → _server.ts-N1-CACT6.js} +6 -6
- package/build/server/chunks/{_server.ts-DRVktFYD.js.map → _server.ts-N1-CACT6.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C0gi9Zbp.js → _server.ts-SUokTCB8.js} +5 -5
- package/build/server/chunks/{_server.ts-C0gi9Zbp.js.map → _server.ts-SUokTCB8.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CbmMXvlF.js → _server.ts-SeumU7RQ.js} +5 -5
- package/build/server/chunks/{_server.ts-CbmMXvlF.js.map → _server.ts-SeumU7RQ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Cbsb7E9f.js → _server.ts-UYJEwCq8.js} +5 -5
- package/build/server/chunks/{_server.ts-Cbsb7E9f.js.map → _server.ts-UYJEwCq8.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Cbm93oU2.js → _server.ts-UZlOmrXI.js} +5 -5
- package/build/server/chunks/{_server.ts-Cbm93oU2.js.map → _server.ts-UZlOmrXI.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CaSyEnlx.js → _server.ts-WqCDAJIr.js} +5 -5
- package/build/server/chunks/{_server.ts-CaSyEnlx.js.map → _server.ts-WqCDAJIr.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DI3ruq1i.js → _server.ts-XnThb0jk.js} +8 -8
- package/build/server/chunks/{_server.ts-DI3ruq1i.js.map → _server.ts-XnThb0jk.js.map} +1 -1
- package/build/server/chunks/{_server.ts-n-ZHA8ZB.js → _server.ts-ZaEesYhm.js} +4 -4
- package/build/server/chunks/{_server.ts-n-ZHA8ZB.js.map → _server.ts-ZaEesYhm.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CjBtASpQ.js → _server.ts-fJtSOt2l.js} +6 -6
- package/build/server/chunks/{_server.ts-CjBtASpQ.js.map → _server.ts-fJtSOt2l.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BinKwoEc.js → _server.ts-gEMbfdbQ.js} +5 -5
- package/build/server/chunks/{_server.ts-BinKwoEc.js.map → _server.ts-gEMbfdbQ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CoKnJUYe.js → _server.ts-mVIXOXz8.js} +6 -6
- package/build/server/chunks/{_server.ts-CoKnJUYe.js.map → _server.ts-mVIXOXz8.js.map} +1 -1
- package/build/server/chunks/{_server.ts-3CZtZ2Ed.js → _server.ts-nOXme96k.js} +5 -5
- package/build/server/chunks/{_server.ts-3CZtZ2Ed.js.map → _server.ts-nOXme96k.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BKrGpyGD.js → _server.ts-rwpADfIr.js} +5 -5
- package/build/server/chunks/{_server.ts-BKrGpyGD.js.map → _server.ts-rwpADfIr.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B-GrY0vG.js → _server.ts-t8LgqnI8.js} +2 -2
- package/build/server/chunks/{_server.ts-B-GrY0vG.js.map → _server.ts-t8LgqnI8.js.map} +1 -1
- package/build/server/chunks/{_server.ts-fkycL1MA.js → _server.ts-uK5g2dwE.js} +7 -7
- package/build/server/chunks/{_server.ts-fkycL1MA.js.map → _server.ts-uK5g2dwE.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DT-afrf8.js → _server.ts-xlsvzVfi.js} +5 -5
- package/build/server/chunks/{_server.ts-DT-afrf8.js.map → _server.ts-xlsvzVfi.js.map} +1 -1
- package/build/server/chunks/{addon-helpers-BIQrQM8R.js → addon-helpers-CpnCoaX5.js} +3 -3
- package/build/server/chunks/{addon-helpers-BIQrQM8R.js.map → addon-helpers-CpnCoaX5.js.map} +1 -1
- package/build/server/chunks/{akm-BH0yE1yi.js → akm-DS8qIY08.js} +2 -2
- package/build/server/chunks/{akm-BH0yE1yi.js.map → akm-DS8qIY08.js.map} +1 -1
- package/build/server/chunks/{catalog-6N4lXdXR.js → catalog-BRAGF5mT.js} +5 -5
- package/build/server/chunks/{catalog-6N4lXdXR.js.map → catalog-BRAGF5mT.js.map} +1 -1
- package/build/server/chunks/{client-CxSfE8TV.js → client-WNC_rTIi.js} +2 -2
- package/build/server/chunks/{client-CxSfE8TV.js.map → client-WNC_rTIi.js.map} +1 -1
- package/build/server/chunks/{config-BYq4dFEA.js → config-DaoatST3.js} +2 -2
- package/build/server/chunks/{config-BYq4dFEA.js.map → config-DaoatST3.js.map} +1 -1
- package/build/server/chunks/{docker-BRyLKig9.js → docker-CwxqEp_G.js} +2 -2
- package/build/server/chunks/{docker-BRyLKig9.js.map → docker-CwxqEp_G.js.map} +1 -1
- package/build/server/chunks/{endpoints-CNCHUTL_.js → endpoints-BltANYH6.js} +2 -2
- package/build/server/chunks/{endpoints-CNCHUTL_.js.map → endpoints-BltANYH6.js.map} +1 -1
- package/build/server/chunks/environment-DqfL567G.js.map +1 -1
- package/build/server/chunks/{error.svelte-B1UkLeFv.js → error.svelte-Cepq36_V.js} +4 -4
- package/build/server/chunks/{error.svelte-B1UkLeFv.js.map → error.svelte-Cepq36_V.js.map} +1 -1
- package/build/server/chunks/{helpers-BB8Cr4ci.js → helpers-13WhVOMk.js} +3 -3
- package/build/server/chunks/{helpers-BB8Cr4ci.js.map → helpers-13WhVOMk.js.map} +1 -1
- package/build/server/chunks/{hooks.server-C3vaYocS.js → hooks.server-ChI0JhLw.js} +6 -6
- package/build/server/chunks/{hooks.server-C3vaYocS.js.map → hooks.server-ChI0JhLw.js.map} +1 -1
- package/build/server/chunks/{http-CYzyOxK5.js → http-4BaLbiCJ.js} +2 -2
- package/build/server/chunks/{http-CYzyOxK5.js.map → http-4BaLbiCJ.js.map} +1 -1
- package/build/server/chunks/{internal-DguXWvOO.js → internal-l3EWtEye.js} +3 -3
- package/build/server/chunks/{internal-DguXWvOO.js.map → internal-l3EWtEye.js.map} +1 -1
- package/build/server/chunks/{paths-DYEFk0wa.js → paths-BFRLnvBp.js} +2 -2
- package/build/server/chunks/{paths-DYEFk0wa.js.map → paths-BFRLnvBp.js.map} +1 -1
- package/build/server/chunks/{session-cookie-BTQNVQT1.js → session-cookie-DErsjR7e.js} +2 -2
- package/build/server/chunks/{session-cookie-BTQNVQT1.js.map → session-cookie-DErsjR7e.js.map} +1 -1
- package/build/server/chunks/{setup-deploy-Ii6DqwDA.js → setup-deploy-D9VREk8i.js} +2 -2
- package/build/server/chunks/{setup-deploy-Ii6DqwDA.js.map → setup-deploy-D9VREk8i.js.map} +1 -1
- package/build/server/chunks/{src-CKjHoumM.js → src-NhUHZOQF.js} +2 -2
- package/build/server/chunks/src-NhUHZOQF.js.map +1 -0
- package/build/server/chunks/{state-DMmPxeke.js → state-BateNC-M.js} +2 -2
- package/build/server/chunks/{state-DMmPxeke.js.map → state-BateNC-M.js.map} +1 -1
- package/build/server/chunks/{state2-xEkx1uNQ.js → state2-D5q73U2E.js} +2 -2
- package/build/server/chunks/{state2-xEkx1uNQ.js.map → state2-D5q73U2E.js.map} +1 -1
- package/build/server/index.js +1 -1
- package/build/server/manifest.js +91 -91
- package/build/server/manifest.js.map +1 -1
- package/package.json +2 -2
- package/build/client/_app/immutable/chunks/Cfj23nS2.js +0 -1
- package/build/client/_app/immutable/chunks/Cfj23nS2.js.br +0 -2
- package/build/client/_app/immutable/chunks/Cfj23nS2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/K3qHYojq.js.br +0 -0
- package/build/client/_app/immutable/chunks/K3qHYojq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/evi_gjgm.js.br +0 -0
- package/build/client/_app/immutable/chunks/evi_gjgm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/f7RVXtqW.js.br +0 -0
- package/build/client/_app/immutable/chunks/f7RVXtqW.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.scW_rA1f.js.br +0 -0
- package/build/client/_app/immutable/entry/app.scW_rA1f.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.wM_I0_au.js +0 -1
- package/build/client/_app/immutable/entry/start.wM_I0_au.js.br +0 -0
- package/build/client/_app/immutable/entry/start.wM_I0_au.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.D8frsOTg.js.br +0 -2
- package/build/client/_app/immutable/nodes/1.D8frsOTg.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.D09OIQtP.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.D09OIQtP.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.SLNOQQJ_.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.SLNOQQJ_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.CHXC0PYo.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.CHXC0PYo.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.CflBuifB.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.CflBuifB.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.B01_Onpp.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.B01_Onpp.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.D9cL-FQ9.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.D9cL-FQ9.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.Bqodt8Cm.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.Bqodt8Cm.js.gz +0 -0
- package/build/server/chunks/1-Be_FBgct.js +0 -9
- package/build/server/chunks/src-CKjHoumM.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ad as listAvailableAddonIds, a4 as getRegistryAddonConfig, aA as readStackSecretEnv, ay as readStackEnv, aZ as writeStackSecretEnv, ao as patchSecretsEnvFile, F as createLogger } from './src-
|
|
2
|
-
import { g as getState } from './state-
|
|
3
|
-
import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-
|
|
1
|
+
import { ad as listAvailableAddonIds, a4 as getRegistryAddonConfig, aA as readStackSecretEnv, ay as readStackEnv, aZ as writeStackSecretEnv, ao as patchSecretsEnvFile, F as createLogger } from './src-NhUHZOQF.js';
|
|
2
|
+
import { g as getState } from './state-BateNC-M.js';
|
|
3
|
+
import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-13WhVOMk.js';
|
|
4
4
|
import './chunk-CLZ62Ad-.js';
|
|
5
5
|
import 'node:module';
|
|
6
6
|
import './provider-constants-DPrj3yBX.js';
|
|
@@ -22,7 +22,7 @@ import 'zlib';
|
|
|
22
22
|
import 'node:assert';
|
|
23
23
|
import 'node:fs/promises';
|
|
24
24
|
import 'node:os';
|
|
25
|
-
import './endpoints-
|
|
25
|
+
import './endpoints-BltANYH6.js';
|
|
26
26
|
|
|
27
27
|
//#region src/routes/admin/addons/[name]/credentials/+server.ts
|
|
28
28
|
var logger = createLogger("addons.name.credentials");
|
|
@@ -166,4 +166,4 @@ var POST = async (event) => {
|
|
|
166
166
|
};
|
|
167
167
|
|
|
168
168
|
export { GET, POST };
|
|
169
|
-
//# sourceMappingURL=_server.ts-
|
|
169
|
+
//# sourceMappingURL=_server.ts-BPOWpbse.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-B4N6yIHH.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/addons/_name_/credentials/_server.ts.js"],"sourcesContent":["import { Gt as writeStackSecretEnv, Ht as readStackEnv, Tt as listAvailableAddonIds, Vt as patchSecretsEnvFile, Wt as readStackSecretEnv, fn as createLogger, wt as getRegistryAddonConfig } from \"../../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../../chunks/state.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../../chunks/helpers.js\";\n//#region src/routes/admin/addons/[name]/credentials/+server.ts\nvar logger = createLogger(\"addons.name.credentials\");\n/**\n* Parse a `.env.schema` file into structured fields.\n*\n* Schema conventions:\n* - Lines starting with `#` are comments; consecutive comment lines\n* accumulate as the *description* of the next KEY=VALUE line.\n* - `# @sensitive` marks the next field as sensitive (renders as a\n* password input and is masked on GET).\n* - `# ---` resets the accumulator (used as a section separator).\n* - `KEY=DEFAULT` declares the field; default may be empty.\n*/\nfunction parseEnvSchema(text) {\n\tconst fields = [];\n\tlet commentBuffer = [];\n\tlet sensitive = false;\n\tfor (const rawLine of text.split(/\\r?\\n/)) {\n\t\tconst line = rawLine.trim();\n\t\tif (!line) continue;\n\t\tif (line.startsWith(\"#\")) {\n\t\t\tconst body = line.slice(1).trim();\n\t\t\tif (body === \"---\") {\n\t\t\t\tcommentBuffer = [];\n\t\t\t\tsensitive = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (body.startsWith(\"@\")) {\n\t\t\t\tif (/\\B@sensitive\\b/.test(body)) sensitive = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcommentBuffer.push(body);\n\t\t\tcontinue;\n\t\t}\n\t\tconst eq = line.indexOf(\"=\");\n\t\tif (eq <= 0) continue;\n\t\tconst key = line.slice(0, eq).trim();\n\t\tif (!key) continue;\n\t\tconst def = line.slice(eq + 1).trim();\n\t\tfields.push({\n\t\t\tkey,\n\t\t\tsensitive,\n\t\t\tdescription: commentBuffer.join(\" \").trim(),\n\t\t\tdefault: def\n\t\t});\n\t\tcommentBuffer = [];\n\t\tsensitive = false;\n\t}\n\treturn fields;\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\tconst state = getState();\n\tconst name = event.params.name;\n\tif (!listAvailableAddonIds().includes(name)) return errorResponse(404, \"not_found\", `Addon \"${name}\" is not available`, { name }, requestId);\n\tlet config;\n\ttry {\n\t\tconfig = getRegistryAddonConfig(name);\n\t} catch (error) {\n\t\tlogger.error(\"schema read failed\", {\n\t\t\tname,\n\t\t\terror: String(error),\n\t\t\trequestId\n\t\t});\n\t\treturn errorResponse(500, \"internal_error\", `Addon \"${name}\" schema is unavailable`, {}, requestId);\n\t}\n\tconst schemaFields = parseEnvSchema(config.envSchema);\n\tconst secretEnv = readStackSecretEnv(state.homeDir);\n\tconst stackEnv = readStackEnv(state.homeDir);\n\treturn jsonResponse(200, {\n\t\tname,\n\t\tfields: schemaFields.map((f) => {\n\t\t\tconst set = ((f.sensitive ? secretEnv[f.key] : stackEnv[f.key]) ?? \"\").length > 0;\n\t\t\treturn {\n\t\t\t\tkey: f.key,\n\t\t\t\tsensitive: f.sensitive,\n\t\t\t\tdescription: f.description,\n\t\t\t\tdefault: f.default,\n\t\t\t\tset,\n\t\t\t\tsecret: {\n\t\t\t\t\tenvKey: f.key,\n\t\t\t\t\tpresent: set\n\t\t\t\t},\n\t\t\t\tvalue: \"\"\n\t\t\t};\n\t\t})\n\t}, requestId);\n};\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\tconst state = getState();\n\tconst name = event.params.name;\n\tif (!listAvailableAddonIds().includes(name)) return errorResponse(404, \"not_found\", `Addon \"${name}\" is not available`, { name }, requestId);\n\tconst parsed = await parseJsonBody(event.request);\n\tif (\"error\" in parsed) return jsonBodyError(parsed, requestId);\n\tconst valuesRaw = parsed.data.values ?? {};\n\tlet config;\n\ttry {\n\t\tconfig = getRegistryAddonConfig(name);\n\t} catch (error) {\n\t\tlogger.error(\"schema read failed (post)\", {\n\t\t\tname,\n\t\t\terror: String(error),\n\t\t\trequestId\n\t\t});\n\t\treturn errorResponse(500, \"internal_error\", `Addon \"${name}\" schema is unavailable`, {}, requestId);\n\t}\n\tconst schemaFields = parseEnvSchema(config.envSchema);\n\tconst sensitiveKeys = new Set(schemaFields.filter((f) => f.sensitive).map((f) => f.key));\n\tconst allowedKeys = new Set(schemaFields.map((f) => f.key));\n\tconst sensitiveUpdates = {};\n\tconst configUpdates = {};\n\tfor (const [k, v] of Object.entries(valuesRaw)) {\n\t\tif (!allowedKeys.has(k)) continue;\n\t\tconst val = typeof v === \"string\" ? v : \"\";\n\t\tif (sensitiveKeys.has(k)) sensitiveUpdates[k] = val;\n\t\telse configUpdates[k] = val;\n\t}\n\tif (Object.keys(sensitiveUpdates).length === 0 && Object.keys(configUpdates).length === 0) return errorResponse(400, \"bad_request\", \"no schema-declared keys supplied\", {}, requestId);\n\ttry {\n\t\tif (Object.keys(sensitiveUpdates).length > 0) writeStackSecretEnv(state, sensitiveUpdates);\n\t\tif (Object.keys(configUpdates).length > 0) patchSecretsEnvFile(state.homeDir, configUpdates);\n\t} catch (err) {\n\t\tlogger.error(\"write failed\", {\n\t\t\tname,\n\t\t\terror: String(err),\n\t\t\trequestId\n\t\t});\n\t\treturn errorResponse(500, \"internal_error\", err instanceof Error ? err.message : \"write failed\", {}, requestId);\n\t}\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tname,\n\t\tupdated: [...Object.keys(sensitiveUpdates), ...Object.keys(configUpdates)].sort()\n\t}, requestId);\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"_server.ts-BPOWpbse.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/addons/_name_/credentials/_server.ts.js"],"sourcesContent":["import { Gt as writeStackSecretEnv, Ht as readStackEnv, Tt as listAvailableAddonIds, Vt as patchSecretsEnvFile, Wt as readStackSecretEnv, fn as createLogger, wt as getRegistryAddonConfig } from \"../../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../../chunks/state.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../../chunks/helpers.js\";\n//#region src/routes/admin/addons/[name]/credentials/+server.ts\nvar logger = createLogger(\"addons.name.credentials\");\n/**\n* Parse a `.env.schema` file into structured fields.\n*\n* Schema conventions:\n* - Lines starting with `#` are comments; consecutive comment lines\n* accumulate as the *description* of the next KEY=VALUE line.\n* - `# @sensitive` marks the next field as sensitive (renders as a\n* password input and is masked on GET).\n* - `# ---` resets the accumulator (used as a section separator).\n* - `KEY=DEFAULT` declares the field; default may be empty.\n*/\nfunction parseEnvSchema(text) {\n\tconst fields = [];\n\tlet commentBuffer = [];\n\tlet sensitive = false;\n\tfor (const rawLine of text.split(/\\r?\\n/)) {\n\t\tconst line = rawLine.trim();\n\t\tif (!line) continue;\n\t\tif (line.startsWith(\"#\")) {\n\t\t\tconst body = line.slice(1).trim();\n\t\t\tif (body === \"---\") {\n\t\t\t\tcommentBuffer = [];\n\t\t\t\tsensitive = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (body.startsWith(\"@\")) {\n\t\t\t\tif (/\\B@sensitive\\b/.test(body)) sensitive = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcommentBuffer.push(body);\n\t\t\tcontinue;\n\t\t}\n\t\tconst eq = line.indexOf(\"=\");\n\t\tif (eq <= 0) continue;\n\t\tconst key = line.slice(0, eq).trim();\n\t\tif (!key) continue;\n\t\tconst def = line.slice(eq + 1).trim();\n\t\tfields.push({\n\t\t\tkey,\n\t\t\tsensitive,\n\t\t\tdescription: commentBuffer.join(\" \").trim(),\n\t\t\tdefault: def\n\t\t});\n\t\tcommentBuffer = [];\n\t\tsensitive = false;\n\t}\n\treturn fields;\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\tconst state = getState();\n\tconst name = event.params.name;\n\tif (!listAvailableAddonIds().includes(name)) return errorResponse(404, \"not_found\", `Addon \"${name}\" is not available`, { name }, requestId);\n\tlet config;\n\ttry {\n\t\tconfig = getRegistryAddonConfig(name);\n\t} catch (error) {\n\t\tlogger.error(\"schema read failed\", {\n\t\t\tname,\n\t\t\terror: String(error),\n\t\t\trequestId\n\t\t});\n\t\treturn errorResponse(500, \"internal_error\", `Addon \"${name}\" schema is unavailable`, {}, requestId);\n\t}\n\tconst schemaFields = parseEnvSchema(config.envSchema);\n\tconst secretEnv = readStackSecretEnv(state.homeDir);\n\tconst stackEnv = readStackEnv(state.homeDir);\n\treturn jsonResponse(200, {\n\t\tname,\n\t\tfields: schemaFields.map((f) => {\n\t\t\tconst set = ((f.sensitive ? secretEnv[f.key] : stackEnv[f.key]) ?? \"\").length > 0;\n\t\t\treturn {\n\t\t\t\tkey: f.key,\n\t\t\t\tsensitive: f.sensitive,\n\t\t\t\tdescription: f.description,\n\t\t\t\tdefault: f.default,\n\t\t\t\tset,\n\t\t\t\tsecret: {\n\t\t\t\t\tenvKey: f.key,\n\t\t\t\t\tpresent: set\n\t\t\t\t},\n\t\t\t\tvalue: \"\"\n\t\t\t};\n\t\t})\n\t}, requestId);\n};\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\tconst state = getState();\n\tconst name = event.params.name;\n\tif (!listAvailableAddonIds().includes(name)) return errorResponse(404, \"not_found\", `Addon \"${name}\" is not available`, { name }, requestId);\n\tconst parsed = await parseJsonBody(event.request);\n\tif (\"error\" in parsed) return jsonBodyError(parsed, requestId);\n\tconst valuesRaw = parsed.data.values ?? {};\n\tlet config;\n\ttry {\n\t\tconfig = getRegistryAddonConfig(name);\n\t} catch (error) {\n\t\tlogger.error(\"schema read failed (post)\", {\n\t\t\tname,\n\t\t\terror: String(error),\n\t\t\trequestId\n\t\t});\n\t\treturn errorResponse(500, \"internal_error\", `Addon \"${name}\" schema is unavailable`, {}, requestId);\n\t}\n\tconst schemaFields = parseEnvSchema(config.envSchema);\n\tconst sensitiveKeys = new Set(schemaFields.filter((f) => f.sensitive).map((f) => f.key));\n\tconst allowedKeys = new Set(schemaFields.map((f) => f.key));\n\tconst sensitiveUpdates = {};\n\tconst configUpdates = {};\n\tfor (const [k, v] of Object.entries(valuesRaw)) {\n\t\tif (!allowedKeys.has(k)) continue;\n\t\tconst val = typeof v === \"string\" ? v : \"\";\n\t\tif (sensitiveKeys.has(k)) sensitiveUpdates[k] = val;\n\t\telse configUpdates[k] = val;\n\t}\n\tif (Object.keys(sensitiveUpdates).length === 0 && Object.keys(configUpdates).length === 0) return errorResponse(400, \"bad_request\", \"no schema-declared keys supplied\", {}, requestId);\n\ttry {\n\t\tif (Object.keys(sensitiveUpdates).length > 0) writeStackSecretEnv(state, sensitiveUpdates);\n\t\tif (Object.keys(configUpdates).length > 0) patchSecretsEnvFile(state.homeDir, configUpdates);\n\t} catch (err) {\n\t\tlogger.error(\"write failed\", {\n\t\t\tname,\n\t\t\terror: String(err),\n\t\t\trequestId\n\t\t});\n\t\treturn errorResponse(500, \"internal_error\", err instanceof Error ? err.message : \"write failed\", {}, requestId);\n\t}\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tname,\n\t\tupdated: [...Object.keys(sensitiveUpdates), ...Object.keys(configUpdates)].sort()\n\t}, requestId);\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { j as json } from './exports-D1quPX8S.js';
|
|
2
|
-
import { aa as isSetupComplete, aK as resolveOpenPalmHome } from './src-
|
|
2
|
+
import { aa as isSetupComplete, aK as resolveOpenPalmHome } from './src-NhUHZOQF.js';
|
|
3
3
|
import './utils-BSRjJDrZ.js';
|
|
4
4
|
import './chunk-CLZ62Ad-.js';
|
|
5
5
|
import 'node:module';
|
|
@@ -32,4 +32,4 @@ var GET = () => {
|
|
|
32
32
|
};
|
|
33
33
|
|
|
34
34
|
export { GET };
|
|
35
|
-
//# sourceMappingURL=_server.ts-
|
|
35
|
+
//# sourceMappingURL=_server.ts-BQ3TKJuk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-BQ3TKJuk.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/status/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { dt as isSetupComplete, sn as resolveOpenPalmHome } from \"../../../../../chunks/src.js\";\n//#region src/routes/api/setup/status/+server.ts\nvar GET = () => {\n\treturn json({\n\t\tok: true,\n\t\tsetupComplete: isSetupComplete(resolveOpenPalmHome())\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,MAAM;AAChB,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,aAAa,EAAE,eAAe,CAAC,mBAAmB,EAAE;AACtD,EAAE,CAAC;AACH;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ag as listSecretFiles } from './src-
|
|
2
|
-
import { g as getState } from './state-
|
|
3
|
-
import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-
|
|
1
|
+
import { ag as listSecretFiles } from './src-NhUHZOQF.js';
|
|
2
|
+
import { g as getState } from './state-BateNC-M.js';
|
|
3
|
+
import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-13WhVOMk.js';
|
|
4
4
|
import './chunk-CLZ62Ad-.js';
|
|
5
5
|
import 'node:module';
|
|
6
6
|
import './provider-constants-DPrj3yBX.js';
|
|
@@ -22,7 +22,7 @@ import 'zlib';
|
|
|
22
22
|
import 'node:assert';
|
|
23
23
|
import 'node:fs/promises';
|
|
24
24
|
import 'node:os';
|
|
25
|
-
import './endpoints-
|
|
25
|
+
import './endpoints-BltANYH6.js';
|
|
26
26
|
|
|
27
27
|
//#region src/routes/admin/secrets/+server.ts
|
|
28
28
|
var GET = async (event) => {
|
|
@@ -33,4 +33,4 @@ var GET = async (event) => {
|
|
|
33
33
|
};
|
|
34
34
|
|
|
35
35
|
export { GET };
|
|
36
|
-
//# sourceMappingURL=_server.ts-
|
|
36
|
+
//# sourceMappingURL=_server.ts-BVN3CaiN.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-BVN3CaiN.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/secrets/_server.ts.js"],"sourcesContent":["import { qt as listSecretFiles } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/secrets/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn jsonResponse(200, { files: listSecretFiles(getState().homeDir) }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC;AACpF;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { af as listEnabledAddonIds, ad as listAvailableAddonIds } from './src-
|
|
2
|
-
import { g as getState } from './state-
|
|
3
|
-
import { d as getRequestId, r as requireAdmin, k as jsonResponse, p as parseJsonBody, j as jsonBodyError, e as errorResponse } from './helpers-
|
|
4
|
-
import { p as performAddonToggle } from './addon-helpers-
|
|
1
|
+
import { af as listEnabledAddonIds, ad as listAvailableAddonIds } from './src-NhUHZOQF.js';
|
|
2
|
+
import { g as getState } from './state-BateNC-M.js';
|
|
3
|
+
import { d as getRequestId, r as requireAdmin, k as jsonResponse, p as parseJsonBody, j as jsonBodyError, e as errorResponse } from './helpers-13WhVOMk.js';
|
|
4
|
+
import { p as performAddonToggle } from './addon-helpers-CpnCoaX5.js';
|
|
5
5
|
import './chunk-CLZ62Ad-.js';
|
|
6
6
|
import 'node:module';
|
|
7
7
|
import './provider-constants-DPrj3yBX.js';
|
|
@@ -23,7 +23,7 @@ import 'zlib';
|
|
|
23
23
|
import 'node:assert';
|
|
24
24
|
import 'node:fs/promises';
|
|
25
25
|
import 'node:os';
|
|
26
|
-
import './endpoints-
|
|
26
|
+
import './endpoints-BltANYH6.js';
|
|
27
27
|
|
|
28
28
|
//#region src/routes/admin/addons/+server.ts
|
|
29
29
|
function buildAddonList(availableIds, enabledIds) {
|
|
@@ -63,4 +63,4 @@ var POST = async (event) => {
|
|
|
63
63
|
};
|
|
64
64
|
|
|
65
65
|
export { GET, POST };
|
|
66
|
-
//# sourceMappingURL=_server.ts-
|
|
66
|
+
//# sourceMappingURL=_server.ts-BWo-OyxA.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-BWo-OyxA.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/addons/_server.ts.js"],"sourcesContent":["import { Et as listEnabledAddonIds, Tt as listAvailableAddonIds } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../chunks/helpers.js\";\nimport { t as performAddonToggle } from \"../../../../chunks/addon-helpers.js\";\n//#region src/routes/admin/addons/+server.ts\nfunction buildAddonList(availableIds, enabledIds) {\n\tconst enabledSet = new Set(enabledIds);\n\treturn availableIds.map((name) => ({\n\t\tname,\n\t\tenabled: enabledSet.has(name),\n\t\tavailable: true\n\t}));\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\tconst state = getState();\n\treturn jsonResponse(200, { addons: buildAddonList(listAvailableAddonIds(), listEnabledAddonIds(state.homeDir)) }, requestId);\n};\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\tconst state = getState();\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst body = result.data;\n\tconst name = typeof body.name === \"string\" ? body.name.trim() : \"\";\n\tif (!name) return errorResponse(400, \"bad_request\", \"name is required\", {}, requestId);\n\tif (!listAvailableAddonIds().includes(name)) return errorResponse(404, \"not_found\", `Addon \"${name}\" is not available`, { name }, requestId);\n\tconst toggle = await performAddonToggle(state, name, typeof body.enabled === \"boolean\" ? body.enabled : void 0, requestId);\n\tif (!toggle.ok) return errorResponse(500, \"internal_error\", toggle.error, {}, requestId);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\taddon: name,\n\t\tenabled: toggle.enabled,\n\t\tchanged: toggle.changed\n\t}, requestId);\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,SAAS,cAAc,CAAC,YAAY,EAAE,UAAU,EAAE;AAClD,CAAC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC;AACvC,CAAC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM;AACpC,EAAE,IAAI;AACN,EAAE,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,EAAE,SAAS,EAAE;AACb,EAAE,CAAC,CAAC;AACJ;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AAC/C,CAAC,IAAI,OAAO,EAAE,OAAO,OAAO;AAC5B,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,qBAAqB,EAAE,EAAE,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC;AAC7H;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AAC/C,CAAC,IAAI,OAAO,EAAE,OAAO,OAAO;AAC5B,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;AAClD,CAAC,IAAI,OAAO,IAAI,MAAM,EAAE,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;AAC/D,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AACzB,CAAC,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;AACnE,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,EAAE,SAAS,CAAC;AACvF,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC;AAC7I,CAAC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE,SAAS,CAAC;AAC3H,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,CAAC;AACzF,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO;AACzB,EAAE,OAAO,EAAE,MAAM,CAAC;AAClB,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { j as json } from './exports-D1quPX8S.js';
|
|
2
|
-
import { aD as readVersions, au as readPinnedVersions, as as readChannelPreference, a5 as getRunningImages, m as buildComposeOptions, an as parseEnvFile, S as SERVICE_VERSION_KEYS, aR as stripVoiceVariantSuffix, Y as formatForDisplay, b0 as writeVersions, aW as writeChannelPreference, ak as mergeEnvContent, D as DOCKER_IMAGE_NAMES, s as compareComparableVersions, P as PLATFORM_VERSION } from './src-
|
|
3
|
-
import { g as getState } from './state-
|
|
4
|
-
import { d as getRequestId, r as requireAdmin, e as errorResponse } from './helpers-
|
|
2
|
+
import { aD as readVersions, au as readPinnedVersions, as as readChannelPreference, a5 as getRunningImages, m as buildComposeOptions, an as parseEnvFile, S as SERVICE_VERSION_KEYS, aR as stripVoiceVariantSuffix, Y as formatForDisplay, b0 as writeVersions, aW as writeChannelPreference, ak as mergeEnvContent, D as DOCKER_IMAGE_NAMES, s as compareComparableVersions, P as PLATFORM_VERSION } from './src-NhUHZOQF.js';
|
|
3
|
+
import { g as getState } from './state-BateNC-M.js';
|
|
4
|
+
import { d as getRequestId, r as requireAdmin, e as errorResponse } from './helpers-13WhVOMk.js';
|
|
5
5
|
import { existsSync, writeFileSync, readFileSync } from 'node:fs';
|
|
6
6
|
import './utils-BSRjJDrZ.js';
|
|
7
7
|
import './chunk-CLZ62Ad-.js';
|
|
@@ -24,7 +24,7 @@ import 'zlib';
|
|
|
24
24
|
import 'node:assert';
|
|
25
25
|
import 'node:fs/promises';
|
|
26
26
|
import 'node:os';
|
|
27
|
-
import './endpoints-
|
|
27
|
+
import './endpoints-BltANYH6.js';
|
|
28
28
|
|
|
29
29
|
//#region src/routes/admin/versions/+server.ts
|
|
30
30
|
/**
|
|
@@ -241,4 +241,4 @@ var PATCH = async (event) => {
|
|
|
241
241
|
};
|
|
242
242
|
|
|
243
243
|
export { GET, PATCH };
|
|
244
|
-
//# sourceMappingURL=_server.ts-
|
|
244
|
+
//# sourceMappingURL=_server.ts-BadRoa1z.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-xQEsxLEm.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/versions/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../chunks/exports.js\";\nimport { $t as mergeEnvContent, Bt as writeVersions, Ft as readChannelPreference, It as readPinnedVersions, Lt as readVersions, Mt as DOCKER_IMAGE_NAMES, N as buildComposeOptions, Nt as SERVICE_VERSION_KEYS, Rt as stripVoiceVariantSuffix, en as parseEnvFile, in as formatForDisplay, nn as PLATFORM_VERSION, rn as compareComparableVersions, st as getRunningImages, zt as writeChannelPreference } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\nimport { existsSync, readFileSync, writeFileSync } from \"node:fs\";\n//#region src/routes/admin/versions/+server.ts\n/**\n* GET /admin/versions — truthful version state (constitution §4.2, §5)\n* PATCH /admin/versions — write pins to state file\n*\n* GET returns THREE distinct values per component (§5 / Phase 5):\n* running — the digest + tag the currently running container was CREATED FROM\n* (read from `docker inspect`, never from a pin file). Null when not running.\n* pinned — the explicit version lock from state/stack.state.env, or null = track latest.\n* Moving tags (\"latest\", \"next\") are normalized to null (they express channel\n* preference, not a lock).\n* available — the resolved latest version on the active channel (silent null on registry down).\n*\n* Backward compatibility for the mixed-version window (old UI + new API or vice versa):\n* - The legacy top-level `versions` field is preserved. Old UIs that read only\n* `body.versions[key]` continue to get the same string they always did (the stored\n* pin value / default). New UIs read `body.components[key].{running,pinned,available}`.\n* - Old UIs cannot see `running` (never could — it's new). They may show a stale pin\n* as \"current\", which was the pre-Phase-5 behaviour. That is acceptable for the\n* transition window; Phase 6 (UpdatesTab rebuild) is where the new shape is consumed.\n*\n* Registry-down asymmetry (§4, compliance G2):\n* Background \"available?\" resolution degrades SILENTLY — a registry outage just\n* leaves `available` null; the stack keeps running what it has.\n* A user-pressed update that can't reach the registry FAILS LOUDLY (handled in\n* /admin/update via applyStack pull-before-up + fatal pull failure).\n*\n* Voice variant on display (§4.2, compliance G3):\n* `running.tag` for the voice service will include the hardware suffix (e.g.\n* \"openpalm/voice:0.12.0-cpu\"). The `running.plainVersion` field strips it for\n* use in the pinning control. `pinned` never carries the suffix (compose adds it).\n*\n* Service-name vs image-name (§5 truthful state):\n* getRunningImages() keys its result by compose SERVICE name, not image name.\n* OP_PORTAL_VERSION images run under services discord/slack/guardian/api/chat/gateway.\n* OP_VOICE_VERSION may run as voice (cpu), voice-cuda, or voice-rocm.\n* We therefore scan runningImages by matching the image tag against the expected\n* image name, not by looking up the image name as a service name.\n*\n* upToDate field removed (§8, Phase-5-item-3):\n* Tag-string equality cannot determine up-to-date status (tags can point to different\n* digests). Phase 6 decides up-to-date by digest comparison after a pull. The route\n* surfaces running.digest, running.plainVersion, pinned, and available as separate\n* truthful values for Phase 6 to use.\n*/\nvar ALLOWED_KEYS = new Set([\n\t...SERVICE_VERSION_KEYS,\n\t\"OP_AUTO_UPDATE\",\n\t\"OP_CHANNEL\"\n]);\nfunction stackEnvPath() {\n\treturn `${getState().stashDir}/env/stack.env`;\n}\nvar STABLE_SEMVER = /^v?(\\d+\\.\\d+\\.\\d+)$/;\nvar PRERELEASE_SEMVER = /^v?(\\d+\\.\\d+\\.\\d+-(?:rc|alpha|beta|next)\\.\\d+)$/;\nvar VOICE_STABLE = /^v?(\\d+\\.\\d+\\.\\d+)-\\w+$/;\n/**\n* Read the Docker Hub namespace from the stack env (OP_IMAGE_NAMESPACE), defaulting to\n* \"openpalm\". Compose uses the same default: ${OP_IMAGE_NAMESPACE:-openpalm}.\n*/\nfunction imageNamespace(stackEnvContent) {\n\treturn (stackEnvContent.OP_IMAGE_NAMESPACE ?? process.env.OP_IMAGE_NAMESPACE ?? \"openpalm\").trim() || \"openpalm\";\n}\nasync function resolveDockerLatestSilent(image, namespace, channel) {\n\ttry {\n\t\tconst res = await fetch(`https://hub.docker.com/v2/repositories/${namespace}/${image}/tags?page_size=100&ordering=last_updated`, {\n\t\t\theaders: { Accept: \"application/json\" },\n\t\t\tsignal: AbortSignal.timeout(5e3)\n\t\t});\n\t\tif (!res.ok) return null;\n\t\tconst data = await res.json();\n\t\tconst isVoice = image === \"voice\";\n\t\tconst candidates = [];\n\t\tfor (const tag of data.results ?? []) {\n\t\t\tconst plain = tag.name.match(STABLE_SEMVER);\n\t\t\tif (plain) {\n\t\t\t\tcandidates.push(plain[1]);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (isVoice) {\n\t\t\t\tconst voice = tag.name.match(VOICE_STABLE);\n\t\t\t\tif (voice) {\n\t\t\t\t\tcandidates.push(voice[1]);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (channel === \"next\") {\n\t\t\t\tconst pre = tag.name.match(PRERELEASE_SEMVER);\n\t\t\t\tif (pre) candidates.push(pre[1]);\n\t\t\t}\n\t\t}\n\t\tif (candidates.length === 0) return null;\n\t\treturn candidates.sort(compareComparableVersions).at(-1) ?? null;\n\t} catch {\n\t\treturn null;\n\t}\n}\nvar _availableCache = /* @__PURE__ */ new Map();\nvar CACHE_TTL_MS = 5 * 6e4;\nasync function resolveAvailableVersions(channel, namespace) {\n\tconst cacheKey = `${channel}:${namespace}`;\n\tconst cached = _availableCache.get(cacheKey);\n\tif (cached && Date.now() - cached.fetchedAt < CACHE_TTL_MS) return cached.versions;\n\tconst results = await Promise.all(SERVICE_VERSION_KEYS.map(async (key) => {\n\t\tconst image = DOCKER_IMAGE_NAMES[key];\n\t\treturn [key, await resolveDockerLatestSilent(image, namespace, channel)];\n\t}));\n\tconst versions = {};\n\tfor (const [k, v] of results) versions[k] = v;\n\t_availableCache.set(cacheKey, {\n\t\tversions,\n\t\tfetchedAt: Date.now()\n\t});\n\treturn versions;\n}\n/**\n* Find the first running (non-not_installed) container whose image tag contains\n* the given image name (e.g. \"/portal:\" or \"/voice:\"). Returns null if none found.\n*/\nfunction findRunningByImage(runningImages, imageName) {\n\tconst needle = `/${imageName}:`;\n\tfor (const ri of Object.values(runningImages)) if (ri.state !== \"not_installed\" && ri.tag.includes(needle)) return ri;\n\treturn null;\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tif (!state.stackDir) return errorResponse(503, \"not_initialized\", \"Stack directory not configured\", {}, requestId);\n\tconst versions = readVersions(state);\n\tconst pinned = readPinnedVersions(state);\n\tconst channel = readChannelPreference(state);\n\tlet runningImages = {};\n\ttry {\n\t\trunningImages = await getRunningImages(buildComposeOptions(state));\n\t} catch {}\n\tconst path = stackEnvPath();\n\tconst env = existsSync(path) ? parseEnvFile(path) : {};\n\tconst available = await resolveAvailableVersions(channel, imageNamespace(env));\n\tconst components = {};\n\tfor (const key of SERVICE_VERSION_KEYS) {\n\t\tconst imageName = DOCKER_IMAGE_NAMES[key];\n\t\tconst ri = findRunningByImage(runningImages, imageName);\n\t\tlet runningEntry = null;\n\t\tif (ri) {\n\t\t\tconst rawTag = ri.tag.split(\":\").pop() ?? ri.tag;\n\t\t\tconst plainVersion = key === \"OP_VOICE_VERSION\" ? stripVoiceVariantSuffix(rawTag) : rawTag;\n\t\t\trunningEntry = {\n\t\t\t\tdigest: ri.digest,\n\t\t\t\ttag: ri.tag,\n\t\t\t\tplainVersion,\n\t\t\t\thealthStatus: ri.healthStatus,\n\t\t\t\tcontainerState: ri.state\n\t\t\t};\n\t\t}\n\t\tcomponents[key] = {\n\t\t\trunning: runningEntry,\n\t\t\tpinned: pinned[key],\n\t\t\tavailable: available[key] ?? null\n\t\t};\n\t}\n\treturn json({\n\t\tcomponents,\n\t\tchannel,\n\t\tplatformVersion: formatForDisplay(PLATFORM_VERSION),\n\t\tversions,\n\t\tautoUpdate: env[\"OP_AUTO_UPDATE\"] !== \"false\"\n\t});\n};\nvar PATCH = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tif (!state.stackDir) return errorResponse(503, \"not_initialized\", \"Stack directory not configured\", {}, requestId);\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\treturn errorResponse(400, \"invalid_body\", \"Request body must be JSON\", {}, requestId);\n\t}\n\tconst versions = body?.versions;\n\tif (!versions || typeof versions !== \"object\") return errorResponse(400, \"invalid_body\", \"Body must include a versions object\", {}, requestId);\n\tconst versionUpdates = {};\n\tconst settingUpdates = {};\n\tlet channelUpdate;\n\tfor (const [key, value] of Object.entries(versions)) {\n\t\tif (!ALLOWED_KEYS.has(key)) return errorResponse(400, \"unknown_version_key\", `Unknown key: ${key}`, {}, requestId);\n\t\tif (typeof value !== \"string\") return errorResponse(400, \"invalid_version_value\", `Value for ${key} must be a string`, {}, requestId);\n\t\tif (key === \"OP_CHANNEL\") channelUpdate = value;\n\t\telse if (key === \"OP_AUTO_UPDATE\") settingUpdates[key] = value;\n\t\telse versionUpdates[key] = value;\n\t}\n\tif (Object.keys(versionUpdates).length > 0) {\n\t\twriteVersions(state, versionUpdates);\n\t\t_availableCache.clear();\n\t}\n\tif (channelUpdate !== void 0) try {\n\t\twriteChannelPreference(state, channelUpdate);\n\t\t_availableCache.clear();\n\t} catch (e) {\n\t\treturn errorResponse(400, \"invalid_channel\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n\tif (Object.keys(settingUpdates).length > 0) {\n\t\tconst path = stackEnvPath();\n\t\twriteFileSync(path, mergeEnvContent(existsSync(path) ? readFileSync(path, \"utf-8\") : \"\", settingUpdates), { mode: 384 });\n\t}\n\treturn json({\n\t\tok: true,\n\t\tversions: readVersions(state)\n\t});\n};\n//#endregion\nexport { GET, PATCH };\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"_server.ts-BadRoa1z.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/versions/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../chunks/exports.js\";\nimport { $t as mergeEnvContent, Bt as writeVersions, Ft as readChannelPreference, It as readPinnedVersions, Lt as readVersions, Mt as DOCKER_IMAGE_NAMES, N as buildComposeOptions, Nt as SERVICE_VERSION_KEYS, Rt as stripVoiceVariantSuffix, en as parseEnvFile, in as formatForDisplay, nn as PLATFORM_VERSION, rn as compareComparableVersions, st as getRunningImages, zt as writeChannelPreference } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\nimport { existsSync, readFileSync, writeFileSync } from \"node:fs\";\n//#region src/routes/admin/versions/+server.ts\n/**\n* GET /admin/versions — truthful version state (constitution §4.2, §5)\n* PATCH /admin/versions — write pins to state file\n*\n* GET returns THREE distinct values per component (§5 / Phase 5):\n* running — the digest + tag the currently running container was CREATED FROM\n* (read from `docker inspect`, never from a pin file). Null when not running.\n* pinned — the explicit version lock from state/stack.state.env, or null = track latest.\n* Moving tags (\"latest\", \"next\") are normalized to null (they express channel\n* preference, not a lock).\n* available — the resolved latest version on the active channel (silent null on registry down).\n*\n* Backward compatibility for the mixed-version window (old UI + new API or vice versa):\n* - The legacy top-level `versions` field is preserved. Old UIs that read only\n* `body.versions[key]` continue to get the same string they always did (the stored\n* pin value / default). New UIs read `body.components[key].{running,pinned,available}`.\n* - Old UIs cannot see `running` (never could — it's new). They may show a stale pin\n* as \"current\", which was the pre-Phase-5 behaviour. That is acceptable for the\n* transition window; Phase 6 (UpdatesTab rebuild) is where the new shape is consumed.\n*\n* Registry-down asymmetry (§4, compliance G2):\n* Background \"available?\" resolution degrades SILENTLY — a registry outage just\n* leaves `available` null; the stack keeps running what it has.\n* A user-pressed update that can't reach the registry FAILS LOUDLY (handled in\n* /admin/update via applyStack pull-before-up + fatal pull failure).\n*\n* Voice variant on display (§4.2, compliance G3):\n* `running.tag` for the voice service will include the hardware suffix (e.g.\n* \"openpalm/voice:0.12.0-cpu\"). The `running.plainVersion` field strips it for\n* use in the pinning control. `pinned` never carries the suffix (compose adds it).\n*\n* Service-name vs image-name (§5 truthful state):\n* getRunningImages() keys its result by compose SERVICE name, not image name.\n* OP_PORTAL_VERSION images run under services discord/slack/guardian/api/chat/gateway.\n* OP_VOICE_VERSION may run as voice (cpu), voice-cuda, or voice-rocm.\n* We therefore scan runningImages by matching the image tag against the expected\n* image name, not by looking up the image name as a service name.\n*\n* upToDate field removed (§8, Phase-5-item-3):\n* Tag-string equality cannot determine up-to-date status (tags can point to different\n* digests). Phase 6 decides up-to-date by digest comparison after a pull. The route\n* surfaces running.digest, running.plainVersion, pinned, and available as separate\n* truthful values for Phase 6 to use.\n*/\nvar ALLOWED_KEYS = new Set([\n\t...SERVICE_VERSION_KEYS,\n\t\"OP_AUTO_UPDATE\",\n\t\"OP_CHANNEL\"\n]);\nfunction stackEnvPath() {\n\treturn `${getState().stashDir}/env/stack.env`;\n}\nvar STABLE_SEMVER = /^v?(\\d+\\.\\d+\\.\\d+)$/;\nvar PRERELEASE_SEMVER = /^v?(\\d+\\.\\d+\\.\\d+-(?:rc|alpha|beta|next)\\.\\d+)$/;\nvar VOICE_STABLE = /^v?(\\d+\\.\\d+\\.\\d+)-\\w+$/;\n/**\n* Read the Docker Hub namespace from the stack env (OP_IMAGE_NAMESPACE), defaulting to\n* \"openpalm\". Compose uses the same default: ${OP_IMAGE_NAMESPACE:-openpalm}.\n*/\nfunction imageNamespace(stackEnvContent) {\n\treturn (stackEnvContent.OP_IMAGE_NAMESPACE ?? process.env.OP_IMAGE_NAMESPACE ?? \"openpalm\").trim() || \"openpalm\";\n}\nasync function resolveDockerLatestSilent(image, namespace, channel) {\n\ttry {\n\t\tconst res = await fetch(`https://hub.docker.com/v2/repositories/${namespace}/${image}/tags?page_size=100&ordering=last_updated`, {\n\t\t\theaders: { Accept: \"application/json\" },\n\t\t\tsignal: AbortSignal.timeout(5e3)\n\t\t});\n\t\tif (!res.ok) return null;\n\t\tconst data = await res.json();\n\t\tconst isVoice = image === \"voice\";\n\t\tconst candidates = [];\n\t\tfor (const tag of data.results ?? []) {\n\t\t\tconst plain = tag.name.match(STABLE_SEMVER);\n\t\t\tif (plain) {\n\t\t\t\tcandidates.push(plain[1]);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (isVoice) {\n\t\t\t\tconst voice = tag.name.match(VOICE_STABLE);\n\t\t\t\tif (voice) {\n\t\t\t\t\tcandidates.push(voice[1]);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (channel === \"next\") {\n\t\t\t\tconst pre = tag.name.match(PRERELEASE_SEMVER);\n\t\t\t\tif (pre) candidates.push(pre[1]);\n\t\t\t}\n\t\t}\n\t\tif (candidates.length === 0) return null;\n\t\treturn candidates.sort(compareComparableVersions).at(-1) ?? null;\n\t} catch {\n\t\treturn null;\n\t}\n}\nvar _availableCache = /* @__PURE__ */ new Map();\nvar CACHE_TTL_MS = 5 * 6e4;\nasync function resolveAvailableVersions(channel, namespace) {\n\tconst cacheKey = `${channel}:${namespace}`;\n\tconst cached = _availableCache.get(cacheKey);\n\tif (cached && Date.now() - cached.fetchedAt < CACHE_TTL_MS) return cached.versions;\n\tconst results = await Promise.all(SERVICE_VERSION_KEYS.map(async (key) => {\n\t\tconst image = DOCKER_IMAGE_NAMES[key];\n\t\treturn [key, await resolveDockerLatestSilent(image, namespace, channel)];\n\t}));\n\tconst versions = {};\n\tfor (const [k, v] of results) versions[k] = v;\n\t_availableCache.set(cacheKey, {\n\t\tversions,\n\t\tfetchedAt: Date.now()\n\t});\n\treturn versions;\n}\n/**\n* Find the first running (non-not_installed) container whose image tag contains\n* the given image name (e.g. \"/portal:\" or \"/voice:\"). Returns null if none found.\n*/\nfunction findRunningByImage(runningImages, imageName) {\n\tconst needle = `/${imageName}:`;\n\tfor (const ri of Object.values(runningImages)) if (ri.state !== \"not_installed\" && ri.tag.includes(needle)) return ri;\n\treturn null;\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tif (!state.stackDir) return errorResponse(503, \"not_initialized\", \"Stack directory not configured\", {}, requestId);\n\tconst versions = readVersions(state);\n\tconst pinned = readPinnedVersions(state);\n\tconst channel = readChannelPreference(state);\n\tlet runningImages = {};\n\ttry {\n\t\trunningImages = await getRunningImages(buildComposeOptions(state));\n\t} catch {}\n\tconst path = stackEnvPath();\n\tconst env = existsSync(path) ? parseEnvFile(path) : {};\n\tconst available = await resolveAvailableVersions(channel, imageNamespace(env));\n\tconst components = {};\n\tfor (const key of SERVICE_VERSION_KEYS) {\n\t\tconst imageName = DOCKER_IMAGE_NAMES[key];\n\t\tconst ri = findRunningByImage(runningImages, imageName);\n\t\tlet runningEntry = null;\n\t\tif (ri) {\n\t\t\tconst rawTag = ri.tag.split(\":\").pop() ?? ri.tag;\n\t\t\tconst plainVersion = key === \"OP_VOICE_VERSION\" ? stripVoiceVariantSuffix(rawTag) : rawTag;\n\t\t\trunningEntry = {\n\t\t\t\tdigest: ri.digest,\n\t\t\t\ttag: ri.tag,\n\t\t\t\tplainVersion,\n\t\t\t\thealthStatus: ri.healthStatus,\n\t\t\t\tcontainerState: ri.state\n\t\t\t};\n\t\t}\n\t\tcomponents[key] = {\n\t\t\trunning: runningEntry,\n\t\t\tpinned: pinned[key],\n\t\t\tavailable: available[key] ?? null\n\t\t};\n\t}\n\treturn json({\n\t\tcomponents,\n\t\tchannel,\n\t\tplatformVersion: formatForDisplay(PLATFORM_VERSION),\n\t\tversions,\n\t\tautoUpdate: env[\"OP_AUTO_UPDATE\"] !== \"false\"\n\t});\n};\nvar PATCH = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tif (!state.stackDir) return errorResponse(503, \"not_initialized\", \"Stack directory not configured\", {}, requestId);\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\treturn errorResponse(400, \"invalid_body\", \"Request body must be JSON\", {}, requestId);\n\t}\n\tconst versions = body?.versions;\n\tif (!versions || typeof versions !== \"object\") return errorResponse(400, \"invalid_body\", \"Body must include a versions object\", {}, requestId);\n\tconst versionUpdates = {};\n\tconst settingUpdates = {};\n\tlet channelUpdate;\n\tfor (const [key, value] of Object.entries(versions)) {\n\t\tif (!ALLOWED_KEYS.has(key)) return errorResponse(400, \"unknown_version_key\", `Unknown key: ${key}`, {}, requestId);\n\t\tif (typeof value !== \"string\") return errorResponse(400, \"invalid_version_value\", `Value for ${key} must be a string`, {}, requestId);\n\t\tif (key === \"OP_CHANNEL\") channelUpdate = value;\n\t\telse if (key === \"OP_AUTO_UPDATE\") settingUpdates[key] = value;\n\t\telse versionUpdates[key] = value;\n\t}\n\tif (Object.keys(versionUpdates).length > 0) {\n\t\twriteVersions(state, versionUpdates);\n\t\t_availableCache.clear();\n\t}\n\tif (channelUpdate !== void 0) try {\n\t\twriteChannelPreference(state, channelUpdate);\n\t\t_availableCache.clear();\n\t} catch (e) {\n\t\treturn errorResponse(400, \"invalid_channel\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n\tif (Object.keys(settingUpdates).length > 0) {\n\t\tconst path = stackEnvPath();\n\t\twriteFileSync(path, mergeEnvContent(existsSync(path) ? readFileSync(path, \"utf-8\") : \"\", settingUpdates), { mode: 384 });\n\t}\n\treturn json({\n\t\tok: true,\n\t\tversions: readVersions(state)\n\t});\n};\n//#endregion\nexport { GET, PATCH };\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ah as loadAutomations, W as executeAutomation, l as buildAkmEnv } from './src-
|
|
2
|
-
import { g as getState } from './state-
|
|
3
|
-
import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-
|
|
1
|
+
import { ah as loadAutomations, W as executeAutomation, l as buildAkmEnv } from './src-NhUHZOQF.js';
|
|
2
|
+
import { g as getState } from './state-BateNC-M.js';
|
|
3
|
+
import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-13WhVOMk.js';
|
|
4
4
|
import './chunk-CLZ62Ad-.js';
|
|
5
5
|
import 'node:module';
|
|
6
6
|
import './provider-constants-DPrj3yBX.js';
|
|
@@ -22,7 +22,7 @@ import 'zlib';
|
|
|
22
22
|
import 'node:assert';
|
|
23
23
|
import 'node:fs/promises';
|
|
24
24
|
import 'node:os';
|
|
25
|
-
import './endpoints-
|
|
25
|
+
import './endpoints-BltANYH6.js';
|
|
26
26
|
|
|
27
27
|
//#region src/routes/admin/automations/[name]/run/+server.ts
|
|
28
28
|
var SAFE_NAME_RE = /^[a-zA-Z0-9._-]+(?:\.ya?ml)?$/;
|
|
@@ -45,4 +45,4 @@ var POST = async (event) => {
|
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
export { POST };
|
|
48
|
-
//# sourceMappingURL=_server.ts-
|
|
48
|
+
//# sourceMappingURL=_server.ts-BjRpt-15.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-BjRpt-15.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/automations/_name_/run/_server.ts.js"],"sourcesContent":["import { d as executeAutomation, f as loadAutomations, h as buildAkmEnv } from \"../../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../../../chunks/helpers.js\";\n//#region src/routes/admin/automations/[name]/run/+server.ts\nvar SAFE_NAME_RE = /^[a-zA-Z0-9._-]+(?:\\.ya?ml)?$/;\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\tconst state = getState();\n\tconst rawName = event.params.name ?? \"\";\n\tconst taskId = rawName.replace(/\\.ya?ml$/, \"\");\n\tif (!SAFE_NAME_RE.test(rawName) || rawName.includes(\"..\") || rawName.includes(\"/\")) return errorResponse(400, \"invalid_input\", \"name must match /^[a-zA-Z0-9._-]+$/\", {}, requestId);\n\tif (!loadAutomations(state.stashDir).some((c) => c.name === taskId)) return errorResponse(404, \"not_found\", `Automation '${taskId}' is not installed.`, {}, requestId);\n\tconst result = await executeAutomation(taskId, buildAkmEnv(state));\n\treturn jsonResponse(202, {\n\t\tok: result.ok,\n\t\tname: taskId,\n\t\tstatus: result.status,\n\t\terror: result.error ?? null\n\t}, requestId);\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,YAAY,GAAG,+BAA+B;AAC/C,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AAC/C,CAAC,IAAI,OAAO,EAAE,OAAO,OAAO;AAC5B,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;AACxC,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;AAC/C,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,qCAAqC,EAAE,EAAE,EAAE,SAAS,CAAC;AACrL,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AACvK,CAAC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE;AACf,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM;AACvB,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI;AACzB,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a1 as getAkmStats } from './src-
|
|
2
|
-
import { g as getState } from './state-
|
|
3
|
-
import { d as getRequestId, r as requireAdmin, k as jsonResponse, e as errorResponse } from './helpers-
|
|
1
|
+
import { a1 as getAkmStats } from './src-NhUHZOQF.js';
|
|
2
|
+
import { g as getState } from './state-BateNC-M.js';
|
|
3
|
+
import { d as getRequestId, r as requireAdmin, k as jsonResponse, e as errorResponse } from './helpers-13WhVOMk.js';
|
|
4
4
|
import './chunk-CLZ62Ad-.js';
|
|
5
5
|
import 'node:module';
|
|
6
6
|
import './provider-constants-DPrj3yBX.js';
|
|
@@ -22,7 +22,7 @@ import 'zlib';
|
|
|
22
22
|
import 'node:assert';
|
|
23
23
|
import 'node:fs/promises';
|
|
24
24
|
import 'node:os';
|
|
25
|
-
import './endpoints-
|
|
25
|
+
import './endpoints-BltANYH6.js';
|
|
26
26
|
|
|
27
27
|
//#region src/routes/admin/akm/stats/+server.ts
|
|
28
28
|
var CACHE_TTL_MS = 15e3;
|
|
@@ -53,4 +53,4 @@ var GET = async (event) => {
|
|
|
53
53
|
};
|
|
54
54
|
|
|
55
55
|
export { GET, _resetStatsCacheForTests };
|
|
56
|
-
//# sourceMappingURL=_server.ts-
|
|
56
|
+
//# sourceMappingURL=_server.ts-BpHYyIAQ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-BpHYyIAQ.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/akm/stats/_server.ts.js"],"sourcesContent":["import { n as getAkmStats } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/akm/stats/+server.ts\nvar CACHE_TTL_MS = 15e3;\nvar cachedStats = null;\nvar cachedAt = 0;\nvar inFlight = null;\nfunction _resetStatsCacheForTests() {\n\tcachedStats = null;\n\tcachedAt = 0;\n\tinFlight = null;\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst denied = requireAdmin(event, requestId);\n\tif (denied) return denied;\n\tif (cachedStats && Date.now() - cachedAt < CACHE_TTL_MS) return jsonResponse(200, cachedStats, requestId);\n\ttry {\n\t\tif (!inFlight) inFlight = getAkmStats(getState()).finally(() => {\n\t\t\tinFlight = null;\n\t\t});\n\t\tconst stats = await inFlight;\n\t\tcachedStats = stats;\n\t\tcachedAt = Date.now();\n\t\treturn jsonResponse(200, stats, requestId);\n\t} catch (error) {\n\t\treturn errorResponse(500, \"akm_stats_failed\", error instanceof Error ? error.message : \"Failed to load AKM stats.\", {}, requestId);\n\t}\n};\n//#endregion\nexport { GET, _resetStatsCacheForTests };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,YAAY,GAAG,IAAI;AACvB,IAAI,WAAW,GAAG,IAAI;AACtB,IAAI,QAAQ,GAAG,CAAC;AAChB,IAAI,QAAQ,GAAG,IAAI;AACnB,SAAS,wBAAwB,GAAG;AACpC,CAAC,WAAW,GAAG,IAAI;AACnB,CAAC,QAAQ,GAAG,CAAC;AACb,CAAC,QAAQ,GAAG,IAAI;AAChB;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AAC9C,CAAC,IAAI,MAAM,EAAE,OAAO,MAAM;AAC1B,CAAC,IAAI,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,YAAY,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,SAAS,CAAC;AAC1G,CAAC,IAAI;AACL,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM;AAClE,GAAG,QAAQ,GAAG,IAAI;AAClB,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,KAAK,GAAG,MAAM,QAAQ;AAC9B,EAAE,WAAW,GAAG,KAAK;AACrB,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE;AACvB,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC;AAC5C,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE;AACjB,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,kBAAkB,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,2BAA2B,EAAE,EAAE,EAAE,SAAS,CAAC;AACpI,CAAC;AACD;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { d as getRequestId, e as errorResponse, f as getUiLoginPassword, s as safeTokenCompare, b as createSession } from './helpers-
|
|
2
|
-
import { s as sessionCookieHeader } from './session-cookie-
|
|
3
|
-
import './src-
|
|
1
|
+
import { d as getRequestId, e as errorResponse, f as getUiLoginPassword, s as safeTokenCompare, b as createSession } from './helpers-13WhVOMk.js';
|
|
2
|
+
import { s as sessionCookieHeader } from './session-cookie-DErsjR7e.js';
|
|
3
|
+
import './src-NhUHZOQF.js';
|
|
4
4
|
import './chunk-CLZ62Ad-.js';
|
|
5
5
|
import 'node:module';
|
|
6
6
|
import './provider-constants-DPrj3yBX.js';
|
|
@@ -22,8 +22,8 @@ import 'zlib';
|
|
|
22
22
|
import 'node:assert';
|
|
23
23
|
import 'node:fs/promises';
|
|
24
24
|
import 'node:os';
|
|
25
|
-
import './endpoints-
|
|
26
|
-
import './state-
|
|
25
|
+
import './endpoints-BltANYH6.js';
|
|
26
|
+
import './state-BateNC-M.js';
|
|
27
27
|
|
|
28
28
|
//#region src/routes/admin/auth/login/+server.ts
|
|
29
29
|
var POST = async (event) => {
|
|
@@ -54,4 +54,4 @@ var POST = async (event) => {
|
|
|
54
54
|
};
|
|
55
55
|
|
|
56
56
|
export { POST };
|
|
57
|
-
//# sourceMappingURL=_server.ts-
|
|
57
|
+
//# sourceMappingURL=_server.ts-BqdrhN6T.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-BqdrhN6T.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/auth/login/_server.ts.js"],"sourcesContent":["import { f as safeTokenCompare, g as getUiLoginPassword, h as createSession, i as errorResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\nimport { r as sessionCookieHeader } from \"../../../../../chunks/session-cookie.js\";\n//#region src/routes/admin/auth/login/+server.ts\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\treturn errorResponse(400, \"bad_request\", \"Invalid JSON body\", {}, requestId);\n\t}\n\tconst password = typeof body.password === \"string\" ? body.password : \"\";\n\tif (!password) return errorResponse(400, \"bad_request\", \"password is required\", {}, requestId);\n\tconst configured = getUiLoginPassword();\n\tif (!configured) return errorResponse(503, \"admin_not_configured\", \"OP_UI_LOGIN_PASSWORD has not been set. Complete setup first.\", {}, requestId);\n\tif (!safeTokenCompare(password, configured)) return errorResponse(401, \"unauthorized\", \"Invalid password\", {}, requestId);\n\tconst sessionToken = createSession();\n\treturn new Response(JSON.stringify({\n\t\tok: true,\n\t\trole: \"admin\"\n\t}), {\n\t\tstatus: 200,\n\t\theaders: {\n\t\t\t\"content-type\": \"application/json\",\n\t\t\t\"set-cookie\": sessionCookieHeader(sessionToken, event.request),\n\t\t\t\"x-request-id\": requestId\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,mBAAmB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC9E,CAAC;AACD,CAAC,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE;AACxE,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,sBAAsB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC/F,CAAC,MAAM,UAAU,GAAG,kBAAkB,EAAE;AACxC,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,sBAAsB,EAAE,8DAA8D,EAAE,EAAE,EAAE,SAAS,CAAC;AAClJ,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC1H,CAAC,MAAM,YAAY,GAAG,aAAa,EAAE;AACrC,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;AACpC,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,IAAI,EAAE;AACR,EAAE,CAAC,EAAE;AACL,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,OAAO,EAAE;AACX,GAAG,cAAc,EAAE,kBAAkB;AACrC,GAAG,YAAY,EAAE,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;AACjE,GAAG,cAAc,EAAE;AACnB;AACA,EAAE,CAAC;AACH;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { j as json } from './exports-D1quPX8S.js';
|
|
2
|
-
import { g as getOpenCodeClient } from './helpers-
|
|
2
|
+
import { g as getOpenCodeClient } from './helpers-13WhVOMk.js';
|
|
3
3
|
import './utils-BSRjJDrZ.js';
|
|
4
|
-
import './src-
|
|
4
|
+
import './src-NhUHZOQF.js';
|
|
5
5
|
import './chunk-CLZ62Ad-.js';
|
|
6
6
|
import 'node:module';
|
|
7
7
|
import './provider-constants-DPrj3yBX.js';
|
|
@@ -23,8 +23,8 @@ import 'zlib';
|
|
|
23
23
|
import 'node:assert';
|
|
24
24
|
import 'node:fs/promises';
|
|
25
25
|
import 'node:os';
|
|
26
|
-
import './endpoints-
|
|
27
|
-
import './state-
|
|
26
|
+
import './endpoints-BltANYH6.js';
|
|
27
|
+
import './state-BateNC-M.js';
|
|
28
28
|
|
|
29
29
|
//#region src/routes/api/setup/opencode/auth/[provider]/+server.ts
|
|
30
30
|
var PROVIDER_ID_RE = /^[a-zA-Z0-9_-]{1,64}$/;
|
|
@@ -49,4 +49,4 @@ var PUT = async ({ params, request }) => {
|
|
|
49
49
|
};
|
|
50
50
|
|
|
51
51
|
export { PUT };
|
|
52
|
-
//# sourceMappingURL=_server.ts-
|
|
52
|
+
//# sourceMappingURL=_server.ts-BuZUw21A.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-BuZUw21A.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/opencode/auth/_provider_/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../../../chunks/exports.js\";\nimport { a as getOpenCodeClient } from \"../../../../../../../chunks/helpers.js\";\n//#region src/routes/api/setup/opencode/auth/[provider]/+server.ts\nvar PROVIDER_ID_RE = /^[a-zA-Z0-9_-]{1,64}$/;\nvar PUT = async ({ params, request }) => {\n\tif (!PROVIDER_ID_RE.test(params.provider)) return json({\n\t\tok: false,\n\t\tmessage: \"Invalid provider\"\n\t}, { status: 400 });\n\ttry {\n\t\tconst { key } = await request.json();\n\t\tif (!(await getOpenCodeClient().setProviderApiKey(params.provider, typeof key === \"string\" ? key : \"\")).ok) return json({\n\t\t\tok: false,\n\t\t\tmessage: \"Failed to set provider credentials\"\n\t\t}, { status: 400 });\n\t\treturn json({ ok: true });\n\t} catch {\n\t\treturn json({\n\t\t\tok: false,\n\t\t\tmessage: \"Failed to set provider credentials\"\n\t\t}, { status: 500 });\n\t}\n};\n//#endregion\nexport { PUT };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA,IAAI,cAAc,GAAG,uBAAuB;AACzC,IAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AACzC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,IAAI,CAAC;AACxD,EAAE,EAAE,EAAE,KAAK;AACX,EAAE,OAAO,EAAE;AACX,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACpB,CAAC,IAAI;AACL,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACtC,EAAE,IAAI,CAAC,CAAC,MAAM,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,KAAK,QAAQ,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC;AAC1H,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,CAAC;AACD;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { j as json } from './exports-D1quPX8S.js';
|
|
2
|
-
import { aa as isSetupComplete, aK as resolveOpenPalmHome, _ as getAddonProfileSelection, b as annotateAddonProfileAvailability, $ as getAddonProfiles } from './src-
|
|
3
|
-
import { g as getState } from './state-
|
|
4
|
-
import { r as requireAdmin, d as getRequestId } from './helpers-
|
|
2
|
+
import { aa as isSetupComplete, aK as resolveOpenPalmHome, _ as getAddonProfileSelection, b as annotateAddonProfileAvailability, $ as getAddonProfiles } from './src-NhUHZOQF.js';
|
|
3
|
+
import { g as getState } from './state-BateNC-M.js';
|
|
4
|
+
import { r as requireAdmin, d as getRequestId } from './helpers-13WhVOMk.js';
|
|
5
5
|
import './utils-BSRjJDrZ.js';
|
|
6
6
|
import './chunk-CLZ62Ad-.js';
|
|
7
7
|
import 'node:module';
|
|
@@ -24,7 +24,7 @@ import 'zlib';
|
|
|
24
24
|
import 'node:assert';
|
|
25
25
|
import 'node:fs/promises';
|
|
26
26
|
import 'node:os';
|
|
27
|
-
import './endpoints-
|
|
27
|
+
import './endpoints-BltANYH6.js';
|
|
28
28
|
|
|
29
29
|
//#region src/routes/api/setup/ollama-profiles/+server.ts
|
|
30
30
|
var GET = async (event) => {
|
|
@@ -41,4 +41,4 @@ var GET = async (event) => {
|
|
|
41
41
|
};
|
|
42
42
|
|
|
43
43
|
export { GET };
|
|
44
|
-
//# sourceMappingURL=_server.ts-
|
|
44
|
+
//# sourceMappingURL=_server.ts-Buq94QaZ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-Buq94QaZ.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/ollama-profiles/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { St as getAddonProfiles, dt as isSetupComplete, sn as resolveOpenPalmHome, xt as getAddonProfileSelection, yt as annotateAddonProfileAvailability } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/api/setup/ollama-profiles/+server.ts\nvar GET = async (event) => {\n\tif (isSetupComplete(resolveOpenPalmHome())) {\n\t\tconst authError = requireAdmin(event, getRequestId(event));\n\t\tif (authError) return authError;\n\t}\n\tconst state = getState();\n\treturn json({\n\t\tok: true,\n\t\tprofiles: await annotateAddonProfileAvailability(getAddonProfiles(state.homeDir, \"ollama\")),\n\t\tselectedProfile: getAddonProfileSelection(state.stackDir, \"ollama\")\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,IAAI,eAAe,CAAC,mBAAmB,EAAE,CAAC,EAAE;AAC7C,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5D,EAAE,IAAI,SAAS,EAAE,OAAO,SAAS;AACjC,CAAC;AACD,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC7F,EAAE,eAAe,EAAE,wBAAwB,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ;AACpE,EAAE,CAAC;AACH;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { o as checkDocker, a2 as getDockerEvents } from './src-
|
|
2
|
-
import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-
|
|
1
|
+
import { o as checkDocker, a2 as getDockerEvents } from './src-NhUHZOQF.js';
|
|
2
|
+
import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-13WhVOMk.js';
|
|
3
3
|
import './chunk-CLZ62Ad-.js';
|
|
4
4
|
import 'node:module';
|
|
5
5
|
import './provider-constants-DPrj3yBX.js';
|
|
@@ -21,8 +21,8 @@ import 'zlib';
|
|
|
21
21
|
import 'node:assert';
|
|
22
22
|
import 'node:fs/promises';
|
|
23
23
|
import 'node:os';
|
|
24
|
-
import './endpoints-
|
|
25
|
-
import './state-
|
|
24
|
+
import './endpoints-BltANYH6.js';
|
|
25
|
+
import './state-BateNC-M.js';
|
|
26
26
|
|
|
27
27
|
//#region src/routes/admin/containers/events/+server.ts
|
|
28
28
|
var GET = async (event) => {
|
|
@@ -44,4 +44,4 @@ var GET = async (event) => {
|
|
|
44
44
|
};
|
|
45
45
|
|
|
46
46
|
export { GET };
|
|
47
|
-
//# sourceMappingURL=_server.ts-
|
|
47
|
+
//# sourceMappingURL=_server.ts-BuwilXIo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-BuwilXIo.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/events/_server.ts.js"],"sourcesContent":["import { J as checkDocker, ot as getDockerEvents } from \"../../../../../chunks/src.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/containers/events/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst since = event.url.searchParams.get(\"since\") || \"1h\";\n\tif (!(await checkDocker()).ok) return errorResponse(503, \"docker_unavailable\", \"Docker is not available\", {}, requestId);\n\tconst result = await getDockerEvents(\"openpalm\", since);\n\tif (!result.ok) return errorResponse(500, \"docker_error\", `Failed to get Docker events: ${result.stderr}`, {}, requestId);\n\tlet events = [];\n\tif (result.stdout.trim()) try {\n\t\tevents = result.stdout.trim().split(\"\\n\").filter((l) => l.startsWith(\"{\")).map((l) => JSON.parse(l));\n\t} catch (e) {\n\t\tconsole.warn(\"[containers.events] Failed to parse Docker events output\", e);\n\t\treturn errorResponse(500, \"parse_error\", \"Failed to parse Docker events output\", {}, requestId);\n\t}\n\treturn jsonResponse(200, { events }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI;AAC1D,CAAC,IAAI,CAAC,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,EAAE,EAAE,SAAS,CAAC;AACzH,CAAC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC;AACxD,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,6BAA6B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC1H,CAAC,IAAI,MAAM,GAAG,EAAE;AAChB,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI;AAC/B,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,CAAC,IAAI,CAAC,0DAA0D,EAAE,CAAC,CAAC;AAC7E,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,sCAAsC,EAAE,EAAE,EAAE,SAAS,CAAC;AACjG,CAAC;AACD,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC;AAChD;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { d as getRequestId, r as requireAdmin, g as getOpenCodeClient, e as errorResponse, k as jsonResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-
|
|
2
|
-
import { u as unsetMainModel, s as setMainModel } from './config-
|
|
3
|
-
import './src-
|
|
1
|
+
import { d as getRequestId, r as requireAdmin, g as getOpenCodeClient, e as errorResponse, k as jsonResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-13WhVOMk.js';
|
|
2
|
+
import { u as unsetMainModel, s as setMainModel } from './config-DaoatST3.js';
|
|
3
|
+
import './src-NhUHZOQF.js';
|
|
4
4
|
import './chunk-CLZ62Ad-.js';
|
|
5
5
|
import 'node:module';
|
|
6
6
|
import './provider-constants-DPrj3yBX.js';
|
|
@@ -22,10 +22,10 @@ import 'zlib';
|
|
|
22
22
|
import 'node:assert';
|
|
23
23
|
import 'node:fs/promises';
|
|
24
24
|
import 'node:os';
|
|
25
|
-
import './endpoints-
|
|
26
|
-
import './state-
|
|
25
|
+
import './endpoints-BltANYH6.js';
|
|
26
|
+
import './state-BateNC-M.js';
|
|
27
27
|
import './coercion-TNFJisCC.js';
|
|
28
|
-
import './http-
|
|
28
|
+
import './http-4BaLbiCJ.js';
|
|
29
29
|
|
|
30
30
|
//#region src/routes/admin/opencode/model/+server.ts
|
|
31
31
|
var GET = async (event) => {
|
|
@@ -82,4 +82,4 @@ var POST = async (event) => {
|
|
|
82
82
|
};
|
|
83
83
|
|
|
84
84
|
export { GET, POST };
|
|
85
|
-
//# sourceMappingURL=_server.ts-
|
|
85
|
+
//# sourceMappingURL=_server.ts-Bvd-ia9u.js.map
|