@openpalm/ui 0.11.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +160 -0
- package/build/.openpalm-ui-version +1 -0
- package/build/client/_app/immutable/assets/0.p3iHeEvq.css +1 -0
- package/build/client/_app/immutable/assets/0.p3iHeEvq.css.br +0 -0
- package/build/client/_app/immutable/assets/0.p3iHeEvq.css.gz +0 -0
- package/build/client/_app/immutable/assets/4.BakrtzGF.css +1 -0
- package/build/client/_app/immutable/assets/4.BakrtzGF.css.br +0 -0
- package/build/client/_app/immutable/assets/4.BakrtzGF.css.gz +0 -0
- package/build/client/_app/immutable/assets/5.Cj0Mk9Gn.css +1 -0
- package/build/client/_app/immutable/assets/5.Cj0Mk9Gn.css.br +0 -0
- package/build/client/_app/immutable/assets/5.Cj0Mk9Gn.css.gz +0 -0
- package/build/client/_app/immutable/assets/6.B0Z8tVIH.css +1 -0
- package/build/client/_app/immutable/assets/6.B0Z8tVIH.css.br +1 -0
- package/build/client/_app/immutable/assets/6.B0Z8tVIH.css.gz +0 -0
- package/build/client/_app/immutable/assets/7.Cucah5cY.css +1 -0
- package/build/client/_app/immutable/assets/7.Cucah5cY.css.br +0 -0
- package/build/client/_app/immutable/assets/7.Cucah5cY.css.gz +0 -0
- package/build/client/_app/immutable/assets/8.DjrHy5wu.css +1 -0
- package/build/client/_app/immutable/assets/8.DjrHy5wu.css.br +0 -0
- package/build/client/_app/immutable/assets/8.DjrHy5wu.css.gz +0 -0
- package/build/client/_app/immutable/assets/AuthGate.B8fOC_pJ.css +1 -0
- package/build/client/_app/immutable/assets/AuthGate.B8fOC_pJ.css.br +0 -0
- package/build/client/_app/immutable/assets/AuthGate.B8fOC_pJ.css.gz +0 -0
- package/build/client/_app/immutable/assets/ModeSwitch.RmRIDur-.css +1 -0
- package/build/client/_app/immutable/assets/ModeSwitch.RmRIDur-.css.br +0 -0
- package/build/client/_app/immutable/assets/ModeSwitch.RmRIDur-.css.gz +0 -0
- package/build/client/_app/immutable/assets/VoiceProfileSelector.CM_o2XIa.css +1 -0
- package/build/client/_app/immutable/assets/VoiceProfileSelector.CM_o2XIa.css.br +0 -0
- package/build/client/_app/immutable/assets/VoiceProfileSelector.CM_o2XIa.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BDFsK-cU.js +5 -0
- package/build/client/_app/immutable/chunks/BDFsK-cU.js.br +0 -0
- package/build/client/_app/immutable/chunks/BDFsK-cU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BOq4Y36A.js +1 -0
- package/build/client/_app/immutable/chunks/BOq4Y36A.js.br +0 -0
- package/build/client/_app/immutable/chunks/BOq4Y36A.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bdvti_5C.js +1 -0
- package/build/client/_app/immutable/chunks/Bdvti_5C.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bdvti_5C.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BuFlayix.js +1 -0
- package/build/client/_app/immutable/chunks/BuFlayix.js.br +0 -0
- package/build/client/_app/immutable/chunks/BuFlayix.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BwTF6U35.js +3 -0
- package/build/client/_app/immutable/chunks/BwTF6U35.js.br +0 -0
- package/build/client/_app/immutable/chunks/BwTF6U35.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CJkMgfFh.js +1 -0
- package/build/client/_app/immutable/chunks/CJkMgfFh.js.br +0 -0
- package/build/client/_app/immutable/chunks/CJkMgfFh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DQCVeARi.js +1 -0
- package/build/client/_app/immutable/chunks/DQCVeARi.js.br +0 -0
- package/build/client/_app/immutable/chunks/DQCVeARi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DpdFx-ph.js +1 -0
- package/build/client/_app/immutable/chunks/DpdFx-ph.js.br +0 -0
- package/build/client/_app/immutable/chunks/DpdFx-ph.js.gz +0 -0
- package/build/client/_app/immutable/chunks/kNaey6uv.js +1 -0
- package/build/client/_app/immutable/chunks/kNaey6uv.js.br +0 -0
- package/build/client/_app/immutable/chunks/kNaey6uv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/os2NZ37U.js +1 -0
- package/build/client/_app/immutable/chunks/os2NZ37U.js.br +1 -0
- package/build/client/_app/immutable/chunks/os2NZ37U.js.gz +0 -0
- package/build/client/_app/immutable/chunks/xihTtKlq.js +1 -0
- package/build/client/_app/immutable/chunks/xihTtKlq.js.br +1 -0
- package/build/client/_app/immutable/chunks/xihTtKlq.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.Coaz9qVz.js +2 -0
- package/build/client/_app/immutable/entry/app.Coaz9qVz.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Coaz9qVz.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CaHQB6hU.js +1 -0
- package/build/client/_app/immutable/entry/start.CaHQB6hU.js.br +1 -0
- package/build/client/_app/immutable/entry/start.CaHQB6hU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.BUaVTC13.js +1 -0
- package/build/client/_app/immutable/nodes/0.BUaVTC13.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.BUaVTC13.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.DpM9NN8J.js +1 -0
- package/build/client/_app/immutable/nodes/1.DpM9NN8J.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.DpM9NN8J.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.ojh8oE7F.js +1 -0
- package/build/client/_app/immutable/nodes/2.ojh8oE7F.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.ojh8oE7F.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.DeAC3yVJ.js +1 -0
- package/build/client/_app/immutable/nodes/3.DeAC3yVJ.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.DeAC3yVJ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.8L-_wsn9.js +18 -0
- package/build/client/_app/immutable/nodes/4.8L-_wsn9.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.8L-_wsn9.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.kb9iVd3S.js +4 -0
- package/build/client/_app/immutable/nodes/5.kb9iVd3S.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.kb9iVd3S.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.DtmDzmki.js +1 -0
- package/build/client/_app/immutable/nodes/6.DtmDzmki.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.DtmDzmki.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.-Pv5Qce0.js +15 -0
- package/build/client/_app/immutable/nodes/7.-Pv5Qce0.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.-Pv5Qce0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.Rc3xcFgu.js +2 -0
- package/build/client/_app/immutable/nodes/8.Rc3xcFgu.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.Rc3xcFgu.js.gz +0 -0
- package/build/client/_app/version.json +1 -0
- package/build/client/_app/version.json.br +1 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/client/banner.png +0 -0
- package/build/client/fu-128.png +0 -0
- package/build/client/fu.png +0 -0
- package/build/client/logo-128.png +0 -0
- package/build/client/logo.png +0 -0
- package/build/client/setup/wizard.css +1639 -0
- package/build/client/setup/wizard.css.br +0 -0
- package/build/client/setup/wizard.css.gz +0 -0
- package/build/client/wizard-128.png +0 -0
- package/build/client/wizard.png +0 -0
- package/build/env.js +94 -0
- package/build/handler.js +1494 -0
- package/build/index.js +345 -0
- package/build/server/chunks/0-TTdZdv8o.js +9 -0
- package/build/server/chunks/0-TTdZdv8o.js.map +1 -0
- package/build/server/chunks/1-XPMbcj69.js +9 -0
- package/build/server/chunks/1-XPMbcj69.js.map +1 -0
- package/build/server/chunks/2-C2y4ydWU.js +9 -0
- package/build/server/chunks/2-C2y4ydWU.js.map +1 -0
- package/build/server/chunks/3-BgeGdVvT.js +23 -0
- package/build/server/chunks/3-BgeGdVvT.js.map +1 -0
- package/build/server/chunks/4-v8u4eatk.js +9 -0
- package/build/server/chunks/4-v8u4eatk.js.map +1 -0
- package/build/server/chunks/5-BkUoZ2K4.js +9 -0
- package/build/server/chunks/5-BkUoZ2K4.js.map +1 -0
- package/build/server/chunks/6-Cep4AGS2.js +9 -0
- package/build/server/chunks/6-Cep4AGS2.js.map +1 -0
- package/build/server/chunks/7-DOEFGynd.js +9 -0
- package/build/server/chunks/7-DOEFGynd.js.map +1 -0
- package/build/server/chunks/8-EJHw3wqt.js +9 -0
- package/build/server/chunks/8-EJHw3wqt.js.map +1 -0
- package/build/server/chunks/AuthGate-UhfWI3rb.js +741 -0
- package/build/server/chunks/AuthGate-UhfWI3rb.js.map +1 -0
- package/build/server/chunks/ModeSwitch-S3I-WINb.js +15 -0
- package/build/server/chunks/ModeSwitch-S3I-WINb.js.map +1 -0
- package/build/server/chunks/_helpers-B_lb4-jB.js +74 -0
- package/build/server/chunks/_helpers-B_lb4-jB.js.map +1 -0
- package/build/server/chunks/_layout.svelte-B93aaRP_.js +11 -0
- package/build/server/chunks/_layout.svelte-B93aaRP_.js.map +1 -0
- package/build/server/chunks/_layout.svelte-CcloHuB_.js +60 -0
- package/build/server/chunks/_layout.svelte-CcloHuB_.js.map +1 -0
- package/build/server/chunks/_page.svelte-9RQ3rYiU.js +69 -0
- package/build/server/chunks/_page.svelte-9RQ3rYiU.js.map +1 -0
- package/build/server/chunks/_page.svelte-BP2EdQl3.js +5 -0
- package/build/server/chunks/_page.svelte-BP2EdQl3.js.map +1 -0
- package/build/server/chunks/_page.svelte-CKARhLvT.js +408 -0
- package/build/server/chunks/_page.svelte-CKARhLvT.js.map +1 -0
- package/build/server/chunks/_page.svelte-CnZsPxgJ.js +5540 -0
- package/build/server/chunks/_page.svelte-CnZsPxgJ.js.map +1 -0
- package/build/server/chunks/_page.svelte-D0gMlmzQ.js +104 -0
- package/build/server/chunks/_page.svelte-D0gMlmzQ.js.map +1 -0
- package/build/server/chunks/_page.svelte-pxsCzB7-.js +106 -0
- package/build/server/chunks/_page.svelte-pxsCzB7-.js.map +1 -0
- package/build/server/chunks/_server.ts-33LuQvHu.js +19 -0
- package/build/server/chunks/_server.ts-33LuQvHu.js.map +1 -0
- package/build/server/chunks/_server.ts-5CjguYY3.js +514 -0
- package/build/server/chunks/_server.ts-5CjguYY3.js.map +1 -0
- package/build/server/chunks/_server.ts-B3tjtq2m.js +64 -0
- package/build/server/chunks/_server.ts-B3tjtq2m.js.map +1 -0
- package/build/server/chunks/_server.ts-B4N5gO26.js +70 -0
- package/build/server/chunks/_server.ts-B4N5gO26.js.map +1 -0
- package/build/server/chunks/_server.ts-B6FENZO7.js +82 -0
- package/build/server/chunks/_server.ts-B6FENZO7.js.map +1 -0
- package/build/server/chunks/_server.ts-B8JtVHLy.js +41 -0
- package/build/server/chunks/_server.ts-B8JtVHLy.js.map +1 -0
- package/build/server/chunks/_server.ts-BR9OrjcE.js +68 -0
- package/build/server/chunks/_server.ts-BR9OrjcE.js.map +1 -0
- package/build/server/chunks/_server.ts-BYVcXj0z.js +107 -0
- package/build/server/chunks/_server.ts-BYVcXj0z.js.map +1 -0
- package/build/server/chunks/_server.ts-BYdXdnje.js +97 -0
- package/build/server/chunks/_server.ts-BYdXdnje.js.map +1 -0
- package/build/server/chunks/_server.ts-BaxRyhZ8.js +44 -0
- package/build/server/chunks/_server.ts-BaxRyhZ8.js.map +1 -0
- package/build/server/chunks/_server.ts-BclZ3UFT.js +41 -0
- package/build/server/chunks/_server.ts-BclZ3UFT.js.map +1 -0
- package/build/server/chunks/_server.ts-Bd_I8GjG.js +60 -0
- package/build/server/chunks/_server.ts-Bd_I8GjG.js.map +1 -0
- package/build/server/chunks/_server.ts-Bdry_CdG.js +33 -0
- package/build/server/chunks/_server.ts-Bdry_CdG.js.map +1 -0
- package/build/server/chunks/_server.ts-Bg8OpPuA.js +65 -0
- package/build/server/chunks/_server.ts-Bg8OpPuA.js.map +1 -0
- package/build/server/chunks/_server.ts-BjrO7pvn.js +73 -0
- package/build/server/chunks/_server.ts-BjrO7pvn.js.map +1 -0
- package/build/server/chunks/_server.ts-BkoJOqrr.js +70 -0
- package/build/server/chunks/_server.ts-BkoJOqrr.js.map +1 -0
- package/build/server/chunks/_server.ts-Bl0YOh50.js +40 -0
- package/build/server/chunks/_server.ts-Bl0YOh50.js.map +1 -0
- package/build/server/chunks/_server.ts-BmZlEy27.js +55 -0
- package/build/server/chunks/_server.ts-BmZlEy27.js.map +1 -0
- package/build/server/chunks/_server.ts-Bq2S1OMq.js +163 -0
- package/build/server/chunks/_server.ts-Bq2S1OMq.js.map +1 -0
- package/build/server/chunks/_server.ts-BwHojI4i.js +59 -0
- package/build/server/chunks/_server.ts-BwHojI4i.js.map +1 -0
- package/build/server/chunks/_server.ts-C-lN2ZUO.js +33 -0
- package/build/server/chunks/_server.ts-C-lN2ZUO.js.map +1 -0
- package/build/server/chunks/_server.ts-C1DcK_rP.js +200 -0
- package/build/server/chunks/_server.ts-C1DcK_rP.js.map +1 -0
- package/build/server/chunks/_server.ts-C1y3X6iK.js +52 -0
- package/build/server/chunks/_server.ts-C1y3X6iK.js.map +1 -0
- package/build/server/chunks/_server.ts-C5s-OXCm.js +79 -0
- package/build/server/chunks/_server.ts-C5s-OXCm.js.map +1 -0
- package/build/server/chunks/_server.ts-CAKTZL2t.js +63 -0
- package/build/server/chunks/_server.ts-CAKTZL2t.js.map +1 -0
- package/build/server/chunks/_server.ts-CDtOOD3Q.js +83 -0
- package/build/server/chunks/_server.ts-CDtOOD3Q.js.map +1 -0
- package/build/server/chunks/_server.ts-CG409cWi.js +46 -0
- package/build/server/chunks/_server.ts-CG409cWi.js.map +1 -0
- package/build/server/chunks/_server.ts-CJL8da0o.js +56 -0
- package/build/server/chunks/_server.ts-CJL8da0o.js.map +1 -0
- package/build/server/chunks/_server.ts-CLBKpKeH.js +204 -0
- package/build/server/chunks/_server.ts-CLBKpKeH.js.map +1 -0
- package/build/server/chunks/_server.ts-CLiYOnOv.js +50 -0
- package/build/server/chunks/_server.ts-CLiYOnOv.js.map +1 -0
- package/build/server/chunks/_server.ts-CMvY0ZDz.js +101 -0
- package/build/server/chunks/_server.ts-CMvY0ZDz.js.map +1 -0
- package/build/server/chunks/_server.ts-CQqURrHY.js +41 -0
- package/build/server/chunks/_server.ts-CQqURrHY.js.map +1 -0
- package/build/server/chunks/_server.ts-CSgPjCYv.js +79 -0
- package/build/server/chunks/_server.ts-CSgPjCYv.js.map +1 -0
- package/build/server/chunks/_server.ts-C_fNO73y.js +44 -0
- package/build/server/chunks/_server.ts-C_fNO73y.js.map +1 -0
- package/build/server/chunks/_server.ts-CcTt5aAs.js +41 -0
- package/build/server/chunks/_server.ts-CcTt5aAs.js.map +1 -0
- package/build/server/chunks/_server.ts-CfLbEufw.js +53 -0
- package/build/server/chunks/_server.ts-CfLbEufw.js.map +1 -0
- package/build/server/chunks/_server.ts-CqHMhINi.js +53 -0
- package/build/server/chunks/_server.ts-CqHMhINi.js.map +1 -0
- package/build/server/chunks/_server.ts-CrU9r7-F.js +88 -0
- package/build/server/chunks/_server.ts-CrU9r7-F.js.map +1 -0
- package/build/server/chunks/_server.ts-CtZuKotA.js +70 -0
- package/build/server/chunks/_server.ts-CtZuKotA.js.map +1 -0
- package/build/server/chunks/_server.ts-D-sjM5kn.js +103 -0
- package/build/server/chunks/_server.ts-D-sjM5kn.js.map +1 -0
- package/build/server/chunks/_server.ts-D2wlMMJl.js +41 -0
- package/build/server/chunks/_server.ts-D2wlMMJl.js.map +1 -0
- package/build/server/chunks/_server.ts-D7L27_xI.js +65 -0
- package/build/server/chunks/_server.ts-D7L27_xI.js.map +1 -0
- package/build/server/chunks/_server.ts-DMKIHwKi.js +90 -0
- package/build/server/chunks/_server.ts-DMKIHwKi.js.map +1 -0
- package/build/server/chunks/_server.ts-DTyZan5L.js +33 -0
- package/build/server/chunks/_server.ts-DTyZan5L.js.map +1 -0
- package/build/server/chunks/_server.ts-DVekHgMN.js +96 -0
- package/build/server/chunks/_server.ts-DVekHgMN.js.map +1 -0
- package/build/server/chunks/_server.ts-DWLkr6Qg.js +54 -0
- package/build/server/chunks/_server.ts-DWLkr6Qg.js.map +1 -0
- package/build/server/chunks/_server.ts-DWN6TJv0.js +149 -0
- package/build/server/chunks/_server.ts-DWN6TJv0.js.map +1 -0
- package/build/server/chunks/_server.ts-D_dO8hvJ.js +56 -0
- package/build/server/chunks/_server.ts-D_dO8hvJ.js.map +1 -0
- package/build/server/chunks/_server.ts-Da9y6lio.js +82 -0
- package/build/server/chunks/_server.ts-Da9y6lio.js.map +1 -0
- package/build/server/chunks/_server.ts-DbO3cg55.js +54 -0
- package/build/server/chunks/_server.ts-DbO3cg55.js.map +1 -0
- package/build/server/chunks/_server.ts-DclRsTpW.js +44 -0
- package/build/server/chunks/_server.ts-DclRsTpW.js.map +1 -0
- package/build/server/chunks/_server.ts-DdlF1vjy.js +159 -0
- package/build/server/chunks/_server.ts-DdlF1vjy.js.map +1 -0
- package/build/server/chunks/_server.ts-De7IOs2z.js +759 -0
- package/build/server/chunks/_server.ts-De7IOs2z.js.map +1 -0
- package/build/server/chunks/_server.ts-DmyOp1yq.js +40 -0
- package/build/server/chunks/_server.ts-DmyOp1yq.js.map +1 -0
- package/build/server/chunks/_server.ts-DnKTcT9x.js +46 -0
- package/build/server/chunks/_server.ts-DnKTcT9x.js.map +1 -0
- package/build/server/chunks/_server.ts-Dq82kHyx.js +72 -0
- package/build/server/chunks/_server.ts-Dq82kHyx.js.map +1 -0
- package/build/server/chunks/_server.ts-DqVJ1NqI.js +55 -0
- package/build/server/chunks/_server.ts-DqVJ1NqI.js.map +1 -0
- package/build/server/chunks/_server.ts-DzWtvjem.js +46 -0
- package/build/server/chunks/_server.ts-DzWtvjem.js.map +1 -0
- package/build/server/chunks/_server.ts-EZS5Qan4.js +62 -0
- package/build/server/chunks/_server.ts-EZS5Qan4.js.map +1 -0
- package/build/server/chunks/_server.ts-I0iKpsyr.js +77 -0
- package/build/server/chunks/_server.ts-I0iKpsyr.js.map +1 -0
- package/build/server/chunks/_server.ts-P4pmd9NX.js +55 -0
- package/build/server/chunks/_server.ts-P4pmd9NX.js.map +1 -0
- package/build/server/chunks/_server.ts-UF_kxNaU.js +79 -0
- package/build/server/chunks/_server.ts-UF_kxNaU.js.map +1 -0
- package/build/server/chunks/_server.ts-b3mVtmkb.js +121 -0
- package/build/server/chunks/_server.ts-b3mVtmkb.js.map +1 -0
- package/build/server/chunks/_server.ts-dhkEt2p6.js +63 -0
- package/build/server/chunks/_server.ts-dhkEt2p6.js.map +1 -0
- package/build/server/chunks/_server.ts-eK_9jY-9.js +67 -0
- package/build/server/chunks/_server.ts-eK_9jY-9.js.map +1 -0
- package/build/server/chunks/_server.ts-fsEmx9mw.js +42 -0
- package/build/server/chunks/_server.ts-fsEmx9mw.js.map +1 -0
- package/build/server/chunks/_server.ts-l4CK3c4j.js +109 -0
- package/build/server/chunks/_server.ts-l4CK3c4j.js.map +1 -0
- package/build/server/chunks/_server.ts-otJRaSSq.js +139 -0
- package/build/server/chunks/_server.ts-otJRaSSq.js.map +1 -0
- package/build/server/chunks/_server.ts-rXhjnBtw.js +49 -0
- package/build/server/chunks/_server.ts-rXhjnBtw.js.map +1 -0
- package/build/server/chunks/_server.ts-wZ88P3nX.js +157 -0
- package/build/server/chunks/_server.ts-wZ88P3nX.js.map +1 -0
- package/build/server/chunks/_server.ts-xO4nhxDx.js +60 -0
- package/build/server/chunks/_server.ts-xO4nhxDx.js.map +1 -0
- package/build/server/chunks/_server.ts-yimewsjO.js +57 -0
- package/build/server/chunks/_server.ts-yimewsjO.js.map +1 -0
- package/build/server/chunks/addon-helpers-BpnH-GEc.js +49 -0
- package/build/server/chunks/addon-helpers-BpnH-GEc.js.map +1 -0
- package/build/server/chunks/chunk-CLZ62Ad-.js +18 -0
- package/build/server/chunks/chunk-CLZ62Ad-.js.map +1 -0
- package/build/server/chunks/coercion-TNFJisCC.js +34 -0
- package/build/server/chunks/coercion-TNFJisCC.js.map +1 -0
- package/build/server/chunks/config-0LFudKuE.js +121 -0
- package/build/server/chunks/config-0LFudKuE.js.map +1 -0
- package/build/server/chunks/dev-DjANv7AF.js +4389 -0
- package/build/server/chunks/dev-DjANv7AF.js.map +1 -0
- package/build/server/chunks/docker-B23w4kr6.js +20 -0
- package/build/server/chunks/docker-B23w4kr6.js.map +1 -0
- package/build/server/chunks/endpoints-Drq_J-2Z.js +340 -0
- package/build/server/chunks/endpoints-Drq_J-2Z.js.map +1 -0
- package/build/server/chunks/error.svelte-ByNznOuj.js +16 -0
- package/build/server/chunks/error.svelte-ByNznOuj.js.map +1 -0
- package/build/server/chunks/exports-D1quPX8S.js +124 -0
- package/build/server/chunks/exports-D1quPX8S.js.map +1 -0
- package/build/server/chunks/helpers-CX6xRBmt.js +226 -0
- package/build/server/chunks/helpers-CX6xRBmt.js.map +1 -0
- package/build/server/chunks/hooks.server-BEVMYNQ4.js +86 -0
- package/build/server/chunks/hooks.server-BEVMYNQ4.js.map +1 -0
- package/build/server/chunks/http-VqOG8hyj.js +31 -0
- package/build/server/chunks/http-VqOG8hyj.js.map +1 -0
- package/build/server/chunks/internal-CeK24Lte.js +1544 -0
- package/build/server/chunks/internal-CeK24Lte.js.map +1 -0
- package/build/server/chunks/serial-queue-D9FEpYVv.js +22 -0
- package/build/server/chunks/serial-queue-D9FEpYVv.js.map +1 -0
- package/build/server/chunks/setup-deploy-B4oSSFYi.js +529 -0
- package/build/server/chunks/setup-deploy-B4oSSFYi.js.map +1 -0
- package/build/server/chunks/src-BkvQ5Uuf.js +14082 -0
- package/build/server/chunks/src-BkvQ5Uuf.js.map +1 -0
- package/build/server/chunks/state-D7JS-l_D.js +203 -0
- package/build/server/chunks/state-D7JS-l_D.js.map +1 -0
- package/build/server/chunks/theme-state.svelte-PtPMmKGN.js +520 -0
- package/build/server/chunks/theme-state.svelte-PtPMmKGN.js.map +1 -0
- package/build/server/chunks/utils-BSRjJDrZ.js +150 -0
- package/build/server/chunks/utils-BSRjJDrZ.js.map +1 -0
- package/build/server/index.js +4389 -0
- package/build/server/index.js.map +1 -0
- package/build/server/manifest.js +584 -0
- package/build/server/manifest.js.map +1 -0
- package/build/shims.js +32 -0
- package/package.json +68 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { ag as removeTaskFile, ad as readTaskFile, au as writeTaskFile, h as assertSafeTaskFilename } from './src-BkvQ5Uuf.js';
|
|
2
|
+
import { b as getState } from './endpoints-Drq_J-2Z.js';
|
|
3
|
+
import { d as getRequestId, r as requireAdmin, h as jsonResponse, e as errorResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-CX6xRBmt.js';
|
|
4
|
+
import './chunk-CLZ62Ad-.js';
|
|
5
|
+
import 'node:module';
|
|
6
|
+
import 'node:fs';
|
|
7
|
+
import 'node:path';
|
|
8
|
+
import 'node:child_process';
|
|
9
|
+
import 'node:os';
|
|
10
|
+
import 'buffer';
|
|
11
|
+
import 'node:url';
|
|
12
|
+
import 'node:crypto';
|
|
13
|
+
import 'events';
|
|
14
|
+
import 'fs';
|
|
15
|
+
import 'node:events';
|
|
16
|
+
import 'node:stream';
|
|
17
|
+
import 'node:string_decoder';
|
|
18
|
+
import 'path';
|
|
19
|
+
import 'assert';
|
|
20
|
+
import 'zlib';
|
|
21
|
+
import 'node:assert';
|
|
22
|
+
import 'node:fs/promises';
|
|
23
|
+
|
|
24
|
+
//#region src/routes/admin/automations/[name]/file/+server.ts
|
|
25
|
+
function guard(name, requestId) {
|
|
26
|
+
try {
|
|
27
|
+
assertSafeTaskFilename(name);
|
|
28
|
+
return null;
|
|
29
|
+
} catch (err) {
|
|
30
|
+
return errorResponse(400, "bad_request", err.message, {}, requestId);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
var GET = async (event) => {
|
|
34
|
+
const requestId = getRequestId(event);
|
|
35
|
+
const authError = requireAdmin(event, requestId);
|
|
36
|
+
if (authError) return authError;
|
|
37
|
+
const name = event.params.name;
|
|
38
|
+
const bad = guard(name, requestId);
|
|
39
|
+
if (bad) return bad;
|
|
40
|
+
const content = readTaskFile(getState().stashDir, name);
|
|
41
|
+
if (content === null) return errorResponse(404, "not_found", `Task file not found: ${name}`, {}, requestId);
|
|
42
|
+
return jsonResponse(200, {
|
|
43
|
+
name,
|
|
44
|
+
content
|
|
45
|
+
}, requestId);
|
|
46
|
+
};
|
|
47
|
+
var PUT = async (event) => {
|
|
48
|
+
const requestId = getRequestId(event);
|
|
49
|
+
const authError = requireAdmin(event, requestId);
|
|
50
|
+
if (authError) return authError;
|
|
51
|
+
const name = event.params.name;
|
|
52
|
+
const bad = guard(name, requestId);
|
|
53
|
+
if (bad) return bad;
|
|
54
|
+
const result = await parseJsonBody(event.request);
|
|
55
|
+
if ("error" in result) return jsonBodyError(result, requestId);
|
|
56
|
+
const content = result.data.content;
|
|
57
|
+
if (typeof content !== "string") return errorResponse(400, "bad_request", "content must be a string", {}, requestId);
|
|
58
|
+
writeTaskFile(getState().stashDir, name, content);
|
|
59
|
+
return jsonResponse(200, {
|
|
60
|
+
ok: true,
|
|
61
|
+
name
|
|
62
|
+
}, requestId);
|
|
63
|
+
};
|
|
64
|
+
var DELETE = async (event) => {
|
|
65
|
+
const requestId = getRequestId(event);
|
|
66
|
+
const authError = requireAdmin(event, requestId);
|
|
67
|
+
if (authError) return authError;
|
|
68
|
+
const name = event.params.name;
|
|
69
|
+
const bad = guard(name, requestId);
|
|
70
|
+
if (bad) return bad;
|
|
71
|
+
removeTaskFile(getState().stashDir, name);
|
|
72
|
+
return jsonResponse(200, {
|
|
73
|
+
ok: true,
|
|
74
|
+
name
|
|
75
|
+
}, requestId);
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export { DELETE, GET, PUT };
|
|
79
|
+
//# sourceMappingURL=_server.ts-C5s-OXCm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-C5s-OXCm.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/automations/_name_/file/_server.ts.js"],"sourcesContent":["import { Q as writeTaskFile, X as readTaskFile, Y as assertSafeTaskFilename, Z as removeTaskFile } from \"../../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../../chunks/endpoints.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/automations/[name]/file/+server.ts\nfunction guard(name, requestId) {\n\ttry {\n\t\tassertSafeTaskFilename(name);\n\t\treturn null;\n\t} catch (err) {\n\t\treturn errorResponse(400, \"bad_request\", err.message, {}, requestId);\n\t}\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guard(name, requestId);\n\tif (bad) return bad;\n\tconst content = readTaskFile(getState().stashDir, name);\n\tif (content === null) return errorResponse(404, \"not_found\", `Task file not found: ${name}`, {}, requestId);\n\treturn jsonResponse(200, {\n\t\tname,\n\t\tcontent\n\t}, requestId);\n};\nvar PUT = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guard(name, requestId);\n\tif (bad) return bad;\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst content = result.data.content;\n\tif (typeof content !== \"string\") return errorResponse(400, \"bad_request\", \"content must be a string\", {}, requestId);\n\twriteTaskFile(getState().stashDir, name, content);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tname\n\t}, requestId);\n};\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guard(name, requestId);\n\tif (bad) return bad;\n\tremoveTaskFile(getState().stashDir, name);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tname\n\t}, requestId);\n};\n//#endregion\nexport { DELETE, GET, PUT };\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { a0 as listEnabledAddonIds, $ as listAvailableAddonIds } from './src-BkvQ5Uuf.js';
|
|
2
|
+
import { b as getState } from './endpoints-Drq_J-2Z.js';
|
|
3
|
+
import { d as getRequestId, r as requireAdmin, h as jsonResponse, p as parseJsonBody, j as jsonBodyError, e as errorResponse } from './helpers-CX6xRBmt.js';
|
|
4
|
+
import { p as performAddonToggle } from './addon-helpers-BpnH-GEc.js';
|
|
5
|
+
import './chunk-CLZ62Ad-.js';
|
|
6
|
+
import 'node:module';
|
|
7
|
+
import 'node:fs';
|
|
8
|
+
import 'node:path';
|
|
9
|
+
import 'node:child_process';
|
|
10
|
+
import 'node:os';
|
|
11
|
+
import 'buffer';
|
|
12
|
+
import 'node:url';
|
|
13
|
+
import 'node:crypto';
|
|
14
|
+
import 'events';
|
|
15
|
+
import 'fs';
|
|
16
|
+
import 'node:events';
|
|
17
|
+
import 'node:stream';
|
|
18
|
+
import 'node:string_decoder';
|
|
19
|
+
import 'path';
|
|
20
|
+
import 'assert';
|
|
21
|
+
import 'zlib';
|
|
22
|
+
import 'node:assert';
|
|
23
|
+
import 'node:fs/promises';
|
|
24
|
+
|
|
25
|
+
//#region src/routes/admin/addons/+server.ts
|
|
26
|
+
function buildAddonList(availableIds, enabledIds) {
|
|
27
|
+
const enabledSet = new Set(enabledIds);
|
|
28
|
+
return availableIds.map((name) => ({
|
|
29
|
+
name,
|
|
30
|
+
enabled: enabledSet.has(name),
|
|
31
|
+
available: true
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
var GET = async (event) => {
|
|
35
|
+
const requestId = getRequestId(event);
|
|
36
|
+
const authErr = requireAdmin(event, requestId);
|
|
37
|
+
if (authErr) return authErr;
|
|
38
|
+
const state = getState();
|
|
39
|
+
return jsonResponse(200, { addons: buildAddonList(listAvailableAddonIds(), listEnabledAddonIds(state.homeDir)) }, requestId);
|
|
40
|
+
};
|
|
41
|
+
var POST = async (event) => {
|
|
42
|
+
const requestId = getRequestId(event);
|
|
43
|
+
const authErr = requireAdmin(event, requestId);
|
|
44
|
+
if (authErr) return authErr;
|
|
45
|
+
const state = getState();
|
|
46
|
+
const result = await parseJsonBody(event.request);
|
|
47
|
+
if ("error" in result) return jsonBodyError(result, requestId);
|
|
48
|
+
const body = result.data;
|
|
49
|
+
const name = typeof body.name === "string" ? body.name.trim() : "";
|
|
50
|
+
if (!name) return errorResponse(400, "bad_request", "name is required", {}, requestId);
|
|
51
|
+
if (!listAvailableAddonIds().includes(name)) return errorResponse(404, "not_found", `Addon "${name}" is not available`, { name }, requestId);
|
|
52
|
+
const toggle = await performAddonToggle(state, name, typeof body.enabled === "boolean" ? body.enabled : void 0, requestId);
|
|
53
|
+
if (!toggle.ok) return errorResponse(500, "internal_error", toggle.error, {}, requestId);
|
|
54
|
+
return jsonResponse(200, {
|
|
55
|
+
ok: true,
|
|
56
|
+
addon: name,
|
|
57
|
+
enabled: toggle.enabled,
|
|
58
|
+
changed: toggle.changed
|
|
59
|
+
}, requestId);
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
export { GET, POST };
|
|
63
|
+
//# sourceMappingURL=_server.ts-CAKTZL2t.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-CAKTZL2t.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/addons/_server.ts.js"],"sourcesContent":["import { ot as listAvailableAddonIds, st as listEnabledAddonIds } from \"../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../chunks/endpoints.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;;;;"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { y as createLogger, J as ensureHomeDirs, K as ensureOpenCodeConfig, L as ensureOpenCodeSystemConfig, M as ensureSecrets, c as applyInstall, l as buildManagedServices, m as checkDocker, x as composeUp, k as buildComposeOptions, C as CORE_SERVICES } from './src-BkvQ5Uuf.js';
|
|
2
|
+
import { b as getState } from './endpoints-Drq_J-2Z.js';
|
|
3
|
+
import { d as getRequestId, r as requireAdmin, h as jsonResponse, e as errorResponse } from './helpers-CX6xRBmt.js';
|
|
4
|
+
import { w as withSerialQueue } from './serial-queue-D9FEpYVv.js';
|
|
5
|
+
import './chunk-CLZ62Ad-.js';
|
|
6
|
+
import 'node:module';
|
|
7
|
+
import 'node:fs';
|
|
8
|
+
import 'node:path';
|
|
9
|
+
import 'node:child_process';
|
|
10
|
+
import 'node:os';
|
|
11
|
+
import 'buffer';
|
|
12
|
+
import 'node:url';
|
|
13
|
+
import 'node:crypto';
|
|
14
|
+
import 'events';
|
|
15
|
+
import 'fs';
|
|
16
|
+
import 'node:events';
|
|
17
|
+
import 'node:stream';
|
|
18
|
+
import 'node:string_decoder';
|
|
19
|
+
import 'path';
|
|
20
|
+
import 'assert';
|
|
21
|
+
import 'zlib';
|
|
22
|
+
import 'node:assert';
|
|
23
|
+
import 'node:fs/promises';
|
|
24
|
+
|
|
25
|
+
//#region src/routes/admin/install/+server.ts
|
|
26
|
+
var logger = createLogger("install");
|
|
27
|
+
var POST = async (event) => {
|
|
28
|
+
const requestId = getRequestId(event);
|
|
29
|
+
logger.info("install request received", { requestId });
|
|
30
|
+
const authError = requireAdmin(event, requestId);
|
|
31
|
+
if (authError) return authError;
|
|
32
|
+
return withSerialQueue("admin:install", async () => {
|
|
33
|
+
try {
|
|
34
|
+
const state = getState();
|
|
35
|
+
logger.info("ensuring home directories and seeding config", { requestId });
|
|
36
|
+
ensureHomeDirs();
|
|
37
|
+
ensureOpenCodeConfig();
|
|
38
|
+
ensureOpenCodeSystemConfig();
|
|
39
|
+
ensureSecrets(state);
|
|
40
|
+
await applyInstall(state);
|
|
41
|
+
const managedServices = await buildManagedServices(state);
|
|
42
|
+
logger.info("checking Docker availability", { requestId });
|
|
43
|
+
const dockerCheck = await checkDocker();
|
|
44
|
+
let dockerResult = null;
|
|
45
|
+
if (dockerCheck.ok) {
|
|
46
|
+
logger.info("starting compose up", {
|
|
47
|
+
requestId,
|
|
48
|
+
services: managedServices
|
|
49
|
+
});
|
|
50
|
+
dockerResult = await composeUp({
|
|
51
|
+
...buildComposeOptions(state),
|
|
52
|
+
services: managedServices
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
const started = [...CORE_SERVICES];
|
|
56
|
+
logger.info("install completed", {
|
|
57
|
+
requestId,
|
|
58
|
+
started,
|
|
59
|
+
dockerAvailable: dockerCheck.ok,
|
|
60
|
+
composeOk: dockerResult?.ok ?? null
|
|
61
|
+
});
|
|
62
|
+
return jsonResponse(200, {
|
|
63
|
+
ok: true,
|
|
64
|
+
started,
|
|
65
|
+
dockerAvailable: dockerCheck.ok,
|
|
66
|
+
composeResult: dockerResult ? {
|
|
67
|
+
ok: dockerResult.ok,
|
|
68
|
+
stderr: dockerResult.stderr
|
|
69
|
+
} : null
|
|
70
|
+
}, requestId);
|
|
71
|
+
} catch (err) {
|
|
72
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
73
|
+
logger.error("install failed", {
|
|
74
|
+
requestId,
|
|
75
|
+
error: msg
|
|
76
|
+
});
|
|
77
|
+
return errorResponse(500, "install_failed", msg, {}, requestId);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
export { POST };
|
|
83
|
+
//# sourceMappingURL=_server.ts-CDtOOD3Q.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-CDtOOD3Q.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/install/_server.ts.js"],"sourcesContent":["import { I as composeUp, Mt as CORE_SERVICES, Nt as createLogger, T as checkDocker, _ as applyInstall, ht as ensureSecrets, kt as ensureHomeDirs, mt as ensureOpenCodeConfig, pt as ensureOpenCodeSystemConfig, w as buildComposeOptions, x as buildManagedServices } from \"../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../chunks/serial-queue.js\";\n//#region src/routes/admin/install/+server.ts\nvar logger = createLogger(\"install\");\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlogger.info(\"install request received\", { requestId });\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:install\", async () => {\n\t\ttry {\n\t\t\tconst state = getState();\n\t\t\tlogger.info(\"ensuring home directories and seeding config\", { requestId });\n\t\t\tensureHomeDirs();\n\t\t\tensureOpenCodeConfig();\n\t\t\tensureOpenCodeSystemConfig();\n\t\t\tensureSecrets(state);\n\t\t\tawait applyInstall(state);\n\t\t\tconst managedServices = await buildManagedServices(state);\n\t\t\tlogger.info(\"checking Docker availability\", { requestId });\n\t\t\tconst dockerCheck = await checkDocker();\n\t\t\tlet dockerResult = null;\n\t\t\tif (dockerCheck.ok) {\n\t\t\t\tlogger.info(\"starting compose up\", {\n\t\t\t\t\trequestId,\n\t\t\t\t\tservices: managedServices\n\t\t\t\t});\n\t\t\t\tdockerResult = await composeUp({\n\t\t\t\t\t...buildComposeOptions(state),\n\t\t\t\t\tservices: managedServices\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst started = [...CORE_SERVICES];\n\t\t\tlogger.info(\"install completed\", {\n\t\t\t\trequestId,\n\t\t\t\tstarted,\n\t\t\t\tdockerAvailable: dockerCheck.ok,\n\t\t\t\tcomposeOk: dockerResult?.ok ?? null\n\t\t\t});\n\t\t\treturn jsonResponse(200, {\n\t\t\t\tok: true,\n\t\t\t\tstarted,\n\t\t\t\tdockerAvailable: dockerCheck.ok,\n\t\t\t\tcomposeResult: dockerResult ? {\n\t\t\t\t\tok: dockerResult.ok,\n\t\t\t\t\tstderr: dockerResult.stderr\n\t\t\t\t} : null\n\t\t\t}, requestId);\n\t\t} catch (err) {\n\t\t\tconst msg = err instanceof Error ? err.message : String(err);\n\t\t\tlogger.error(\"install failed\", {\n\t\t\t\trequestId,\n\t\t\t\terror: msg\n\t\t\t});\n\t\t\treturn errorResponse(500, \"install_failed\", msg, {}, requestId);\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC;AACjC,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,CAAC;AACvD,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,eAAe,CAAC,eAAe,EAAE,YAAY;AACrD,EAAE,IAAI;AACN,GAAG,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC3B,GAAG,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE,EAAE,SAAS,EAAE,CAAC;AAC7E,GAAG,cAAc,EAAE;AACnB,GAAG,oBAAoB,EAAE;AACzB,GAAG,0BAA0B,EAAE;AAC/B,GAAG,aAAa,CAAC,KAAK,CAAC;AACvB,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC;AAC5B,GAAG,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC;AAC5D,GAAG,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,SAAS,EAAE,CAAC;AAC7D,GAAG,MAAM,WAAW,GAAG,MAAM,WAAW,EAAE;AAC1C,GAAG,IAAI,YAAY,GAAG,IAAI;AAC1B,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE;AACvB,IAAI,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;AACvC,KAAK,SAAS;AACd,KAAK,QAAQ,EAAE;AACf,KAAK,CAAC;AACN,IAAI,YAAY,GAAG,MAAM,SAAS,CAAC;AACnC,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC;AAClC,KAAK,QAAQ,EAAE;AACf,KAAK,CAAC;AACN,GAAG;AACH,GAAG,MAAM,OAAO,GAAG,CAAC,GAAG,aAAa,CAAC;AACrC,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;AACpC,IAAI,SAAS;AACb,IAAI,OAAO;AACX,IAAI,eAAe,EAAE,WAAW,CAAC,EAAE;AACnC,IAAI,SAAS,EAAE,YAAY,EAAE,EAAE,IAAI;AACnC,IAAI,CAAC;AACL,GAAG,OAAO,YAAY,CAAC,GAAG,EAAE;AAC5B,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,OAAO;AACX,IAAI,eAAe,EAAE,WAAW,CAAC,EAAE;AACnC,IAAI,aAAa,EAAE,YAAY,GAAG;AAClC,KAAK,EAAE,EAAE,YAAY,CAAC,EAAE;AACxB,KAAK,MAAM,EAAE,YAAY,CAAC;AAC1B,KAAK,GAAG;AACR,IAAI,EAAE,SAAS,CAAC;AAChB,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,GAAG,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;AAC/D,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE;AAClC,IAAI,SAAS;AACb,IAAI,KAAK,EAAE;AACX,IAAI,CAAC;AACL,GAAG,OAAO,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC;AAClE,EAAE;AACF,CAAC,CAAC,CAAC;AACH;;;;"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { a2 as loadAutomations } from './src-BkvQ5Uuf.js';
|
|
2
|
+
import { b as getState } from './endpoints-Drq_J-2Z.js';
|
|
3
|
+
import { d as getRequestId, r as requireAdmin, h as jsonResponse } from './helpers-CX6xRBmt.js';
|
|
4
|
+
import './chunk-CLZ62Ad-.js';
|
|
5
|
+
import 'node:module';
|
|
6
|
+
import 'node:fs';
|
|
7
|
+
import 'node:path';
|
|
8
|
+
import 'node:child_process';
|
|
9
|
+
import 'node:os';
|
|
10
|
+
import 'buffer';
|
|
11
|
+
import 'node:url';
|
|
12
|
+
import 'node:crypto';
|
|
13
|
+
import 'events';
|
|
14
|
+
import 'fs';
|
|
15
|
+
import 'node:events';
|
|
16
|
+
import 'node:stream';
|
|
17
|
+
import 'node:string_decoder';
|
|
18
|
+
import 'path';
|
|
19
|
+
import 'assert';
|
|
20
|
+
import 'zlib';
|
|
21
|
+
import 'node:assert';
|
|
22
|
+
import 'node:fs/promises';
|
|
23
|
+
|
|
24
|
+
//#region src/routes/admin/automations/+server.ts
|
|
25
|
+
var GET = async (event) => {
|
|
26
|
+
const requestId = getRequestId(event);
|
|
27
|
+
const authErr = requireAdmin(event, requestId);
|
|
28
|
+
if (authErr) return authErr;
|
|
29
|
+
return jsonResponse(200, { automations: loadAutomations(getState().stashDir).map((c) => ({
|
|
30
|
+
name: c.name,
|
|
31
|
+
description: c.description,
|
|
32
|
+
schedule: c.schedule,
|
|
33
|
+
timezone: c.timezone,
|
|
34
|
+
enabled: c.enabled,
|
|
35
|
+
action: {
|
|
36
|
+
type: c.action.type,
|
|
37
|
+
content: c.action.content,
|
|
38
|
+
agent: c.action.agent
|
|
39
|
+
},
|
|
40
|
+
on_failure: c.on_failure,
|
|
41
|
+
fileName: c.fileName
|
|
42
|
+
})) }, requestId);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export { GET };
|
|
46
|
+
//# sourceMappingURL=_server.ts-CG409cWi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-CG409cWi.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/automations/_server.ts.js"],"sourcesContent":["import { l as loadAutomations } from \"../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/automations/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\treturn jsonResponse(200, { automations: loadAutomations(getState().stashDir).map((c) => ({\n\t\tname: c.name,\n\t\tdescription: c.description,\n\t\tschedule: c.schedule,\n\t\ttimezone: c.timezone,\n\t\tenabled: c.enabled,\n\t\taction: {\n\t\t\ttype: c.action.type,\n\t\t\tcontent: c.action.content,\n\t\t\tagent: c.action.agent\n\t\t},\n\t\ton_failure: c.on_failure,\n\t\tfileName: c.fileName\n\t})) }, 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,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AAC/C,CAAC,IAAI,OAAO,EAAE,OAAO,OAAO;AAC5B,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAC1F,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;AACd,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW;AAC5B,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACtB,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACtB,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO;AACpB,EAAE,MAAM,EAAE;AACV,GAAG,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;AACtB,GAAG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO;AAC5B,GAAG,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;AACnB,GAAG;AACH,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU;AAC1B,EAAE,QAAQ,EAAE,CAAC,CAAC;AACd,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC;AAClB;;;;"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { j as json } from './exports-D1quPX8S.js';
|
|
2
|
+
import { r as requireAdmin, d as getRequestId } from './helpers-CX6xRBmt.js';
|
|
3
|
+
import './utils-BSRjJDrZ.js';
|
|
4
|
+
import './src-BkvQ5Uuf.js';
|
|
5
|
+
import './chunk-CLZ62Ad-.js';
|
|
6
|
+
import 'node:module';
|
|
7
|
+
import 'node:fs';
|
|
8
|
+
import 'node:path';
|
|
9
|
+
import 'node:child_process';
|
|
10
|
+
import 'node:os';
|
|
11
|
+
import 'buffer';
|
|
12
|
+
import 'node:url';
|
|
13
|
+
import 'node:crypto';
|
|
14
|
+
import 'events';
|
|
15
|
+
import 'fs';
|
|
16
|
+
import 'node:events';
|
|
17
|
+
import 'node:stream';
|
|
18
|
+
import 'node:string_decoder';
|
|
19
|
+
import 'path';
|
|
20
|
+
import 'assert';
|
|
21
|
+
import 'zlib';
|
|
22
|
+
import 'node:assert';
|
|
23
|
+
import 'node:fs/promises';
|
|
24
|
+
import './endpoints-Drq_J-2Z.js';
|
|
25
|
+
|
|
26
|
+
//#region src/routes/admin/versions/releases/+server.ts
|
|
27
|
+
var GET = async (event) => {
|
|
28
|
+
const authError = requireAdmin(event, getRequestId(event));
|
|
29
|
+
if (authError) return authError;
|
|
30
|
+
try {
|
|
31
|
+
const res = await fetch("https://api.github.com/repos/itlackey/openpalm/releases?per_page=20", {
|
|
32
|
+
headers: {
|
|
33
|
+
"User-Agent": "openpalm-admin/1.0",
|
|
34
|
+
Accept: "application/vnd.github+json"
|
|
35
|
+
},
|
|
36
|
+
signal: AbortSignal.timeout(8e3)
|
|
37
|
+
});
|
|
38
|
+
if (!res.ok) return json({
|
|
39
|
+
releases: [],
|
|
40
|
+
error: `GitHub API ${res.status}`
|
|
41
|
+
});
|
|
42
|
+
return json({ releases: (await res.json()).map((r) => ({
|
|
43
|
+
tag: r.tag_name.replace(/^v/, ""),
|
|
44
|
+
prerelease: r.prerelease,
|
|
45
|
+
publishedAt: r.published_at
|
|
46
|
+
})) });
|
|
47
|
+
} catch (err) {
|
|
48
|
+
return json({
|
|
49
|
+
releases: [],
|
|
50
|
+
error: err instanceof Error ? err.message : String(err)
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export { GET };
|
|
56
|
+
//# sourceMappingURL=_server.ts-CJL8da0o.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-CJL8da0o.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/versions/releases/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { d as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/versions/releases/+server.ts\nvar GET = async (event) => {\n\tconst authError = requireAdmin(event, getRequestId(event));\n\tif (authError) return authError;\n\ttry {\n\t\tconst res = await fetch(\"https://api.github.com/repos/itlackey/openpalm/releases?per_page=20\", {\n\t\t\theaders: {\n\t\t\t\t\"User-Agent\": \"openpalm-admin/1.0\",\n\t\t\t\tAccept: \"application/vnd.github+json\"\n\t\t\t},\n\t\t\tsignal: AbortSignal.timeout(8e3)\n\t\t});\n\t\tif (!res.ok) return json({\n\t\t\treleases: [],\n\t\t\terror: `GitHub API ${res.status}`\n\t\t});\n\t\treturn json({ releases: (await res.json()).map((r) => ({\n\t\t\ttag: r.tag_name.replace(/^v/, \"\"),\n\t\t\tprerelease: r.prerelease,\n\t\t\tpublishedAt: r.published_at\n\t\t})) });\n\t} catch (err) {\n\t\treturn json({\n\t\t\treleases: [],\n\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,IAAI;AACL,EAAE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,qEAAqE,EAAE;AACjG,GAAG,OAAO,EAAE;AACZ,IAAI,YAAY,EAAE,oBAAoB;AACtC,IAAI,MAAM,EAAE;AACZ,IAAI;AACJ,GAAG,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG;AAClC,GAAG,CAAC;AACJ,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC;AAC3B,GAAG,QAAQ,EAAE,EAAE;AACf,GAAG,KAAK,EAAE,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC;AACnC,GAAG,CAAC;AACJ,EAAE,OAAO,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM;AACzD,GAAG,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AACpC,GAAG,UAAU,EAAE,CAAC,CAAC,UAAU;AAC3B,GAAG,WAAW,EAAE,CAAC,CAAC;AAClB,GAAG,CAAC,CAAC,EAAE,CAAC;AACR,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,QAAQ,EAAE,EAAE;AACf,GAAG,KAAK,EAAE,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG;AACzD,GAAG,CAAC;AACJ,CAAC;AACD;;;;"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { i as authJsonPath } from './src-BkvQ5Uuf.js';
|
|
2
|
+
import { b as getState } from './endpoints-Drq_J-2Z.js';
|
|
3
|
+
import { d as getRequestId, r as requireAdmin, h as jsonResponse } from './helpers-CX6xRBmt.js';
|
|
4
|
+
import { b as asRecord, c as asString, a as asNumber, e as asStringRecord, d as asStringArray } from './coercion-TNFJisCC.js';
|
|
5
|
+
import { o as opencodeFetch } from './http-VqOG8hyj.js';
|
|
6
|
+
import { g as getCurrentConfig } from './config-0LFudKuE.js';
|
|
7
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
8
|
+
import './chunk-CLZ62Ad-.js';
|
|
9
|
+
import 'node:module';
|
|
10
|
+
import 'node:path';
|
|
11
|
+
import 'node:child_process';
|
|
12
|
+
import 'node:os';
|
|
13
|
+
import 'buffer';
|
|
14
|
+
import 'node:url';
|
|
15
|
+
import 'node:crypto';
|
|
16
|
+
import 'events';
|
|
17
|
+
import 'fs';
|
|
18
|
+
import 'node:events';
|
|
19
|
+
import 'node:stream';
|
|
20
|
+
import 'node:string_decoder';
|
|
21
|
+
import 'path';
|
|
22
|
+
import 'assert';
|
|
23
|
+
import 'zlib';
|
|
24
|
+
import 'node:assert';
|
|
25
|
+
import 'node:fs/promises';
|
|
26
|
+
|
|
27
|
+
//#region src/lib/server/opencode/catalog.ts
|
|
28
|
+
/**
|
|
29
|
+
* Provider catalog assembly.
|
|
30
|
+
*
|
|
31
|
+
* Pulls catalog/auth/config/configured-provider data from the OpenCode server
|
|
32
|
+
* (and the on-disk config), merges them, and emits ProviderView records the
|
|
33
|
+
* UI renders directly.
|
|
34
|
+
*/
|
|
35
|
+
/**
|
|
36
|
+
* Map of provider ID → credential type, as found in OpenCode's auth.json.
|
|
37
|
+
* OpenCode's /provider response only reports env-var-detected providers in
|
|
38
|
+
* `connected`; auth.json-stored credentials (API keys + OAuth tokens) are
|
|
39
|
+
* loaded on-demand and don't appear there. We surface them here so the UI
|
|
40
|
+
* can treat them as connected and show the right badge.
|
|
41
|
+
*/
|
|
42
|
+
function readAuthedProviders() {
|
|
43
|
+
const out = /* @__PURE__ */ new Map();
|
|
44
|
+
try {
|
|
45
|
+
const path = authJsonPath(getState());
|
|
46
|
+
if (!existsSync(path)) return out;
|
|
47
|
+
const data = JSON.parse(readFileSync(path, "utf-8"));
|
|
48
|
+
for (const [id, entry] of Object.entries(data ?? {})) {
|
|
49
|
+
const type = entry?.type === "oauth" ? "oauth" : "api";
|
|
50
|
+
out.set(id, type);
|
|
51
|
+
}
|
|
52
|
+
} catch {}
|
|
53
|
+
return out;
|
|
54
|
+
}
|
|
55
|
+
async function loadProviderPage() {
|
|
56
|
+
try {
|
|
57
|
+
const [catalog, auth, ocConfig, configured] = await Promise.all([
|
|
58
|
+
opencodeFetch("/provider"),
|
|
59
|
+
opencodeFetch("/provider/auth"),
|
|
60
|
+
opencodeFetch("/config"),
|
|
61
|
+
opencodeFetch("/config/providers")
|
|
62
|
+
]);
|
|
63
|
+
const diskConfig = await getCurrentConfig();
|
|
64
|
+
const config = {
|
|
65
|
+
...ocConfig,
|
|
66
|
+
provider: {
|
|
67
|
+
...ocConfig.provider ?? {},
|
|
68
|
+
...diskConfig.provider ?? {}
|
|
69
|
+
},
|
|
70
|
+
disabled_providers: diskConfig.disabled_providers ?? ocConfig.disabled_providers,
|
|
71
|
+
enabled_providers: diskConfig.enabled_providers ?? ocConfig.enabled_providers
|
|
72
|
+
};
|
|
73
|
+
const views = buildProviderViews(catalog, auth, config, configured, readAuthedProviders());
|
|
74
|
+
return {
|
|
75
|
+
available: true,
|
|
76
|
+
providers: views,
|
|
77
|
+
currentModel: config.model,
|
|
78
|
+
currentSmallModel: config.small_model,
|
|
79
|
+
defaultModels: catalog.default,
|
|
80
|
+
allowlistActive: Array.isArray(config.enabled_providers) && config.enabled_providers.length > 0,
|
|
81
|
+
providerCountLabel: `${views.length} providers indexed from OpenCode`,
|
|
82
|
+
stats: {
|
|
83
|
+
total: views.length,
|
|
84
|
+
connected: views.filter((p) => p.connected).length,
|
|
85
|
+
configured: views.filter((p) => p.configured).length,
|
|
86
|
+
disabled: views.filter((p) => p.disabled).length
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
} catch (error) {
|
|
90
|
+
return {
|
|
91
|
+
available: false,
|
|
92
|
+
error: error instanceof Error ? error.message : "Unable to reach the OpenCode server.",
|
|
93
|
+
providers: [],
|
|
94
|
+
defaultModels: {},
|
|
95
|
+
allowlistActive: false,
|
|
96
|
+
providerCountLabel: "The OpenCode server is currently unavailable.",
|
|
97
|
+
stats: {
|
|
98
|
+
total: 0,
|
|
99
|
+
connected: 0,
|
|
100
|
+
configured: 0,
|
|
101
|
+
disabled: 0
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
function extractAndSortModels(...sources) {
|
|
107
|
+
let entries = {};
|
|
108
|
+
for (const source of sources) {
|
|
109
|
+
const record = asModelRecord(source);
|
|
110
|
+
if (record) {
|
|
111
|
+
entries = record;
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return Object.entries(entries).map(([id, model]) => ({
|
|
116
|
+
id,
|
|
117
|
+
name: model.name ?? id
|
|
118
|
+
})).sort((left, right) => left.name.localeCompare(right.name));
|
|
119
|
+
}
|
|
120
|
+
function buildProviderViews(catalog, auth, config, configured, authed) {
|
|
121
|
+
const catalogMap = new Map(catalog.all.map((p) => [p.id, p]));
|
|
122
|
+
const envConnected = new Set(catalog.connected);
|
|
123
|
+
const connected = new Set([...envConnected, ...authed.keys()]);
|
|
124
|
+
const disabled = new Set(config.disabled_providers ?? []);
|
|
125
|
+
const allowlist = config.enabled_providers ? new Set(config.enabled_providers) : void 0;
|
|
126
|
+
const configuredMap = new Map(configured.providers.map((p) => [p.id, p]));
|
|
127
|
+
const providerIds = new Set([
|
|
128
|
+
...catalog.all.map((p) => p.id),
|
|
129
|
+
...Object.keys(config.provider ?? {}),
|
|
130
|
+
...configured.providers.map((p) => p.id)
|
|
131
|
+
]);
|
|
132
|
+
return Array.from(providerIds).map((providerId) => {
|
|
133
|
+
const entry = catalogMap.get(providerId);
|
|
134
|
+
const configEntry = asRecord(config.provider?.[providerId]);
|
|
135
|
+
const resolvedEntry = configuredMap.get(providerId);
|
|
136
|
+
const rawOptions = {
|
|
137
|
+
...asRecord(resolvedEntry?.options),
|
|
138
|
+
...asRecord(configEntry?.options)
|
|
139
|
+
};
|
|
140
|
+
const authMethods = (auth[providerId] ?? []).map((method, index) => ({
|
|
141
|
+
index,
|
|
142
|
+
type: method.type,
|
|
143
|
+
label: method.label,
|
|
144
|
+
prompts: method.prompts ?? []
|
|
145
|
+
}));
|
|
146
|
+
const models = extractAndSortModels(resolvedEntry?.models, configEntry?.models, entry?.models);
|
|
147
|
+
const currentModelId = splitModel(config.model, providerId);
|
|
148
|
+
const currentSmallModelId = splitModel(config.small_model, providerId);
|
|
149
|
+
const enabled = allowlist ? allowlist.has(providerId) && !disabled.has(providerId) : !disabled.has(providerId);
|
|
150
|
+
const isConnected = connected.has(providerId);
|
|
151
|
+
const isEnvConnected = envConnected.has(providerId);
|
|
152
|
+
const authedType = authed.get(providerId);
|
|
153
|
+
const credentialType = !isConnected ? void 0 : isEnvConnected ? "env" : authedType ? authedType : configEntry ? "config" : "custom";
|
|
154
|
+
return {
|
|
155
|
+
id: providerId,
|
|
156
|
+
name: resolvedEntry?.name ?? asString(configEntry?.name) ?? entry?.name ?? providerId,
|
|
157
|
+
source: resolvedEntry?.source ?? (entry ? configEntry ? "config" : "catalog" : "custom"),
|
|
158
|
+
env: resolvedEntry?.env ?? asStringArray(configEntry?.env) ?? entry?.env ?? [],
|
|
159
|
+
connected: isConnected,
|
|
160
|
+
configured: Boolean(resolvedEntry || configEntry),
|
|
161
|
+
disabled: !enabled,
|
|
162
|
+
activeMainModel: Boolean(currentModelId),
|
|
163
|
+
activeSmallModel: Boolean(currentSmallModelId),
|
|
164
|
+
recommendedModelId: currentModelId ?? configured.default[providerId] ?? catalog.default[providerId] ?? models[0]?.id ?? "",
|
|
165
|
+
modelCount: models.length,
|
|
166
|
+
models,
|
|
167
|
+
authMethods,
|
|
168
|
+
credentialType,
|
|
169
|
+
options: {
|
|
170
|
+
baseURL: asString(rawOptions.baseURL),
|
|
171
|
+
headers: asStringRecord(rawOptions.headers),
|
|
172
|
+
timeout: asNumber(rawOptions.timeout),
|
|
173
|
+
setCacheKey: rawOptions.setCacheKey === true,
|
|
174
|
+
enterpriseUrl: asString(rawOptions.enterpriseUrl)
|
|
175
|
+
},
|
|
176
|
+
supportsOauth: authMethods.some((m) => m.type === "oauth"),
|
|
177
|
+
supportsApiAuth: authMethods.some((m) => m.type === "api")
|
|
178
|
+
};
|
|
179
|
+
}).sort((left, right) => {
|
|
180
|
+
if (left.connected !== right.connected) return left.connected ? -1 : 1;
|
|
181
|
+
if (left.activeMainModel !== right.activeMainModel) return left.activeMainModel ? -1 : 1;
|
|
182
|
+
if (left.configured !== right.configured) return left.configured ? -1 : 1;
|
|
183
|
+
if (left.disabled !== right.disabled) return left.disabled ? 1 : -1;
|
|
184
|
+
return left.name.localeCompare(right.name);
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
function splitModel(model, providerId) {
|
|
188
|
+
if (!model?.startsWith(`${providerId}/`)) return void 0;
|
|
189
|
+
return model.slice(providerId.length + 1);
|
|
190
|
+
}
|
|
191
|
+
function asModelRecord(value) {
|
|
192
|
+
return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
|
|
193
|
+
}
|
|
194
|
+
//#endregion
|
|
195
|
+
//#region src/routes/admin/providers/+server.ts
|
|
196
|
+
var GET = async (event) => {
|
|
197
|
+
const requestId = getRequestId(event);
|
|
198
|
+
const authError = requireAdmin(event, requestId);
|
|
199
|
+
if (authError) return authError;
|
|
200
|
+
return jsonResponse(200, await loadProviderPage(), requestId);
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
export { GET };
|
|
204
|
+
//# sourceMappingURL=_server.ts-CLBKpKeH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-CLBKpKeH.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/_server.ts.js"],"sourcesContent":["import { Et as authJsonPath } from \"../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\nimport { a as asStringRecord, i as asStringArray, n as asRecord, r as asString, t as asNumber } from \"../../../../chunks/coercion.js\";\nimport { t as opencodeFetch } from \"../../../../chunks/http.js\";\nimport { t as getCurrentConfig } from \"../../../../chunks/config.js\";\nimport { existsSync, readFileSync } from \"node:fs\";\n//#region src/lib/server/opencode/catalog.ts\n/**\n* Provider catalog assembly.\n*\n* Pulls catalog/auth/config/configured-provider data from the OpenCode server\n* (and the on-disk config), merges them, and emits ProviderView records the\n* UI renders directly.\n*/\n/**\n* Map of provider ID → credential type, as found in OpenCode's auth.json.\n* OpenCode's /provider response only reports env-var-detected providers in\n* `connected`; auth.json-stored credentials (API keys + OAuth tokens) are\n* loaded on-demand and don't appear there. We surface them here so the UI\n* can treat them as connected and show the right badge.\n*/\nfunction readAuthedProviders() {\n\tconst out = /* @__PURE__ */ new Map();\n\ttry {\n\t\tconst path = authJsonPath(getState());\n\t\tif (!existsSync(path)) return out;\n\t\tconst data = JSON.parse(readFileSync(path, \"utf-8\"));\n\t\tfor (const [id, entry] of Object.entries(data ?? {})) {\n\t\t\tconst type = entry?.type === \"oauth\" ? \"oauth\" : \"api\";\n\t\t\tout.set(id, type);\n\t\t}\n\t} catch {}\n\treturn out;\n}\nasync function loadProviderPage() {\n\ttry {\n\t\tconst [catalog, auth, ocConfig, configured] = await Promise.all([\n\t\t\topencodeFetch(\"/provider\"),\n\t\t\topencodeFetch(\"/provider/auth\"),\n\t\t\topencodeFetch(\"/config\"),\n\t\t\topencodeFetch(\"/config/providers\")\n\t\t]);\n\t\tconst diskConfig = await getCurrentConfig();\n\t\tconst config = {\n\t\t\t...ocConfig,\n\t\t\tprovider: {\n\t\t\t\t...ocConfig.provider ?? {},\n\t\t\t\t...diskConfig.provider ?? {}\n\t\t\t},\n\t\t\tdisabled_providers: diskConfig.disabled_providers ?? ocConfig.disabled_providers,\n\t\t\tenabled_providers: diskConfig.enabled_providers ?? ocConfig.enabled_providers\n\t\t};\n\t\tconst views = buildProviderViews(catalog, auth, config, configured, readAuthedProviders());\n\t\treturn {\n\t\t\tavailable: true,\n\t\t\tproviders: views,\n\t\t\tcurrentModel: config.model,\n\t\t\tcurrentSmallModel: config.small_model,\n\t\t\tdefaultModels: catalog.default,\n\t\t\tallowlistActive: Array.isArray(config.enabled_providers) && config.enabled_providers.length > 0,\n\t\t\tproviderCountLabel: `${views.length} providers indexed from OpenCode`,\n\t\t\tstats: {\n\t\t\t\ttotal: views.length,\n\t\t\t\tconnected: views.filter((p) => p.connected).length,\n\t\t\t\tconfigured: views.filter((p) => p.configured).length,\n\t\t\t\tdisabled: views.filter((p) => p.disabled).length\n\t\t\t}\n\t\t};\n\t} catch (error) {\n\t\treturn {\n\t\t\tavailable: false,\n\t\t\terror: error instanceof Error ? error.message : \"Unable to reach the OpenCode server.\",\n\t\t\tproviders: [],\n\t\t\tdefaultModels: {},\n\t\t\tallowlistActive: false,\n\t\t\tproviderCountLabel: \"The OpenCode server is currently unavailable.\",\n\t\t\tstats: {\n\t\t\t\ttotal: 0,\n\t\t\t\tconnected: 0,\n\t\t\t\tconfigured: 0,\n\t\t\t\tdisabled: 0\n\t\t\t}\n\t\t};\n\t}\n}\nfunction extractAndSortModels(...sources) {\n\tlet entries = {};\n\tfor (const source of sources) {\n\t\tconst record = asModelRecord(source);\n\t\tif (record) {\n\t\t\tentries = record;\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn Object.entries(entries).map(([id, model]) => ({\n\t\tid,\n\t\tname: model.name ?? id\n\t})).sort((left, right) => left.name.localeCompare(right.name));\n}\nfunction buildProviderViews(catalog, auth, config, configured, authed) {\n\tconst catalogMap = new Map(catalog.all.map((p) => [p.id, p]));\n\tconst envConnected = new Set(catalog.connected);\n\tconst connected = new Set([...envConnected, ...authed.keys()]);\n\tconst disabled = new Set(config.disabled_providers ?? []);\n\tconst allowlist = config.enabled_providers ? new Set(config.enabled_providers) : void 0;\n\tconst configuredMap = new Map(configured.providers.map((p) => [p.id, p]));\n\tconst providerIds = new Set([\n\t\t...catalog.all.map((p) => p.id),\n\t\t...Object.keys(config.provider ?? {}),\n\t\t...configured.providers.map((p) => p.id)\n\t]);\n\treturn Array.from(providerIds).map((providerId) => {\n\t\tconst entry = catalogMap.get(providerId);\n\t\tconst configEntry = asRecord(config.provider?.[providerId]);\n\t\tconst resolvedEntry = configuredMap.get(providerId);\n\t\tconst rawOptions = {\n\t\t\t...asRecord(resolvedEntry?.options),\n\t\t\t...asRecord(configEntry?.options)\n\t\t};\n\t\tconst authMethods = (auth[providerId] ?? []).map((method, index) => ({\n\t\t\tindex,\n\t\t\ttype: method.type,\n\t\t\tlabel: method.label,\n\t\t\tprompts: method.prompts ?? []\n\t\t}));\n\t\tconst models = extractAndSortModels(resolvedEntry?.models, configEntry?.models, entry?.models);\n\t\tconst currentModelId = splitModel(config.model, providerId);\n\t\tconst currentSmallModelId = splitModel(config.small_model, providerId);\n\t\tconst enabled = allowlist ? allowlist.has(providerId) && !disabled.has(providerId) : !disabled.has(providerId);\n\t\tconst isConnected = connected.has(providerId);\n\t\tconst isEnvConnected = envConnected.has(providerId);\n\t\tconst authedType = authed.get(providerId);\n\t\tconst credentialType = !isConnected ? void 0 : isEnvConnected ? \"env\" : authedType ? authedType : configEntry ? \"config\" : \"custom\";\n\t\treturn {\n\t\t\tid: providerId,\n\t\t\tname: resolvedEntry?.name ?? asString(configEntry?.name) ?? entry?.name ?? providerId,\n\t\t\tsource: resolvedEntry?.source ?? (entry ? configEntry ? \"config\" : \"catalog\" : \"custom\"),\n\t\t\tenv: resolvedEntry?.env ?? asStringArray(configEntry?.env) ?? entry?.env ?? [],\n\t\t\tconnected: isConnected,\n\t\t\tconfigured: Boolean(resolvedEntry || configEntry),\n\t\t\tdisabled: !enabled,\n\t\t\tactiveMainModel: Boolean(currentModelId),\n\t\t\tactiveSmallModel: Boolean(currentSmallModelId),\n\t\t\trecommendedModelId: currentModelId ?? configured.default[providerId] ?? catalog.default[providerId] ?? models[0]?.id ?? \"\",\n\t\t\tmodelCount: models.length,\n\t\t\tmodels,\n\t\t\tauthMethods,\n\t\t\tcredentialType,\n\t\t\toptions: {\n\t\t\t\tbaseURL: asString(rawOptions.baseURL),\n\t\t\t\theaders: asStringRecord(rawOptions.headers),\n\t\t\t\ttimeout: asNumber(rawOptions.timeout),\n\t\t\t\tsetCacheKey: rawOptions.setCacheKey === true,\n\t\t\t\tenterpriseUrl: asString(rawOptions.enterpriseUrl)\n\t\t\t},\n\t\t\tsupportsOauth: authMethods.some((m) => m.type === \"oauth\"),\n\t\t\tsupportsApiAuth: authMethods.some((m) => m.type === \"api\")\n\t\t};\n\t}).sort((left, right) => {\n\t\tif (left.connected !== right.connected) return left.connected ? -1 : 1;\n\t\tif (left.activeMainModel !== right.activeMainModel) return left.activeMainModel ? -1 : 1;\n\t\tif (left.configured !== right.configured) return left.configured ? -1 : 1;\n\t\tif (left.disabled !== right.disabled) return left.disabled ? 1 : -1;\n\t\treturn left.name.localeCompare(right.name);\n\t});\n}\nfunction splitModel(model, providerId) {\n\tif (!model?.startsWith(`${providerId}/`)) return void 0;\n\treturn model.slice(providerId.length + 1);\n}\nfunction asModelRecord(value) {\n\treturn value && typeof value === \"object\" && !Array.isArray(value) ? value : void 0;\n}\n//#endregion\n//#region src/routes/admin/providers/+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, await loadProviderPage(), requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
|