@selvajs/selva 2.0.8 → 2.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/client/_app/immutable/assets/0.B0phAlf7.css.gz +0 -0
- package/build/client/_app/immutable/assets/20.Bne67Vgr.css +1 -0
- package/build/client/_app/immutable/assets/20.Bne67Vgr.css.br +0 -0
- package/build/client/_app/immutable/assets/20.Bne67Vgr.css.gz +0 -0
- package/build/client/_app/immutable/assets/index.CV-KWLNP.css.gz +0 -0
- package/build/client/_app/immutable/chunks/1s2jTHrf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/2XlIPTRw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/2_FEXmq1.js.gz +0 -0
- package/build/client/_app/immutable/chunks/2dX6Wjni.js.gz +0 -0
- package/build/client/_app/immutable/chunks/4tskcAVN.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BldLEHH8.js → A6Vs_oZV.js} +1 -1
- package/build/client/_app/immutable/chunks/A6Vs_oZV.js.br +0 -0
- package/build/client/_app/immutable/chunks/A6Vs_oZV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/AEyooZaf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B1aRL9Hz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B8uG8z2c.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B8zY50Bc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BCse3N0b.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BGxzXVpM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BM4_iXSA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BMGykAfL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BNScKugQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BNzEBMy8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BU9URCkw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BW4xleRz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BZmrLQwT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B_Lmgh7q.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BapAUJpM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bb9xebuT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BnGN4Ix-.js → Bgf48GEj.js} +1 -1
- package/build/client/_app/immutable/chunks/Bgf48GEj.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bgf48GEj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BjkQG7dw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bmz9gLBz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bnpwcepm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BoR6OKl6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Br5bpmJC.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BxCHY0iG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C1Sz0rtw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C1aQuqo_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C26nmevH.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C8ko2SLk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CAMhfNhW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CEnIp_6Y.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{B0M-tm96.js → CGG8rM-6.js} +1 -1
- package/build/client/_app/immutable/chunks/CGG8rM-6.js.br +0 -0
- package/build/client/_app/immutable/chunks/CGG8rM-6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CMjc_m7Z.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CyUe9WIm.js → CQQ--RFk.js} +1 -1
- package/build/client/_app/immutable/chunks/CQQ--RFk.js.br +0 -0
- package/build/client/_app/immutable/chunks/CQQ--RFk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CRRzXoPz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CnbBd0os.js → CTEi7jkr.js} +2 -2
- package/build/client/_app/immutable/chunks/CTEi7jkr.js.br +0 -0
- package/build/client/_app/immutable/chunks/{CnbBd0os.js.gz → CTEi7jkr.js.gz} +0 -0
- package/build/client/_app/immutable/chunks/CXh1ITwj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CZ1oTCKP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cbu9Tg11.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CcYNc8-G.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cdcajer6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ce2MupFq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CfP1DoGT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CfhPDo21.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CkW8YtSm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CoR7xVWs.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CpGv0MSX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cvr8AlQE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D0QMYypb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D40b34QZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D6MI_dhi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D7l1JayF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D99uXqZb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DEBBEmC0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DNsLImlA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DRDjLZb3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DTJeGfAL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DZFqETAQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D_wr-JLf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Ba2Ugq_t.js → DaXfFNFB.js} +1 -1
- package/build/client/_app/immutable/chunks/DaXfFNFB.js.br +0 -0
- package/build/client/_app/immutable/chunks/DaXfFNFB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dl4WTuMB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Doks8ISn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DsnmJJEf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/E3yOQTT0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Gxlzmh6y.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ib-7xmHT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/P4Np3c9O.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Zf7VV5ZB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/_OLpdTiI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/azBeeLR0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/gMllmzma.js.gz +0 -0
- package/build/client/_app/immutable/chunks/hRoV10UM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/iEBlyxZv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/jFKgkeON.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ooPBmYPj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/pRg-f8xU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/uINs3xv3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/wamM80bu.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.R0cA7z-3.js → app.CKMPJJRF.js} +2 -2
- package/build/client/_app/immutable/entry/app.CKMPJJRF.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CKMPJJRF.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.BNxKlw9Q.js +1 -0
- package/build/client/_app/immutable/entry/start.BNxKlw9Q.js.br +2 -0
- package/build/client/_app/immutable/entry/start.BNxKlw9Q.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{0.KJ-PiM1c.js → 0.DlG8LAVR.js} +1 -1
- package/build/client/_app/immutable/nodes/0.DlG8LAVR.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.DlG8LAVR.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.iTQblN3h.js → 1.CBSGNp0x.js} +1 -1
- package/build/client/_app/immutable/nodes/1.CBSGNp0x.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.CBSGNp0x.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.C5pTC9MT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{11.D7vQOfVW.js → 11.D8vq6hbM.js} +1 -1
- package/build/client/_app/immutable/nodes/11.D8vq6hbM.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.D8vq6hbM.js.gz +0 -0
- package/build/client/_app/immutable/nodes/12.BoPfAFdi.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{13.CEGRwaw5.js → 13.CAeK6ncz.js} +1 -1
- package/build/client/_app/immutable/nodes/13.CAeK6ncz.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.CAeK6ncz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{14.DP0RHUIL.js → 14.BQgMKGR9.js} +1 -1
- package/build/client/_app/immutable/nodes/14.BQgMKGR9.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.BQgMKGR9.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.CAs53i3e.js +16 -0
- package/build/client/_app/immutable/nodes/15.CAs53i3e.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.CAs53i3e.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{16.ChhIZf_i.js → 16.COqS-C2g.js} +1 -1
- package/build/client/_app/immutable/nodes/16.COqS-C2g.js.br +0 -0
- package/build/client/_app/immutable/nodes/{16.ChhIZf_i.js.gz → 16.COqS-C2g.js.gz} +0 -0
- package/build/client/_app/immutable/nodes/{17.DL0oF7lP.js → 17.DFOKDpKT.js} +1 -1
- package/build/client/_app/immutable/nodes/17.DFOKDpKT.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.DFOKDpKT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/18.BpVlwZ30.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{19.CCJMnv49.js → 19.Dvf5ii3B.js} +1 -1
- package/build/client/_app/immutable/nodes/19.Dvf5ii3B.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.Dvf5ii3B.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.B4hNrAp8.js +1 -0
- package/build/client/_app/immutable/nodes/2.B4hNrAp8.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.B4hNrAp8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{20.De0vu3AF.js → 20.DXexjElq.js} +6 -6
- package/build/client/_app/immutable/nodes/20.DXexjElq.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.DXexjElq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{21.DpNlPoKj.js → 21.CY6vTFDO.js} +1 -1
- package/build/client/_app/immutable/nodes/21.CY6vTFDO.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.CY6vTFDO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{23.CMmwabln.js → 23.DuFwz8Vn.js} +1 -1
- package/build/client/_app/immutable/nodes/23.DuFwz8Vn.js.br +0 -0
- package/build/client/_app/immutable/nodes/23.DuFwz8Vn.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{24.CuYhfWpg.js → 24.DxzLaZvY.js} +1 -1
- package/build/client/_app/immutable/nodes/24.DxzLaZvY.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.DxzLaZvY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/25.oeBaWIUn.js.gz +0 -0
- package/build/client/_app/immutable/nodes/26.lPx5SjN1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{27.xAPzIANf.js → 27.BuC47dzM.js} +1 -1
- package/build/client/_app/immutable/nodes/27.BuC47dzM.js.br +0 -0
- package/build/client/_app/immutable/nodes/27.BuC47dzM.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{28.DwzOZwKl.js → 28.C_uTKWGO.js} +1 -1
- package/build/client/_app/immutable/nodes/28.C_uTKWGO.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.C_uTKWGO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{29.8CK2Warj.js → 29.8zDETWDm.js} +1 -1
- package/build/client/_app/immutable/nodes/29.8zDETWDm.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.8zDETWDm.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{3.CRsFANhR.js → 3.Bfn3gVJk.js} +1 -1
- package/build/client/_app/immutable/nodes/3.Bfn3gVJk.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.Bfn3gVJk.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{30.Cj-Aax_q.js → 30.e6k62qmr.js} +1 -1
- package/build/client/_app/immutable/nodes/30.e6k62qmr.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.e6k62qmr.js.gz +0 -0
- package/build/client/_app/immutable/nodes/31.DKnO7o1W.js.gz +0 -0
- package/build/client/_app/immutable/nodes/32.D4xYDWvG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.0a-qdY5B.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.CtPFMefZ.js → 5.BuIfvCG_.js} +1 -1
- package/build/client/_app/immutable/nodes/5.BuIfvCG_.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.BuIfvCG_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.DpMqwqL2.js → 6.7n3uXlRb.js} +1 -1
- package/build/client/_app/immutable/nodes/6.7n3uXlRb.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.7n3uXlRb.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.B8Lrh4Sn.js → 7.hY96lcAK.js} +1 -1
- package/build/client/_app/immutable/nodes/7.hY96lcAK.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.hY96lcAK.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{8.BpnmUNwu.js → 8.BJVGDvKO.js} +1 -1
- package/build/client/_app/immutable/nodes/8.BJVGDvKO.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.BJVGDvKO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.DfzNXXlu.js +1 -0
- package/build/client/_app/immutable/nodes/9.DfzNXXlu.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.DfzNXXlu.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/client/favicon/favicon.svg.gz +0 -0
- package/build/client/robots.txt.gz +0 -0
- package/build/server/chunks/{0-wC8vebb2.js → 0-BwkJawM9.js} +4 -4
- package/build/server/chunks/{0-wC8vebb2.js.map → 0-BwkJawM9.js.map} +1 -1
- package/build/server/chunks/{1-CSxxdOGx.js → 1-DHXobBGu.js} +2 -2
- package/build/server/chunks/{1-CSxxdOGx.js.map → 1-DHXobBGu.js.map} +1 -1
- package/build/server/chunks/{10-8FzClb5u.js → 10-B96sdHm3.js} +4 -4
- package/build/server/chunks/{10-8FzClb5u.js.map → 10-B96sdHm3.js.map} +1 -1
- package/build/server/chunks/{11-DPGyzjwV.js → 11-BDWsB0ko.js} +6 -6
- package/build/server/chunks/{11-DPGyzjwV.js.map → 11-BDWsB0ko.js.map} +1 -1
- package/build/server/chunks/{12-C_P4jkDv.js → 12-Djatn5UB.js} +2 -2
- package/build/server/chunks/{12-C_P4jkDv.js.map → 12-Djatn5UB.js.map} +1 -1
- package/build/server/chunks/{13-BTAtM4vf.js → 13-C2yj7_Mb.js} +5 -4
- package/build/server/chunks/13-C2yj7_Mb.js.map +1 -0
- package/build/server/chunks/{14-x6FJT6Iw.js → 14-BQlCNoCl.js} +4 -3
- package/build/server/chunks/14-BQlCNoCl.js.map +1 -0
- package/build/server/chunks/{15-DGiz0g4w.js → 15-CHrs6UVa.js} +6 -5
- package/build/server/chunks/15-CHrs6UVa.js.map +1 -0
- package/build/server/chunks/{16-CuluBZaI.js → 16-CgRtwJn8.js} +5 -5
- package/build/server/chunks/{16-CuluBZaI.js.map → 16-CgRtwJn8.js.map} +1 -1
- package/build/server/chunks/{17-DZr92is3.js → 17-BQigDlDw.js} +2 -2
- package/build/server/chunks/{17-DZr92is3.js.map → 17-BQigDlDw.js.map} +1 -1
- package/build/server/chunks/{18-DeVS-pOT.js → 18-ZllBwU0v.js} +2 -2
- package/build/server/chunks/{18-DeVS-pOT.js.map → 18-ZllBwU0v.js.map} +1 -1
- package/build/server/chunks/{19-B0hG9_9r.js → 19-rqqB4i4s.js} +5 -3
- package/build/server/chunks/19-rqqB4i4s.js.map +1 -0
- package/build/server/chunks/{2-_zknF6gb.js → 2-BYd4MZUE.js} +7 -6
- package/build/server/chunks/2-BYd4MZUE.js.map +1 -0
- package/build/server/chunks/{20-Db0y8qIh.js → 20-DooF4BHq.js} +11 -11
- package/build/server/chunks/{20-Db0y8qIh.js.map → 20-DooF4BHq.js.map} +1 -1
- package/build/server/chunks/{21-CQ2mvrOt.js → 21-BNS0VEZs.js} +8 -4
- package/build/server/chunks/21-BNS0VEZs.js.map +1 -0
- package/build/server/chunks/{23-CSrUCr2t.js → 23-CrylGvWo.js} +6 -6
- package/build/server/chunks/{23-CSrUCr2t.js.map → 23-CrylGvWo.js.map} +1 -1
- package/build/server/chunks/{24-D14nUSAR.js → 24-DX03r0Ku.js} +4 -4
- package/build/server/chunks/{24-D14nUSAR.js.map → 24-DX03r0Ku.js.map} +1 -1
- package/build/server/chunks/{25-ef6c33Ul.js → 25-DaOQwMkm.js} +2 -2
- package/build/server/chunks/{25-ef6c33Ul.js.map → 25-DaOQwMkm.js.map} +1 -1
- package/build/server/chunks/{27-PXKn2m8M.js → 27-BumS-Wey.js} +4 -4
- package/build/server/chunks/{27-PXKn2m8M.js.map → 27-BumS-Wey.js.map} +1 -1
- package/build/server/chunks/{28-DYuI_Cgr.js → 28-Bs0ilm4z.js} +3 -3
- package/build/server/chunks/{28-DYuI_Cgr.js.map → 28-Bs0ilm4z.js.map} +1 -1
- package/build/server/chunks/{29-CrDIu9-c.js → 29-eOSgz-Q6.js} +3 -3
- package/build/server/chunks/{29-CrDIu9-c.js.map → 29-eOSgz-Q6.js.map} +1 -1
- package/build/server/chunks/{3-Dk3O-ses.js → 3-C1Hnunxq.js} +2 -2
- package/build/server/chunks/{3-Dk3O-ses.js.map → 3-C1Hnunxq.js.map} +1 -1
- package/build/server/chunks/{30-ZXGKLYtR.js → 30-B_fYQ406.js} +3 -3
- package/build/server/chunks/{30-ZXGKLYtR.js.map → 30-B_fYQ406.js.map} +1 -1
- package/build/server/chunks/{31-CirH19D6.js → 31-B1XsXSZ-.js} +2 -2
- package/build/server/chunks/{31-CirH19D6.js.map → 31-B1XsXSZ-.js.map} +1 -1
- package/build/server/chunks/{32-CZojKYOy.js → 32-Dczg8t26.js} +2 -2
- package/build/server/chunks/{32-CZojKYOy.js.map → 32-Dczg8t26.js.map} +1 -1
- package/build/server/chunks/{5-DZF9fTQJ.js → 5-Bhs6XBN_.js} +2 -2
- package/build/server/chunks/{5-DZF9fTQJ.js.map → 5-Bhs6XBN_.js.map} +1 -1
- package/build/server/chunks/{6-Dv8dgI1X.js → 6-DQiiyzxX.js} +3 -3
- package/build/server/chunks/{6-Dv8dgI1X.js.map → 6-DQiiyzxX.js.map} +1 -1
- package/build/server/chunks/{7-Be6Wvhky.js → 7-Mh6-dFfT.js} +2 -2
- package/build/server/chunks/{7-Be6Wvhky.js.map → 7-Mh6-dFfT.js.map} +1 -1
- package/build/server/chunks/{8-CPaEsylT.js → 8-tu9jPKDH.js} +3 -3
- package/build/server/chunks/{8-CPaEsylT.js.map → 8-tu9jPKDH.js.map} +1 -1
- package/build/server/chunks/{9-DwCoeD2g.js → 9-Blq9VO5M.js} +4 -4
- package/build/server/chunks/{9-DwCoeD2g.js.map → 9-Blq9VO5M.js.map} +1 -1
- package/build/server/chunks/{_layout.svelte-xYAKGoE5.js → _layout.svelte-BvTGPzuy.js} +4 -4
- package/build/server/chunks/{_layout.svelte-xYAKGoE5.js.map → _layout.svelte-BvTGPzuy.js.map} +1 -1
- package/build/server/chunks/{_layout.svelte-HGSVxA0R.js → _layout.svelte-u5-cJLoF.js} +2 -2
- package/build/server/chunks/_layout.svelte-u5-cJLoF.js.map +1 -0
- package/build/server/chunks/{_page.svelte-BptS1zpT.js → _page.svelte-CRZeKEsV.js} +2 -1
- package/build/server/chunks/_page.svelte-CRZeKEsV.js.map +1 -0
- package/build/server/chunks/{_page.svelte-BR8dze-7.js → _page.svelte-Cj20v_rA.js} +14 -14
- package/build/server/chunks/_page.svelte-Cj20v_rA.js.map +1 -0
- package/build/server/chunks/{_page.svelte-BCCCalas.js → _page.svelte-DFumYbGi.js} +5 -5
- package/build/server/chunks/_page.svelte-DFumYbGi.js.map +1 -0
- package/build/server/chunks/{_server.ts-BSoy1Ljl.js → _server.ts-B-Q-Ll-v.js} +4 -4
- package/build/server/chunks/{_server.ts-BSoy1Ljl.js.map → _server.ts-B-Q-Ll-v.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DChqazjy.js → _server.ts-B1Y6yftf.js} +3 -3
- package/build/server/chunks/{_server.ts-DChqazjy.js.map → _server.ts-B1Y6yftf.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CKHs57oZ.js → _server.ts-B8Klg9b0.js} +2 -2
- package/build/server/chunks/{_server.ts-CKHs57oZ.js.map → _server.ts-B8Klg9b0.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DWL7YPsQ.js → _server.ts-B9dyak6S.js} +5 -5
- package/build/server/chunks/{_server.ts-DWL7YPsQ.js.map → _server.ts-B9dyak6S.js.map} +1 -1
- package/build/server/chunks/{_server.ts-gCCprE5T.js → _server.ts-BJxv0nGq.js} +7 -5
- package/build/server/chunks/_server.ts-BJxv0nGq.js.map +1 -0
- package/build/server/chunks/{_server.ts-C9ggXEGb.js → _server.ts-BNeRrZiC.js} +4 -4
- package/build/server/chunks/{_server.ts-C9ggXEGb.js.map → _server.ts-BNeRrZiC.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BnN8EQwQ.js → _server.ts-BOkX-0DJ.js} +4 -4
- package/build/server/chunks/{_server.ts-BnN8EQwQ.js.map → _server.ts-BOkX-0DJ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-1nksAmT8.js → _server.ts-BZI6uyQW.js} +4 -4
- package/build/server/chunks/{_server.ts-1nksAmT8.js.map → _server.ts-BZI6uyQW.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Ch4yLIuo.js → _server.ts-BauREevi.js} +3 -3
- package/build/server/chunks/{_server.ts-Ch4yLIuo.js.map → _server.ts-BauREevi.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CN851WSH.js → _server.ts-Bv7Vz5Xn.js} +4 -4
- package/build/server/chunks/{_server.ts-CN851WSH.js.map → _server.ts-Bv7Vz5Xn.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BYlDwqEg.js → _server.ts-BzyWxO2V.js} +5 -5
- package/build/server/chunks/{_server.ts-BYlDwqEg.js.map → _server.ts-BzyWxO2V.js.map} +1 -1
- package/build/server/chunks/{_server.ts-I3zLnhsz.js → _server.ts-C6-TzfcL.js} +4 -4
- package/build/server/chunks/{_server.ts-I3zLnhsz.js.map → _server.ts-C6-TzfcL.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Cb4DODkC.js → _server.ts-CJ3r_HVJ.js} +5 -5
- package/build/server/chunks/{_server.ts-Cb4DODkC.js.map → _server.ts-CJ3r_HVJ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CyhcRpfW.js → _server.ts-CM4bU3nb.js} +5 -5
- package/build/server/chunks/{_server.ts-CyhcRpfW.js.map → _server.ts-CM4bU3nb.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BbzbsVfr.js → _server.ts-CRWYKoKH.js} +4 -4
- package/build/server/chunks/{_server.ts-BbzbsVfr.js.map → _server.ts-CRWYKoKH.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DrYz0SSH.js → _server.ts-CU_uO5Be.js} +4 -4
- package/build/server/chunks/{_server.ts-DrYz0SSH.js.map → _server.ts-CU_uO5Be.js.map} +1 -1
- package/build/server/chunks/{_server.ts-k0TOB-E9.js → _server.ts-CWgMDUW5.js} +4 -4
- package/build/server/chunks/{_server.ts-k0TOB-E9.js.map → _server.ts-CWgMDUW5.js.map} +1 -1
- package/build/server/chunks/{_server.ts-v9eUA-cx.js → _server.ts-CWhAZS7d.js} +4 -4
- package/build/server/chunks/{_server.ts-v9eUA-cx.js.map → _server.ts-CWhAZS7d.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DraBBcmz.js → _server.ts-CXxbYs18.js} +4 -4
- package/build/server/chunks/{_server.ts-DraBBcmz.js.map → _server.ts-CXxbYs18.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BdKZ7aOG.js → _server.ts-CYg1-gUK.js} +4 -4
- package/build/server/chunks/{_server.ts-BdKZ7aOG.js.map → _server.ts-CYg1-gUK.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BTi2idVf.js → _server.ts-CasH9SwH.js} +4 -4
- package/build/server/chunks/{_server.ts-BTi2idVf.js.map → _server.ts-CasH9SwH.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CaERLUlr.js → _server.ts-CeMGFK8t.js} +3 -3
- package/build/server/chunks/{_server.ts-CaERLUlr.js.map → _server.ts-CeMGFK8t.js.map} +1 -1
- package/build/server/chunks/{_server.ts-qFzkA4h-.js → _server.ts-CoEHLvhd.js} +7 -7
- package/build/server/chunks/{_server.ts-qFzkA4h-.js.map → _server.ts-CoEHLvhd.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B0gZCMdj.js → _server.ts-Cw0SJh0B.js} +4 -4
- package/build/server/chunks/{_server.ts-B0gZCMdj.js.map → _server.ts-Cw0SJh0B.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C_s5gcH-.js → _server.ts-DA0Lq54y.js} +3 -3
- package/build/server/chunks/{_server.ts-C_s5gcH-.js.map → _server.ts-DA0Lq54y.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DnpbPKKN.js → _server.ts-DEwvCClL.js} +4 -4
- package/build/server/chunks/{_server.ts-DnpbPKKN.js.map → _server.ts-DEwvCClL.js.map} +1 -1
- package/build/server/chunks/{_server.ts-uQSc7PGB.js → _server.ts-DFSeb1Vi.js} +4 -4
- package/build/server/chunks/{_server.ts-uQSc7PGB.js.map → _server.ts-DFSeb1Vi.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C3Cn_AWJ.js → _server.ts-DHk_Z16q.js} +4 -4
- package/build/server/chunks/{_server.ts-C3Cn_AWJ.js.map → _server.ts-DHk_Z16q.js.map} +1 -1
- package/build/server/chunks/{_server.ts-1HIleN3S.js → _server.ts-DMQx2USs.js} +4 -4
- package/build/server/chunks/{_server.ts-1HIleN3S.js.map → _server.ts-DMQx2USs.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CNPmzTy6.js → _server.ts-DZIvAAI3.js} +4 -4
- package/build/server/chunks/{_server.ts-CNPmzTy6.js.map → _server.ts-DZIvAAI3.js.map} +1 -1
- package/build/server/chunks/{_server.ts-AE1drj36.js → _server.ts-Dnhj7lwZ.js} +5 -4
- package/build/server/chunks/_server.ts-Dnhj7lwZ.js.map +1 -0
- package/build/server/chunks/{_server.ts-Dnqx5-qU.js → _server.ts-DqAlXFFH.js} +6 -6
- package/build/server/chunks/{_server.ts-Dnqx5-qU.js.map → _server.ts-DqAlXFFH.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CzJ60KtY.js → _server.ts-Dty-h13-.js} +5 -5
- package/build/server/chunks/{_server.ts-CzJ60KtY.js.map → _server.ts-Dty-h13-.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CZW4ge6f.js → _server.ts-HHpSHV0x.js} +4 -4
- package/build/server/chunks/{_server.ts-CZW4ge6f.js.map → _server.ts-HHpSHV0x.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C2YLv0RS.js → _server.ts-HrxAWCu8.js} +4 -4
- package/build/server/chunks/{_server.ts-C2YLv0RS.js.map → _server.ts-HrxAWCu8.js.map} +1 -1
- package/build/server/chunks/{_server.ts-ByhZiyPJ.js → _server.ts-HtL-WwFA.js} +4 -4
- package/build/server/chunks/{_server.ts-ByhZiyPJ.js.map → _server.ts-HtL-WwFA.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Cjz2LZbt.js → _server.ts-JUsPxh3B.js} +5 -4
- package/build/server/chunks/_server.ts-JUsPxh3B.js.map +1 -0
- package/build/server/chunks/{_server.ts-CbQpXSqd.js → _server.ts-wKzFLxYm.js} +4 -4
- package/build/server/chunks/{_server.ts-CbQpXSqd.js.map → _server.ts-wKzFLxYm.js.map} +1 -1
- package/build/server/chunks/{access.server-DVG3xnR_.js → access.server-Cpz6F2ZC.js} +35 -13
- package/build/server/chunks/access.server-Cpz6F2ZC.js.map +1 -0
- package/build/server/chunks/{api-errors-DGHmIOGJ.js → api-errors-CBEdAg2T.js} +2 -2
- package/build/server/chunks/{api-errors-DGHmIOGJ.js.map → api-errors-CBEdAg2T.js.map} +1 -1
- package/build/server/chunks/{auth-bootstrap.server-dy8_QSAP.js → auth-bootstrap.server-BnBerntQ.js} +3 -2
- package/build/server/chunks/auth-bootstrap.server-BnBerntQ.js.map +1 -0
- package/build/server/chunks/{bootHealth.server-DQx_qsNh.js → bootHealth.server-XLXnMQ_j.js} +2 -2
- package/build/server/chunks/{bootHealth.server-DQx_qsNh.js.map → bootHealth.server-XLXnMQ_j.js.map} +1 -1
- package/build/server/chunks/{hooks.server-D5z2JKsD.js → hooks.server-CWpJXpT3.js} +20 -4
- package/build/server/chunks/hooks.server-CWpJXpT3.js.map +1 -0
- package/build/server/chunks/{permissions.server-qrbshNHz.js → permissions.server-zTQc77dD.js} +2 -2
- package/build/server/chunks/{permissions.server-qrbshNHz.js.map → permissions.server-zTQc77dD.js.map} +1 -1
- package/build/server/chunks/{providers.server-Duyx-08B.js → providers.server-D1dTI3cw.js} +26 -2
- package/build/server/chunks/providers.server-D1dTI3cw.js.map +1 -0
- package/build/server/chunks/{resolve.server-BwfjDyaT.js → resolve.server-DmsjqGqj.js} +3 -3
- package/build/server/chunks/{resolve.server-BwfjDyaT.js.map → resolve.server-DmsjqGqj.js.map} +1 -1
- package/build/server/chunks/{resolve.server2-DjZg4oZg.js → resolve.server2-WBINVOER.js} +2 -2
- package/build/server/chunks/{resolve.server2-DjZg4oZg.js.map → resolve.server2-WBINVOER.js.map} +1 -1
- package/build/server/chunks/{utils2-QuTTpZq0.js → utils2-fF4hylrs.js} +2 -2
- package/build/server/chunks/{utils2-QuTTpZq0.js.map → utils2-fF4hylrs.js.map} +1 -1
- package/build/server/index.js +2 -2
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +70 -70
- package/build/server/manifest.js.map +1 -1
- package/package.json +5 -5
- package/templates/.env.example +8 -0
- package/build/client/.!34937!selva_example_0_1_0.gh +0 -0
- package/build/client/_app/immutable/assets/20.5bKkcx-V.css +0 -1
- package/build/client/_app/immutable/assets/20.5bKkcx-V.css.br +0 -0
- package/build/client/_app/immutable/assets/20.5bKkcx-V.css.gz +0 -0
- package/build/client/_app/immutable/chunks/B0M-tm96.js.br +0 -0
- package/build/client/_app/immutable/chunks/B0M-tm96.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ba2Ugq_t.js.br +0 -0
- package/build/client/_app/immutable/chunks/Ba2Ugq_t.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BldLEHH8.js.br +0 -0
- package/build/client/_app/immutable/chunks/BldLEHH8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BnGN4Ix-.js.br +0 -0
- package/build/client/_app/immutable/chunks/BnGN4Ix-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CnbBd0os.js.br +0 -0
- package/build/client/_app/immutable/chunks/CyUe9WIm.js.br +0 -0
- package/build/client/_app/immutable/chunks/CyUe9WIm.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.R0cA7z-3.js.br +0 -0
- package/build/client/_app/immutable/entry/app.R0cA7z-3.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.DuuVgzCE.js +0 -1
- package/build/client/_app/immutable/entry/start.DuuVgzCE.js.br +0 -0
- package/build/client/_app/immutable/entry/start.DuuVgzCE.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.KJ-PiM1c.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.KJ-PiM1c.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.iTQblN3h.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.iTQblN3h.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.D7vQOfVW.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.D7vQOfVW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.CEGRwaw5.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.CEGRwaw5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.DP0RHUIL.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.DP0RHUIL.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.C5BZvt5A.js +0 -16
- package/build/client/_app/immutable/nodes/15.C5BZvt5A.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.C5BZvt5A.js.gz +0 -0
- package/build/client/_app/immutable/nodes/16.ChhIZf_i.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.DL0oF7lP.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.DL0oF7lP.js.gz +0 -0
- package/build/client/_app/immutable/nodes/19.CCJMnv49.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.CCJMnv49.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.wQUgS03u.js +0 -1
- package/build/client/_app/immutable/nodes/2.wQUgS03u.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.wQUgS03u.js.gz +0 -0
- package/build/client/_app/immutable/nodes/20.De0vu3AF.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.De0vu3AF.js.gz +0 -0
- package/build/client/_app/immutable/nodes/21.DpNlPoKj.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.DpNlPoKj.js.gz +0 -0
- package/build/client/_app/immutable/nodes/23.CMmwabln.js.br +0 -0
- package/build/client/_app/immutable/nodes/23.CMmwabln.js.gz +0 -0
- package/build/client/_app/immutable/nodes/24.CuYhfWpg.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.CuYhfWpg.js.gz +0 -0
- package/build/client/_app/immutable/nodes/27.xAPzIANf.js.br +0 -0
- package/build/client/_app/immutable/nodes/27.xAPzIANf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/28.DwzOZwKl.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.DwzOZwKl.js.gz +0 -0
- package/build/client/_app/immutable/nodes/29.8CK2Warj.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.8CK2Warj.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.CRsFANhR.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CRsFANhR.js.gz +0 -0
- package/build/client/_app/immutable/nodes/30.Cj-Aax_q.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.Cj-Aax_q.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.CtPFMefZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.CtPFMefZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.DpMqwqL2.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.DpMqwqL2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.B8Lrh4Sn.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.B8Lrh4Sn.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.BpnmUNwu.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.BpnmUNwu.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.-tjBCa1C.js +0 -1
- package/build/client/_app/immutable/nodes/9.-tjBCa1C.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.-tjBCa1C.js.gz +0 -0
- package/build/server/chunks/13-BTAtM4vf.js.map +0 -1
- package/build/server/chunks/14-x6FJT6Iw.js.map +0 -1
- package/build/server/chunks/15-DGiz0g4w.js.map +0 -1
- package/build/server/chunks/19-B0hG9_9r.js.map +0 -1
- package/build/server/chunks/2-_zknF6gb.js.map +0 -1
- package/build/server/chunks/21-CQ2mvrOt.js.map +0 -1
- package/build/server/chunks/_layout.svelte-HGSVxA0R.js.map +0 -1
- package/build/server/chunks/_page.svelte-BCCCalas.js.map +0 -1
- package/build/server/chunks/_page.svelte-BR8dze-7.js.map +0 -1
- package/build/server/chunks/_page.svelte-BptS1zpT.js.map +0 -1
- package/build/server/chunks/_server.ts-AE1drj36.js.map +0 -1
- package/build/server/chunks/_server.ts-Cjz2LZbt.js.map +0 -1
- package/build/server/chunks/_server.ts-gCCprE5T.js.map +0 -1
- package/build/server/chunks/access.server-DVG3xnR_.js.map +0 -1
- package/build/server/chunks/auth-bootstrap.server-dy8_QSAP.js.map +0 -1
- package/build/server/chunks/hooks.server-D5z2JKsD.js.map +0 -1
- package/build/server/chunks/providers.server-Duyx-08B.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { error, json } from '@sveltejs/kit';
|
|
2
|
-
import { j as getComputeServerConfigStore } from './providers.server-
|
|
2
|
+
import { j as getComputeServerConfigStore } from './providers.server-D1dTI3cw.js';
|
|
3
3
|
import './context-9tV9WxQ5.js';
|
|
4
|
-
import { f as findServerById } from './utils2-
|
|
5
|
-
import { r as requireManageCompute } from './access.server-
|
|
4
|
+
import { f as findServerById } from './utils2-fF4hylrs.js';
|
|
5
|
+
import { r as requireManageCompute } from './access.server-Cpz6F2ZC.js';
|
|
6
6
|
import './shared-server-DaWdgxVh.js';
|
|
7
7
|
import 'node:url';
|
|
8
8
|
import 'node:path';
|
|
@@ -11,7 +11,7 @@ import 'node:crypto';
|
|
|
11
11
|
import 'node:fs/promises';
|
|
12
12
|
import '@supabase/supabase-js';
|
|
13
13
|
import 'zod';
|
|
14
|
-
import './api-errors-
|
|
14
|
+
import './api-errors-CBEdAg2T.js';
|
|
15
15
|
|
|
16
16
|
const TIMEOUT_MS = 8e3;
|
|
17
17
|
function fetchFromServer(serverUrl, apiKey, path) {
|
|
@@ -61,4 +61,4 @@ const GET = async ({ url, locals }) => {
|
|
|
61
61
|
};
|
|
62
62
|
|
|
63
63
|
export { GET };
|
|
64
|
-
//# sourceMappingURL=_server.ts-
|
|
64
|
+
//# sourceMappingURL=_server.ts-Dty-h13-.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-Dty-h13-.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;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { error, json } from '@sveltejs/kit';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { h as getProjectProvider } from './providers.server-
|
|
4
|
-
import { o as requireCanManageMembers, p as requireTargetIsOrgMember } from './access.server-
|
|
5
|
-
import { h as handleApiError, t as throwZodError } from './api-errors-
|
|
3
|
+
import { h as getProjectProvider } from './providers.server-D1dTI3cw.js';
|
|
4
|
+
import { o as requireCanManageMembers, p as requireTargetIsOrgMember } from './access.server-Cpz6F2ZC.js';
|
|
5
|
+
import { h as handleApiError, t as throwZodError } from './api-errors-CBEdAg2T.js';
|
|
6
6
|
import { i as ProjectRoleSchema } from './context-9tV9WxQ5.js';
|
|
7
7
|
import './shared-server-DaWdgxVh.js';
|
|
8
8
|
import 'node:url';
|
|
@@ -58,4 +58,4 @@ const POST = async ({ params, request, locals }) => {
|
|
|
58
58
|
};
|
|
59
59
|
|
|
60
60
|
export { GET, POST };
|
|
61
|
-
//# sourceMappingURL=_server.ts-
|
|
61
|
+
//# sourceMappingURL=_server.ts-HHpSHV0x.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-HHpSHV0x.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/projects/_id_/members/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { b as getProjectProvider } from \"../../../../../../chunks/providers.server.js\";\nimport { o as requireCanManageMembers, p as requireTargetIsOrgMember } from \"../../../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../../../chunks/api-errors.js\";\nimport { i as ProjectRoleSchema } from \"../../../../../../chunks/context.js\";\nconst AddMemberSchema = z.object({\n userId: z.string().min(1, \"userId is required\"),\n role: ProjectRoleSchema\n});\nconst GET = async ({ params, locals }) => {\n const { id } = params;\n if (!id) throw error(400, \"Missing project ID\");\n await requireCanManageMembers(locals, id);\n const ctx = locals.ctx;\n try {\n const page = await getProjectProvider().listProjectMembers(ctx, id, { limit: 200 });\n return json({ members: page.items });\n } catch (err) {\n handleApiError(err, \"Failed to load members\");\n }\n};\nconst POST = async ({ params, request, locals }) => {\n const { id } = params;\n if (!id) throw error(400, \"Missing project ID\");\n await requireCanManageMembers(locals, id);\n const ctx = locals.ctx;\n const body = await request.json().catch(() => null);\n const parsed = AddMemberSchema.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const project = await getProjectProvider().getProject(ctx, id);\n if (!project) throw error(404, \"Project not found\");\n await requireTargetIsOrgMember(locals, project.orgId, parsed.data.userId);\n const now = (/* @__PURE__ */ new Date()).toISOString();\n const member = {\n projectId: id,\n userId: parsed.data.userId,\n role: parsed.data.role,\n joinedAt: now,\n updatedAt: now,\n updatedBy: ctx.userId || parsed.data.userId,\n deletedAt: null\n };\n try {\n await getProjectProvider().addProjectMember(ctx, member);\n return json(member, { status: 201 });\n } catch (err) {\n handleApiError(err, \"Failed to add member\");\n }\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { error, json } from '@sveltejs/kit';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { M as MEMBER_ASSIGNABLE_PERMISSIONS, a as ALL_ORG_PERMISSIONS, f as OrgRoleSchema } from './context-9tV9WxQ5.js';
|
|
4
|
-
import { c as getOrganizationProvider } from './providers.server-
|
|
5
|
-
import { i as requireManageOrgMembers } from './access.server-
|
|
6
|
-
import { t as throwZodError, h as handleApiError } from './api-errors-
|
|
4
|
+
import { c as getOrganizationProvider } from './providers.server-D1dTI3cw.js';
|
|
5
|
+
import { i as requireManageOrgMembers } from './access.server-Cpz6F2ZC.js';
|
|
6
|
+
import { t as throwZodError, h as handleApiError } from './api-errors-CBEdAg2T.js';
|
|
7
7
|
import './shared-server-DaWdgxVh.js';
|
|
8
8
|
import 'node:url';
|
|
9
9
|
import 'node:path';
|
|
@@ -78,4 +78,4 @@ const PATCH = async ({ params, request, locals }) => {
|
|
|
78
78
|
};
|
|
79
79
|
|
|
80
80
|
export { PATCH };
|
|
81
|
-
//# sourceMappingURL=_server.ts-
|
|
81
|
+
//# sourceMappingURL=_server.ts-HrxAWCu8.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-HrxAWCu8.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/orgs/_orgId_/members/_userId_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { A as ALL_ORG_PERMISSIONS, e as OrgRoleSchema, M as MEMBER_ASSIGNABLE_PERMISSIONS } from \"../../../../../../../chunks/context.js\";\nimport { a as getOrganizationProvider } from \"../../../../../../../chunks/providers.server.js\";\nimport { i as requireManageOrgMembers } from \"../../../../../../../chunks/access.server.js\";\nimport { t as throwZodError, h as handleApiError } from \"../../../../../../../chunks/api-errors.js\";\nconst PERMISSIONS_SCHEMA = z.array(\n z.enum(ALL_ORG_PERMISSIONS)\n);\nconst PatchSchema = z.object({\n role: OrgRoleSchema.optional(),\n permissions: PERMISSIONS_SCHEMA.optional()\n}).refine((b) => b.role !== void 0 || b.permissions !== void 0, {\n message: \"Provide at least one of role, permissions\"\n});\nconst PATCH = async ({ params, request, locals }) => {\n const { orgId, userId } = params;\n if (!orgId || !userId) throw error(400, \"Missing org ID or user ID\");\n requireManageOrgMembers(locals);\n const ctx = locals.ctx;\n if (ctx.actingOrgId !== orgId) {\n throw error(403, \"Acting org does not match the target org.\");\n }\n const body = await request.json().catch(() => null);\n const parsed = PatchSchema.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const patch = parsed.data;\n const orgs = getOrganizationProvider();\n const [actorMember, target] = await Promise.all([\n orgs.getOrgMember(ctx, orgId, ctx.userId),\n orgs.getOrgMember(ctx, orgId, userId)\n ]);\n if (!target) throw error(404, \"Member not found in this organization.\");\n if (!actorMember) throw error(403, \"You are not a member of this organization.\");\n if (patch.role !== void 0 && patch.role !== target.role) {\n if (actorMember.role !== \"owner\") {\n throw error(403, \"Only the org owner can change roles.\");\n }\n if (target.role === \"owner\" && patch.role !== \"owner\") {\n const page = await orgs.listOrgMembers(ctx, orgId, { limit: 200 });\n const otherOwners = page.items.filter(\n (m) => m.role === \"owner\" && m.userId !== target.userId && !m.deletedAt\n );\n if (otherOwners.length === 0) {\n throw error(\n 409,\n \"Cannot demote the sole owner of this organization. Promote another member to owner first.\"\n );\n }\n }\n await orgs.updateOrgMemberRole(ctx, orgId, userId, patch.role);\n }\n if (patch.permissions !== void 0) {\n const effectiveRole = patch.role ?? target.role;\n const valid = effectiveRole === \"member\" ? new Set(MEMBER_ASSIGNABLE_PERMISSIONS) : new Set(ALL_ORG_PERMISSIONS);\n const invalid = patch.permissions.filter((p) => !valid.has(p));\n if (invalid.length > 0) {\n throw error(\n 400,\n `Permissions [${invalid.join(\", \")}] cannot be assigned to a ${effectiveRole}.`\n );\n }\n try {\n await orgs.updateOrgMemberPermissions(ctx, orgId, userId, patch.permissions);\n } catch (err) {\n handleApiError(err, \"Failed to update permissions\");\n }\n }\n return json({ success: true });\n};\nexport {\n PATCH\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { error, json } from '@sveltejs/kit';
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
3
|
import { z } from 'zod';
|
|
4
|
-
import { d as getInviteStore } from './providers.server-
|
|
5
|
-
import { i as requireManageOrgMembers } from './access.server-
|
|
6
|
-
import { h as handleApiError, t as throwZodError } from './api-errors-
|
|
4
|
+
import { d as getInviteStore } from './providers.server-D1dTI3cw.js';
|
|
5
|
+
import { i as requireManageOrgMembers } from './access.server-Cpz6F2ZC.js';
|
|
6
|
+
import { h as handleApiError, t as throwZodError } from './api-errors-CBEdAg2T.js';
|
|
7
7
|
import { M as MEMBER_ASSIGNABLE_PERMISSIONS, D as DEFAULT_ORG_PERMISSIONS, f as OrgRoleSchema, P as PlatformPermissionSchema, O as OrgPermissionSchema } from './context-9tV9WxQ5.js';
|
|
8
8
|
import { s as splitFlatPermissions } from './permissions-compat.server-DSV7bClF.js';
|
|
9
9
|
import { m as mintRawToken, h as hashToken } from './token.server2-D0Z99lBB.js';
|
|
@@ -67,4 +67,4 @@ const POST = async ({ request, locals, url }) => {
|
|
|
67
67
|
};
|
|
68
68
|
|
|
69
69
|
export { GET, POST };
|
|
70
|
-
//# sourceMappingURL=_server.ts-
|
|
70
|
+
//# sourceMappingURL=_server.ts-HtL-WwFA.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-HtL-WwFA.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/invites/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { randomUUID } from \"node:crypto\";\nimport { z } from \"zod\";\nimport { n as getInviteStore } from \"../../../../chunks/providers.server.js\";\nimport { i as requireManageOrgMembers } from \"../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../chunks/api-errors.js\";\nimport { P as PlatformPermissionSchema, O as OrgPermissionSchema, e as OrgRoleSchema, M as MEMBER_ASSIGNABLE_PERMISSIONS, D as DEFAULT_ORG_PERMISSIONS } from \"../../../../chunks/context.js\";\nimport { s as splitFlatPermissions } from \"../../../../chunks/permissions-compat.server.js\";\nimport { m as mintRawToken, h as hashToken } from \"../../../../chunks/token.server2.js\";\nconst FlatPermissionSchema = z.union([PlatformPermissionSchema, OrgPermissionSchema]);\nconst CreateBody = z.object({\n email: z.string().email(\"Valid email is required\").transform((s) => s.toLowerCase().trim()),\n orgRole: OrgRoleSchema.default(\"member\"),\n permissions: z.array(FlatPermissionSchema).default([])\n});\nconst INVITE_TTL_MS = 7 * 24 * 60 * 60 * 1e3;\nconst GET = async ({ locals }) => {\n requireManageOrgMembers(locals);\n const ctx = locals.ctx;\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n try {\n const page = await getInviteStore().listByOrg(ctx, ctx.actingOrgId, { limit: 200 });\n const items = page.items.map(({ tokenHash: _omit, ...rest }) => rest);\n return json(items);\n } catch (err) {\n handleApiError(err, \"Failed to list invites\");\n }\n};\nconst POST = async ({ request, locals, url }) => {\n requireManageOrgMembers(locals);\n const ctx = locals.ctx;\n const user = locals.user;\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n const body = await request.json().catch(() => null);\n const parsed = CreateBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n try {\n const { org: submittedOrgPerms } = splitFlatPermissions(parsed.data.permissions);\n const orgPermissions = parsed.data.orgRole === \"member\" ? submittedOrgPerms.filter((p) => MEMBER_ASSIGNABLE_PERMISSIONS.includes(p)) : [...DEFAULT_ORG_PERMISSIONS[parsed.data.orgRole]];\n const rawToken = mintRawToken();\n const now = /* @__PURE__ */ new Date();\n const invite = {\n id: randomUUID(),\n tokenHash: hashToken(rawToken),\n email: parsed.data.email,\n orgId: ctx.actingOrgId,\n orgRole: parsed.data.orgRole,\n orgPermissions,\n invitedBy: user.id,\n createdAt: now.toISOString(),\n expiresAt: new Date(now.getTime() + INVITE_TTL_MS).toISOString()\n };\n await getInviteStore().create(ctx, invite);\n const acceptUrl = `${url.origin}/accept-invite?token=${rawToken}`;\n const { tokenHash: _omit, ...inviteForClient } = invite;\n return json({ invite: inviteForClient, acceptUrl }, { status: 201 });\n } catch (err) {\n handleApiError(err, \"Failed to create invite\");\n }\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { error, json } from '@sveltejs/kit';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { randomUUID } from 'node:crypto';
|
|
4
|
-
import { k as getPlatformProjectGrantStore, c as getOrganizationProvider, e as getUserProfileStore, h as getProjectProvider } from './providers.server-
|
|
5
|
-
import { a as requireInstanceAdmin } from './access.server-
|
|
6
|
-
import { h as handleApiError, t as throwZodError } from './api-errors-
|
|
4
|
+
import { k as getPlatformProjectGrantStore, c as getOrganizationProvider, e as getUserProfileStore, f as flag, h as getProjectProvider } from './providers.server-D1dTI3cw.js';
|
|
5
|
+
import { a as requireInstanceAdmin } from './access.server-Cpz6F2ZC.js';
|
|
6
|
+
import { h as handleApiError, t as throwZodError } from './api-errors-CBEdAg2T.js';
|
|
7
7
|
import { S as SYSTEM_CONTEXT } from './context-9tV9WxQ5.js';
|
|
8
8
|
import './shared-server-DaWdgxVh.js';
|
|
9
9
|
import 'node:url';
|
|
@@ -18,6 +18,7 @@ const CreateGrantBody = z.object({
|
|
|
18
18
|
canSolve: z.boolean()
|
|
19
19
|
});
|
|
20
20
|
async function assertPlatformProject(id) {
|
|
21
|
+
if (!flag("ENABLE_PLATFORM_PROJECTS")) throw error(404, "Not found");
|
|
21
22
|
const project = await getProjectProvider().getProject(SYSTEM_CONTEXT, id);
|
|
22
23
|
if (!project || project.visibility !== "platform") {
|
|
23
24
|
throw error(404, "Platform project not found");
|
|
@@ -69,4 +70,4 @@ const POST = async ({ params, request, locals }) => {
|
|
|
69
70
|
};
|
|
70
71
|
|
|
71
72
|
export { GET, POST };
|
|
72
|
-
//# sourceMappingURL=_server.ts-
|
|
73
|
+
//# sourceMappingURL=_server.ts-JUsPxh3B.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-JUsPxh3B.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, f as flag, 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 if (!flag(\"ENABLE_PLATFORM_PROJECTS\")) throw error(404, \"Not found\");\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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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { error, json } from '@sveltejs/kit';
|
|
2
|
-
import { r as definitionService } from './providers.server-
|
|
3
|
-
import { g as requireEditableDefinition } from './access.server-
|
|
4
|
-
import { h as handleApiError, t as throwZodError } from './api-errors-
|
|
2
|
+
import { r as definitionService } from './providers.server-D1dTI3cw.js';
|
|
3
|
+
import { g as requireEditableDefinition } from './access.server-Cpz6F2ZC.js';
|
|
4
|
+
import { h as handleApiError, t as throwZodError } from './api-errors-CBEdAg2T.js';
|
|
5
5
|
import { G as GH_EXTENSIONS } from './types-DxzJoaA4.js';
|
|
6
6
|
import { G as GuidSchema, c as UpdateMetadataInputSchema } from './context-9tV9WxQ5.js';
|
|
7
7
|
import { d as MAX_GH_FILE_SIZE } from './computeLimits-FIJ-Mzn4.js';
|
|
@@ -73,4 +73,4 @@ const PUT = async ({ params, request, locals }) => {
|
|
|
73
73
|
};
|
|
74
74
|
|
|
75
75
|
export { DELETE, POST, PUT };
|
|
76
|
-
//# sourceMappingURL=_server.ts-
|
|
76
|
+
//# sourceMappingURL=_server.ts-wKzFLxYm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-wKzFLxYm.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_guid_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { k as definitionService } from \"../../../../../chunks/providers.server.js\";\nimport { g as requireEditableDefinition } from \"../../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../../chunks/api-errors.js\";\nimport { G as GH_EXTENSIONS } from \"../../../../../chunks/types.js\";\nimport { G as GuidSchema, b as UpdateMetadataInputSchema } from \"../../../../../chunks/context.js\";\nimport { d as MAX_GH_FILE_SIZE } from \"../../../../../chunks/computeLimits.js\";\nconst POST = async ({ params, request, locals }) => {\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) throw error(400, \"Invalid or missing GUID\");\n const formData = await request.formData();\n const file = formData.get(\"file\");\n if (!(file instanceof File)) throw error(400, \"A Grasshopper (.gh or .ghx) file is required\");\n const changeNoteRaw = formData.get(\"changeNote\");\n const changeNote = typeof changeNoteRaw === \"string\" ? changeNoteRaw.slice(0, 1e3) : void 0;\n const ext = file.name.slice(file.name.lastIndexOf(\".\")).toLowerCase();\n if (!GH_EXTENSIONS.includes(ext)) {\n throw error(400, `File type not allowed. Allowed: ${GH_EXTENSIONS.join(\", \")}`);\n }\n if (file.size > MAX_GH_FILE_SIZE) {\n throw error(400, `File too large. Max size: ${MAX_GH_FILE_SIZE / (1024 * 1024)} MB`);\n }\n const { ctx } = await requireEditableDefinition(locals, guidParsed.data);\n const fileExt = ext.slice(1);\n try {\n const data = new Uint8Array(await file.arrayBuffer());\n const version = await definitionService.uploadVersion(\n ctx,\n guidParsed.data,\n data,\n fileExt,\n file.name,\n changeNote\n );\n return json({ success: true, version });\n } catch (err) {\n handleApiError(err, \"Failed to upload definition version\");\n }\n};\nconst DELETE = async ({ params, locals }) => {\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) throw error(400, \"Invalid or missing GUID\");\n const { ctx } = await requireEditableDefinition(locals, guidParsed.data);\n try {\n await definitionService.delete(ctx, guidParsed.data);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to delete definition\");\n }\n};\nconst PUT = async ({ params, request, locals }) => {\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) throw error(400, \"Invalid or missing GUID\");\n const { ctx } = await requireEditableDefinition(locals, guidParsed.data);\n const body = await request.json().catch(() => null);\n const parsed = UpdateMetadataInputSchema.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n try {\n await definitionService.updateMeta(ctx, guidParsed.data, parsed.data);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to update definition\");\n }\n};\nexport {\n DELETE,\n POST,\n PUT\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAOK,MAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AACpD,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AACtD,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,yBAAyB,CAAC;AACtE,EAAE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE;AAC3C,EAAE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;AACnC,EAAE,IAAI,EAAE,IAAI,YAAY,IAAI,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,8CAA8C,CAAC;AAC/F,EAAE,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC;AAClD,EAAE,MAAM,UAAU,GAAG,OAAO,aAAa,KAAK,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM;AAC7F,EAAE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE;AACvE,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACpC,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,gCAAgC,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnF,EAAE;AACF,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,gBAAgB,EAAE;AACpC,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,0BAA0B,EAAE,gBAAgB,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACxF,EAAE;AACF,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,yBAAyB,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC;AAC1E,EAAE,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9B,EAAE,IAAI;AACN,IAAI,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;AACzD,IAAI,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,aAAa;AACzD,MAAM,GAAG;AACT,MAAM,UAAU,CAAC,IAAI;AACrB,MAAM,IAAI;AACV,MAAM,OAAO;AACb,MAAM,IAAI,CAAC,IAAI;AACf,MAAM;AACN,KAAK;AACL,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3C,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,qCAAqC,CAAC;AAC9D,EAAE;AACF;AACK,MAAC,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC7C,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AACtD,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,yBAAyB,CAAC;AACtE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,yBAAyB,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC;AAC1E,EAAE,IAAI;AACN,IAAI,MAAM,iBAAiB,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC;AACxD,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,6BAA6B,CAAC;AACtD,EAAE;AACF;AACK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AACnD,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AACtD,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,yBAAyB,CAAC;AACtE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,yBAAyB,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC;AAC1E,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,iBAAiB,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;AACzE,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,6BAA6B,CAAC;AACtD,EAAE;AACF;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { error, redirect } from '@sveltejs/kit';
|
|
2
2
|
import { h as hasPermission, A as ALL_PLATFORM_PERMISSIONS } from './context-9tV9WxQ5.js';
|
|
3
|
-
import { i as getDefinitionMeta, c as getOrganizationProvider, f as flag, h as getProjectProvider, k as getPlatformProjectGrantStore } from './providers.server-
|
|
4
|
-
import { h as handleApiError } from './api-errors-
|
|
3
|
+
import { i as getDefinitionMeta, c as getOrganizationProvider, f as flag, h as getProjectProvider, k as getPlatformProjectGrantStore } from './providers.server-D1dTI3cw.js';
|
|
4
|
+
import { h as handleApiError } from './api-errors-CBEdAg2T.js';
|
|
5
5
|
import 'zod';
|
|
6
6
|
import './shared-server-DaWdgxVh.js';
|
|
7
7
|
import 'node:url';
|
|
@@ -20,10 +20,12 @@ function withAdminBypass(platformPermissions, rule) {
|
|
|
20
20
|
return rule();
|
|
21
21
|
}
|
|
22
22
|
function canView(input) {
|
|
23
|
-
const { project, member, orgMember, allowCrossOrgPublic, platformPermissions, platformGrants, actingOrgId, userId } = input;
|
|
23
|
+
const { project, member, orgMember, allowCrossOrgPublic, enablePlatformProjects, platformPermissions, platformGrants, actingOrgId, userId } = input;
|
|
24
24
|
if (!project)
|
|
25
25
|
return false;
|
|
26
26
|
if (project.visibility === "platform") {
|
|
27
|
+
if (!enablePlatformProjects)
|
|
28
|
+
return false;
|
|
27
29
|
if (isInstanceAdmin(platformPermissions))
|
|
28
30
|
return true;
|
|
29
31
|
return platformGrants.some((g) => g.granteeType === "user" && g.granteeId === userId || g.granteeType === "org" && g.granteeId === actingOrgId);
|
|
@@ -37,10 +39,12 @@ function canView(input) {
|
|
|
37
39
|
return false;
|
|
38
40
|
}
|
|
39
41
|
function canSolve(input) {
|
|
40
|
-
const { project, platformPermissions, platformGrants, actingOrgId, userId } = input;
|
|
42
|
+
const { project, enablePlatformProjects, platformPermissions, platformGrants, actingOrgId, userId } = input;
|
|
41
43
|
if (!project)
|
|
42
44
|
return false;
|
|
43
45
|
if (project.visibility === "platform") {
|
|
46
|
+
if (!enablePlatformProjects)
|
|
47
|
+
return false;
|
|
44
48
|
if (isInstanceAdmin(platformPermissions))
|
|
45
49
|
return true;
|
|
46
50
|
return platformGrants.some((g) => g.canSolve && (g.granteeType === "user" && g.granteeId === userId || g.granteeType === "org" && g.granteeId === actingOrgId));
|
|
@@ -48,19 +52,28 @@ function canSolve(input) {
|
|
|
48
52
|
return canView(input);
|
|
49
53
|
}
|
|
50
54
|
function canEdit(input) {
|
|
51
|
-
const { member, project, platformPermissions } = input;
|
|
52
|
-
if (project?.visibility === "platform")
|
|
55
|
+
const { member, project, enablePlatformProjects, platformPermissions } = input;
|
|
56
|
+
if (project?.visibility === "platform") {
|
|
57
|
+
if (!enablePlatformProjects)
|
|
58
|
+
return false;
|
|
53
59
|
return isInstanceAdmin(platformPermissions);
|
|
60
|
+
}
|
|
54
61
|
return member?.role === "owner" || member?.role === "editor";
|
|
55
62
|
}
|
|
56
63
|
function canManage(input) {
|
|
57
|
-
if (input.project?.visibility === "platform")
|
|
64
|
+
if (input.project?.visibility === "platform") {
|
|
65
|
+
if (!input.enablePlatformProjects)
|
|
66
|
+
return false;
|
|
58
67
|
return isInstanceAdmin(input.platformPermissions);
|
|
68
|
+
}
|
|
59
69
|
return input.member?.role === "owner";
|
|
60
70
|
}
|
|
61
71
|
function canEditProjectSettings(input) {
|
|
62
|
-
if (input.project?.visibility === "platform")
|
|
72
|
+
if (input.project?.visibility === "platform") {
|
|
73
|
+
if (!input.enablePlatformProjects)
|
|
74
|
+
return false;
|
|
63
75
|
return isInstanceAdmin(input.platformPermissions);
|
|
76
|
+
}
|
|
64
77
|
return input.member?.role === "owner";
|
|
65
78
|
}
|
|
66
79
|
function canChangeVisibilityToPublic(input) {
|
|
@@ -68,10 +81,12 @@ function canChangeVisibilityToPublic(input) {
|
|
|
68
81
|
return role === "owner" || role === "admin";
|
|
69
82
|
}
|
|
70
83
|
function canEditDefinition(input) {
|
|
71
|
-
const { project, definition, member, userId, platformPermissions } = input;
|
|
84
|
+
const { project, definition, member, userId, platformPermissions, enablePlatformProjects } = input;
|
|
72
85
|
if (!project || !definition)
|
|
73
86
|
return false;
|
|
74
87
|
if (project.visibility === "platform") {
|
|
88
|
+
if (!enablePlatformProjects)
|
|
89
|
+
return false;
|
|
75
90
|
return isInstanceAdmin(platformPermissions);
|
|
76
91
|
}
|
|
77
92
|
if (member?.role === "owner" || member?.role === "editor")
|
|
@@ -169,11 +184,14 @@ async function loadProjectOr404(ctx, projectId) {
|
|
|
169
184
|
}
|
|
170
185
|
async function buildProjectAccessInput(ctx, project, overrides = {}) {
|
|
171
186
|
const allowCrossOrgPublic = flag("ALLOW_CROSS_ORG_PUBLIC");
|
|
187
|
+
const enablePlatformProjects = flag("ENABLE_PLATFORM_PROJECTS");
|
|
172
188
|
let member = null;
|
|
173
189
|
let orgMember = null;
|
|
174
190
|
let platformGrants = [];
|
|
175
191
|
if (project.visibility === "platform") {
|
|
176
|
-
|
|
192
|
+
if (enablePlatformProjects) {
|
|
193
|
+
platformGrants = await getPlatformProjectGrantStore().listByProject(ctx, project.id);
|
|
194
|
+
}
|
|
177
195
|
} else if (project.visibility === "private") {
|
|
178
196
|
member = await getProjectProvider().getProjectMember(ctx, project.id, ctx.userId);
|
|
179
197
|
} else {
|
|
@@ -190,6 +208,7 @@ async function buildProjectAccessInput(ctx, project, overrides = {}) {
|
|
|
190
208
|
member,
|
|
191
209
|
orgMember,
|
|
192
210
|
allowCrossOrgPublic,
|
|
211
|
+
enablePlatformProjects,
|
|
193
212
|
platformGrants,
|
|
194
213
|
actingOrgId: ctx.actingOrgId ?? null,
|
|
195
214
|
userId: ctx.userId,
|
|
@@ -204,6 +223,7 @@ function projectAccessInputFromRows(ctx, project, rows) {
|
|
|
204
223
|
member: rows.member ?? null,
|
|
205
224
|
orgMember: rows.orgMember ?? null,
|
|
206
225
|
allowCrossOrgPublic: flag("ALLOW_CROSS_ORG_PUBLIC"),
|
|
226
|
+
enablePlatformProjects: flag("ENABLE_PLATFORM_PROJECTS"),
|
|
207
227
|
platformGrants: rows.platformGrants ?? [],
|
|
208
228
|
actingOrgId: ctx.actingOrgId ?? null,
|
|
209
229
|
userId: ctx.userId
|
|
@@ -327,7 +347,8 @@ async function requireEditableDefinition(locals, guid) {
|
|
|
327
347
|
definition: record,
|
|
328
348
|
member,
|
|
329
349
|
userId: ctx.userId,
|
|
330
|
-
platformPermissions: ctx.platformPermissions
|
|
350
|
+
platformPermissions: ctx.platformPermissions,
|
|
351
|
+
enablePlatformProjects: flag("ENABLE_PLATFORM_PROJECTS")
|
|
331
352
|
});
|
|
332
353
|
});
|
|
333
354
|
if (!allowed) throw error(403, "You do not have permission to edit this definition.");
|
|
@@ -346,7 +367,8 @@ async function requireCanEditDefinition(locals, projectId, definitionGuid) {
|
|
|
346
367
|
definition,
|
|
347
368
|
member,
|
|
348
369
|
userId: ctx.userId,
|
|
349
|
-
platformPermissions: ctx.platformPermissions
|
|
370
|
+
platformPermissions: ctx.platformPermissions,
|
|
371
|
+
enablePlatformProjects: flag("ENABLE_PLATFORM_PROJECTS")
|
|
350
372
|
});
|
|
351
373
|
});
|
|
352
374
|
if (!allowed) throw error(403, "You do not have permission to edit this definition.");
|
|
@@ -386,4 +408,4 @@ const access_server = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defin
|
|
|
386
408
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
387
409
|
|
|
388
410
|
export { canEdit as A, access_server as B, requireInstanceAdmin as a, requirePermission as b, requireManageInstanceUsers as c, requireCanEditDefinition as d, requireCanSolve as e, requireCanCreateDefinition as f, requireEditableDefinition as g, requireCanViewProject as h, requireManageOrgMembers as i, requireManageOrgCompute as j, requireCanCreateProject as k, requireCanManage as l, requireCanEditProjectSettings as m, canChangeVisibilityToPublic as n, requireCanManageMembers as o, requireTargetIsOrgMember as p, checkOwnerRemoval as q, requireManageCompute as r, requireCanReclaim as s, assertAnyPlatformPermission as t, assertPagePermission as u, assertManageCompute as v, withAdminBypass as w, assertManageInstanceUsers as x, canView as y, projectAccessInputFromRows as z };
|
|
389
|
-
//# sourceMappingURL=access.server-
|
|
411
|
+
//# sourceMappingURL=access.server-Cpz6F2ZC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access.server-Cpz6F2ZC.js","sources":["../../../.svelte-kit/adapter-node/chunks/access.server.js"],"sourcesContent":["import { error, redirect } from \"@sveltejs/kit\";\nimport { h as hasPermission, f as ALL_PLATFORM_PERMISSIONS } from \"./context.js\";\nimport { l as getDefinitionMeta, a as getOrganizationProvider, f as flag, b as getProjectProvider, c as getPlatformProjectGrantStore } from \"./providers.server.js\";\nimport { h as handleApiError } from \"./api-errors.js\";\nfunction isInstanceAdmin(platformPermissions) {\n return platformPermissions.includes(\"instance_admin\");\n}\nfunction withAdminBypass(platformPermissions, rule) {\n if (isInstanceAdmin(platformPermissions))\n return true;\n return rule();\n}\nfunction canView(input) {\n const { project, member, orgMember, allowCrossOrgPublic, enablePlatformProjects, platformPermissions, platformGrants, actingOrgId, userId } = input;\n if (!project)\n return false;\n if (project.visibility === \"platform\") {\n if (!enablePlatformProjects)\n return false;\n if (isInstanceAdmin(platformPermissions))\n return true;\n return platformGrants.some((g) => g.granteeType === \"user\" && g.granteeId === userId || g.granteeType === \"org\" && g.granteeId === actingOrgId);\n }\n if (project.visibility === \"private\")\n return member !== null;\n if (project.visibility === \"org\")\n return orgMember !== null;\n if (project.visibility === \"public\")\n return allowCrossOrgPublic ? true : orgMember !== null;\n return false;\n}\nfunction canSolve(input) {\n const { project, enablePlatformProjects, platformPermissions, platformGrants, actingOrgId, userId } = input;\n if (!project)\n return false;\n if (project.visibility === \"platform\") {\n if (!enablePlatformProjects)\n return false;\n if (isInstanceAdmin(platformPermissions))\n return true;\n return platformGrants.some((g) => g.canSolve && (g.granteeType === \"user\" && g.granteeId === userId || g.granteeType === \"org\" && g.granteeId === actingOrgId));\n }\n return canView(input);\n}\nfunction canEdit(input) {\n const { member, project, enablePlatformProjects, platformPermissions } = input;\n if (project?.visibility === \"platform\") {\n if (!enablePlatformProjects)\n return false;\n return isInstanceAdmin(platformPermissions);\n }\n return member?.role === \"owner\" || member?.role === \"editor\";\n}\nfunction canManage(input) {\n if (input.project?.visibility === \"platform\") {\n if (!input.enablePlatformProjects)\n return false;\n return isInstanceAdmin(input.platformPermissions);\n }\n return input.member?.role === \"owner\";\n}\nfunction canEditProjectSettings(input) {\n if (input.project?.visibility === \"platform\") {\n if (!input.enablePlatformProjects)\n return false;\n return isInstanceAdmin(input.platformPermissions);\n }\n return input.member?.role === \"owner\";\n}\nfunction canChangeVisibilityToPublic(input) {\n const role = input.orgMember?.role;\n return role === \"owner\" || role === \"admin\";\n}\nfunction canEditDefinition(input) {\n const { project, definition, member, userId, platformPermissions, enablePlatformProjects } = input;\n if (!project || !definition)\n return false;\n if (project.visibility === \"platform\") {\n if (!enablePlatformProjects)\n return false;\n return isInstanceAdmin(platformPermissions);\n }\n if (member?.role === \"owner\" || member?.role === \"editor\")\n return true;\n if (project.autoJoinOnUpload && userId === definition.ownerId)\n return true;\n return false;\n}\nfunction canReclaim(input) {\n const { project, orgMember, actingOrgId } = input;\n if (!project || !actingOrgId)\n return false;\n if (project.visibility === \"platform\")\n return false;\n if (actingOrgId !== project.orgId)\n return false;\n const role = orgMember?.role;\n return role === \"owner\" || role === \"admin\";\n}\nfunction canCreateProject(input) {\n const { orgMember, orgPermissions, actingOrgId, targetOrgId } = input;\n if (actingOrgId !== targetOrgId)\n return false;\n const role = orgMember?.role;\n if (role === \"owner\" || role === \"admin\")\n return true;\n if (role === \"member\" && orgPermissions.includes(\"manage_projects\"))\n return true;\n return false;\n}\nfunction checkOwnerRemoval(input) {\n if (input.target.role !== \"owner\")\n return \"ok\";\n const ownerCount = input.allMembers.filter((m) => m.role === \"owner\").length;\n if (ownerCount <= 1)\n return \"sole_owner\";\n if (!input.confirmed)\n return \"needs_confirm\";\n return \"ok\";\n}\nconst throwProviderError = handleApiError;\nfunction requireAuthed(locals) {\n const { user, ctx } = locals;\n if (!user || !ctx) throw error(401, \"Unauthorized\");\n return { user, ctx };\n}\nfunction requirePermission(locals, permission) {\n const { user, ctx } = requireAuthed(locals);\n if (!hasPermission(ctx, permission)) {\n throw error(403, `You don't have permission to do this.`);\n }\n return user;\n}\nfunction assertPagePermission(locals, permission) {\n const { user, ctx } = requireAuthed(locals);\n if (!hasPermission(ctx, permission)) {\n redirect(303, \"/admin\");\n }\n return user;\n}\nconst requireManageInstanceUsers = (locals) => requirePermission(locals, \"manage_instance_users\");\nconst requireManageCompute = (locals) => requirePermission(locals, \"manage_compute\");\nconst requireManageOrgMembers = (locals) => requirePermission(locals, \"manage_org_members\");\nconst requireManageOrgCompute = (locals) => requirePermission(locals, \"manage_org_compute\");\nconst requireManageDefinitions = (locals) => requirePermission(locals, \"manage_definitions\");\nconst requireManageProjects = (locals) => requirePermission(locals, \"manage_projects\");\nconst assertManageInstanceUsers = (locals) => assertPagePermission(locals, \"manage_instance_users\");\nconst assertManageCompute = (locals) => assertPagePermission(locals, \"manage_compute\");\nconst assertManageDefinitions = (locals) => assertPagePermission(locals, \"manage_definitions\");\nconst assertManageProjects = (locals) => assertPagePermission(locals, \"manage_projects\");\nconst requireInstanceAdmin = (locals) => requirePermission(locals, \"instance_admin\");\nfunction requireAnyPlatformPermission(locals) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = ALL_PLATFORM_PERMISSIONS.some((p) => hasPermission(ctx, p));\n if (!allowed) throw error(403, `You don't have permission to do this.`);\n return user;\n}\nfunction assertAnyPlatformPermission(locals) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = ALL_PLATFORM_PERMISSIONS.some((p) => hasPermission(ctx, p));\n if (!allowed) redirect(303, \"/library\");\n return user;\n}\nasync function managementBypassOrRun(ctx, check) {\n if (hasPermission(ctx, \"instance_admin\")) return true;\n return await check();\n}\nasync function contentCheck(check) {\n return await check();\n}\nasync function loadProjectOr404(ctx, projectId) {\n const project = await getProjectProvider().getProject(ctx, projectId);\n if (!project) throw error(404, \"Project not found\");\n return project;\n}\nasync function buildProjectAccessInput(ctx, project, overrides = {}) {\n const allowCrossOrgPublic = flag(\"ALLOW_CROSS_ORG_PUBLIC\");\n const enablePlatformProjects = flag(\"ENABLE_PLATFORM_PROJECTS\");\n let member = null;\n let orgMember = null;\n let platformGrants = [];\n if (project.visibility === \"platform\") {\n if (enablePlatformProjects) {\n platformGrants = await getPlatformProjectGrantStore().listByProject(ctx, project.id);\n }\n } else if (project.visibility === \"private\") {\n member = await getProjectProvider().getProjectMember(ctx, project.id, ctx.userId);\n } else {\n const skipOrgMember = project.visibility === \"public\" && allowCrossOrgPublic;\n [member, orgMember] = await Promise.all([\n getProjectProvider().getProjectMember(ctx, project.id, ctx.userId),\n skipOrgMember ? Promise.resolve(null) : getOrganizationProvider().getOrgMember(ctx, project.orgId, ctx.userId)\n ]);\n }\n return {\n orgPermissions: ctx.orgPermissions,\n platformPermissions: ctx.platformPermissions,\n project,\n member,\n orgMember,\n allowCrossOrgPublic,\n enablePlatformProjects,\n platformGrants,\n actingOrgId: ctx.actingOrgId ?? null,\n userId: ctx.userId,\n ...overrides\n };\n}\nfunction projectAccessInputFromRows(ctx, project, rows) {\n return {\n orgPermissions: ctx.orgPermissions,\n platformPermissions: ctx.platformPermissions,\n project,\n member: rows.member ?? null,\n orgMember: rows.orgMember ?? null,\n allowCrossOrgPublic: flag(\"ALLOW_CROSS_ORG_PUBLIC\"),\n enablePlatformProjects: flag(\"ENABLE_PLATFORM_PROJECTS\"),\n platformGrants: rows.platformGrants ?? [],\n actingOrgId: ctx.actingOrgId ?? null,\n userId: ctx.userId\n };\n}\nasync function requireCanEdit(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = await contentCheck(async () => {\n const project = await loadProjectOr404(ctx, projectId);\n return canEdit(await buildProjectAccessInput(ctx, project));\n });\n if (!allowed) throw error(403, \"You do not have permission to edit this project.\");\n return user;\n}\nasync function requireCanCreateDefinition(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const project = await loadProjectOr404(ctx, projectId);\n const allowed = await contentCheck(async () => {\n if (project.autoJoinOnUpload) return true;\n return canEdit(await buildProjectAccessInput(ctx, project));\n });\n if (!allowed) {\n throw error(403, \"You do not have permission to upload definitions to this project.\");\n }\n return { user, ctx, project };\n}\nasync function requireTargetIsOrgMember(locals, orgId, targetUserId) {\n const { ctx } = requireAuthed(locals);\n const member = await getOrganizationProvider().getOrgMember(ctx, orgId, targetUserId);\n if (!member) {\n throw error(400, \"User must be a member of this organization to be added to a project.\");\n }\n}\nasync function requireCanReclaim(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const project = await loadProjectOr404(ctx, projectId);\n const allowed = await managementBypassOrRun(ctx, async () => {\n const orgMember = await getOrganizationProvider().getOrgMember(ctx, project.orgId, ctx.userId);\n return canReclaim({\n project,\n orgMember,\n actingOrgId: ctx.actingOrgId ?? null\n });\n });\n if (!allowed) {\n throw error(403, \"Only org owners or admins of this project’s org can reclaim it.\");\n }\n return { user, ctx, project };\n}\nasync function requireCanCreateProject(locals, targetOrgId) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = await managementBypassOrRun(ctx, async () => {\n const orgMember = await getOrganizationProvider().getOrgMember(ctx, targetOrgId, ctx.userId);\n return canCreateProject({\n orgPermissions: ctx.orgPermissions,\n orgMember,\n actingOrgId: ctx.actingOrgId ?? null,\n targetOrgId\n });\n });\n if (!allowed) throw error(403, \"You do not have permission to create projects in this org.\");\n return { user, ctx };\n}\nasync function requireCanManage(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = await managementBypassOrRun(ctx, async () => {\n const project = await loadProjectOr404(ctx, projectId);\n return canManage(await buildProjectAccessInput(ctx, project));\n });\n if (!allowed) throw error(403, \"Only project owners can manage this project.\");\n return user;\n}\nasync function requireCanManageMembers(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = await managementBypassOrRun(ctx, async () => {\n const project = await loadProjectOr404(ctx, projectId);\n return canManage(await buildProjectAccessInput(ctx, project));\n });\n if (!allowed) throw error(403, \"Only project owners can manage members.\");\n return user;\n}\nasync function requireCanEditProjectSettings(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const project = await loadProjectOr404(ctx, projectId);\n const allowed = await managementBypassOrRun(\n ctx,\n async () => canEditProjectSettings(await buildProjectAccessInput(ctx, project))\n );\n if (!allowed) throw error(403, \"Only project owners can edit project settings.\");\n return { user, ctx, project };\n}\nasync function requireCanViewProject(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = await contentCheck(async () => {\n const project = await loadProjectOr404(ctx, projectId);\n return canView(await buildProjectAccessInput(ctx, project));\n });\n if (!allowed) throw error(403, \"You do not have access to this project.\");\n return user;\n}\nasync function requireCanSolve(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const project = await loadProjectOr404(ctx, projectId);\n const allowed = await contentCheck(\n async () => canSolve(await buildProjectAccessInput(ctx, project))\n );\n if (!allowed) throw error(403, \"You do not have access to this project.\");\n return { user, ctx, project };\n}\nasync function requireEditableDefinition(locals, guid) {\n const { ctx } = requireAuthed(locals);\n const record = await getDefinitionMeta().get(ctx, guid);\n if (!record) throw error(404, \"Definition not found\");\n const allowed = await contentCheck(async () => {\n const [project, member] = await Promise.all([\n getProjectProvider().getProject(ctx, record.projectId),\n getProjectProvider().getProjectMember(ctx, record.projectId, ctx.userId)\n ]);\n return canEditDefinition({\n project,\n definition: record,\n member,\n userId: ctx.userId,\n platformPermissions: ctx.platformPermissions,\n enablePlatformProjects: flag(\"ENABLE_PLATFORM_PROJECTS\")\n });\n });\n if (!allowed) throw error(403, \"You do not have permission to edit this definition.\");\n return { record, ctx };\n}\nasync function requireCanEditDefinition(locals, projectId, definitionGuid) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = await contentCheck(async () => {\n const [project, definition, member] = await Promise.all([\n getProjectProvider().getProject(ctx, projectId),\n getDefinitionMeta().get(ctx, definitionGuid),\n getProjectProvider().getProjectMember(ctx, projectId, ctx.userId)\n ]);\n return canEditDefinition({\n project,\n definition,\n member,\n userId: ctx.userId,\n platformPermissions: ctx.platformPermissions,\n enablePlatformProjects: flag(\"ENABLE_PLATFORM_PROJECTS\")\n });\n });\n if (!allowed) throw error(403, \"You do not have permission to edit this definition.\");\n return user;\n}\nconst access_server = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n assertAnyPlatformPermission,\n assertManageCompute,\n assertManageDefinitions,\n assertManageInstanceUsers,\n assertManageProjects,\n assertPagePermission,\n projectAccessInputFromRows,\n requireAnyPlatformPermission,\n requireCanCreateDefinition,\n requireCanCreateProject,\n requireCanEdit,\n requireCanEditDefinition,\n requireCanEditProjectSettings,\n requireCanManage,\n requireCanManageMembers,\n requireCanReclaim,\n requireCanSolve,\n requireCanViewProject,\n requireEditableDefinition,\n requireInstanceAdmin,\n requireManageCompute,\n requireManageDefinitions,\n requireManageInstanceUsers,\n requireManageOrgCompute,\n requireManageOrgMembers,\n requireManageProjects,\n requirePermission,\n requireTargetIsOrgMember,\n throwProviderError\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n canEdit as A,\n access_server as B,\n requireInstanceAdmin as a,\n requirePermission as b,\n requireManageInstanceUsers as c,\n requireCanEditDefinition as d,\n requireCanSolve as e,\n requireCanCreateDefinition as f,\n requireEditableDefinition as g,\n requireCanViewProject as h,\n requireManageOrgMembers as i,\n requireManageOrgCompute as j,\n requireCanCreateProject as k,\n requireCanManage as l,\n requireCanEditProjectSettings as m,\n canChangeVisibilityToPublic as n,\n requireCanManageMembers as o,\n requireTargetIsOrgMember as p,\n checkOwnerRemoval as q,\n requireManageCompute as r,\n requireCanReclaim as s,\n assertAnyPlatformPermission as t,\n assertPagePermission as u,\n assertManageCompute as v,\n withAdminBypass as w,\n assertManageInstanceUsers as x,\n canView as y,\n projectAccessInputFromRows as z\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { error } from '@sveltejs/kit';
|
|
2
2
|
import './context-9tV9WxQ5.js';
|
|
3
|
-
import { P as ProviderError } from './providers.server-
|
|
3
|
+
import { P as ProviderError } from './providers.server-D1dTI3cw.js';
|
|
4
4
|
|
|
5
5
|
function isSvelteKitError(err) {
|
|
6
6
|
return !!err && typeof err === "object" && "status" in err && "body" in err;
|
|
@@ -33,4 +33,4 @@ function throwZodError(err) {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
export { handleApiError as h, throwZodError as t };
|
|
36
|
-
//# sourceMappingURL=api-errors-
|
|
36
|
+
//# sourceMappingURL=api-errors-CBEdAg2T.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-errors-
|
|
1
|
+
{"version":3,"file":"api-errors-CBEdAg2T.js","sources":["../../../.svelte-kit/adapter-node/chunks/api-errors.js"],"sourcesContent":["import { error } from \"@sveltejs/kit\";\nimport \"./context.js\";\nimport { P as ProviderError } from \"./providers.server.js\";\nfunction isSvelteKitError(err) {\n return !!err && typeof err === \"object\" && \"status\" in err && \"body\" in err;\n}\nconst UNIQUE_CONSTRAINT_MESSAGES = {\n projects_org_name_unique: \"A project with that name already exists in this organization.\",\n projects_org_id_slug_key: \"A project with that name already exists in this organization.\",\n orgs_slug_key: \"An organization with that slug already exists.\",\n definitions_pkey: \"A definition with that ID already exists.\"\n};\nfunction friendlyConstraintMessage(raw) {\n for (const [name, msg] of Object.entries(UNIQUE_CONSTRAINT_MESSAGES)) {\n if (raw.includes(name)) return msg;\n }\n return null;\n}\nfunction handleApiError(err, fallback) {\n if (isSvelteKitError(err)) throw err;\n if (err instanceof ProviderError) {\n const friendly = friendlyConstraintMessage(err.message);\n throw error(err.statusCode, friendly ?? err.message);\n }\n console.error(`[API] ${fallback}:`, err);\n throw error(500, fallback);\n}\nfunction throwZodError(err) {\n const issue = err.issues[0];\n const path = issue.path.length ? `${issue.path.join(\".\")}: ` : \"\";\n throw error(400, `${path}${issue.message}`);\n}\nexport {\n handleApiError as h,\n throwZodError as t\n};\n"],"names":[],"mappings":";;;;AAGA,SAAS,gBAAgB,CAAC,GAAG,EAAE;AAC/B,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG;AAC7E;AACA,MAAM,0BAA0B,GAAG;AACnC,EAAE,wBAAwB,EAAE,+DAA+D;AAC3F,EAAE,wBAAwB,EAAE,+DAA+D;AAC3F,EAAE,aAAa,EAAE,gDAAgD;AACjE,EAAE,gBAAgB,EAAE;AACpB,CAAC;AACD,SAAS,yBAAyB,CAAC,GAAG,EAAE;AACxC,EAAE,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC,EAAE;AACxE,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG;AACtC,EAAE;AACF,EAAE,OAAO,IAAI;AACb;AACA,SAAS,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;AACvC,EAAE,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG;AACtC,EAAE,IAAI,GAAG,YAAY,aAAa,EAAE;AACpC,IAAI,MAAM,QAAQ,GAAG,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC;AAC3D,IAAI,MAAM,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC;AACxD,EAAE;AACF,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AAC1C,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC5B;AACA,SAAS,aAAa,CAAC,GAAG,EAAE;AAC5B,EAAE,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7B,EAAE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;AACnE,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7C;;;;"}
|
package/build/server/chunks/{auth-bootstrap.server-dy8_QSAP.js → auth-bootstrap.server-BnBerntQ.js}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { b as private_env } from './shared-server-DaWdgxVh.js';
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
3
|
import { S as SYSTEM_CONTEXT, A as ALL_PLATFORM_PERMISSIONS } from './context-9tV9WxQ5.js';
|
|
4
|
-
import { g as getAuthProvider, l as getPermissionStore, n as getDataProvider, t as tenancy, c as getOrganizationProvider, h as getProjectProvider } from './providers.server-
|
|
4
|
+
import { g as getAuthProvider, l as getPermissionStore, n as getDataProvider, t as tenancy, c as getOrganizationProvider, h as getProjectProvider } from './providers.server-D1dTI3cw.js';
|
|
5
5
|
import { s as slugify } from './slug-BGuFQjqe.js';
|
|
6
6
|
|
|
7
7
|
async function bootstrapUserSession(user) {
|
|
@@ -78,6 +78,7 @@ function shouldBootstrapUpn(upn, email, configuredEmail, mode) {
|
|
|
78
78
|
}
|
|
79
79
|
function wireHeaderAuthBootstrap() {
|
|
80
80
|
const auth = getAuthProvider();
|
|
81
|
+
if (!auth.proxyAuth) return;
|
|
81
82
|
if (typeof auth.setBootstrapAllowlistPolicy !== "function") {
|
|
82
83
|
if (private_env.BOOTSTRAP_INSTANCE_ADMIN_EMAIL?.trim()) {
|
|
83
84
|
console.warn(
|
|
@@ -94,4 +95,4 @@ function wireHeaderAuthBootstrap() {
|
|
|
94
95
|
}
|
|
95
96
|
|
|
96
97
|
export { bootstrapUserSession as b, wireHeaderAuthBootstrap as w };
|
|
97
|
-
//# sourceMappingURL=auth-bootstrap.server-
|
|
98
|
+
//# sourceMappingURL=auth-bootstrap.server-BnBerntQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-bootstrap.server-BnBerntQ.js","sources":["../../../.svelte-kit/adapter-node/chunks/auth-bootstrap.server.js"],"sourcesContent":["import { b as private_env } from \"./shared-server.js\";\nimport { randomUUID } from \"node:crypto\";\nimport { S as SYSTEM_CONTEXT, f as ALL_PLATFORM_PERMISSIONS } from \"./context.js\";\nimport { i as getDataProvider, h as getPermissionStore, t as tenancy, a as getOrganizationProvider, e as getAuthProvider, b as getProjectProvider } from \"./providers.server.js\";\nimport { s as slugify } from \"./slug.js\";\nasync function bootstrapUserSession(user) {\n await getDataProvider().ensureUser(SYSTEM_CONTEXT, user.id);\n const perms = getPermissionStore();\n const hasAdmin = await perms.hasInstanceAdmin(SYSTEM_CONTEXT);\n let grantedAdminHere = false;\n if (!hasAdmin) {\n if (!shouldBootstrapAdmin(user, private_env.BOOTSTRAP_INSTANCE_ADMIN_EMAIL, tenancy)) return;\n await perms.set(SYSTEM_CONTEXT, user.id, [...ALL_PLATFORM_PERMISSIONS]);\n grantedAdminHere = true;\n }\n if (tenancy !== \"single\") return;\n const orgs = getOrganizationProvider();\n const existing = await orgs.listOrgs(SYSTEM_CONTEXT, { limit: 1 });\n if (existing.items.length > 0) return;\n if (!grantedAdminHere) {\n const userPerms = await perms.getFor(SYSTEM_CONTEXT, user.id);\n if (!userPerms.includes(\"instance_admin\")) return;\n }\n await ensureSingleTenantDefaultOrg(user);\n}\nasync function ensureSingleTenantDefaultOrg(user) {\n if (tenancy !== \"single\") return;\n const orgs = getOrganizationProvider();\n const existing = await orgs.listOrgs(SYSTEM_CONTEXT, { limit: 1 });\n if (existing.items.length > 0) return;\n const displayName = typeof user.metadata?.displayName === \"string\" ? user.metadata.displayName : void 0;\n const orgName = displayName?.trim() || user.email?.split(\"@\")[0]?.trim() || \"Default\";\n const slug = slugify(orgName).length >= 3 ? slugify(orgName) : \"default\";\n const now = (/* @__PURE__ */ new Date()).toISOString();\n const org = {\n id: randomUUID(),\n name: orgName,\n slug,\n ownerId: user.id,\n createdBy: user.id,\n updatedBy: user.id,\n createdAt: now,\n updatedAt: now,\n deletedAt: null\n };\n await orgs.createOrg(SYSTEM_CONTEXT, org);\n const projects = getProjectProvider();\n const project = {\n id: randomUUID(),\n orgId: org.id,\n name: \"Default\",\n slug: \"default\",\n visibility: \"public\",\n ownerId: user.id,\n createdBy: user.id,\n updatedBy: user.id,\n autoJoinOnUpload: false,\n createdAt: now,\n updatedAt: now,\n deletedAt: null\n };\n await projects.createProject(SYSTEM_CONTEXT, project);\n}\nfunction shouldBootstrapAdmin(user, configuredEmail, mode) {\n const expected = configuredEmail?.trim().toLowerCase();\n if (mode === \"multi\" && !expected) return false;\n if (!expected) return true;\n const actual = user.email?.trim().toLowerCase();\n return !!actual && actual === expected;\n}\nfunction shouldBootstrapUpn(upn, email, configuredEmail, mode) {\n const expected = configuredEmail?.trim().toLowerCase();\n if (mode === \"multi\" && !expected) return false;\n if (!expected) return true;\n const candidate = (email ?? upn).trim().toLowerCase();\n return !!candidate && candidate === expected;\n}\nfunction wireHeaderAuthBootstrap() {\n const auth = getAuthProvider();\n if (!auth.proxyAuth) return;\n if (typeof auth.setBootstrapAllowlistPolicy !== \"function\") {\n if (private_env.BOOTSTRAP_INSTANCE_ADMIN_EMAIL?.trim()) {\n console.warn(\n \"[selva] BOOTSTRAP_INSTANCE_ADMIN_EMAIL is set but the installed @selvajs/header-auth-provider does not expose setBootstrapAllowlistPolicy. Upgrade the provider, or hand-seed header-allowlist.json.\"\n );\n }\n return;\n }\n auth.setBootstrapAllowlistPolicy(async ({ upn, email }) => {\n const hasAdmin = await getPermissionStore().hasInstanceAdmin(SYSTEM_CONTEXT);\n if (hasAdmin) return false;\n return shouldBootstrapUpn(upn, email, private_env.BOOTSTRAP_INSTANCE_ADMIN_EMAIL, tenancy);\n });\n}\nexport {\n bootstrapUserSession as b,\n wireHeaderAuthBootstrap as w\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import './context-9tV9WxQ5.js';
|
|
2
|
-
import { p as providers, L as LocalComputeServerStore } from './providers.server-
|
|
2
|
+
import { p as providers, L as LocalComputeServerStore } from './providers.server-D1dTI3cw.js';
|
|
3
3
|
|
|
4
4
|
let cached = null;
|
|
5
5
|
let inflight = null;
|
|
@@ -55,4 +55,4 @@ function isDegraded(report) {
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
export { getBootHealth as g, isDegraded as i };
|
|
58
|
-
//# sourceMappingURL=bootHealth.server-
|
|
58
|
+
//# sourceMappingURL=bootHealth.server-XLXnMQ_j.js.map
|