@selvajs/selva 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +9 -0
- package/build/client/_app/immutable/assets/0.B0phAlf7.css +1 -0
- package/build/client/_app/immutable/assets/0.B0phAlf7.css.br +0 -0
- package/build/client/_app/immutable/assets/0.B0phAlf7.css.gz +0 -0
- package/build/client/_app/immutable/assets/20.DzF5JyuX.css +1 -0
- package/build/client/_app/immutable/assets/20.DzF5JyuX.css.br +0 -0
- package/build/client/_app/immutable/assets/20.DzF5JyuX.css.gz +0 -0
- package/build/client/_app/immutable/assets/index.CV-KWLNP.css +1 -0
- package/build/client/_app/immutable/assets/index.CV-KWLNP.css.br +1 -0
- package/build/client/_app/immutable/assets/index.CV-KWLNP.css.gz +0 -0
- package/build/client/_app/immutable/chunks/1s2jTHrf.js +1 -0
- package/build/client/_app/immutable/chunks/1s2jTHrf.js.br +0 -0
- package/build/client/_app/immutable/chunks/1s2jTHrf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/2XlIPTRw.js +1 -0
- package/build/client/_app/immutable/chunks/2XlIPTRw.js.br +1 -0
- package/build/client/_app/immutable/chunks/2XlIPTRw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/2_FEXmq1.js +9 -0
- package/build/client/_app/immutable/chunks/2_FEXmq1.js.br +0 -0
- package/build/client/_app/immutable/chunks/2_FEXmq1.js.gz +0 -0
- package/build/client/_app/immutable/chunks/2dX6Wjni.js +1 -0
- package/build/client/_app/immutable/chunks/2dX6Wjni.js.br +0 -0
- package/build/client/_app/immutable/chunks/2dX6Wjni.js.gz +0 -0
- package/build/client/_app/immutable/chunks/4tskcAVN.js +1 -0
- package/build/client/_app/immutable/chunks/4tskcAVN.js.br +0 -0
- package/build/client/_app/immutable/chunks/4tskcAVN.js.gz +0 -0
- package/build/client/_app/immutable/chunks/4y4xLOS_.js +1 -0
- package/build/client/_app/immutable/chunks/4y4xLOS_.js.br +0 -0
- package/build/client/_app/immutable/chunks/4y4xLOS_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/AEyooZaf.js +1 -0
- package/build/client/_app/immutable/chunks/AEyooZaf.js.br +0 -0
- package/build/client/_app/immutable/chunks/AEyooZaf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B1aRL9Hz.js +1 -0
- package/build/client/_app/immutable/chunks/B1aRL9Hz.js.br +0 -0
- package/build/client/_app/immutable/chunks/B1aRL9Hz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B8uG8z2c.js +1 -0
- package/build/client/_app/immutable/chunks/B8uG8z2c.js.br +0 -0
- package/build/client/_app/immutable/chunks/B8uG8z2c.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B8zY50Bc.js +1 -0
- package/build/client/_app/immutable/chunks/B8zY50Bc.js.br +5 -0
- package/build/client/_app/immutable/chunks/B8zY50Bc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BCse3N0b.js +1 -0
- package/build/client/_app/immutable/chunks/BCse3N0b.js.br +0 -0
- package/build/client/_app/immutable/chunks/BCse3N0b.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BFXFuY-o.js +3 -0
- package/build/client/_app/immutable/chunks/BFXFuY-o.js.br +0 -0
- package/build/client/_app/immutable/chunks/BFXFuY-o.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BGxzXVpM.js +1 -0
- package/build/client/_app/immutable/chunks/BGxzXVpM.js.br +0 -0
- package/build/client/_app/immutable/chunks/BGxzXVpM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BM4_iXSA.js +1 -0
- package/build/client/_app/immutable/chunks/BM4_iXSA.js.br +0 -0
- package/build/client/_app/immutable/chunks/BM4_iXSA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BMGykAfL.js +2 -0
- package/build/client/_app/immutable/chunks/BMGykAfL.js.br +0 -0
- package/build/client/_app/immutable/chunks/BMGykAfL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BNScKugQ.js +1 -0
- package/build/client/_app/immutable/chunks/BNScKugQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/BNScKugQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BNzEBMy8.js +1 -0
- package/build/client/_app/immutable/chunks/BNzEBMy8.js.br +0 -0
- package/build/client/_app/immutable/chunks/BNzEBMy8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BU9URCkw.js +1 -0
- package/build/client/_app/immutable/chunks/BU9URCkw.js.br +0 -0
- package/build/client/_app/immutable/chunks/BU9URCkw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BW4xleRz.js +1 -0
- package/build/client/_app/immutable/chunks/BW4xleRz.js.br +0 -0
- package/build/client/_app/immutable/chunks/BW4xleRz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BZmrLQwT.js +1 -0
- package/build/client/_app/immutable/chunks/BZmrLQwT.js.br +0 -0
- package/build/client/_app/immutable/chunks/BZmrLQwT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B_Lmgh7q.js +1 -0
- package/build/client/_app/immutable/chunks/B_Lmgh7q.js.br +0 -0
- package/build/client/_app/immutable/chunks/B_Lmgh7q.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BapAUJpM.js +1 -0
- package/build/client/_app/immutable/chunks/BapAUJpM.js.br +0 -0
- package/build/client/_app/immutable/chunks/BapAUJpM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bb9xebuT.js +1 -0
- package/build/client/_app/immutable/chunks/Bb9xebuT.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bb9xebuT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BjkQG7dw.js +1 -0
- package/build/client/_app/immutable/chunks/BjkQG7dw.js.br +0 -0
- package/build/client/_app/immutable/chunks/BjkQG7dw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bmz9gLBz.js +1 -0
- package/build/client/_app/immutable/chunks/Bmz9gLBz.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bmz9gLBz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bnpwcepm.js +1 -0
- package/build/client/_app/immutable/chunks/Bnpwcepm.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bnpwcepm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BoR6OKl6.js +1 -0
- package/build/client/_app/immutable/chunks/BoR6OKl6.js.br +0 -0
- package/build/client/_app/immutable/chunks/BoR6OKl6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Br5bpmJC.js +1 -0
- package/build/client/_app/immutable/chunks/Br5bpmJC.js.br +0 -0
- package/build/client/_app/immutable/chunks/Br5bpmJC.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BxCHY0iG.js +1 -0
- package/build/client/_app/immutable/chunks/BxCHY0iG.js.br +0 -0
- package/build/client/_app/immutable/chunks/BxCHY0iG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C1Sz0rtw.js +1 -0
- package/build/client/_app/immutable/chunks/C1Sz0rtw.js.br +0 -0
- package/build/client/_app/immutable/chunks/C1Sz0rtw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C1aQuqo_.js +2 -0
- package/build/client/_app/immutable/chunks/C1aQuqo_.js.br +0 -0
- package/build/client/_app/immutable/chunks/C1aQuqo_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C26nmevH.js +1 -0
- package/build/client/_app/immutable/chunks/C26nmevH.js.br +0 -0
- package/build/client/_app/immutable/chunks/C26nmevH.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C8ko2SLk.js +1 -0
- package/build/client/_app/immutable/chunks/C8ko2SLk.js.br +0 -0
- package/build/client/_app/immutable/chunks/C8ko2SLk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CAMhfNhW.js +1 -0
- package/build/client/_app/immutable/chunks/CAMhfNhW.js.br +0 -0
- package/build/client/_app/immutable/chunks/CAMhfNhW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CEnIp_6Y.js +1 -0
- package/build/client/_app/immutable/chunks/CEnIp_6Y.js.br +3 -0
- package/build/client/_app/immutable/chunks/CEnIp_6Y.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CMjc_m7Z.js +1 -0
- package/build/client/_app/immutable/chunks/CMjc_m7Z.js.br +0 -0
- package/build/client/_app/immutable/chunks/CMjc_m7Z.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CRRzXoPz.js +5 -0
- package/build/client/_app/immutable/chunks/CRRzXoPz.js.br +0 -0
- package/build/client/_app/immutable/chunks/CRRzXoPz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CXh1ITwj.js +1 -0
- package/build/client/_app/immutable/chunks/CXh1ITwj.js.br +0 -0
- package/build/client/_app/immutable/chunks/CXh1ITwj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CZ1oTCKP.js +1 -0
- package/build/client/_app/immutable/chunks/CZ1oTCKP.js.br +0 -0
- package/build/client/_app/immutable/chunks/CZ1oTCKP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cbu9Tg11.js +1 -0
- package/build/client/_app/immutable/chunks/Cbu9Tg11.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cbu9Tg11.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CcYNc8-G.js +1 -0
- package/build/client/_app/immutable/chunks/CcYNc8-G.js.br +0 -0
- package/build/client/_app/immutable/chunks/CcYNc8-G.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cdcajer6.js +1 -0
- package/build/client/_app/immutable/chunks/Cdcajer6.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cdcajer6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ce2MupFq.js +1 -0
- package/build/client/_app/immutable/chunks/Ce2MupFq.js.br +0 -0
- package/build/client/_app/immutable/chunks/Ce2MupFq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CfP1DoGT.js +1 -0
- package/build/client/_app/immutable/chunks/CfP1DoGT.js.br +0 -0
- package/build/client/_app/immutable/chunks/CfP1DoGT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CfhPDo21.js +1 -0
- package/build/client/_app/immutable/chunks/CfhPDo21.js.br +1 -0
- package/build/client/_app/immutable/chunks/CfhPDo21.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ChSMnQMB.js +2 -0
- package/build/client/_app/immutable/chunks/ChSMnQMB.js.br +0 -0
- package/build/client/_app/immutable/chunks/ChSMnQMB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CkW8YtSm.js +1 -0
- package/build/client/_app/immutable/chunks/CkW8YtSm.js.br +0 -0
- package/build/client/_app/immutable/chunks/CkW8YtSm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CoR7xVWs.js +1 -0
- package/build/client/_app/immutable/chunks/CoR7xVWs.js.br +0 -0
- package/build/client/_app/immutable/chunks/CoR7xVWs.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CpGv0MSX.js +1 -0
- package/build/client/_app/immutable/chunks/CpGv0MSX.js.br +0 -0
- package/build/client/_app/immutable/chunks/CpGv0MSX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cvr8AlQE.js +1 -0
- package/build/client/_app/immutable/chunks/Cvr8AlQE.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cvr8AlQE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D0QMYypb.js +1 -0
- package/build/client/_app/immutable/chunks/D0QMYypb.js.br +0 -0
- package/build/client/_app/immutable/chunks/D0QMYypb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D40b34QZ.js +1 -0
- package/build/client/_app/immutable/chunks/D40b34QZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/D40b34QZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D6MI_dhi.js +1 -0
- package/build/client/_app/immutable/chunks/D6MI_dhi.js.br +0 -0
- package/build/client/_app/immutable/chunks/D6MI_dhi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D7PHp8xb.js +1 -0
- package/build/client/_app/immutable/chunks/D7PHp8xb.js.br +0 -0
- package/build/client/_app/immutable/chunks/D7PHp8xb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D7l1JayF.js +1 -0
- package/build/client/_app/immutable/chunks/D7l1JayF.js.br +0 -0
- package/build/client/_app/immutable/chunks/D7l1JayF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D99uXqZb.js +1 -0
- package/build/client/_app/immutable/chunks/D99uXqZb.js.br +0 -0
- package/build/client/_app/immutable/chunks/D99uXqZb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DEBBEmC0.js +1 -0
- package/build/client/_app/immutable/chunks/DEBBEmC0.js.br +0 -0
- package/build/client/_app/immutable/chunks/DEBBEmC0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DHWrMZkd.js +1 -0
- package/build/client/_app/immutable/chunks/DHWrMZkd.js.br +0 -0
- package/build/client/_app/immutable/chunks/DHWrMZkd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DNsLImlA.js +64 -0
- package/build/client/_app/immutable/chunks/DNsLImlA.js.br +0 -0
- package/build/client/_app/immutable/chunks/DNsLImlA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DRDjLZb3.js +1 -0
- package/build/client/_app/immutable/chunks/DRDjLZb3.js.br +3 -0
- package/build/client/_app/immutable/chunks/DRDjLZb3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DTJeGfAL.js +1 -0
- package/build/client/_app/immutable/chunks/DTJeGfAL.js.br +0 -0
- package/build/client/_app/immutable/chunks/DTJeGfAL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DZFqETAQ.js +1 -0
- package/build/client/_app/immutable/chunks/DZFqETAQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/DZFqETAQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D_wr-JLf.js +1 -0
- package/build/client/_app/immutable/chunks/D_wr-JLf.js.br +0 -0
- package/build/client/_app/immutable/chunks/D_wr-JLf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DdaJZmuM.js +1 -0
- package/build/client/_app/immutable/chunks/DdaJZmuM.js.br +0 -0
- package/build/client/_app/immutable/chunks/DdaJZmuM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dl4WTuMB.js +1 -0
- package/build/client/_app/immutable/chunks/Dl4WTuMB.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dl4WTuMB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Doks8ISn.js +1 -0
- package/build/client/_app/immutable/chunks/Doks8ISn.js.br +0 -0
- package/build/client/_app/immutable/chunks/Doks8ISn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DsnmJJEf.js +1 -0
- package/build/client/_app/immutable/chunks/DsnmJJEf.js.br +2 -0
- package/build/client/_app/immutable/chunks/DsnmJJEf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/E3yOQTT0.js +1 -0
- package/build/client/_app/immutable/chunks/E3yOQTT0.js.br +0 -0
- package/build/client/_app/immutable/chunks/E3yOQTT0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Gxlzmh6y.js +1 -0
- package/build/client/_app/immutable/chunks/Gxlzmh6y.js.br +0 -0
- package/build/client/_app/immutable/chunks/Gxlzmh6y.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ib-7xmHT.js +1 -0
- package/build/client/_app/immutable/chunks/Ib-7xmHT.js.br +0 -0
- package/build/client/_app/immutable/chunks/Ib-7xmHT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/P4Np3c9O.js +1 -0
- package/build/client/_app/immutable/chunks/P4Np3c9O.js.br +0 -0
- package/build/client/_app/immutable/chunks/P4Np3c9O.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Zf7VV5ZB.js +1 -0
- package/build/client/_app/immutable/chunks/Zf7VV5ZB.js.br +0 -0
- package/build/client/_app/immutable/chunks/Zf7VV5ZB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/_OLpdTiI.js +1 -0
- package/build/client/_app/immutable/chunks/_OLpdTiI.js.br +0 -0
- package/build/client/_app/immutable/chunks/_OLpdTiI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/azBeeLR0.js +1 -0
- package/build/client/_app/immutable/chunks/azBeeLR0.js.br +0 -0
- package/build/client/_app/immutable/chunks/azBeeLR0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/gMllmzma.js +1 -0
- package/build/client/_app/immutable/chunks/gMllmzma.js.br +0 -0
- package/build/client/_app/immutable/chunks/gMllmzma.js.gz +0 -0
- package/build/client/_app/immutable/chunks/hRoV10UM.js +1 -0
- package/build/client/_app/immutable/chunks/hRoV10UM.js.br +0 -0
- package/build/client/_app/immutable/chunks/hRoV10UM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/iEBlyxZv.js +1 -0
- package/build/client/_app/immutable/chunks/iEBlyxZv.js.br +0 -0
- package/build/client/_app/immutable/chunks/iEBlyxZv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/jFKgkeON.js +1 -0
- package/build/client/_app/immutable/chunks/jFKgkeON.js.br +0 -0
- package/build/client/_app/immutable/chunks/jFKgkeON.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ooPBmYPj.js +1 -0
- package/build/client/_app/immutable/chunks/ooPBmYPj.js.br +0 -0
- package/build/client/_app/immutable/chunks/ooPBmYPj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/pRg-f8xU.js +1 -0
- package/build/client/_app/immutable/chunks/pRg-f8xU.js.br +0 -0
- package/build/client/_app/immutable/chunks/pRg-f8xU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/uINs3xv3.js +1 -0
- package/build/client/_app/immutable/chunks/uINs3xv3.js.br +0 -0
- package/build/client/_app/immutable/chunks/uINs3xv3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/wamM80bu.js +1 -0
- package/build/client/_app/immutable/chunks/wamM80bu.js.br +0 -0
- package/build/client/_app/immutable/chunks/wamM80bu.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CY1cyDxx.js +2 -0
- package/build/client/_app/immutable/entry/app.CY1cyDxx.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CY1cyDxx.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.ByTVZFMZ.js +1 -0
- package/build/client/_app/immutable/entry/start.ByTVZFMZ.js.br +2 -0
- package/build/client/_app/immutable/entry/start.ByTVZFMZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.CQbbSrko.js +1 -0
- package/build/client/_app/immutable/nodes/0.CQbbSrko.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.CQbbSrko.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.WcE6FOcF.js +1 -0
- package/build/client/_app/immutable/nodes/1.WcE6FOcF.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.WcE6FOcF.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.Bl4yPogx.js +3 -0
- package/build/client/_app/immutable/nodes/10.Bl4yPogx.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.Bl4yPogx.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.kVvSmSNV.js +2 -0
- package/build/client/_app/immutable/nodes/11.kVvSmSNV.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.kVvSmSNV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/12.BoPfAFdi.js +1 -0
- package/build/client/_app/immutable/nodes/12.BoPfAFdi.js.br +0 -0
- package/build/client/_app/immutable/nodes/12.BoPfAFdi.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.JyGUEsdb.js +2 -0
- package/build/client/_app/immutable/nodes/13.JyGUEsdb.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.JyGUEsdb.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.BbJglRXt.js +2 -0
- package/build/client/_app/immutable/nodes/14.BbJglRXt.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.BbJglRXt.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.94-Zje0s.js +13 -0
- package/build/client/_app/immutable/nodes/15.94-Zje0s.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.94-Zje0s.js.gz +0 -0
- package/build/client/_app/immutable/nodes/16.DRADdurD.js +6 -0
- package/build/client/_app/immutable/nodes/16.DRADdurD.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.DRADdurD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.DOsqdwdd.js +2 -0
- package/build/client/_app/immutable/nodes/17.DOsqdwdd.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.DOsqdwdd.js.gz +0 -0
- package/build/client/_app/immutable/nodes/18.BpVlwZ30.js +1 -0
- package/build/client/_app/immutable/nodes/18.BpVlwZ30.js.br +0 -0
- package/build/client/_app/immutable/nodes/18.BpVlwZ30.js.gz +0 -0
- package/build/client/_app/immutable/nodes/19.S2J54AdY.js +2 -0
- package/build/client/_app/immutable/nodes/19.S2J54AdY.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.S2J54AdY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.CKVtP2Ky.js +1 -0
- package/build/client/_app/immutable/nodes/2.CKVtP2Ky.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CKVtP2Ky.js.gz +0 -0
- package/build/client/_app/immutable/nodes/20.BCasu2g4.js +4116 -0
- package/build/client/_app/immutable/nodes/20.BCasu2g4.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.BCasu2g4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/21.C1aTaoAB.js +3 -0
- package/build/client/_app/immutable/nodes/21.C1aTaoAB.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.C1aTaoAB.js.gz +0 -0
- package/build/client/_app/immutable/nodes/23.DP5Be3HR.js +16 -0
- package/build/client/_app/immutable/nodes/23.DP5Be3HR.js.br +0 -0
- package/build/client/_app/immutable/nodes/23.DP5Be3HR.js.gz +0 -0
- package/build/client/_app/immutable/nodes/24.BB6fXxnh.js +6 -0
- package/build/client/_app/immutable/nodes/24.BB6fXxnh.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.BB6fXxnh.js.gz +0 -0
- package/build/client/_app/immutable/nodes/25.oeBaWIUn.js +1 -0
- package/build/client/_app/immutable/nodes/25.oeBaWIUn.js.br +0 -0
- package/build/client/_app/immutable/nodes/25.oeBaWIUn.js.gz +0 -0
- package/build/client/_app/immutable/nodes/26.lPx5SjN1.js +3 -0
- package/build/client/_app/immutable/nodes/26.lPx5SjN1.js.br +0 -0
- package/build/client/_app/immutable/nodes/26.lPx5SjN1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/27.DB7PVQXo.js +4 -0
- package/build/client/_app/immutable/nodes/27.DB7PVQXo.js.br +0 -0
- package/build/client/_app/immutable/nodes/27.DB7PVQXo.js.gz +0 -0
- package/build/client/_app/immutable/nodes/28.Cf2R7A3f.js +4 -0
- package/build/client/_app/immutable/nodes/28.Cf2R7A3f.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.Cf2R7A3f.js.gz +0 -0
- package/build/client/_app/immutable/nodes/29.CyJS5sye.js +2 -0
- package/build/client/_app/immutable/nodes/29.CyJS5sye.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.CyJS5sye.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.DWyky0UV.js +1 -0
- package/build/client/_app/immutable/nodes/3.DWyky0UV.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.DWyky0UV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/30.BFpYKBJh.js +2 -0
- package/build/client/_app/immutable/nodes/30.BFpYKBJh.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.BFpYKBJh.js.gz +0 -0
- package/build/client/_app/immutable/nodes/31.DKnO7o1W.js +2 -0
- package/build/client/_app/immutable/nodes/31.DKnO7o1W.js.br +0 -0
- package/build/client/_app/immutable/nodes/31.DKnO7o1W.js.gz +0 -0
- package/build/client/_app/immutable/nodes/32.D4xYDWvG.js +3 -0
- package/build/client/_app/immutable/nodes/32.D4xYDWvG.js.br +0 -0
- package/build/client/_app/immutable/nodes/32.D4xYDWvG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.0a-qdY5B.js +1 -0
- package/build/client/_app/immutable/nodes/4.0a-qdY5B.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.0a-qdY5B.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.BzQBSRbS.js +1 -0
- package/build/client/_app/immutable/nodes/5.BzQBSRbS.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.BzQBSRbS.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.gJ2nhxWc.js +1 -0
- package/build/client/_app/immutable/nodes/6.gJ2nhxWc.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.gJ2nhxWc.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.tBTDolnc.js +1 -0
- package/build/client/_app/immutable/nodes/7.tBTDolnc.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.tBTDolnc.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.BJK9n85D.js +2 -0
- package/build/client/_app/immutable/nodes/8.BJK9n85D.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.BJK9n85D.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.un0j6nRP.js +1 -0
- package/build/client/_app/immutable/nodes/9.un0j6nRP.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.un0j6nRP.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/baseHDR.hdr +0 -0
- package/build/client/favicon/apple-touch-icon.png +0 -0
- package/build/client/favicon/favicon-96x96.png +0 -0
- package/build/client/favicon/favicon.ico +0 -0
- package/build/client/favicon/favicon.svg +1 -0
- package/build/client/favicon/favicon.svg.br +0 -0
- package/build/client/favicon/favicon.svg.gz +0 -0
- package/build/client/favicon/site.webmanifest +21 -0
- package/build/client/favicon/web-app-manifest-192x192.png +0 -0
- package/build/client/favicon/web-app-manifest-512x512.png +0 -0
- package/build/client/robots.txt +3 -0
- package/build/client/robots.txt.br +0 -0
- package/build/client/robots.txt.gz +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-BRU03dEw.js +55 -0
- package/build/server/chunks/0-BRU03dEw.js.map +1 -0
- package/build/server/chunks/1-m_oCIIXD.js +9 -0
- package/build/server/chunks/1-m_oCIIXD.js.map +1 -0
- package/build/server/chunks/10-J_ZMrbXX.js +220 -0
- package/build/server/chunks/10-J_ZMrbXX.js.map +1 -0
- package/build/server/chunks/11-Dz77N9MO.js +57 -0
- package/build/server/chunks/11-Dz77N9MO.js.map +1 -0
- package/build/server/chunks/12-CrOqT0Q5.js +52 -0
- package/build/server/chunks/12-CrOqT0Q5.js.map +1 -0
- package/build/server/chunks/13-DQGOyx8W.js +56 -0
- package/build/server/chunks/13-DQGOyx8W.js.map +1 -0
- package/build/server/chunks/14-Dl5jyPyO.js +99 -0
- package/build/server/chunks/14-Dl5jyPyO.js.map +1 -0
- package/build/server/chunks/15-CNzxJkd-.js +38 -0
- package/build/server/chunks/15-CNzxJkd-.js.map +1 -0
- package/build/server/chunks/16-5ZcnQNjK.js +83 -0
- package/build/server/chunks/16-5ZcnQNjK.js.map +1 -0
- package/build/server/chunks/17-C4Zpziyd.js +9 -0
- package/build/server/chunks/17-C4Zpziyd.js.map +1 -0
- package/build/server/chunks/18-DFxW4YE_.js +74 -0
- package/build/server/chunks/18-DFxW4YE_.js.map +1 -0
- package/build/server/chunks/19-C8RtlFzY.js +92 -0
- package/build/server/chunks/19-C8RtlFzY.js.map +1 -0
- package/build/server/chunks/2-tPIqsVg3.js +40 -0
- package/build/server/chunks/2-tPIqsVg3.js.map +1 -0
- package/build/server/chunks/20-DLtIYsB6.js +172 -0
- package/build/server/chunks/20-DLtIYsB6.js.map +1 -0
- package/build/server/chunks/21-Bs7WlXoO.js +74 -0
- package/build/server/chunks/21-Bs7WlXoO.js.map +1 -0
- package/build/server/chunks/22-Bweil5nd.js +23 -0
- package/build/server/chunks/22-Bweil5nd.js.map +1 -0
- package/build/server/chunks/23-dTtOINB8.js +136 -0
- package/build/server/chunks/23-dTtOINB8.js.map +1 -0
- package/build/server/chunks/24-DFoVUKXD.js +144 -0
- package/build/server/chunks/24-DFoVUKXD.js.map +1 -0
- package/build/server/chunks/25-DstWRI72.js +51 -0
- package/build/server/chunks/25-DstWRI72.js.map +1 -0
- package/build/server/chunks/26-CI8uo3hW.js +9 -0
- package/build/server/chunks/26-CI8uo3hW.js.map +1 -0
- package/build/server/chunks/27-CpQEotb7.js +57 -0
- package/build/server/chunks/27-CpQEotb7.js.map +1 -0
- package/build/server/chunks/28-B-G5uvxa.js +68 -0
- package/build/server/chunks/28-B-G5uvxa.js.map +1 -0
- package/build/server/chunks/29-BFo4HkLa.js +55 -0
- package/build/server/chunks/29-BFo4HkLa.js.map +1 -0
- package/build/server/chunks/3-BU-Ucrf8.js +9 -0
- package/build/server/chunks/3-BU-Ucrf8.js.map +1 -0
- package/build/server/chunks/30-zdVVQ-al.js +57 -0
- package/build/server/chunks/30-zdVVQ-al.js.map +1 -0
- package/build/server/chunks/31-Cba3pMW9.js +42 -0
- package/build/server/chunks/31-Cba3pMW9.js.map +1 -0
- package/build/server/chunks/32-BmfoNY4G.js +34 -0
- package/build/server/chunks/32-BmfoNY4G.js.map +1 -0
- package/build/server/chunks/4-rU40n2rV.js +9 -0
- package/build/server/chunks/4-rU40n2rV.js.map +1 -0
- package/build/server/chunks/5-CsoWfpGS.js +32 -0
- package/build/server/chunks/5-CsoWfpGS.js.map +1 -0
- package/build/server/chunks/6-D7wR-syA.js +40 -0
- package/build/server/chunks/6-D7wR-syA.js.map +1 -0
- package/build/server/chunks/7-uEz6AFkY.js +19 -0
- package/build/server/chunks/7-uEz6AFkY.js.map +1 -0
- package/build/server/chunks/8-BF-aCqND.js +130 -0
- package/build/server/chunks/8-BF-aCqND.js.map +1 -0
- package/build/server/chunks/9-BSxBuZbd.js +46 -0
- package/build/server/chunks/9-BSxBuZbd.js.map +1 -0
- package/build/server/chunks/AppHeader-BGs-cVxu.js +270 -0
- package/build/server/chunks/AppHeader-BGs-cVxu.js.map +1 -0
- package/build/server/chunks/DataTable-Calmth3f.js +26 -0
- package/build/server/chunks/DataTable-Calmth3f.js.map +1 -0
- package/build/server/chunks/DefinitionCard-p4VxRESg.js +257 -0
- package/build/server/chunks/DefinitionCard-p4VxRESg.js.map +1 -0
- package/build/server/chunks/EmptyState-Vs823elu.js +53 -0
- package/build/server/chunks/EmptyState-Vs823elu.js.map +1 -0
- package/build/server/chunks/ErrorScreen-Btv-WHiu.js +131 -0
- package/build/server/chunks/ErrorScreen-Btv-WHiu.js.map +1 -0
- package/build/server/chunks/FilterableDropdown-B2_HPO_D.js +61 -0
- package/build/server/chunks/FilterableDropdown-B2_HPO_D.js.map +1 -0
- package/build/server/chunks/SectionHeader-C1XxBz32.js +32 -0
- package/build/server/chunks/SectionHeader-C1XxBz32.js.map +1 -0
- package/build/server/chunks/SideNav-B8LeM-P_.js +87 -0
- package/build/server/chunks/SideNav-B8LeM-P_.js.map +1 -0
- package/build/server/chunks/StatCard--Plm6nsA.js +50 -0
- package/build/server/chunks/StatCard--Plm6nsA.js.map +1 -0
- package/build/server/chunks/UserAvatar-CaOe1AcR.js +13 -0
- package/build/server/chunks/UserAvatar-CaOe1AcR.js.map +1 -0
- package/build/server/chunks/UserChip-vdJXrk99.js +1113 -0
- package/build/server/chunks/UserChip-vdJXrk99.js.map +1 -0
- package/build/server/chunks/_error.svelte-Bifw6LEZ.js +27 -0
- package/build/server/chunks/_error.svelte-Bifw6LEZ.js.map +1 -0
- package/build/server/chunks/_error.svelte-C2KGldTD.js +29 -0
- package/build/server/chunks/_error.svelte-C2KGldTD.js.map +1 -0
- package/build/server/chunks/_layout.svelte-1of9r1N3.js +42 -0
- package/build/server/chunks/_layout.svelte-1of9r1N3.js.map +1 -0
- package/build/server/chunks/_layout.svelte-CGIvkx7D.js +152 -0
- package/build/server/chunks/_layout.svelte-CGIvkx7D.js.map +1 -0
- package/build/server/chunks/_layout.svelte-CyAPRqZR.js +10 -0
- package/build/server/chunks/_layout.svelte-CyAPRqZR.js.map +1 -0
- package/build/server/chunks/_layout.svelte-Czx3WsTK.js +795 -0
- package/build/server/chunks/_layout.svelte-Czx3WsTK.js.map +1 -0
- package/build/server/chunks/_layout.svelte-HGSVxA0R.js +105 -0
- package/build/server/chunks/_layout.svelte-HGSVxA0R.js.map +1 -0
- package/build/server/chunks/_page.svelte-4090fhI5.js +83 -0
- package/build/server/chunks/_page.svelte-4090fhI5.js.map +1 -0
- package/build/server/chunks/_page.svelte-5X2iRv32.js +711 -0
- package/build/server/chunks/_page.svelte-5X2iRv32.js.map +1 -0
- package/build/server/chunks/_page.svelte-BO2coOCw.js +10510 -0
- package/build/server/chunks/_page.svelte-BO2coOCw.js.map +1 -0
- package/build/server/chunks/_page.svelte-BfQQ6DpG.js +276 -0
- package/build/server/chunks/_page.svelte-BfQQ6DpG.js.map +1 -0
- package/build/server/chunks/_page.svelte-Br3YjZJA.js +595 -0
- package/build/server/chunks/_page.svelte-Br3YjZJA.js.map +1 -0
- package/build/server/chunks/_page.svelte-BvG__sle.js +119 -0
- package/build/server/chunks/_page.svelte-BvG__sle.js.map +1 -0
- package/build/server/chunks/_page.svelte-C2Pa9XCr.js +119 -0
- package/build/server/chunks/_page.svelte-C2Pa9XCr.js.map +1 -0
- package/build/server/chunks/_page.svelte-C48Yzxtt.js +330 -0
- package/build/server/chunks/_page.svelte-C48Yzxtt.js.map +1 -0
- package/build/server/chunks/_page.svelte-C4V_xDVU.js +329 -0
- package/build/server/chunks/_page.svelte-C4V_xDVU.js.map +1 -0
- package/build/server/chunks/_page.svelte-CFbpEr-L.js +249 -0
- package/build/server/chunks/_page.svelte-CFbpEr-L.js.map +1 -0
- package/build/server/chunks/_page.svelte-CGuEBnqj.js +168 -0
- package/build/server/chunks/_page.svelte-CGuEBnqj.js.map +1 -0
- package/build/server/chunks/_page.svelte-CWJ99QbZ.js +500 -0
- package/build/server/chunks/_page.svelte-CWJ99QbZ.js.map +1 -0
- package/build/server/chunks/_page.svelte-CX9DKxIH.js +520 -0
- package/build/server/chunks/_page.svelte-CX9DKxIH.js.map +1 -0
- package/build/server/chunks/_page.svelte-Cn6-gBTd.js +56 -0
- package/build/server/chunks/_page.svelte-Cn6-gBTd.js.map +1 -0
- package/build/server/chunks/_page.svelte-D2rnbrpK.js +423 -0
- package/build/server/chunks/_page.svelte-D2rnbrpK.js.map +1 -0
- package/build/server/chunks/_page.svelte-DIgP7KVt.js +549 -0
- package/build/server/chunks/_page.svelte-DIgP7KVt.js.map +1 -0
- package/build/server/chunks/_page.svelte-DMn46_VU.js +301 -0
- package/build/server/chunks/_page.svelte-DMn46_VU.js.map +1 -0
- package/build/server/chunks/_page.svelte-DQeDu6UN.js +146 -0
- package/build/server/chunks/_page.svelte-DQeDu6UN.js.map +1 -0
- package/build/server/chunks/_page.svelte-DSpONoJg.js +252 -0
- package/build/server/chunks/_page.svelte-DSpONoJg.js.map +1 -0
- package/build/server/chunks/_page.svelte-DciqGYJp.js +609 -0
- package/build/server/chunks/_page.svelte-DciqGYJp.js.map +1 -0
- package/build/server/chunks/_page.svelte-DfCFSzaO.js +3847 -0
- package/build/server/chunks/_page.svelte-DfCFSzaO.js.map +1 -0
- package/build/server/chunks/_page.svelte-DtUlWJaB.js +113 -0
- package/build/server/chunks/_page.svelte-DtUlWJaB.js.map +1 -0
- package/build/server/chunks/_page.svelte-KapMJV5_.js +452 -0
- package/build/server/chunks/_page.svelte-KapMJV5_.js.map +1 -0
- package/build/server/chunks/_page.svelte-wsvtYRRE.js +69 -0
- package/build/server/chunks/_page.svelte-wsvtYRRE.js.map +1 -0
- package/build/server/chunks/_page.svelte-zL7ihDzp.js +13 -0
- package/build/server/chunks/_page.svelte-zL7ihDzp.js.map +1 -0
- package/build/server/chunks/_server.ts-0ncRaWJ_.js +39 -0
- package/build/server/chunks/_server.ts-0ncRaWJ_.js.map +1 -0
- package/build/server/chunks/_server.ts-7hKc3tb_.js +28 -0
- package/build/server/chunks/_server.ts-7hKc3tb_.js.map +1 -0
- package/build/server/chunks/_server.ts-B0wiCYbB.js +36 -0
- package/build/server/chunks/_server.ts-B0wiCYbB.js.map +1 -0
- package/build/server/chunks/_server.ts-BJWFkEuu.js +94 -0
- package/build/server/chunks/_server.ts-BJWFkEuu.js.map +1 -0
- package/build/server/chunks/_server.ts-BLHjzdRp.js +30 -0
- package/build/server/chunks/_server.ts-BLHjzdRp.js.map +1 -0
- package/build/server/chunks/_server.ts-BUc1sqlR.js +58 -0
- package/build/server/chunks/_server.ts-BUc1sqlR.js.map +1 -0
- package/build/server/chunks/_server.ts-B_MVq_5r.js +72 -0
- package/build/server/chunks/_server.ts-B_MVq_5r.js.map +1 -0
- package/build/server/chunks/_server.ts-Bb3Kpo0Y.js +38 -0
- package/build/server/chunks/_server.ts-Bb3Kpo0Y.js.map +1 -0
- package/build/server/chunks/_server.ts-BemU6FO1.js +64 -0
- package/build/server/chunks/_server.ts-BemU6FO1.js.map +1 -0
- package/build/server/chunks/_server.ts-BkKg2yyC.js +75 -0
- package/build/server/chunks/_server.ts-BkKg2yyC.js.map +1 -0
- package/build/server/chunks/_server.ts-BpAINcOs.js +276 -0
- package/build/server/chunks/_server.ts-BpAINcOs.js.map +1 -0
- package/build/server/chunks/_server.ts-BpkR7TzP.js +30 -0
- package/build/server/chunks/_server.ts-BpkR7TzP.js.map +1 -0
- package/build/server/chunks/_server.ts-BrZXNFlK.js +78 -0
- package/build/server/chunks/_server.ts-BrZXNFlK.js.map +1 -0
- package/build/server/chunks/_server.ts-C-XniPo8.js +41 -0
- package/build/server/chunks/_server.ts-C-XniPo8.js.map +1 -0
- package/build/server/chunks/_server.ts-C0F30GT4.js +61 -0
- package/build/server/chunks/_server.ts-C0F30GT4.js.map +1 -0
- package/build/server/chunks/_server.ts-C4WRZSco.js +32 -0
- package/build/server/chunks/_server.ts-C4WRZSco.js.map +1 -0
- package/build/server/chunks/_server.ts-CAcgx11J.js +37 -0
- package/build/server/chunks/_server.ts-CAcgx11J.js.map +1 -0
- package/build/server/chunks/_server.ts-CFIgn6q6.js +293 -0
- package/build/server/chunks/_server.ts-CFIgn6q6.js.map +1 -0
- package/build/server/chunks/_server.ts-CaHe7mo6.js +81 -0
- package/build/server/chunks/_server.ts-CaHe7mo6.js.map +1 -0
- package/build/server/chunks/_server.ts-CcQbKaET.js +38 -0
- package/build/server/chunks/_server.ts-CcQbKaET.js.map +1 -0
- package/build/server/chunks/_server.ts-Ch_RLYHQ.js +48 -0
- package/build/server/chunks/_server.ts-Ch_RLYHQ.js.map +1 -0
- package/build/server/chunks/_server.ts-CkXnisqg.js +85 -0
- package/build/server/chunks/_server.ts-CkXnisqg.js.map +1 -0
- package/build/server/chunks/_server.ts-CmGWhrdf.js +110 -0
- package/build/server/chunks/_server.ts-CmGWhrdf.js.map +1 -0
- package/build/server/chunks/_server.ts-CmUr8pln.js +37 -0
- package/build/server/chunks/_server.ts-CmUr8pln.js.map +1 -0
- package/build/server/chunks/_server.ts-D-QkfF2o.js +106 -0
- package/build/server/chunks/_server.ts-D-QkfF2o.js.map +1 -0
- package/build/server/chunks/_server.ts-D1AD48e8.js +81 -0
- package/build/server/chunks/_server.ts-D1AD48e8.js.map +1 -0
- package/build/server/chunks/_server.ts-DBh0rJrm.js +86 -0
- package/build/server/chunks/_server.ts-DBh0rJrm.js.map +1 -0
- package/build/server/chunks/_server.ts-DJUYnHrj.js +49 -0
- package/build/server/chunks/_server.ts-DJUYnHrj.js.map +1 -0
- package/build/server/chunks/_server.ts-DNPb5zS6.js +76 -0
- package/build/server/chunks/_server.ts-DNPb5zS6.js.map +1 -0
- package/build/server/chunks/_server.ts-DXPhlUCi.js +101 -0
- package/build/server/chunks/_server.ts-DXPhlUCi.js.map +1 -0
- package/build/server/chunks/_server.ts-Dmo73WWA.js +42 -0
- package/build/server/chunks/_server.ts-Dmo73WWA.js.map +1 -0
- package/build/server/chunks/_server.ts-DxKERFAd.js +35 -0
- package/build/server/chunks/_server.ts-DxKERFAd.js.map +1 -0
- package/build/server/chunks/_server.ts-MOiQ4br_.js +31 -0
- package/build/server/chunks/_server.ts-MOiQ4br_.js.map +1 -0
- package/build/server/chunks/_server.ts-Z87uowZI.js +71 -0
- package/build/server/chunks/_server.ts-Z87uowZI.js.map +1 -0
- package/build/server/chunks/_server.ts-_NTv7i9z.js +94 -0
- package/build/server/chunks/_server.ts-_NTv7i9z.js.map +1 -0
- package/build/server/chunks/_server.ts-gic0t4mu.js +52 -0
- package/build/server/chunks/_server.ts-gic0t4mu.js.map +1 -0
- package/build/server/chunks/_server.ts-la-ySldK.js +39 -0
- package/build/server/chunks/_server.ts-la-ySldK.js.map +1 -0
- package/build/server/chunks/_server.ts-pDmNGXOa.js +70 -0
- package/build/server/chunks/_server.ts-pDmNGXOa.js.map +1 -0
- package/build/server/chunks/access.server-GvriCjXN.js +389 -0
- package/build/server/chunks/access.server-GvriCjXN.js.map +1 -0
- package/build/server/chunks/activity-5BrQjmZv.js +18 -0
- package/build/server/chunks/activity-5BrQjmZv.js.map +1 -0
- package/build/server/chunks/admin-auth.server-CdTfBMI5.js +78 -0
- package/build/server/chunks/admin-auth.server-CdTfBMI5.js.map +1 -0
- package/build/server/chunks/alert-description-CJHDA62x.js +59 -0
- package/build/server/chunks/alert-description-CJHDA62x.js.map +1 -0
- package/build/server/chunks/api-errors-Dk5z97zb.js +36 -0
- package/build/server/chunks/api-errors-Dk5z97zb.js.map +1 -0
- package/build/server/chunks/arrow-left-Bg-KTjhY.js +14 -0
- package/build/server/chunks/arrow-left-Bg-KTjhY.js.map +1 -0
- package/build/server/chunks/arrow-right-BvyjMBhI.js +14 -0
- package/build/server/chunks/arrow-right-BvyjMBhI.js.map +1 -0
- package/build/server/chunks/auth-bootstrap.server-CfD5CPTj.js +38 -0
- package/build/server/chunks/auth-bootstrap.server-CfD5CPTj.js.map +1 -0
- package/build/server/chunks/badge-DP8t-wkc.js +50 -0
- package/build/server/chunks/badge-DP8t-wkc.js.map +1 -0
- package/build/server/chunks/bootHealth.server-Bn7taneH.js +58 -0
- package/build/server/chunks/bootHealth.server-Bn7taneH.js.map +1 -0
- package/build/server/chunks/building-2-DzHZbdjX.js +22 -0
- package/build/server/chunks/building-2-DzHZbdjX.js.map +1 -0
- package/build/server/chunks/button-5YNnSoty.js +73 -0
- package/build/server/chunks/button-5YNnSoty.js.map +1 -0
- package/build/server/chunks/card-content-PfaaTs7O.js +46 -0
- package/build/server/chunks/card-content-PfaaTs7O.js.map +1 -0
- package/build/server/chunks/card-description-BfE_PWv4.js +26 -0
- package/build/server/chunks/card-description-BfE_PWv4.js.map +1 -0
- package/build/server/chunks/card-title-CV7CjSMp.js +46 -0
- package/build/server/chunks/card-title-CV7CjSMp.js.map +1 -0
- package/build/server/chunks/check-6xLpsphW.js +11 -0
- package/build/server/chunks/check-6xLpsphW.js.map +1 -0
- package/build/server/chunks/chevron-down-DdRkfYjQ.js +11 -0
- package/build/server/chunks/chevron-down-DdRkfYjQ.js.map +1 -0
- package/build/server/chunks/chevron-right-yB_oBTHp.js +11 -0
- package/build/server/chunks/chevron-right-yB_oBTHp.js.map +1 -0
- package/build/server/chunks/chevron-up-CskoDtlM.js +11 -0
- package/build/server/chunks/chevron-up-CskoDtlM.js.map +1 -0
- package/build/server/chunks/circle-CcD9wKGy.js +11 -0
- package/build/server/chunks/circle-CcD9wKGy.js.map +1 -0
- package/build/server/chunks/circle-alert-DKo6GQWU.js +18 -0
- package/build/server/chunks/circle-alert-DKo6GQWU.js.map +1 -0
- package/build/server/chunks/client-CUfa2kzY.js +39 -0
- package/build/server/chunks/client-CUfa2kzY.js.map +1 -0
- package/build/server/chunks/computeLimits-FIJ-Mzn4.js +26 -0
- package/build/server/chunks/computeLimits-FIJ-Mzn4.js.map +1 -0
- package/build/server/chunks/context-9tV9WxQ5.js +134 -0
- package/build/server/chunks/context-9tV9WxQ5.js.map +1 -0
- package/build/server/chunks/copy-B82RxBlo.js +29 -0
- package/build/server/chunks/copy-B82RxBlo.js.map +1 -0
- package/build/server/chunks/create-id-BYuAt6fp.js +653 -0
- package/build/server/chunks/create-id-BYuAt6fp.js.map +1 -0
- package/build/server/chunks/dialog-description-Cp1dB1if.js +523 -0
- package/build/server/chunks/dialog-description-Cp1dB1if.js.map +1 -0
- package/build/server/chunks/events-Dh5zddQQ.js +119 -0
- package/build/server/chunks/events-Dh5zddQQ.js.map +1 -0
- package/build/server/chunks/folder-kanban-srfqpNh0.js +21 -0
- package/build/server/chunks/folder-kanban-srfqpNh0.js.map +1 -0
- package/build/server/chunks/folder-open-LjMDYW2a.js +18 -0
- package/build/server/chunks/folder-open-LjMDYW2a.js.map +1 -0
- package/build/server/chunks/folders-BMeWz5-X.js +24 -0
- package/build/server/chunks/folders-BMeWz5-X.js.map +1 -0
- package/build/server/chunks/footerContext.svelte-QTotPOm_.js +523 -0
- package/build/server/chunks/footerContext.svelte-QTotPOm_.js.map +1 -0
- package/build/server/chunks/hooks.server-CMWyl1Gd.js +197 -0
- package/build/server/chunks/hooks.server-CMWyl1Gd.js.map +1 -0
- package/build/server/chunks/html-FW6Ia4bL.js +8 -0
- package/build/server/chunks/html-FW6Ia4bL.js.map +1 -0
- package/build/server/chunks/index-DwB9DMAB.js +28 -0
- package/build/server/chunks/index-DwB9DMAB.js.map +1 -0
- package/build/server/chunks/index-server-DMc-UvjC.js +19 -0
- package/build/server/chunks/index-server-DMc-UvjC.js.map +1 -0
- package/build/server/chunks/index2-olcdaqbX.js +4379 -0
- package/build/server/chunks/index2-olcdaqbX.js.map +1 -0
- package/build/server/chunks/index3-Ye-aF_FM.js +541 -0
- package/build/server/chunks/index3-Ye-aF_FM.js.map +1 -0
- package/build/server/chunks/input-BIyn3mzZ.js +53 -0
- package/build/server/chunks/input-BIyn3mzZ.js.map +1 -0
- package/build/server/chunks/label-CTvvOsnE.js +112 -0
- package/build/server/chunks/label-CTvvOsnE.js.map +1 -0
- package/build/server/chunks/link-2-DyFf_-Tu.js +15 -0
- package/build/server/chunks/link-2-DyFf_-Tu.js.map +1 -0
- package/build/server/chunks/mail-DS_q8hHt.js +17 -0
- package/build/server/chunks/mail-DS_q8hHt.js.map +1 -0
- package/build/server/chunks/noop-CzO8kTeB.js +138 -0
- package/build/server/chunks/noop-CzO8kTeB.js.map +1 -0
- package/build/server/chunks/permissions-compat.server-DSV7bClF.js +19 -0
- package/build/server/chunks/permissions-compat.server-DSV7bClF.js.map +1 -0
- package/build/server/chunks/permissions.server-Co6VKW9f.js +8 -0
- package/build/server/chunks/permissions.server-Co6VKW9f.js.map +1 -0
- package/build/server/chunks/plus-kUAGz2vQ.js +11 -0
- package/build/server/chunks/plus-kUAGz2vQ.js.map +1 -0
- package/build/server/chunks/providers.server-C32WKtDL.js +4486 -0
- package/build/server/chunks/providers.server-C32WKtDL.js.map +1 -0
- package/build/server/chunks/randomId-8gj3Lbuq.js +25 -0
- package/build/server/chunks/randomId-8gj3Lbuq.js.map +1 -0
- package/build/server/chunks/renderer-BFEBS3DQ.js +3757 -0
- package/build/server/chunks/renderer-BFEBS3DQ.js.map +1 -0
- package/build/server/chunks/resolve.server-DYsU4jL3.js +11 -0
- package/build/server/chunks/resolve.server-DYsU4jL3.js.map +1 -0
- package/build/server/chunks/resolve.server2-Co65XNMI.js +50 -0
- package/build/server/chunks/resolve.server2-Co65XNMI.js.map +1 -0
- package/build/server/chunks/root-DfWNVuNE.js +1134 -0
- package/build/server/chunks/root-DfWNVuNE.js.map +1 -0
- package/build/server/chunks/rotate-ccw-BhVSWSeP.js +17 -0
- package/build/server/chunks/rotate-ccw-BhVSWSeP.js.map +1 -0
- package/build/server/chunks/scroll-lock-BNv9iOMl.js +1558 -0
- package/build/server/chunks/scroll-lock-BNv9iOMl.js.map +1 -0
- package/build/server/chunks/scroll-text-DqHQWAWm.js +21 -0
- package/build/server/chunks/scroll-text-DqHQWAWm.js.map +1 -0
- package/build/server/chunks/server-CtTftue_.js +36 -0
- package/build/server/chunks/server-CtTftue_.js.map +1 -0
- package/build/server/chunks/settings-DUGFWkVU.js +19 -0
- package/build/server/chunks/settings-DUGFWkVU.js.map +1 -0
- package/build/server/chunks/shared-server-DaWdgxVh.js +11 -0
- package/build/server/chunks/shared-server-DaWdgxVh.js.map +1 -0
- package/build/server/chunks/shield-DcFe9IEC.js +18 -0
- package/build/server/chunks/shield-DcFe9IEC.js.map +1 -0
- package/build/server/chunks/shield-check-BpiYOxKK.js +19 -0
- package/build/server/chunks/shield-check-BpiYOxKK.js.map +1 -0
- package/build/server/chunks/slug-BGuFQjqe.js +6 -0
- package/build/server/chunks/slug-BGuFQjqe.js.map +1 -0
- package/build/server/chunks/star-CyFkn9su.js +18 -0
- package/build/server/chunks/star-CyFkn9su.js.map +1 -0
- package/build/server/chunks/stores-r9x46ujW.js +31 -0
- package/build/server/chunks/stores-r9x46ujW.js.map +1 -0
- package/build/server/chunks/textarea-BCZD0juO.js +685 -0
- package/build/server/chunks/textarea-BCZD0juO.js.map +1 -0
- package/build/server/chunks/toast-state.svelte-CW-nObZ9.js +185 -0
- package/build/server/chunks/toast-state.svelte-CW-nObZ9.js.map +1 -0
- package/build/server/chunks/token.server-B8XVPI0F.js +25 -0
- package/build/server/chunks/token.server-B8XVPI0F.js.map +1 -0
- package/build/server/chunks/token.server2-D0Z99lBB.js +22 -0
- package/build/server/chunks/token.server2-D0Z99lBB.js.map +1 -0
- package/build/server/chunks/trash-2-DWN_oRG7.js +17 -0
- package/build/server/chunks/trash-2-DWN_oRG7.js.map +1 -0
- package/build/server/chunks/triangle-alert-DYYSX_Mf.js +444 -0
- package/build/server/chunks/triangle-alert-DYYSX_Mf.js.map +1 -0
- package/build/server/chunks/types-DxzJoaA4.js +11 -0
- package/build/server/chunks/types-DxzJoaA4.js.map +1 -0
- package/build/server/chunks/types2-DdHhYSMF.js +4 -0
- package/build/server/chunks/types2-DdHhYSMF.js.map +1 -0
- package/build/server/chunks/upload-DREoObmA.js +62 -0
- package/build/server/chunks/upload-DREoObmA.js.map +1 -0
- package/build/server/chunks/user-plus-Nb35DNnT.js +16 -0
- package/build/server/chunks/user-plus-Nb35DNnT.js.map +1 -0
- package/build/server/chunks/users-DMh0XDYp.js +16 -0
- package/build/server/chunks/users-DMh0XDYp.js.map +1 -0
- package/build/server/chunks/utils2-Sy-_rI-0.js +56 -0
- package/build/server/chunks/utils2-Sy-_rI-0.js.map +1 -0
- package/build/server/chunks/utils3-AZ8FPfBW.js +80 -0
- package/build/server/chunks/utils3-AZ8FPfBW.js.map +1 -0
- package/build/server/chunks/x-wRP5erhc.js +14 -0
- package/build/server/chunks/x-wRP5erhc.js.map +1 -0
- package/build/server/index.js +5380 -0
- package/build/server/index.js.map +1 -0
- package/build/server/manifest.js +517 -0
- package/build/server/manifest.js.map +1 -0
- package/build/shims.js +32 -0
- package/package.json +57 -0
- package/templates/.env.example +339 -0
- package/templates/ecosystem.config.cjs +52 -0
- package/templates/selva.config.example.js +338 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-B_MVq_5r.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/projects/_id_/grants/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { randomUUID } from \"node:crypto\";\nimport { c as getPlatformProjectGrantStore, a as getOrganizationProvider, d as getUserProfileStore, b as getProjectProvider } from \"../../../../../../../chunks/providers.server.js\";\nimport { a as requireInstanceAdmin } from \"../../../../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../../../../chunks/api-errors.js\";\nimport { S as SYSTEM_CONTEXT } from \"../../../../../../../chunks/context.js\";\nconst CreateGrantBody = z.object({\n granteeType: z.enum([\"org\", \"user\"]),\n granteeId: z.string().min(1),\n canSolve: z.boolean()\n});\nasync function assertPlatformProject(id) {\n const project = await getProjectProvider().getProject(SYSTEM_CONTEXT, id);\n if (!project || project.visibility !== \"platform\") {\n throw error(404, \"Platform project not found\");\n }\n return project;\n}\nconst GET = async ({ params, locals }) => {\n requireInstanceAdmin(locals);\n const { id } = params;\n if (!id) throw error(400, \"Missing project ID\");\n try {\n await assertPlatformProject(id);\n const grants = await getPlatformProjectGrantStore().listByProject(SYSTEM_CONTEXT, id);\n return json({ grants });\n } catch (err) {\n handleApiError(err, \"Failed to list grants\");\n }\n};\nconst POST = async ({ params, request, locals }) => {\n const user = requireInstanceAdmin(locals);\n const { id } = params;\n if (!id) throw error(400, \"Missing project ID\");\n const body = await request.json().catch(() => null);\n const parsed = CreateGrantBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n try {\n await assertPlatformProject(id);\n if (parsed.data.granteeType === \"org\") {\n const org = await getOrganizationProvider().getOrg(SYSTEM_CONTEXT, parsed.data.granteeId);\n if (!org) throw error(400, `Organization '${parsed.data.granteeId}' not found`);\n } else {\n const profile = await getUserProfileStore().getProfile(SYSTEM_CONTEXT, parsed.data.granteeId);\n if (!profile) throw error(400, `User '${parsed.data.granteeId}' not found`);\n }\n const grant = {\n id: randomUUID(),\n projectId: id,\n granteeType: parsed.data.granteeType,\n granteeId: parsed.data.granteeId,\n canSolve: parsed.data.canSolve,\n createdBy: user.id,\n createdAt: (/* @__PURE__ */ new Date()).toISOString()\n };\n await getPlatformProjectGrantStore().create(SYSTEM_CONTEXT, grant);\n return json(grant, { status: 201 });\n } catch (err) {\n handleApiError(err, \"Failed to create grant\");\n }\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { error, json } from '@sveltejs/kit';
|
|
2
|
+
import { e as getUserProfileStore } from './providers.server-C32WKtDL.js';
|
|
3
|
+
import { h as handleApiError } from './api-errors-Dk5z97zb.js';
|
|
4
|
+
import './shared-server-DaWdgxVh.js';
|
|
5
|
+
import 'node:url';
|
|
6
|
+
import 'node:path';
|
|
7
|
+
import 'node:fs';
|
|
8
|
+
import './context-9tV9WxQ5.js';
|
|
9
|
+
import 'zod';
|
|
10
|
+
import 'node:crypto';
|
|
11
|
+
import 'node:fs/promises';
|
|
12
|
+
import '@supabase/supabase-js';
|
|
13
|
+
|
|
14
|
+
const POST = async ({ params, locals }) => {
|
|
15
|
+
if (!locals.user || !locals.ctx) throw error(401, "Unauthorized");
|
|
16
|
+
const guid = params.guid;
|
|
17
|
+
if (!guid) throw error(400, "Missing definition guid");
|
|
18
|
+
try {
|
|
19
|
+
await getUserProfileStore().starDefinition(locals.ctx, locals.user.id, guid);
|
|
20
|
+
return json({ starred: true });
|
|
21
|
+
} catch (err) {
|
|
22
|
+
handleApiError(err, "Failed to star definition");
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const DELETE = async ({ params, locals }) => {
|
|
26
|
+
if (!locals.user || !locals.ctx) throw error(401, "Unauthorized");
|
|
27
|
+
const guid = params.guid;
|
|
28
|
+
if (!guid) throw error(400, "Missing definition guid");
|
|
29
|
+
try {
|
|
30
|
+
await getUserProfileStore().unstarDefinition(locals.ctx, locals.user.id, guid);
|
|
31
|
+
return json({ starred: false });
|
|
32
|
+
} catch (err) {
|
|
33
|
+
handleApiError(err, "Failed to unstar definition");
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export { DELETE, POST };
|
|
38
|
+
//# sourceMappingURL=_server.ts-Bb3Kpo0Y.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-Bb3Kpo0Y.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/me/starred/_guid_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { d as getUserProfileStore } from \"../../../../../../chunks/providers.server.js\";\nimport { h as handleApiError } from \"../../../../../../chunks/api-errors.js\";\nconst POST = async ({ params, locals }) => {\n if (!locals.user || !locals.ctx) throw error(401, \"Unauthorized\");\n const guid = params.guid;\n if (!guid) throw error(400, \"Missing definition guid\");\n try {\n await getUserProfileStore().starDefinition(locals.ctx, locals.user.id, guid);\n return json({ starred: true });\n } catch (err) {\n handleApiError(err, \"Failed to star definition\");\n }\n};\nconst DELETE = async ({ params, locals }) => {\n if (!locals.user || !locals.ctx) throw error(401, \"Unauthorized\");\n const guid = params.guid;\n if (!guid) throw error(400, \"Missing definition guid\");\n try {\n await getUserProfileStore().unstarDefinition(locals.ctx, locals.user.id, guid);\n return json({ starred: false });\n } catch (err) {\n handleApiError(err, \"Failed to unstar definition\");\n }\n};\nexport {\n DELETE,\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;AAGK,MAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC3C,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;AACnE,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AAC1B,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,yBAAyB,CAAC;AACxD,EAAE,IAAI;AACN,IAAI,MAAM,mBAAmB,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC;AAChF,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,2BAA2B,CAAC;AACpD,EAAE;AACF;AACK,MAAC,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC7C,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;AACnE,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AAC1B,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,yBAAyB,CAAC;AACxD,EAAE,IAAI;AACN,IAAI,MAAM,mBAAmB,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC;AAClF,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACnC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,6BAA6B,CAAC;AACtD,EAAE;AACF;;;;"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { error, json } from '@sveltejs/kit';
|
|
2
|
+
import { j as getComputeServerConfigStore } from './providers.server-C32WKtDL.js';
|
|
3
|
+
import './context-9tV9WxQ5.js';
|
|
4
|
+
import { f as findServerById } from './utils2-Sy-_rI-0.js';
|
|
5
|
+
import { r as requireManageCompute } from './access.server-GvriCjXN.js';
|
|
6
|
+
import './shared-server-DaWdgxVh.js';
|
|
7
|
+
import 'node:url';
|
|
8
|
+
import 'node:path';
|
|
9
|
+
import 'node:fs';
|
|
10
|
+
import 'node:crypto';
|
|
11
|
+
import 'node:fs/promises';
|
|
12
|
+
import '@supabase/supabase-js';
|
|
13
|
+
import 'zod';
|
|
14
|
+
import './api-errors-Dk5z97zb.js';
|
|
15
|
+
|
|
16
|
+
const TIMEOUT_MS = 8e3;
|
|
17
|
+
function fetchFromServer(serverUrl, apiKey, path) {
|
|
18
|
+
const controller = new AbortController();
|
|
19
|
+
const timer = setTimeout(() => controller.abort(), TIMEOUT_MS);
|
|
20
|
+
const headers = {};
|
|
21
|
+
if (apiKey) headers["RhinoComputeKey"] = apiKey;
|
|
22
|
+
return fetch(new URL(path, serverUrl).toString(), { signal: controller.signal, headers }).finally(
|
|
23
|
+
() => clearTimeout(timer)
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
const GET = async ({ url, locals }) => {
|
|
27
|
+
requireManageCompute(locals);
|
|
28
|
+
const serverId = url.searchParams.get("serverId");
|
|
29
|
+
if (!serverId) throw error(400, "serverId required");
|
|
30
|
+
const config = await getComputeServerConfigStore().getConfig(locals.ctx);
|
|
31
|
+
const server = findServerById(config, serverId);
|
|
32
|
+
if (!server) throw error(404, "Server not found");
|
|
33
|
+
try {
|
|
34
|
+
const [healthRes, versionRes, pluginsRes] = await Promise.all([
|
|
35
|
+
fetchFromServer(server.serverUrl, server.apiKey, "/healthcheck"),
|
|
36
|
+
fetchFromServer(server.serverUrl, server.apiKey, "/version"),
|
|
37
|
+
fetchFromServer(server.serverUrl, server.apiKey, "/plugins/gh/installed")
|
|
38
|
+
]);
|
|
39
|
+
const reachable = healthRes.ok;
|
|
40
|
+
const version = versionRes.ok ? await versionRes.json() : null;
|
|
41
|
+
const plugins = pluginsRes.ok ? await pluginsRes.json() : {};
|
|
42
|
+
const selvaVersion = plugins["Selva"] ?? null;
|
|
43
|
+
return json({
|
|
44
|
+
reachable,
|
|
45
|
+
rhinoVersion: version?.rhino ?? null,
|
|
46
|
+
computeVersion: version?.compute ?? null,
|
|
47
|
+
selvaInstalled: selvaVersion !== null,
|
|
48
|
+
selvaVersion,
|
|
49
|
+
plugins
|
|
50
|
+
});
|
|
51
|
+
} catch {
|
|
52
|
+
return json({
|
|
53
|
+
reachable: false,
|
|
54
|
+
rhinoVersion: null,
|
|
55
|
+
computeVersion: null,
|
|
56
|
+
selvaInstalled: false,
|
|
57
|
+
selvaVersion: null,
|
|
58
|
+
plugins: {}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
export { GET };
|
|
64
|
+
//# sourceMappingURL=_server.ts-BemU6FO1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-BemU6FO1.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/compute/status/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { g as getComputeServerConfigStore } from \"../../../../../../chunks/providers.server.js\";\nimport \"../../../../../../chunks/context.js\";\nimport { f as findServerById } from \"../../../../../../chunks/utils2.js\";\nimport { r as requireManageCompute } from \"../../../../../../chunks/access.server.js\";\nconst TIMEOUT_MS = 8e3;\nfunction fetchFromServer(serverUrl, apiKey, path) {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), TIMEOUT_MS);\n const headers = {};\n if (apiKey) headers[\"RhinoComputeKey\"] = apiKey;\n return fetch(new URL(path, serverUrl).toString(), { signal: controller.signal, headers }).finally(\n () => clearTimeout(timer)\n );\n}\nconst GET = async ({ url, locals }) => {\n requireManageCompute(locals);\n const serverId = url.searchParams.get(\"serverId\");\n if (!serverId) throw error(400, \"serverId required\");\n const config = await getComputeServerConfigStore().getConfig(locals.ctx);\n const server = findServerById(config, serverId);\n if (!server) throw error(404, \"Server not found\");\n try {\n const [healthRes, versionRes, pluginsRes] = await Promise.all([\n fetchFromServer(server.serverUrl, server.apiKey, \"/healthcheck\"),\n fetchFromServer(server.serverUrl, server.apiKey, \"/version\"),\n fetchFromServer(server.serverUrl, server.apiKey, \"/plugins/gh/installed\")\n ]);\n const reachable = healthRes.ok;\n const version = versionRes.ok ? await versionRes.json() : null;\n const plugins = pluginsRes.ok ? await pluginsRes.json() : {};\n const selvaVersion = plugins[\"Selva\"] ?? null;\n return json({\n reachable,\n rhinoVersion: version?.rhino ?? null,\n computeVersion: version?.compute ?? null,\n selvaInstalled: selvaVersion !== null,\n selvaVersion,\n plugins\n });\n } catch {\n return json({\n reachable: false,\n rhinoVersion: null,\n computeVersion: null,\n selvaInstalled: false,\n selvaVersion: null,\n plugins: {}\n });\n }\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,MAAM,UAAU,GAAG,GAAG;AACtB,SAAS,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE;AAClD,EAAE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE;AAC1C,EAAE,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC;AAChE,EAAE,MAAM,OAAO,GAAG,EAAE;AACpB,EAAE,IAAI,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,MAAM;AACjD,EAAE,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO;AACnG,IAAI,MAAM,YAAY,CAAC,KAAK;AAC5B,GAAG;AACH;AACK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK;AACvC,EAAE,oBAAoB,CAAC,MAAM,CAAC;AAC9B,EAAE,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC;AACnD,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC;AACtD,EAAE,MAAM,MAAM,GAAG,MAAM,2BAA2B,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;AAC1E,EAAE,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC;AACjD,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC;AACnD,EAAE,IAAI;AACN,IAAI,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AAClE,MAAM,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;AACtE,MAAM,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;AAClE,MAAM,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB;AAC9E,KAAK,CAAC;AACN,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,EAAE;AAClC,IAAI,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,GAAG,IAAI;AAClE,IAAI,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE;AAChE,IAAI,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI;AACjD,IAAI,OAAO,IAAI,CAAC;AAChB,MAAM,SAAS;AACf,MAAM,YAAY,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI;AAC1C,MAAM,cAAc,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI;AAC9C,MAAM,cAAc,EAAE,YAAY,KAAK,IAAI;AAC3C,MAAM,YAAY;AAClB,MAAM;AACN,KAAK,CAAC;AACN,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,IAAI,CAAC;AAChB,MAAM,SAAS,EAAE,KAAK;AACtB,MAAM,YAAY,EAAE,IAAI;AACxB,MAAM,cAAc,EAAE,IAAI;AAC1B,MAAM,cAAc,EAAE,KAAK;AAC3B,MAAM,YAAY,EAAE,IAAI;AACxB,MAAM,OAAO,EAAE;AACf,KAAK,CAAC;AACN,EAAE;AACF;;;;"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { error, json } from '@sveltejs/kit';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { h as getProjectProvider } from './providers.server-C32WKtDL.js';
|
|
4
|
+
import { a as requireInstanceAdmin } from './access.server-GvriCjXN.js';
|
|
5
|
+
import { h as handleApiError, t as throwZodError } from './api-errors-Dk5z97zb.js';
|
|
6
|
+
import { s as slugify } from './slug-BGuFQjqe.js';
|
|
7
|
+
import { S as SYSTEM_CONTEXT } from './context-9tV9WxQ5.js';
|
|
8
|
+
import './shared-server-DaWdgxVh.js';
|
|
9
|
+
import 'node:url';
|
|
10
|
+
import 'node:path';
|
|
11
|
+
import 'node:fs';
|
|
12
|
+
import 'node:crypto';
|
|
13
|
+
import 'node:fs/promises';
|
|
14
|
+
import '@supabase/supabase-js';
|
|
15
|
+
|
|
16
|
+
const UpdatePlatformProjectBody = z.object({
|
|
17
|
+
name: z.string().min(1).max(128).trim(),
|
|
18
|
+
description: z.string().max(2e3).nullish()
|
|
19
|
+
}).partial();
|
|
20
|
+
async function loadPlatformProjectOr404(id) {
|
|
21
|
+
const project = await getProjectProvider().getProject(SYSTEM_CONTEXT, id);
|
|
22
|
+
if (!project || project.visibility !== "platform") {
|
|
23
|
+
throw error(404, "Platform project not found");
|
|
24
|
+
}
|
|
25
|
+
return project;
|
|
26
|
+
}
|
|
27
|
+
const GET = async ({ params, locals }) => {
|
|
28
|
+
requireInstanceAdmin(locals);
|
|
29
|
+
const { id } = params;
|
|
30
|
+
if (!id) throw error(400, "Missing project ID");
|
|
31
|
+
try {
|
|
32
|
+
const project = await loadPlatformProjectOr404(id);
|
|
33
|
+
return json(project);
|
|
34
|
+
} catch (err) {
|
|
35
|
+
handleApiError(err, "Failed to load platform project");
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
const PATCH = async ({ params, request, locals }) => {
|
|
39
|
+
requireInstanceAdmin(locals);
|
|
40
|
+
const { id } = params;
|
|
41
|
+
if (!id) throw error(400, "Missing project ID");
|
|
42
|
+
const body = await request.json().catch(() => null);
|
|
43
|
+
const parsed = UpdatePlatformProjectBody.safeParse(body);
|
|
44
|
+
if (!parsed.success) throwZodError(parsed.error);
|
|
45
|
+
try {
|
|
46
|
+
await loadPlatformProjectOr404(id);
|
|
47
|
+
const patch = {};
|
|
48
|
+
if (parsed.data.name !== void 0) {
|
|
49
|
+
patch.name = parsed.data.name;
|
|
50
|
+
patch.slug = slugify(parsed.data.name);
|
|
51
|
+
}
|
|
52
|
+
if (parsed.data.description !== void 0) {
|
|
53
|
+
patch.description = parsed.data.description ?? void 0;
|
|
54
|
+
}
|
|
55
|
+
await getProjectProvider().updateProject(SYSTEM_CONTEXT, id, patch);
|
|
56
|
+
return json({ success: true });
|
|
57
|
+
} catch (err) {
|
|
58
|
+
handleApiError(err, "Failed to update platform project");
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
const DELETE = async ({ params, locals }) => {
|
|
62
|
+
requireInstanceAdmin(locals);
|
|
63
|
+
const { id } = params;
|
|
64
|
+
if (!id) throw error(400, "Missing project ID");
|
|
65
|
+
try {
|
|
66
|
+
await loadPlatformProjectOr404(id);
|
|
67
|
+
await getProjectProvider().deleteProject(SYSTEM_CONTEXT, id);
|
|
68
|
+
return json({ success: true });
|
|
69
|
+
} catch (err) {
|
|
70
|
+
handleApiError(err, "Failed to delete platform project");
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
export { DELETE, GET, PATCH };
|
|
75
|
+
//# sourceMappingURL=_server.ts-BkKg2yyC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-BkKg2yyC.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/projects/_id_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { b as getProjectProvider } from \"../../../../../../chunks/providers.server.js\";\nimport { a as requireInstanceAdmin } from \"../../../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../../../chunks/api-errors.js\";\nimport { s as slugify } from \"../../../../../../chunks/slug.js\";\nimport { S as SYSTEM_CONTEXT } from \"../../../../../../chunks/context.js\";\nconst UpdatePlatformProjectBody = z.object({\n name: z.string().min(1).max(128).trim(),\n description: z.string().max(2e3).nullish()\n}).partial();\nasync function loadPlatformProjectOr404(id) {\n const project = await getProjectProvider().getProject(SYSTEM_CONTEXT, id);\n if (!project || project.visibility !== \"platform\") {\n throw error(404, \"Platform project not found\");\n }\n return project;\n}\nconst GET = async ({ params, locals }) => {\n requireInstanceAdmin(locals);\n const { id } = params;\n if (!id) throw error(400, \"Missing project ID\");\n try {\n const project = await loadPlatformProjectOr404(id);\n return json(project);\n } catch (err) {\n handleApiError(err, \"Failed to load platform project\");\n }\n};\nconst PATCH = async ({ params, request, locals }) => {\n requireInstanceAdmin(locals);\n const { id } = params;\n if (!id) throw error(400, \"Missing project ID\");\n const body = await request.json().catch(() => null);\n const parsed = UpdatePlatformProjectBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n try {\n await loadPlatformProjectOr404(id);\n const patch = {};\n if (parsed.data.name !== void 0) {\n patch.name = parsed.data.name;\n patch.slug = slugify(parsed.data.name);\n }\n if (parsed.data.description !== void 0) {\n patch.description = parsed.data.description ?? void 0;\n }\n await getProjectProvider().updateProject(SYSTEM_CONTEXT, id, patch);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to update platform project\");\n }\n};\nconst DELETE = async ({ params, locals }) => {\n requireInstanceAdmin(locals);\n const { id } = params;\n if (!id) throw error(400, \"Missing project ID\");\n try {\n await loadPlatformProjectOr404(id);\n await getProjectProvider().deleteProject(SYSTEM_CONTEXT, id);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to delete platform project\");\n }\n};\nexport {\n DELETE,\n GET,\n PATCH\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAOA,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;AAC3C,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;AACzC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO;AAC1C,CAAC,CAAC,CAAC,OAAO,EAAE;AACZ,eAAe,wBAAwB,CAAC,EAAE,EAAE;AAC5C,EAAE,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC;AAC3E,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU,EAAE;AACrD,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,4BAA4B,CAAC;AAClD,EAAE;AACF,EAAE,OAAO,OAAO;AAChB;AACK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC1C,EAAE,oBAAoB,CAAC,MAAM,CAAC;AAC9B,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM;AACvB,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,oBAAoB,CAAC;AACjD,EAAE,IAAI;AACN,IAAI,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC,EAAE,CAAC;AACtD,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC;AACxB,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,iCAAiC,CAAC;AAC1D,EAAE;AACF;AACK,MAAC,KAAK,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AACrD,EAAE,oBAAoB,CAAC,MAAM,CAAC;AAC9B,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM;AACvB,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,oBAAoB,CAAC;AACjD,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;AACrD,EAAE,MAAM,MAAM,GAAG,yBAAyB,CAAC,SAAS,CAAC,IAAI,CAAC;AAC1D,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC;AAClD,EAAE,IAAI;AACN,IAAI,MAAM,wBAAwB,CAAC,EAAE,CAAC;AACtC,IAAI,MAAM,KAAK,GAAG,EAAE;AACpB,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE;AACrC,MAAM,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI;AACnC,MAAM,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5C,IAAI;AACJ,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,EAAE;AAC5C,MAAM,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC;AAC3D,IAAI;AACJ,IAAI,MAAM,kBAAkB,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,EAAE,KAAK,CAAC;AACvE,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,mCAAmC,CAAC;AAC5D,EAAE;AACF;AACK,MAAC,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC7C,EAAE,oBAAoB,CAAC,MAAM,CAAC;AAC9B,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM;AACvB,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,oBAAoB,CAAC;AACjD,EAAE,IAAI;AACN,IAAI,MAAM,wBAAwB,CAAC,EAAE,CAAC;AACtC,IAAI,MAAM,kBAAkB,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;AAChE,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,mCAAmC,CAAC;AAC5D,EAAE;AACF;;;;"}
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
import { spawn } from 'child_process';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
import { existsSync, readFileSync } from 'fs';
|
|
4
|
+
import { b as private_env } from './shared-server-DaWdgxVh.js';
|
|
5
|
+
import { b as requirePermission } from './access.server-GvriCjXN.js';
|
|
6
|
+
import '@sveltejs/kit';
|
|
7
|
+
import './context-9tV9WxQ5.js';
|
|
8
|
+
import 'zod';
|
|
9
|
+
import './providers.server-C32WKtDL.js';
|
|
10
|
+
import 'node:url';
|
|
11
|
+
import 'node:path';
|
|
12
|
+
import 'node:fs';
|
|
13
|
+
import 'node:crypto';
|
|
14
|
+
import 'node:fs/promises';
|
|
15
|
+
import '@supabase/supabase-js';
|
|
16
|
+
import './api-errors-Dk5z97zb.js';
|
|
17
|
+
|
|
18
|
+
function stripAnsi(str) {
|
|
19
|
+
return str.replace(/\x1B\[[0-9;]*[mGKHF]/g, "");
|
|
20
|
+
}
|
|
21
|
+
function readRuntimeVersion(dir) {
|
|
22
|
+
try {
|
|
23
|
+
const pkg = JSON.parse(
|
|
24
|
+
readFileSync(join(dir, "node_modules", "@selvajs", "selva", "package.json"), "utf8")
|
|
25
|
+
);
|
|
26
|
+
return typeof pkg.version === "string" ? pkg.version : void 0;
|
|
27
|
+
} catch {
|
|
28
|
+
return void 0;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function shellQuote(s) {
|
|
32
|
+
return `'${s.replace(/'/g, `'\\''`)}'`;
|
|
33
|
+
}
|
|
34
|
+
function buildNpmUpdateScript(npmArgs, versionBefore) {
|
|
35
|
+
const npmCommand = ["npm", ...npmArgs].map(shellQuote).join(" ");
|
|
36
|
+
const before = shellQuote(versionBefore ?? "");
|
|
37
|
+
return `
|
|
38
|
+
set -o pipefail
|
|
39
|
+
BEFORE=${before}
|
|
40
|
+
|
|
41
|
+
# IMPORTANT: stop the running process BEFORE npm update overwrites build/.
|
|
42
|
+
# SvelteKit's node adapter lazy-imports chunks from build/server/chunks/ on
|
|
43
|
+
# every request. If we let npm rewrite build/ while the old process is still
|
|
44
|
+
# serving traffic, in-flight requests hit ERR_MODULE_NOT_FOUND for chunks
|
|
45
|
+
# whose hash just changed under their feet. Stopping first is a brief
|
|
46
|
+
# downtime window (~1-2s longer than restart-in-place) for a much smaller
|
|
47
|
+
# blast radius.
|
|
48
|
+
echo "[STEP] Stopping selva-compute (graceful drain via kill_timeout in ecosystem.config.cjs)"
|
|
49
|
+
if ! pm2 stop selva-compute; then
|
|
50
|
+
echo "[WARN] pm2 stop failed — selva-compute may not be running yet. Continuing."
|
|
51
|
+
fi
|
|
52
|
+
|
|
53
|
+
echo "[STEP] Updating @selvajs/* packages"
|
|
54
|
+
if ! ${npmCommand}; then
|
|
55
|
+
echo "[FATAL] npm update failed — restarting old build to recover"
|
|
56
|
+
pm2 start selva-compute --update-env >/dev/null 2>&1 || true
|
|
57
|
+
exit 1
|
|
58
|
+
fi
|
|
59
|
+
|
|
60
|
+
AFTER=$(node -e "try{console.log(require('./node_modules/@selvajs/selva/package.json').version)}catch(e){}" 2>/dev/null)
|
|
61
|
+
echo "[INFO] New @selvajs/selva: \${AFTER:-unknown}"
|
|
62
|
+
|
|
63
|
+
if [ -n "$BEFORE" ] && [ "$BEFORE" = "$AFTER" ]; then
|
|
64
|
+
echo "[WARN] No version change ($BEFORE). Your npm cache may be stale."
|
|
65
|
+
echo "[WARN] Recover with:"
|
|
66
|
+
echo "[WARN] npm cache clean --force"
|
|
67
|
+
echo "[WARN] rm -rf node_modules package-lock.json"
|
|
68
|
+
echo "[WARN] npm install --prefer-online"
|
|
69
|
+
fi
|
|
70
|
+
|
|
71
|
+
echo "[STEP] Starting selva-compute with new build"
|
|
72
|
+
if ! pm2 start selva-compute --update-env; then
|
|
73
|
+
echo "[FATAL] pm2 start failed — investigate with \\\`pm2 logs selva-compute\\\`"
|
|
74
|
+
exit 2
|
|
75
|
+
fi
|
|
76
|
+
|
|
77
|
+
echo "[STEP] Health-probing the new process"
|
|
78
|
+
HEALTHY=0
|
|
79
|
+
for i in $(seq 1 15); do
|
|
80
|
+
sleep 2
|
|
81
|
+
CODE=$(curl -sS -o /tmp/selva-health.$$ -w "%{http_code}" --max-time 5 http://localhost:3000/api/health 2>/dev/null || echo "000")
|
|
82
|
+
if [ "$CODE" = "200" ]; then
|
|
83
|
+
HEALTHY=1
|
|
84
|
+
echo "[INFO] Health probe passed after \${i} attempt(s)"
|
|
85
|
+
rm -f /tmp/selva-health.$$
|
|
86
|
+
break
|
|
87
|
+
fi
|
|
88
|
+
echo "[INFO] Probe attempt $i/15: HTTP $CODE — retrying"
|
|
89
|
+
done
|
|
90
|
+
|
|
91
|
+
if [ "$HEALTHY" = "1" ]; then
|
|
92
|
+
echo "[DONE] Update complete"
|
|
93
|
+
exit 0
|
|
94
|
+
fi
|
|
95
|
+
|
|
96
|
+
echo "[FATAL] New process failed health check after 30s"
|
|
97
|
+
if [ -f /tmp/selva-health.$$ ]; then
|
|
98
|
+
echo "[FATAL] Last response body:"
|
|
99
|
+
cat /tmp/selva-health.$$
|
|
100
|
+
rm -f /tmp/selva-health.$$
|
|
101
|
+
fi
|
|
102
|
+
|
|
103
|
+
if [ -z "$BEFORE" ]; then
|
|
104
|
+
echo "[FATAL] No prior version recorded — cannot roll back automatically."
|
|
105
|
+
echo "[FATAL] Manually install the version you want: npm install @selvajs/selva@<version>"
|
|
106
|
+
exit 3
|
|
107
|
+
fi
|
|
108
|
+
|
|
109
|
+
echo "[STEP] Rolling back @selvajs/selva to $BEFORE"
|
|
110
|
+
pm2 stop selva-compute >/dev/null 2>&1 || true
|
|
111
|
+
if ! npm install --save "@selvajs/selva@$BEFORE"; then
|
|
112
|
+
echo "[FATAL] Rollback npm install failed — manual intervention required."
|
|
113
|
+
pm2 start selva-compute --update-env >/dev/null 2>&1 || true
|
|
114
|
+
exit 4
|
|
115
|
+
fi
|
|
116
|
+
|
|
117
|
+
pm2 start selva-compute --update-env || true
|
|
118
|
+
sleep 3
|
|
119
|
+
ROLLBACK_CODE=$(curl -sS -o /dev/null -w "%{http_code}" --max-time 5 http://localhost:3000/api/health 2>/dev/null || echo "000")
|
|
120
|
+
if [ "$ROLLBACK_CODE" = "200" ]; then
|
|
121
|
+
echo "[DONE] Rolled back to $BEFORE — previous version is online"
|
|
122
|
+
exit 5
|
|
123
|
+
fi
|
|
124
|
+
|
|
125
|
+
echo "[FATAL] Rollback restart also failed health check (HTTP $ROLLBACK_CODE)"
|
|
126
|
+
echo "[FATAL] Manual recovery required. Check: pm2 logs selva-compute"
|
|
127
|
+
exit 6
|
|
128
|
+
`;
|
|
129
|
+
}
|
|
130
|
+
function detectUpdatePlan() {
|
|
131
|
+
if (private_env.INSTALL_DIR && existsSync(join(private_env.INSTALL_DIR, "scripts", "update.sh"))) {
|
|
132
|
+
return {
|
|
133
|
+
mode: "git",
|
|
134
|
+
cwd: private_env.INSTALL_DIR,
|
|
135
|
+
cmd: "bash",
|
|
136
|
+
args: [join(private_env.INSTALL_DIR, "scripts", "update.sh")]
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
let dir = process.cwd();
|
|
140
|
+
for (let i = 0; i < 6; i++) {
|
|
141
|
+
if (existsSync(join(dir, "scripts", "update.sh"))) {
|
|
142
|
+
return {
|
|
143
|
+
mode: "git",
|
|
144
|
+
cwd: dir,
|
|
145
|
+
cmd: "bash",
|
|
146
|
+
args: [join(dir, "scripts", "update.sh")]
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
if (existsSync(join(dir, "node_modules", "@selvajs", "selva", "package.json"))) {
|
|
150
|
+
return {
|
|
151
|
+
mode: "npm",
|
|
152
|
+
cwd: dir,
|
|
153
|
+
cmd: "npm",
|
|
154
|
+
args: [
|
|
155
|
+
"update",
|
|
156
|
+
"--save",
|
|
157
|
+
"--prefer-online",
|
|
158
|
+
"@selvajs/cli",
|
|
159
|
+
"@selvajs/selva",
|
|
160
|
+
"@selvajs/platform",
|
|
161
|
+
"@selvajs/local-provider",
|
|
162
|
+
"@selvajs/supabase-provider",
|
|
163
|
+
"@selvajs/header-auth-provider"
|
|
164
|
+
]
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
const parent = join(dir, "..");
|
|
168
|
+
if (parent === dir) break;
|
|
169
|
+
dir = parent;
|
|
170
|
+
}
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
const POST = async ({ locals }) => {
|
|
174
|
+
requirePermission(locals, "instance_admin");
|
|
175
|
+
const plan = detectUpdatePlan();
|
|
176
|
+
if (!plan) {
|
|
177
|
+
return new Response(
|
|
178
|
+
JSON.stringify({
|
|
179
|
+
error: "Couldn't determine how to update this deployment. Expected either scripts/update.sh (monorepo) or node_modules/@selvajs/selva (CLI scaffold) in the cwd or a parent."
|
|
180
|
+
}),
|
|
181
|
+
{ status: 500, headers: { "Content-Type": "application/json" } }
|
|
182
|
+
);
|
|
183
|
+
}
|
|
184
|
+
const stream = new ReadableStream({
|
|
185
|
+
start(controller) {
|
|
186
|
+
const encoder = new TextEncoder();
|
|
187
|
+
function sendEvent(type, data) {
|
|
188
|
+
const message = `data: ${JSON.stringify({ type, ...data })}
|
|
189
|
+
|
|
190
|
+
`;
|
|
191
|
+
controller.enqueue(encoder.encode(message));
|
|
192
|
+
}
|
|
193
|
+
try {
|
|
194
|
+
sendEvent("log", { data: `[INFO] Update mode: ${plan.mode} (cwd: ${plan.cwd})` });
|
|
195
|
+
const versionBefore = plan.mode === "npm" ? readRuntimeVersion(plan.cwd) : void 0;
|
|
196
|
+
if (versionBefore) {
|
|
197
|
+
sendEvent("log", { data: `[INFO] Current @selvajs/selva: ${versionBefore}` });
|
|
198
|
+
}
|
|
199
|
+
const cmd = plan.mode === "git" ? plan.cmd : "bash";
|
|
200
|
+
const args = plan.mode === "git" ? plan.args : ["-c", buildNpmUpdateScript(plan.args, versionBefore)];
|
|
201
|
+
const child = spawn(cmd, args, {
|
|
202
|
+
cwd: plan.cwd,
|
|
203
|
+
env: {
|
|
204
|
+
PATH: process.env.PATH,
|
|
205
|
+
HOME: process.env.HOME,
|
|
206
|
+
INSTALL_DIR: plan.cwd
|
|
207
|
+
},
|
|
208
|
+
detached: true,
|
|
209
|
+
stdio: ["ignore", "pipe", "pipe"]
|
|
210
|
+
});
|
|
211
|
+
child.unref();
|
|
212
|
+
const timeout = setTimeout(
|
|
213
|
+
() => {
|
|
214
|
+
try {
|
|
215
|
+
if (child.pid) process.kill(-child.pid, "SIGTERM");
|
|
216
|
+
} catch {
|
|
217
|
+
}
|
|
218
|
+
sendEvent("log", { data: "[FATAL] Update timed out after 15 minutes" });
|
|
219
|
+
sendEvent("exit", { code: -1 });
|
|
220
|
+
controller.close();
|
|
221
|
+
},
|
|
222
|
+
15 * 60 * 1e3
|
|
223
|
+
);
|
|
224
|
+
let restarting = false;
|
|
225
|
+
child.stdout.on("data", (data) => {
|
|
226
|
+
const lines = data.toString().split("\n");
|
|
227
|
+
for (const line of lines) {
|
|
228
|
+
const clean = stripAnsi(line).trim();
|
|
229
|
+
if (clean) {
|
|
230
|
+
if (!restarting && (clean.includes("Applying action stopProcessId") || clean.includes("Applying action restartProcessId"))) {
|
|
231
|
+
restarting = true;
|
|
232
|
+
sendEvent("restarting", { data: clean });
|
|
233
|
+
} else {
|
|
234
|
+
sendEvent("log", { data: clean });
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
child.stderr.on("data", (data) => {
|
|
240
|
+
const lines = data.toString().split("\n");
|
|
241
|
+
for (const line of lines) {
|
|
242
|
+
const clean = stripAnsi(line).trim();
|
|
243
|
+
if (clean) {
|
|
244
|
+
sendEvent("log", { data: `[ERROR] ${clean}` });
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
child.on("close", (code) => {
|
|
249
|
+
clearTimeout(timeout);
|
|
250
|
+
sendEvent("exit", { code: code ?? -1 });
|
|
251
|
+
controller.close();
|
|
252
|
+
});
|
|
253
|
+
child.on("error", (err) => {
|
|
254
|
+
clearTimeout(timeout);
|
|
255
|
+
sendEvent("log", { data: `[FATAL] ${err.message}` });
|
|
256
|
+
sendEvent("exit", { code: -1 });
|
|
257
|
+
controller.close();
|
|
258
|
+
});
|
|
259
|
+
} catch (err) {
|
|
260
|
+
sendEvent("log", { data: `[FATAL] Failed to spawn process: ${err}` });
|
|
261
|
+
sendEvent("exit", { code: -1 });
|
|
262
|
+
controller.close();
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
return new Response(stream, {
|
|
267
|
+
headers: {
|
|
268
|
+
"Content-Type": "text/event-stream",
|
|
269
|
+
"Cache-Control": "no-cache",
|
|
270
|
+
Connection: "keep-alive"
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
export { POST };
|
|
276
|
+
//# sourceMappingURL=_server.ts-BpAINcOs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-BpAINcOs.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/system/update/_server.ts.js"],"sourcesContent":["import { spawn } from \"child_process\";\nimport { join } from \"path\";\nimport { existsSync, readFileSync } from \"fs\";\nimport { b as private_env } from \"../../../../../../chunks/shared-server.js\";\nimport { b as requirePermission } from \"../../../../../../chunks/access.server.js\";\nfunction stripAnsi(str) {\n return str.replace(/\\x1B\\[[0-9;]*[mGKHF]/g, \"\");\n}\nfunction readRuntimeVersion(dir) {\n try {\n const pkg = JSON.parse(\n readFileSync(join(dir, \"node_modules\", \"@selvajs\", \"selva\", \"package.json\"), \"utf8\")\n );\n return typeof pkg.version === \"string\" ? pkg.version : void 0;\n } catch {\n return void 0;\n }\n}\nfunction shellQuote(s) {\n return `'${s.replace(/'/g, `'\\\\''`)}'`;\n}\nfunction buildNpmUpdateScript(npmArgs, versionBefore) {\n const npmCommand = [\"npm\", ...npmArgs].map(shellQuote).join(\" \");\n const before = shellQuote(versionBefore ?? \"\");\n return `\nset -o pipefail\nBEFORE=${before}\n\n# IMPORTANT: stop the running process BEFORE npm update overwrites build/.\n# SvelteKit's node adapter lazy-imports chunks from build/server/chunks/ on\n# every request. If we let npm rewrite build/ while the old process is still\n# serving traffic, in-flight requests hit ERR_MODULE_NOT_FOUND for chunks\n# whose hash just changed under their feet. Stopping first is a brief\n# downtime window (~1-2s longer than restart-in-place) for a much smaller\n# blast radius.\necho \"[STEP] Stopping selva-compute (graceful drain via kill_timeout in ecosystem.config.cjs)\"\nif ! pm2 stop selva-compute; then\n echo \"[WARN] pm2 stop failed — selva-compute may not be running yet. Continuing.\"\nfi\n\necho \"[STEP] Updating @selvajs/* packages\"\nif ! ${npmCommand}; then\n echo \"[FATAL] npm update failed — restarting old build to recover\"\n pm2 start selva-compute --update-env >/dev/null 2>&1 || true\n exit 1\nfi\n\nAFTER=$(node -e \"try{console.log(require('./node_modules/@selvajs/selva/package.json').version)}catch(e){}\" 2>/dev/null)\necho \"[INFO] New @selvajs/selva: \\${AFTER:-unknown}\"\n\nif [ -n \"$BEFORE\" ] && [ \"$BEFORE\" = \"$AFTER\" ]; then\n echo \"[WARN] No version change ($BEFORE). Your npm cache may be stale.\"\n echo \"[WARN] Recover with:\"\n echo \"[WARN] npm cache clean --force\"\n echo \"[WARN] rm -rf node_modules package-lock.json\"\n echo \"[WARN] npm install --prefer-online\"\nfi\n\necho \"[STEP] Starting selva-compute with new build\"\nif ! pm2 start selva-compute --update-env; then\n echo \"[FATAL] pm2 start failed — investigate with \\\\\\`pm2 logs selva-compute\\\\\\`\"\n exit 2\nfi\n\necho \"[STEP] Health-probing the new process\"\nHEALTHY=0\nfor i in $(seq 1 15); do\n sleep 2\n CODE=$(curl -sS -o /tmp/selva-health.$$ -w \"%{http_code}\" --max-time 5 http://localhost:3000/api/health 2>/dev/null || echo \"000\")\n if [ \"$CODE\" = \"200\" ]; then\n HEALTHY=1\n echo \"[INFO] Health probe passed after \\${i} attempt(s)\"\n rm -f /tmp/selva-health.$$\n break\n fi\n echo \"[INFO] Probe attempt $i/15: HTTP $CODE — retrying\"\ndone\n\nif [ \"$HEALTHY\" = \"1\" ]; then\n echo \"[DONE] Update complete\"\n exit 0\nfi\n\necho \"[FATAL] New process failed health check after 30s\"\nif [ -f /tmp/selva-health.$$ ]; then\n echo \"[FATAL] Last response body:\"\n cat /tmp/selva-health.$$\n rm -f /tmp/selva-health.$$\nfi\n\nif [ -z \"$BEFORE\" ]; then\n echo \"[FATAL] No prior version recorded — cannot roll back automatically.\"\n echo \"[FATAL] Manually install the version you want: npm install @selvajs/selva@<version>\"\n exit 3\nfi\n\necho \"[STEP] Rolling back @selvajs/selva to $BEFORE\"\npm2 stop selva-compute >/dev/null 2>&1 || true\nif ! npm install --save \"@selvajs/selva@$BEFORE\"; then\n echo \"[FATAL] Rollback npm install failed — manual intervention required.\"\n pm2 start selva-compute --update-env >/dev/null 2>&1 || true\n exit 4\nfi\n\npm2 start selva-compute --update-env || true\nsleep 3\nROLLBACK_CODE=$(curl -sS -o /dev/null -w \"%{http_code}\" --max-time 5 http://localhost:3000/api/health 2>/dev/null || echo \"000\")\nif [ \"$ROLLBACK_CODE\" = \"200\" ]; then\n echo \"[DONE] Rolled back to $BEFORE — previous version is online\"\n exit 5\nfi\n\necho \"[FATAL] Rollback restart also failed health check (HTTP $ROLLBACK_CODE)\"\necho \"[FATAL] Manual recovery required. Check: pm2 logs selva-compute\"\nexit 6\n`;\n}\nfunction detectUpdatePlan() {\n if (private_env.INSTALL_DIR && existsSync(join(private_env.INSTALL_DIR, \"scripts\", \"update.sh\"))) {\n return {\n mode: \"git\",\n cwd: private_env.INSTALL_DIR,\n cmd: \"bash\",\n args: [join(private_env.INSTALL_DIR, \"scripts\", \"update.sh\")]\n };\n }\n let dir = process.cwd();\n for (let i = 0; i < 6; i++) {\n if (existsSync(join(dir, \"scripts\", \"update.sh\"))) {\n return {\n mode: \"git\",\n cwd: dir,\n cmd: \"bash\",\n args: [join(dir, \"scripts\", \"update.sh\")]\n };\n }\n if (existsSync(join(dir, \"node_modules\", \"@selvajs\", \"selva\", \"package.json\"))) {\n return {\n mode: \"npm\",\n cwd: dir,\n cmd: \"npm\",\n args: [\n \"update\",\n \"--save\",\n \"--prefer-online\",\n \"@selvajs/cli\",\n \"@selvajs/selva\",\n \"@selvajs/platform\",\n \"@selvajs/local-provider\",\n \"@selvajs/supabase-provider\",\n \"@selvajs/header-auth-provider\"\n ]\n };\n }\n const parent = join(dir, \"..\");\n if (parent === dir) break;\n dir = parent;\n }\n return null;\n}\nconst POST = async ({ locals }) => {\n requirePermission(locals, \"instance_admin\");\n const plan = detectUpdatePlan();\n if (!plan) {\n return new Response(\n JSON.stringify({\n error: \"Couldn't determine how to update this deployment. Expected either scripts/update.sh (monorepo) or node_modules/@selvajs/selva (CLI scaffold) in the cwd or a parent.\"\n }),\n { status: 500, headers: { \"Content-Type\": \"application/json\" } }\n );\n }\n const stream = new ReadableStream({\n start(controller) {\n const encoder = new TextEncoder();\n function sendEvent(type, data) {\n const message = `data: ${JSON.stringify({ type, ...data })}\n\n`;\n controller.enqueue(encoder.encode(message));\n }\n try {\n sendEvent(\"log\", { data: `[INFO] Update mode: ${plan.mode} (cwd: ${plan.cwd})` });\n const versionBefore = plan.mode === \"npm\" ? readRuntimeVersion(plan.cwd) : void 0;\n if (versionBefore) {\n sendEvent(\"log\", { data: `[INFO] Current @selvajs/selva: ${versionBefore}` });\n }\n const cmd = plan.mode === \"git\" ? plan.cmd : \"bash\";\n const args = plan.mode === \"git\" ? plan.args : [\"-c\", buildNpmUpdateScript(plan.args, versionBefore)];\n const child = spawn(cmd, args, {\n cwd: plan.cwd,\n env: {\n PATH: process.env.PATH,\n HOME: process.env.HOME,\n INSTALL_DIR: plan.cwd\n },\n detached: true,\n stdio: [\"ignore\", \"pipe\", \"pipe\"]\n });\n child.unref();\n const timeout = setTimeout(\n () => {\n try {\n if (child.pid) process.kill(-child.pid, \"SIGTERM\");\n } catch {\n }\n sendEvent(\"log\", { data: \"[FATAL] Update timed out after 15 minutes\" });\n sendEvent(\"exit\", { code: -1 });\n controller.close();\n },\n 15 * 60 * 1e3\n );\n let restarting = false;\n child.stdout.on(\"data\", (data) => {\n const lines = data.toString().split(\"\\n\");\n for (const line of lines) {\n const clean = stripAnsi(line).trim();\n if (clean) {\n if (!restarting && (clean.includes(\"Applying action stopProcessId\") || clean.includes(\"Applying action restartProcessId\"))) {\n restarting = true;\n sendEvent(\"restarting\", { data: clean });\n } else {\n sendEvent(\"log\", { data: clean });\n }\n }\n }\n });\n child.stderr.on(\"data\", (data) => {\n const lines = data.toString().split(\"\\n\");\n for (const line of lines) {\n const clean = stripAnsi(line).trim();\n if (clean) {\n sendEvent(\"log\", { data: `[ERROR] ${clean}` });\n }\n }\n });\n child.on(\"close\", (code) => {\n clearTimeout(timeout);\n sendEvent(\"exit\", { code: code ?? -1 });\n controller.close();\n });\n child.on(\"error\", (err) => {\n clearTimeout(timeout);\n sendEvent(\"log\", { data: `[FATAL] ${err.message}` });\n sendEvent(\"exit\", { code: -1 });\n controller.close();\n });\n } catch (err) {\n sendEvent(\"log\", { data: `[FATAL] Failed to spawn process: ${err}` });\n sendEvent(\"exit\", { code: -1 });\n controller.close();\n }\n }\n });\n return new Response(stream, {\n headers: {\n \"Content-Type\": \"text/event-stream\",\n \"Cache-Control\": \"no-cache\",\n Connection: \"keep-alive\"\n }\n });\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAKA,SAAS,SAAS,CAAC,GAAG,EAAE;AACxB,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;AACjD;AACA,SAAS,kBAAkB,CAAC,GAAG,EAAE;AACjC,EAAE,IAAI;AACN,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK;AAC1B,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,MAAM;AACzF,KAAK;AACL,IAAI,OAAO,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,GAAG,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;AACjE,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,MAAM;AACjB,EAAE;AACF;AACA,SAAS,UAAU,CAAC,CAAC,EAAE;AACvB,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC;AACA,SAAS,oBAAoB,CAAC,OAAO,EAAE,aAAa,EAAE;AACtD,EAAE,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAClE,EAAE,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,IAAI,EAAE,CAAC;AAChD,EAAE,OAAO;AACT;AACA,OAAO,EAAE,MAAM;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK,EAAE,UAAU,CAAC;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA,SAAS,gBAAgB,GAAG;AAC5B,EAAE,IAAI,WAAW,CAAC,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,EAAE;AACpG,IAAI,OAAO;AACX,MAAM,IAAI,EAAE,KAAK;AACjB,MAAM,GAAG,EAAE,WAAW,CAAC,WAAW;AAClC,MAAM,GAAG,EAAE,MAAM;AACjB,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC;AAClE,KAAK;AACL,EAAE;AACF,EAAE,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;AACzB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC9B,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,EAAE;AACvD,MAAM,OAAO;AACb,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,GAAG,EAAE,GAAG;AAChB,QAAQ,GAAG,EAAE,MAAM;AACnB,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC;AAChD,OAAO;AACP,IAAI;AACJ,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE;AACpF,MAAM,OAAO;AACb,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,GAAG,EAAE,GAAG;AAChB,QAAQ,GAAG,EAAE,KAAK;AAClB,QAAQ,IAAI,EAAE;AACd,UAAU,QAAQ;AAClB,UAAU,QAAQ;AAClB,UAAU,iBAAiB;AAC3B,UAAU,cAAc;AACxB,UAAU,gBAAgB;AAC1B,UAAU,mBAAmB;AAC7B,UAAU,yBAAyB;AACnC,UAAU,4BAA4B;AACtC,UAAU;AACV;AACA,OAAO;AACP,IAAI;AACJ,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;AAClC,IAAI,IAAI,MAAM,KAAK,GAAG,EAAE;AACxB,IAAI,GAAG,GAAG,MAAM;AAChB,EAAE;AACF,EAAE,OAAO,IAAI;AACb;AACK,MAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AACnC,EAAE,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,CAAC;AAC7C,EAAE,MAAM,IAAI,GAAG,gBAAgB,EAAE;AACjC,EAAE,IAAI,CAAC,IAAI,EAAE;AACb,IAAI,OAAO,IAAI,QAAQ;AACvB,MAAM,IAAI,CAAC,SAAS,CAAC;AACrB,QAAQ,KAAK,EAAE;AACf,OAAO,CAAC;AACR,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;AACpE,KAAK;AACL,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;AACpC,IAAI,KAAK,CAAC,UAAU,EAAE;AACtB,MAAM,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE;AACvC,MAAM,SAAS,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE;AACrC,QAAQ,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;;AAElE,CAAC;AACD,QAAQ,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACnD,MAAM;AACN,MAAM,IAAI;AACV,QAAQ,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACzF,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,KAAK,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACzF,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,+BAA+B,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC;AACvF,QAAQ;AACR,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,KAAK,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,MAAM;AAC3D,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AAC7G,QAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE;AACvC,UAAU,GAAG,EAAE,IAAI,CAAC,GAAG;AACvB,UAAU,GAAG,EAAE;AACf,YAAY,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;AAClC,YAAY,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;AAClC,YAAY,WAAW,EAAE,IAAI,CAAC;AAC9B,WAAW;AACX,UAAU,QAAQ,EAAE,IAAI;AACxB,UAAU,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM;AAC1C,SAAS,CAAC;AACV,QAAQ,KAAK,CAAC,KAAK,EAAE;AACrB,QAAQ,MAAM,OAAO,GAAG,UAAU;AAClC,UAAU,MAAM;AAChB,YAAY,IAAI;AAChB,cAAc,IAAI,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC;AAChE,YAAY,CAAC,CAAC,MAAM;AACpB,YAAY;AACZ,YAAY,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,2CAA2C,EAAE,CAAC;AACnF,YAAY,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;AAC3C,YAAY,UAAU,CAAC,KAAK,EAAE;AAC9B,UAAU,CAAC;AACX,UAAU,EAAE,GAAG,EAAE,GAAG;AACpB,SAAS;AACT,QAAQ,IAAI,UAAU,GAAG,KAAK;AAC9B,QAAQ,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK;AAC1C,UAAU,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AACnD,UAAU,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACpC,YAAY,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;AAChD,YAAY,IAAI,KAAK,EAAE;AACvB,cAAc,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,QAAQ,CAAC,+BAA+B,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC,EAAE;AAC1I,gBAAgB,UAAU,GAAG,IAAI;AACjC,gBAAgB,SAAS,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACxD,cAAc,CAAC,MAAM;AACrB,gBAAgB,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACjD,cAAc;AACd,YAAY;AACZ,UAAU;AACV,QAAQ,CAAC,CAAC;AACV,QAAQ,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK;AAC1C,UAAU,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AACnD,UAAU,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACpC,YAAY,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;AAChD,YAAY,IAAI,KAAK,EAAE;AACvB,cAAc,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;AAC5D,YAAY;AACZ,UAAU;AACV,QAAQ,CAAC,CAAC;AACV,QAAQ,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK;AACpC,UAAU,YAAY,CAAC,OAAO,CAAC;AAC/B,UAAU,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC;AACjD,UAAU,UAAU,CAAC,KAAK,EAAE;AAC5B,QAAQ,CAAC,CAAC;AACV,QAAQ,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AACnC,UAAU,YAAY,CAAC,OAAO,CAAC;AAC/B,UAAU,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;AAC9D,UAAU,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;AACzC,UAAU,UAAU,CAAC,KAAK,EAAE;AAC5B,QAAQ,CAAC,CAAC;AACV,MAAM,CAAC,CAAC,OAAO,GAAG,EAAE;AACpB,QAAQ,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;AAC7E,QAAQ,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACvC,QAAQ,UAAU,CAAC,KAAK,EAAE;AAC1B,MAAM;AACN,IAAI;AACJ,GAAG,CAAC;AACJ,EAAE,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE;AAC9B,IAAI,OAAO,EAAE;AACb,MAAM,cAAc,EAAE,mBAAmB;AACzC,MAAM,eAAe,EAAE,UAAU;AACjC,MAAM,UAAU,EAAE;AAClB;AACA,GAAG,CAAC;AACJ;;;;"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { error, redirect } from '@sveltejs/kit';
|
|
2
|
+
import { g as getAuthProvider } from './providers.server-C32WKtDL.js';
|
|
3
|
+
import { b as bootstrapUserSession } from './auth-bootstrap.server-CfD5CPTj.js';
|
|
4
|
+
import { s as setSessionCookie, a as setRefreshCookie, d as safeRedirectTarget } from './admin-auth.server-CdTfBMI5.js';
|
|
5
|
+
import './shared-server-DaWdgxVh.js';
|
|
6
|
+
import 'node:url';
|
|
7
|
+
import 'node:path';
|
|
8
|
+
import 'node:fs';
|
|
9
|
+
import './context-9tV9WxQ5.js';
|
|
10
|
+
import 'zod';
|
|
11
|
+
import 'node:crypto';
|
|
12
|
+
import 'node:fs/promises';
|
|
13
|
+
import '@supabase/supabase-js';
|
|
14
|
+
|
|
15
|
+
const GET = async ({ url, cookies }) => {
|
|
16
|
+
const emailLink = getAuthProvider().emailLink;
|
|
17
|
+
if (!emailLink) {
|
|
18
|
+
throw error(501, "Email sign-in is not supported by this provider.");
|
|
19
|
+
}
|
|
20
|
+
const result = await emailLink.verifyMagicLink(url.toString());
|
|
21
|
+
if (!result) throw error(401, "This sign-in link is invalid or has expired.");
|
|
22
|
+
await bootstrapUserSession(result.user);
|
|
23
|
+
setSessionCookie(cookies, result.sessionToken);
|
|
24
|
+
if (result.refreshToken) setRefreshCookie(cookies, result.refreshToken);
|
|
25
|
+
const dest = safeRedirectTarget(url.searchParams.get("redirectTo"), "/library");
|
|
26
|
+
redirect(303, dest);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export { GET };
|
|
30
|
+
//# sourceMappingURL=_server.ts-BpkR7TzP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-BpkR7TzP.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/auth/email/callback/_server.ts.js"],"sourcesContent":["import { error, redirect } from \"@sveltejs/kit\";\nimport { e as getAuthProvider } from \"../../../../../chunks/providers.server.js\";\nimport { b as bootstrapUserSession } from \"../../../../../chunks/auth-bootstrap.server.js\";\nimport { s as setSessionCookie, a as setRefreshCookie, b as safeRedirectTarget } from \"../../../../../chunks/admin-auth.server.js\";\nconst GET = async ({ url, cookies }) => {\n const emailLink = getAuthProvider().emailLink;\n if (!emailLink) {\n throw error(501, \"Email sign-in is not supported by this provider.\");\n }\n const result = await emailLink.verifyMagicLink(url.toString());\n if (!result) throw error(401, \"This sign-in link is invalid or has expired.\");\n await bootstrapUserSession(result.user);\n setSessionCookie(cookies, result.sessionToken);\n if (result.refreshToken) setRefreshCookie(cookies, result.refreshToken);\n const dest = safeRedirectTarget(url.searchParams.get(\"redirectTo\"), \"/library\");\n redirect(303, dest);\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAIK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK;AACxC,EAAE,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC,SAAS;AAC/C,EAAE,IAAI,CAAC,SAAS,EAAE;AAClB,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,kDAAkD,CAAC;AACxE,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;AAChE,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,8CAA8C,CAAC;AAC/E,EAAE,MAAM,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC;AACzC,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC;AAChD,EAAE,IAAI,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC;AACzE,EAAE,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC;AACjF,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;AACrB;;;;"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { error, json } from '@sveltejs/kit';
|
|
2
|
+
import { randomUUID } from 'node:crypto';
|
|
3
|
+
import { p as providers, f as flag } from './providers.server-C32WKtDL.js';
|
|
4
|
+
import { g as requireEditableDefinition } from './access.server-GvriCjXN.js';
|
|
5
|
+
import { h as handleApiError, t as throwZodError } from './api-errors-Dk5z97zb.js';
|
|
6
|
+
import { G as GuidSchema, e as CreateShareLinkInputSchema } from './context-9tV9WxQ5.js';
|
|
7
|
+
import { D as DEFAULT_SHARE_LINK_MAX_SOLVES } from './types2-DdHhYSMF.js';
|
|
8
|
+
import { m as mintRawToken, h as hashToken } from './token.server-B8XVPI0F.js';
|
|
9
|
+
import './shared-server-DaWdgxVh.js';
|
|
10
|
+
import 'node:url';
|
|
11
|
+
import 'node:path';
|
|
12
|
+
import 'node:fs';
|
|
13
|
+
import 'node:fs/promises';
|
|
14
|
+
import '@supabase/supabase-js';
|
|
15
|
+
import 'zod';
|
|
16
|
+
|
|
17
|
+
function assertSharingEnabled() {
|
|
18
|
+
if (!flag("ENABLE_SHARING")) {
|
|
19
|
+
throw error(404, "Share links are disabled on this instance (ENABLE_SHARING).");
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function strip(link) {
|
|
23
|
+
const { tokenHash: _omit, ...rest } = link;
|
|
24
|
+
return { ...rest, hasToken: true };
|
|
25
|
+
}
|
|
26
|
+
const GET = async ({ params, locals }) => {
|
|
27
|
+
assertSharingEnabled();
|
|
28
|
+
const guidParsed = GuidSchema.safeParse(params.guid);
|
|
29
|
+
if (!guidParsed.success) throw error(400, "Invalid or missing GUID");
|
|
30
|
+
const { ctx } = await requireEditableDefinition(locals, guidParsed.data);
|
|
31
|
+
try {
|
|
32
|
+
const page = await providers.data.shareLinks.listByDefinition(ctx, guidParsed.data, {
|
|
33
|
+
limit: 200
|
|
34
|
+
});
|
|
35
|
+
return json({
|
|
36
|
+
links: page.items.map(strip),
|
|
37
|
+
nextCursor: page.nextCursor
|
|
38
|
+
});
|
|
39
|
+
} catch (err) {
|
|
40
|
+
handleApiError(err, "Failed to list share links");
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
const POST = async ({ params, request, locals }) => {
|
|
44
|
+
assertSharingEnabled();
|
|
45
|
+
const guidParsed = GuidSchema.safeParse(params.guid);
|
|
46
|
+
if (!guidParsed.success) throw error(400, "Invalid or missing GUID");
|
|
47
|
+
const { ctx } = await requireEditableDefinition(locals, guidParsed.data);
|
|
48
|
+
const body = await request.json().catch(() => ({}));
|
|
49
|
+
const parsed = CreateShareLinkInputSchema.safeParse(body);
|
|
50
|
+
if (!parsed.success) throwZodError(parsed.error);
|
|
51
|
+
const raw = mintRawToken();
|
|
52
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
53
|
+
const link = {
|
|
54
|
+
id: randomUUID(),
|
|
55
|
+
definitionId: guidParsed.data,
|
|
56
|
+
channel: parsed.data.channel,
|
|
57
|
+
tokenHash: hashToken(raw),
|
|
58
|
+
name: parsed.data.name,
|
|
59
|
+
createdBy: locals.user.id,
|
|
60
|
+
createdAt: now,
|
|
61
|
+
expiresAt: parsed.data.expiresAt ?? null,
|
|
62
|
+
revokedAt: null,
|
|
63
|
+
allowSolve: parsed.data.allowSolve,
|
|
64
|
+
// Default applied only when the field is absent. `null` is a deliberate
|
|
65
|
+
// "uncap" choice and is preserved.
|
|
66
|
+
maxSolves: parsed.data.maxSolves === void 0 ? DEFAULT_SHARE_LINK_MAX_SOLVES : parsed.data.maxSolves,
|
|
67
|
+
solveCount: 0
|
|
68
|
+
};
|
|
69
|
+
try {
|
|
70
|
+
await providers.data.shareLinks.create(ctx, link);
|
|
71
|
+
return json({ link: strip(link), token: raw }, { status: 201 });
|
|
72
|
+
} catch (err) {
|
|
73
|
+
handleApiError(err, "Failed to create share link");
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export { GET, POST };
|
|
78
|
+
//# sourceMappingURL=_server.ts-BrZXNFlK.js.map
|