@selvajs/selva 4.2.0 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/client/_app/immutable/assets/0.-MS0dTYb.css +1 -0
- package/build/client/_app/immutable/assets/0.-MS0dTYb.css.br +0 -0
- package/build/client/_app/immutable/assets/0.-MS0dTYb.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/0owY5F6O.js +2 -0
- package/build/client/_app/immutable/chunks/0owY5F6O.js.br +0 -0
- package/build/client/_app/immutable/chunks/0owY5F6O.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{C98bdhQ5.js → 1O7Vyn3x.js} +1 -1
- package/build/client/_app/immutable/chunks/1O7Vyn3x.js.br +0 -0
- package/build/client/_app/immutable/chunks/1O7Vyn3x.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{-UMoMsui.js → 3Ah3Y6N9.js} +1 -1
- package/build/client/_app/immutable/chunks/3Ah3Y6N9.js.br +0 -0
- package/build/client/_app/immutable/chunks/3Ah3Y6N9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/6CzuHfQM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/9DES--UJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B-Kuf-9K.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B1z9if9B.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B21bldal.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B6_AR4oL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BEFa4rcT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BGIAOk5X.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BHhjUaik.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BIIXkPqf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BJTJCSLB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BLZ195WY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BM8Ok6pJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BOsr6E_d.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BTm-dDt9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BX0gN9mF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BaMCSMGs.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BfHBnYuG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BiG82jCv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BihI7LuH.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DNu_no60.js → BjlANOwQ.js} +1 -1
- package/build/client/_app/immutable/chunks/BjlANOwQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/BjlANOwQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bma65zV8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BnIDUuJL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BnZOgasr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BnzoF81W.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BpQqe39G.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BsKtJj5h.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BtugGMaj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{B6yEy6Wb.js → Buy2icyP.js} +1 -1
- package/build/client/_app/immutable/chunks/Buy2icyP.js.br +0 -0
- package/build/client/_app/immutable/chunks/Buy2icyP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bwn5lHBl.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BzBbrBKd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C33A5aSj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C3WxOOC9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C46MGZre.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CDmA5ezP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CE_gxD9G.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CGKZc1Kf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CIHhLSqA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CNC_mCsM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CYyqq9B1.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cbu9Tg11.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CeS0GhtF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CnXIg_dO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{2n-qzJg2.js → CpzrN_ad.js} +1 -1
- package/build/client/_app/immutable/chunks/CpzrN_ad.js.br +0 -0
- package/build/client/_app/immutable/chunks/CpzrN_ad.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cqb2-zYs.js +1 -0
- package/build/client/_app/immutable/chunks/Cqb2-zYs.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cqb2-zYs.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CsdWDH4Y.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CumXBEVX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CvUP44VI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CzCTTv8Q.js +1 -0
- package/build/client/_app/immutable/chunks/CzCTTv8Q.js.br +0 -0
- package/build/client/_app/immutable/chunks/CzCTTv8Q.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D-3pI9hp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D-Fls4-N.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{D37hHIb0.js → D0jw87aj.js} +1 -1
- package/build/client/_app/immutable/chunks/D0jw87aj.js.br +0 -0
- package/build/client/_app/immutable/chunks/D0jw87aj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BQ0arxbK.js → D1FLuKx5.js} +1 -1
- package/build/client/_app/immutable/chunks/D1FLuKx5.js.br +0 -0
- package/build/client/_app/immutable/chunks/D1FLuKx5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D1xkoVpc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DCBLBrrW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DEk358l3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DRNG0pfi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DRpLcVdK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DS1KfRtl.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DYfK6Plb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DZM0bVcB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D_gPt7DB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DdEmEaOR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/De-Sjn1V.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DeMiewtM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DfVTcmam.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DfbumCTS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Diyh8RG-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DkVLFJC2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DkpwXYYZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dl_x4ktn.js +1 -0
- package/build/client/_app/immutable/chunks/Dl_x4ktn.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dl_x4ktn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dn_lJm0y.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DqK2lhM-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dr-qnmvi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DsnmJJEf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DtFVCiwY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/KIV0kKdR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Q9Y439fs.js.gz +0 -0
- package/build/client/_app/immutable/chunks/T-Nslbso.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Uv0-HWHq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/XwEuxkth.js +4108 -0
- package/build/client/_app/immutable/chunks/XwEuxkth.js.br +0 -0
- package/build/client/_app/immutable/chunks/XwEuxkth.js.gz +0 -0
- package/build/client/_app/immutable/chunks/jO1WSR3P.js.gz +0 -0
- package/build/client/_app/immutable/chunks/snZK0J5H.js.gz +0 -0
- package/build/client/_app/immutable/chunks/vyYztzrZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/xQ1SsCxk.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.BU1ZTica.js +2 -0
- package/build/client/_app/immutable/entry/app.BU1ZTica.js.br +0 -0
- package/build/client/_app/immutable/entry/app.BU1ZTica.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.C_5mwPOZ.js +1 -0
- package/build/client/_app/immutable/entry/start.C_5mwPOZ.js.br +2 -0
- package/build/client/_app/immutable/entry/start.C_5mwPOZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.Dr3zOYh5.js +9 -0
- package/build/client/_app/immutable/nodes/0.Dr3zOYh5.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.Dr3zOYh5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.5JE3G8iG.js → 1.BGw1TtE-.js} +1 -1
- package/build/client/_app/immutable/nodes/1.BGw1TtE-.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.BGw1TtE-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{10.DpfN1qrg.js → 10.lZeHcKpq.js} +1 -1
- package/build/client/_app/immutable/nodes/10.lZeHcKpq.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.lZeHcKpq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.DUHLFhc8.js +2 -0
- package/build/client/_app/immutable/nodes/11.DUHLFhc8.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.DUHLFhc8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/12.C3AQ8jKc.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{13.D5OdE_HH.js → 13.DUetX8JN.js} +1 -1
- package/build/client/_app/immutable/nodes/13.DUetX8JN.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.DUetX8JN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{14.UGx5pLUS.js → 14.BMNgebxg.js} +1 -1
- package/build/client/_app/immutable/nodes/14.BMNgebxg.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.BMNgebxg.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.czhLtsoD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{16.CqZNgdz-.js → 16.BK5X4N0B.js} +1 -1
- package/build/client/_app/immutable/nodes/16.BK5X4N0B.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.BK5X4N0B.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{17.B1PHOW1Y.js → 17.DESUDRJ7.js} +1 -1
- package/build/client/_app/immutable/nodes/17.DESUDRJ7.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.DESUDRJ7.js.gz +0 -0
- package/build/client/_app/immutable/nodes/18.Cl9SXwAF.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{19.ClB_k0uw.js → 19.BGOmShx1.js} +1 -1
- package/build/client/_app/immutable/nodes/19.BGOmShx1.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.BGOmShx1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{2.uPLLf3gR.js → 2.Bil4apV-.js} +1 -1
- package/build/client/_app/immutable/nodes/2.Bil4apV-.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.Bil4apV-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/20.BN9CyZsk.js +11 -0
- package/build/client/_app/immutable/nodes/20.BN9CyZsk.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.BN9CyZsk.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{21.B1xX86Nz.js → 21.DLY2CWfL.js} +1 -1
- package/build/client/_app/immutable/nodes/21.DLY2CWfL.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.DLY2CWfL.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{23.BWuAu45o.js → 23.DwnJEjle.js} +1 -1
- package/build/client/_app/immutable/nodes/23.DwnJEjle.js.br +0 -0
- package/build/client/_app/immutable/nodes/23.DwnJEjle.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{24.DSWGE_q2.js → 24.C9nhiSAI.js} +1 -1
- package/build/client/_app/immutable/nodes/24.C9nhiSAI.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.C9nhiSAI.js.gz +0 -0
- package/build/client/_app/immutable/nodes/25.Boy7QQiW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/26.JTwwV2O8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{27.CjlEhW_1.js → 27.DDMHOK1v.js} +1 -1
- package/build/client/_app/immutable/nodes/27.DDMHOK1v.js.br +0 -0
- package/build/client/_app/immutable/nodes/27.DDMHOK1v.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{28.U-BnDxlP.js → 28.BKxO5tXo.js} +1 -1
- package/build/client/_app/immutable/nodes/28.BKxO5tXo.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.BKxO5tXo.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{29.cl9udKxV.js → 29.BE9agX-A.js} +1 -1
- package/build/client/_app/immutable/nodes/29.BE9agX-A.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.BE9agX-A.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{3.UKn7Q9OQ.js → 3.Cr_OcaHZ.js} +1 -1
- package/build/client/_app/immutable/nodes/3.Cr_OcaHZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.Cr_OcaHZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{30.DPqPYAg4.js → 30.1oMiKsa_.js} +1 -1
- package/build/client/_app/immutable/nodes/30.1oMiKsa_.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.1oMiKsa_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/31.SiZTd523.js.gz +0 -0
- package/build/client/_app/immutable/nodes/32.9Ta_FSIA.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.CieI7_Lb.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.CbYguvwB.js → 5.R3EURuYN.js} +1 -1
- package/build/client/_app/immutable/nodes/5.R3EURuYN.js.br +1 -0
- package/build/client/_app/immutable/nodes/5.R3EURuYN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.DZgUvAex.js → 6.XEBvU5zF.js} +1 -1
- package/build/client/_app/immutable/nodes/6.XEBvU5zF.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.XEBvU5zF.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.Cv7r8DBm.js → 7.aBxKpwwY.js} +1 -1
- package/build/client/_app/immutable/nodes/7.aBxKpwwY.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.aBxKpwwY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{8.zr3bqaC_.js → 8.CEAXwPtw.js} +1 -1
- package/build/client/_app/immutable/nodes/8.CEAXwPtw.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.CEAXwPtw.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.DNoTcl-q.js +1 -0
- package/build/client/_app/immutable/nodes/9.DNoTcl-q.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.DNoTcl-q.js.gz +0 -0
- package/build/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-v49L2HZX.js → 0-BGZb7GUr.js} +6 -6
- package/build/server/chunks/0-BGZb7GUr.js.map +1 -0
- package/build/server/chunks/{1-B8xC9fBg.js → 1-CTiyXq5H.js} +2 -2
- package/build/server/chunks/{1-B8xC9fBg.js.map → 1-CTiyXq5H.js.map} +1 -1
- package/build/server/chunks/{10-BowWygfm.js → 10-CoNR8vNf.js} +7 -7
- package/build/server/chunks/{10-BowWygfm.js.map → 10-CoNR8vNf.js.map} +1 -1
- package/build/server/chunks/{11-BLjiJpX4.js → 11-BvWfYPvY.js} +8 -7
- package/build/server/chunks/11-BvWfYPvY.js.map +1 -0
- package/build/server/chunks/{12-Dk9nDvlV.js → 12-DVPsHnBz.js} +3 -3
- package/build/server/chunks/12-DVPsHnBz.js.map +1 -0
- package/build/server/chunks/{13-CZeQX-Gk.js → 13-UcumwEMR.js} +3 -3
- package/build/server/chunks/{13-CZeQX-Gk.js.map → 13-UcumwEMR.js.map} +1 -1
- package/build/server/chunks/{14-VgzSpObZ.js → 14-DDGpNRmy.js} +3 -3
- package/build/server/chunks/{14-VgzSpObZ.js.map → 14-DDGpNRmy.js.map} +1 -1
- package/build/server/chunks/{15-CKqEgZmF.js → 15-CRsKpL17.js} +4 -4
- package/build/server/chunks/{15-CKqEgZmF.js.map → 15-CRsKpL17.js.map} +1 -1
- package/build/server/chunks/{16-9hO-6bzO.js → 16-Brrnhdb0.js} +6 -6
- package/build/server/chunks/{16-9hO-6bzO.js.map → 16-Brrnhdb0.js.map} +1 -1
- package/build/server/chunks/{17-B9Aw6HdC.js → 17-nTtqXZFS.js} +2 -2
- package/build/server/chunks/{17-B9Aw6HdC.js.map → 17-nTtqXZFS.js.map} +1 -1
- package/build/server/chunks/{18-BTSLWMQT.js → 18-CM6a70dY.js} +2 -2
- package/build/server/chunks/{18-BTSLWMQT.js.map → 18-CM6a70dY.js.map} +1 -1
- package/build/server/chunks/{19-C9FaW__N.js → 19-C6JT4QWN.js} +4 -4
- package/build/server/chunks/19-C6JT4QWN.js.map +1 -0
- package/build/server/chunks/{2-CwQhh3Hg.js → 2-Bzu1IIyQ.js} +8 -8
- package/build/server/chunks/2-Bzu1IIyQ.js.map +1 -0
- package/build/server/chunks/{20-52YCUMK3.js → 20-BuEknXxb.js} +11 -11
- package/build/server/chunks/{20-52YCUMK3.js.map → 20-BuEknXxb.js.map} +1 -1
- package/build/server/chunks/{21-Dcz_2iKy.js → 21-C8VCOVHZ.js} +3 -3
- package/build/server/chunks/{21-Dcz_2iKy.js.map → 21-C8VCOVHZ.js.map} +1 -1
- package/build/server/chunks/{23-C-gTGofY.js → 23-B2o_ghvU.js} +7 -7
- package/build/server/chunks/{23-C-gTGofY.js.map → 23-B2o_ghvU.js.map} +1 -1
- package/build/server/chunks/{24-ukwP0nYw.js → 24-Q1fbSR2o.js} +5 -4
- package/build/server/chunks/24-Q1fbSR2o.js.map +1 -0
- package/build/server/chunks/{25-Oe01GQUn.js → 25-BzYQ8Zk-.js} +2 -2
- package/build/server/chunks/{25-Oe01GQUn.js.map → 25-BzYQ8Zk-.js.map} +1 -1
- package/build/server/chunks/{27-C9kRY1qj.js → 27-5VeF0OHT.js} +4 -4
- package/build/server/chunks/{27-C9kRY1qj.js.map → 27-5VeF0OHT.js.map} +1 -1
- package/build/server/chunks/{28-X583jLPJ.js → 28-GJ_nbLXN.js} +3 -3
- package/build/server/chunks/{28-X583jLPJ.js.map → 28-GJ_nbLXN.js.map} +1 -1
- package/build/server/chunks/{29-PJhSN-Wu.js → 29-lZH9mmI0.js} +4 -4
- package/build/server/chunks/{29-PJhSN-Wu.js.map → 29-lZH9mmI0.js.map} +1 -1
- package/build/server/chunks/{3-DZiroZZA.js → 3-BlqLiQTJ.js} +2 -2
- package/build/server/chunks/{3-DZiroZZA.js.map → 3-BlqLiQTJ.js.map} +1 -1
- package/build/server/chunks/{30-DvqVphAd.js → 30-CA_ezUGl.js} +4 -4
- package/build/server/chunks/{30-DvqVphAd.js.map → 30-CA_ezUGl.js.map} +1 -1
- package/build/server/chunks/{31-BefyQf51.js → 31-CQ-8s0Lw.js} +2 -2
- package/build/server/chunks/{31-BefyQf51.js.map → 31-CQ-8s0Lw.js.map} +1 -1
- package/build/server/chunks/{32-DIdNQgym.js → 32-BmsICS9-.js} +2 -2
- package/build/server/chunks/{32-DIdNQgym.js.map → 32-BmsICS9-.js.map} +1 -1
- package/build/server/chunks/{5-QlPeCe4d.js → 5-0tLn4w9t.js} +3 -3
- package/build/server/chunks/5-0tLn4w9t.js.map +1 -0
- package/build/server/chunks/{6-3t8NszBJ.js → 6-Dk8-CNQc.js} +4 -4
- package/build/server/chunks/6-Dk8-CNQc.js.map +1 -0
- package/build/server/chunks/{7-DgFxSLWj.js → 7-g1mcBFfT.js} +3 -3
- package/build/server/chunks/7-g1mcBFfT.js.map +1 -0
- package/build/server/chunks/{8-BKivPkMd.js → 8-BXyJwXPH.js} +3 -3
- package/build/server/chunks/{8-BKivPkMd.js.map → 8-BXyJwXPH.js.map} +1 -1
- package/build/server/chunks/{9-COv3kpjW.js → 9-B3S-g_A8.js} +4 -4
- package/build/server/chunks/{9-COv3kpjW.js.map → 9-B3S-g_A8.js.map} +1 -1
- package/build/server/chunks/{AppHeader-DBNR_OCa.js → AppHeader-6ioAYhJf.js} +2 -2
- package/build/server/chunks/{AppHeader-DBNR_OCa.js.map → AppHeader-6ioAYhJf.js.map} +1 -1
- package/build/server/chunks/{DefinitionCard-BeONTmrJ.js → DefinitionCard-O1k8h5Pi.js} +2 -2
- package/build/server/chunks/{DefinitionCard-BeONTmrJ.js.map → DefinitionCard-O1k8h5Pi.js.map} +1 -1
- package/build/server/chunks/{UserChip-CCZ9yMM3.js → UserChip-fy4ucYa9.js} +461 -369
- package/build/server/chunks/UserChip-fy4ucYa9.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-Cjs-r7Xa.js → _layout.svelte-BNCiY_LE.js} +9 -7
- package/build/server/chunks/{_layout.svelte-Cjs-r7Xa.js.map → _layout.svelte-BNCiY_LE.js.map} +1 -1
- package/build/server/chunks/{_layout.svelte-CgAG7l2U.js → _layout.svelte-BR1971uC.js} +9 -7
- package/build/server/chunks/{_layout.svelte-CgAG7l2U.js.map → _layout.svelte-BR1971uC.js.map} +1 -1
- package/build/server/chunks/{_layout.svelte-VEFMEljC.js → _layout.svelte-CHTfYN7Z.js} +9 -7
- package/build/server/chunks/{_layout.svelte-VEFMEljC.js.map → _layout.svelte-CHTfYN7Z.js.map} +1 -1
- package/build/server/chunks/{_layout.svelte-DU36kuy0.js → _layout.svelte-DtDfOje_.js} +5 -5
- package/build/server/chunks/_layout.svelte-DtDfOje_.js.map +1 -0
- package/build/server/chunks/{_page.svelte-DJnICJdZ.js → _page.svelte-6m8-zq9_.js} +887 -786
- package/build/server/chunks/_page.svelte-6m8-zq9_.js.map +1 -0
- package/build/server/chunks/{_page.svelte-Mwitq0vD.js → _page.svelte-B-BjG1Bg.js} +10 -8
- package/build/server/chunks/{_page.svelte-Mwitq0vD.js.map → _page.svelte-B-BjG1Bg.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-1sc1cfuW.js → _page.svelte-B2tNMNfb.js} +4 -3
- package/build/server/chunks/{_page.svelte-1sc1cfuW.js.map → _page.svelte-B2tNMNfb.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-CSZEgmHp.js → _page.svelte-BMk_ClLw.js} +5 -5
- package/build/server/chunks/_page.svelte-BMk_ClLw.js.map +1 -0
- package/build/server/chunks/{_page.svelte-CeKqqMje.js → _page.svelte-BX7fFjm7.js} +5 -4
- package/build/server/chunks/{_page.svelte-CeKqqMje.js.map → _page.svelte-BX7fFjm7.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DlnKE8Z9.js → _page.svelte-CR79Ws-C.js} +5 -4
- package/build/server/chunks/{_page.svelte-DlnKE8Z9.js.map → _page.svelte-CR79Ws-C.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DIeTvNzN.js → _page.svelte-HTC9yaHJ.js} +9 -7
- package/build/server/chunks/{_page.svelte-DIeTvNzN.js.map → _page.svelte-HTC9yaHJ.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DSPm244d.js → _page.svelte-W41FvlvN.js} +5 -1
- package/build/server/chunks/_page.svelte-W41FvlvN.js.map +1 -0
- package/build/server/chunks/{_page.svelte-DSYaUquf.js → _page.svelte-YVHQEj69.js} +8 -7
- package/build/server/chunks/_page.svelte-YVHQEj69.js.map +1 -0
- package/build/server/chunks/{_page.svelte-BQZ-qC72.js → _page.svelte-tQDqmoYu.js} +5 -4
- package/build/server/chunks/{_page.svelte-BQZ-qC72.js.map → _page.svelte-tQDqmoYu.js.map} +1 -1
- package/build/server/chunks/{_server.ts-t9_veBtJ.js → _server.ts-A3y5hBxw.js} +4 -4
- package/build/server/chunks/{_server.ts-t9_veBtJ.js.map → _server.ts-A3y5hBxw.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C3sOwl5l.js → _server.ts-B5jlr2iF.js} +5 -5
- package/build/server/chunks/{_server.ts-C3sOwl5l.js.map → _server.ts-B5jlr2iF.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DK7t4rlY.js → _server.ts-BON6qGm5.js} +5 -5
- package/build/server/chunks/{_server.ts-DK7t4rlY.js.map → _server.ts-BON6qGm5.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CW_1VZGk.js → _server.ts-BO_GwwIE.js} +5 -5
- package/build/server/chunks/{_server.ts-CW_1VZGk.js.map → _server.ts-BO_GwwIE.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DgTNMZbG.js → _server.ts-BUw5lGMN.js} +5 -5
- package/build/server/chunks/{_server.ts-DgTNMZbG.js.map → _server.ts-BUw5lGMN.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CKvfxWeo.js → _server.ts-Bhj8Vx5l.js} +6 -6
- package/build/server/chunks/{_server.ts-CKvfxWeo.js.map → _server.ts-Bhj8Vx5l.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CMKxt34Z.js → _server.ts-BqlGKKaE.js} +5 -5
- package/build/server/chunks/{_server.ts-CMKxt34Z.js.map → _server.ts-BqlGKKaE.js.map} +1 -1
- package/build/server/chunks/{_server.ts-ODEutN30.js → _server.ts-BvMDaAZY.js} +5 -5
- package/build/server/chunks/{_server.ts-ODEutN30.js.map → _server.ts-BvMDaAZY.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C1wqbTiL.js → _server.ts-C-MiDKCm.js} +3 -3
- package/build/server/chunks/{_server.ts-C1wqbTiL.js.map → _server.ts-C-MiDKCm.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B7X5-4kS.js → _server.ts-C05I9RVA.js} +5 -5
- package/build/server/chunks/{_server.ts-B7X5-4kS.js.map → _server.ts-C05I9RVA.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DsFj_8lL.js → _server.ts-C4BZG5kA.js} +6 -6
- package/build/server/chunks/_server.ts-C4BZG5kA.js.map +1 -0
- package/build/server/chunks/{_server.ts-Du-NpBy4.js → _server.ts-CBAiDOcP.js} +5 -5
- package/build/server/chunks/{_server.ts-Du-NpBy4.js.map → _server.ts-CBAiDOcP.js.map} +1 -1
- package/build/server/chunks/{_server.ts-17aVSHOa.js → _server.ts-CEE9G3nv.js} +5 -5
- package/build/server/chunks/{_server.ts-17aVSHOa.js.map → _server.ts-CEE9G3nv.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CXYPZtry.js → _server.ts-CJ37R1sx.js} +10 -6
- package/build/server/chunks/_server.ts-CJ37R1sx.js.map +1 -0
- package/build/server/chunks/{_server.ts-8ahOmk_6.js → _server.ts-CJ5P0_cD.js} +5 -5
- package/build/server/chunks/{_server.ts-8ahOmk_6.js.map → _server.ts-CJ5P0_cD.js.map} +1 -1
- package/build/server/chunks/{_server.ts-vURDyV-V.js → _server.ts-Ca-ZnaSe.js} +5 -5
- package/build/server/chunks/{_server.ts-vURDyV-V.js.map → _server.ts-Ca-ZnaSe.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C-8S5O0H.js → _server.ts-CewoOx5S.js} +5 -5
- package/build/server/chunks/{_server.ts-C-8S5O0H.js.map → _server.ts-CewoOx5S.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B0qq-nxh.js → _server.ts-ChhV0tlQ.js} +5 -5
- package/build/server/chunks/{_server.ts-B0qq-nxh.js.map → _server.ts-ChhV0tlQ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-hg9WxMNg.js → _server.ts-Ck5KHS5f.js} +2 -2
- package/build/server/chunks/{_server.ts-hg9WxMNg.js.map → _server.ts-Ck5KHS5f.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BRjl7H1o.js → _server.ts-ClymRXMH.js} +5 -5
- package/build/server/chunks/{_server.ts-BRjl7H1o.js.map → _server.ts-ClymRXMH.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BL7-YPnc.js → _server.ts-CsWWoLDJ.js} +7 -7
- package/build/server/chunks/_server.ts-CsWWoLDJ.js.map +1 -0
- package/build/server/chunks/{_server.ts-DMnMoi_a.js → _server.ts-CtJaazcE.js} +5 -5
- package/build/server/chunks/{_server.ts-DMnMoi_a.js.map → _server.ts-CtJaazcE.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bq2BT6_L.js → _server.ts-CyjVVRiT.js} +9 -9
- package/build/server/chunks/_server.ts-CyjVVRiT.js.map +1 -0
- package/build/server/chunks/{_server.ts-Cbe4naEr.js → _server.ts-D0PjwFdv.js} +5 -5
- package/build/server/chunks/{_server.ts-Cbe4naEr.js.map → _server.ts-D0PjwFdv.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dukt2veu.js → _server.ts-D7tgGcoB.js} +3 -3
- package/build/server/chunks/{_server.ts-Dukt2veu.js.map → _server.ts-D7tgGcoB.js.map} +1 -1
- package/build/server/chunks/{_server.ts-bONEWPMV.js → _server.ts-DBV9dA6A.js} +5 -5
- package/build/server/chunks/{_server.ts-bONEWPMV.js.map → _server.ts-DBV9dA6A.js.map} +1 -1
- package/build/server/chunks/{_server.ts-EnuOtr_j.js → _server.ts-DLUA6_Lf.js} +29 -9
- package/build/server/chunks/_server.ts-DLUA6_Lf.js.map +1 -0
- package/build/server/chunks/{_server.ts-BqsgEogJ.js → _server.ts-DM01ishT.js} +5 -5
- package/build/server/chunks/{_server.ts-BqsgEogJ.js.map → _server.ts-DM01ishT.js.map} +1 -1
- package/build/server/chunks/{_server.ts-4eVxyBg6.js → _server.ts-DNeVKrs8.js} +6 -6
- package/build/server/chunks/{_server.ts-4eVxyBg6.js.map → _server.ts-DNeVKrs8.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B_KQteIy.js → _server.ts-DlDf2qpE.js} +6 -6
- package/build/server/chunks/{_server.ts-B_KQteIy.js.map → _server.ts-DlDf2qpE.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dsoq_gsI.js → _server.ts-DmqbBNeI.js} +5 -5
- package/build/server/chunks/{_server.ts-Dsoq_gsI.js.map → _server.ts-DmqbBNeI.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B7Z1RMy4.js → _server.ts-DwqLpa_k.js} +5 -5
- package/build/server/chunks/{_server.ts-B7Z1RMy4.js.map → _server.ts-DwqLpa_k.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DpkIJe-d.js → _server.ts-IVIAzAUs.js} +5 -5
- package/build/server/chunks/{_server.ts-DpkIJe-d.js.map → _server.ts-IVIAzAUs.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CUcFObAP.js → _server.ts-KdED3s6W.js} +5 -5
- package/build/server/chunks/{_server.ts-CUcFObAP.js.map → _server.ts-KdED3s6W.js.map} +1 -1
- package/build/server/chunks/{_server.ts-ByqZZZxB.js → _server.ts-Xl5CYncx.js} +3 -3
- package/build/server/chunks/{_server.ts-ByqZZZxB.js.map → _server.ts-Xl5CYncx.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BiJbME_l.js → _server.ts-Xpgu2-ka.js} +8 -8
- package/build/server/chunks/_server.ts-Xpgu2-ka.js.map +1 -0
- package/build/server/chunks/{_server.ts-D4mOhrFH.js → _server.ts-eVLE380Q.js} +5 -5
- package/build/server/chunks/{_server.ts-D4mOhrFH.js.map → _server.ts-eVLE380Q.js.map} +1 -1
- package/build/server/chunks/{_server.ts-COWH7HN8.js → _server.ts-kighVn_d.js} +5 -5
- package/build/server/chunks/{_server.ts-COWH7HN8.js.map → _server.ts-kighVn_d.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BtXdHfbr.js → _server.ts-r2RVYvYA.js} +5 -5
- package/build/server/chunks/{_server.ts-BtXdHfbr.js.map → _server.ts-r2RVYvYA.js.map} +1 -1
- package/build/server/chunks/{access.server-BBglojso.js → access.server-ByXvmWyF.js} +4 -4
- package/build/server/chunks/{access.server-BBglojso.js.map → access.server-ByXvmWyF.js.map} +1 -1
- package/build/server/chunks/{api-errors-agQVBoep.js → api-errors-C0SWfJj5.js} +3 -3
- package/build/server/chunks/{api-errors-agQVBoep.js.map → api-errors-C0SWfJj5.js.map} +1 -1
- package/build/server/chunks/{auth-bootstrap.server-CdwMOcYI.js → auth-bootstrap.server-zvPqZ6kt.js} +5 -4
- package/build/server/chunks/auth-bootstrap.server-zvPqZ6kt.js.map +1 -0
- package/build/server/chunks/{bootHealth.server-Ca8zFRpM.js → bootHealth.server-CLLVkbZZ.js} +2 -2
- package/build/server/chunks/{bootHealth.server-Ca8zFRpM.js.map → bootHealth.server-CLLVkbZZ.js.map} +1 -1
- package/build/server/chunks/{computeLimits-CKK96OOR.js → computeLimits-5PaWFMYq.js} +4 -3
- package/build/server/chunks/computeLimits-5PaWFMYq.js.map +1 -0
- package/build/server/chunks/{dialog-description-C-wNjCmv.js → dialog-description-8UnYiAMX.js} +2 -2
- package/build/server/chunks/{dialog-description-C-wNjCmv.js.map → dialog-description-8UnYiAMX.js.map} +1 -1
- package/build/server/chunks/{upload-BY_p_jpL.js → dialog-footer-CqbKEEQ-.js} +11 -11
- package/build/server/chunks/dialog-footer-CqbKEEQ-.js.map +1 -0
- package/build/server/chunks/{footerContext.svelte-BZEf7gVw.js → footerContext.svelte-oP__zW9C.js} +10 -2
- package/build/server/chunks/footerContext.svelte-oP__zW9C.js.map +1 -0
- package/build/server/chunks/{hooks.server-D6EnLMoG.js → hooks.server-CwDixHQc.js} +4 -4
- package/build/server/chunks/{hooks.server-D6EnLMoG.js.map → hooks.server-CwDixHQc.js.map} +1 -1
- package/build/server/chunks/index-server2-BiZ3ccb0.js +18 -0
- package/build/server/chunks/index-server2-BiZ3ccb0.js.map +1 -0
- package/build/server/chunks/{index2-B9qXYHIn.js → index2-D4a590Kd.js} +11 -11
- package/build/server/chunks/index2-D4a590Kd.js.map +1 -0
- package/build/server/chunks/{index3-AGemCGcn.js → index3-0Z1R1__W.js} +12 -12
- package/build/server/chunks/index3-0Z1R1__W.js.map +1 -0
- package/build/server/chunks/{index4-DSWKKOFB.js → index4-DWNr0jIL.js} +3 -3
- package/build/server/chunks/{index4-DSWKKOFB.js.map → index4-DWNr0jIL.js.map} +1 -1
- package/build/server/chunks/{permissions.server-cNGc9ris.js → permissions.server-7AwAAkY9.js} +2 -2
- package/build/server/chunks/{permissions.server-cNGc9ris.js.map → permissions.server-7AwAAkY9.js.map} +1 -1
- package/build/server/chunks/{providers.server-MD7TK-zQ.js → providers.server-wGknM6CR.js} +52 -29
- package/build/server/chunks/providers.server-wGknM6CR.js.map +1 -0
- package/build/server/chunks/{resolve.server-BXKCfGfg.js → resolve.server-CvfANFCn.js} +2 -2
- package/build/server/chunks/{resolve.server-BXKCfGfg.js.map → resolve.server-CvfANFCn.js.map} +1 -1
- package/build/server/chunks/{scroll-lock-BVxv0Dsn.js → scroll-lock-BIz_BXmd.js} +4 -15
- package/build/server/chunks/scroll-lock-BIz_BXmd.js.map +1 -0
- package/build/server/chunks/{utils2-D38XWwRv.js → utils2-BsnrDRob.js} +2 -2
- package/build/server/chunks/{utils2-D38XWwRv.js.map → utils2-BsnrDRob.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 +12 -9
- package/templates/.env.example +6 -4
- package/build/client/_app/immutable/assets/0.vgCL98o5.css +0 -1
- package/build/client/_app/immutable/assets/0.vgCL98o5.css.br +0 -0
- package/build/client/_app/immutable/assets/0.vgCL98o5.css.gz +0 -0
- package/build/client/_app/immutable/assets/20.DvtWUFNX.css +0 -1
- package/build/client/_app/immutable/assets/20.DvtWUFNX.css.br +0 -0
- package/build/client/_app/immutable/assets/20.DvtWUFNX.css.gz +0 -0
- package/build/client/_app/immutable/chunks/-UMoMsui.js.br +0 -0
- package/build/client/_app/immutable/chunks/-UMoMsui.js.gz +0 -0
- package/build/client/_app/immutable/chunks/2n-qzJg2.js.br +0 -0
- package/build/client/_app/immutable/chunks/2n-qzJg2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B6yEy6Wb.js.br +0 -0
- package/build/client/_app/immutable/chunks/B6yEy6Wb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BQ0arxbK.js.br +0 -0
- package/build/client/_app/immutable/chunks/BQ0arxbK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BeM-GIFh.js +0 -1
- package/build/client/_app/immutable/chunks/BeM-GIFh.js.br +0 -0
- package/build/client/_app/immutable/chunks/BeM-GIFh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C1kpvSgW.js +0 -2
- package/build/client/_app/immutable/chunks/C1kpvSgW.js.br +0 -0
- package/build/client/_app/immutable/chunks/C1kpvSgW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C98bdhQ5.js.br +0 -0
- package/build/client/_app/immutable/chunks/C98bdhQ5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cal8_SqL.js +0 -1
- package/build/client/_app/immutable/chunks/Cal8_SqL.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cal8_SqL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CynIvqMH.js +0 -1
- package/build/client/_app/immutable/chunks/CynIvqMH.js.br +0 -0
- package/build/client/_app/immutable/chunks/CynIvqMH.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D37hHIb0.js.br +0 -0
- package/build/client/_app/immutable/chunks/D37hHIb0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DNu_no60.js.br +0 -0
- package/build/client/_app/immutable/chunks/DNu_no60.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.1YljYqLj.js +0 -2
- package/build/client/_app/immutable/entry/app.1YljYqLj.js.br +0 -0
- package/build/client/_app/immutable/entry/app.1YljYqLj.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.C41rnrMx.js +0 -1
- package/build/client/_app/immutable/entry/start.C41rnrMx.js.br +0 -0
- package/build/client/_app/immutable/entry/start.C41rnrMx.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.Y-xP5pet.js +0 -9
- package/build/client/_app/immutable/nodes/0.Y-xP5pet.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.Y-xP5pet.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.5JE3G8iG.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.5JE3G8iG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.DpfN1qrg.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.DpfN1qrg.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.Co2EmpEg.js +0 -2
- package/build/client/_app/immutable/nodes/11.Co2EmpEg.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.Co2EmpEg.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.D5OdE_HH.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.D5OdE_HH.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.UGx5pLUS.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.UGx5pLUS.js.gz +0 -0
- package/build/client/_app/immutable/nodes/16.CqZNgdz-.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.CqZNgdz-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.B1PHOW1Y.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.B1PHOW1Y.js.gz +0 -0
- package/build/client/_app/immutable/nodes/19.ClB_k0uw.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.ClB_k0uw.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.uPLLf3gR.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.uPLLf3gR.js.gz +0 -0
- package/build/client/_app/immutable/nodes/20.C5BF7igP.js +0 -4118
- package/build/client/_app/immutable/nodes/20.C5BF7igP.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.C5BF7igP.js.gz +0 -0
- package/build/client/_app/immutable/nodes/21.B1xX86Nz.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.B1xX86Nz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/23.BWuAu45o.js.br +0 -0
- package/build/client/_app/immutable/nodes/23.BWuAu45o.js.gz +0 -0
- package/build/client/_app/immutable/nodes/24.DSWGE_q2.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.DSWGE_q2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/27.CjlEhW_1.js.br +0 -0
- package/build/client/_app/immutable/nodes/27.CjlEhW_1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/28.U-BnDxlP.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.U-BnDxlP.js.gz +0 -0
- package/build/client/_app/immutable/nodes/29.cl9udKxV.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.cl9udKxV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.UKn7Q9OQ.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.UKn7Q9OQ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/30.DPqPYAg4.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.DPqPYAg4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.CbYguvwB.js.br +0 -2
- package/build/client/_app/immutable/nodes/5.CbYguvwB.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.DZgUvAex.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.DZgUvAex.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.Cv7r8DBm.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.Cv7r8DBm.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.zr3bqaC_.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.zr3bqaC_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.B2PU0xej.js +0 -1
- package/build/client/_app/immutable/nodes/9.B2PU0xej.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.B2PU0xej.js.gz +0 -0
- package/build/server/chunks/0-v49L2HZX.js.map +0 -1
- package/build/server/chunks/11-BLjiJpX4.js.map +0 -1
- package/build/server/chunks/12-Dk9nDvlV.js.map +0 -1
- package/build/server/chunks/19-C9FaW__N.js.map +0 -1
- package/build/server/chunks/2-CwQhh3Hg.js.map +0 -1
- package/build/server/chunks/24-ukwP0nYw.js.map +0 -1
- package/build/server/chunks/5-QlPeCe4d.js.map +0 -1
- package/build/server/chunks/6-3t8NszBJ.js.map +0 -1
- package/build/server/chunks/7-DgFxSLWj.js.map +0 -1
- package/build/server/chunks/UserChip-CCZ9yMM3.js.map +0 -1
- package/build/server/chunks/_layout.svelte-DU36kuy0.js.map +0 -1
- package/build/server/chunks/_page.svelte-CSZEgmHp.js.map +0 -1
- package/build/server/chunks/_page.svelte-DJnICJdZ.js.map +0 -1
- package/build/server/chunks/_page.svelte-DSPm244d.js.map +0 -1
- package/build/server/chunks/_page.svelte-DSYaUquf.js.map +0 -1
- package/build/server/chunks/_server.ts-BL7-YPnc.js.map +0 -1
- package/build/server/chunks/_server.ts-BiJbME_l.js.map +0 -1
- package/build/server/chunks/_server.ts-Bq2BT6_L.js.map +0 -1
- package/build/server/chunks/_server.ts-CXYPZtry.js.map +0 -1
- package/build/server/chunks/_server.ts-DsFj_8lL.js.map +0 -1
- package/build/server/chunks/_server.ts-EnuOtr_j.js.map +0 -1
- package/build/server/chunks/auth-bootstrap.server-CdwMOcYI.js.map +0 -1
- package/build/server/chunks/computeLimits-CKK96OOR.js.map +0 -1
- package/build/server/chunks/footerContext.svelte-BZEf7gVw.js.map +0 -1
- package/build/server/chunks/index2-B9qXYHIn.js.map +0 -1
- package/build/server/chunks/index3-AGemCGcn.js.map +0 -1
- package/build/server/chunks/providers.server-MD7TK-zQ.js.map +0 -1
- package/build/server/chunks/scroll-lock-BVxv0Dsn.js.map +0 -1
- package/build/server/chunks/upload-BY_p_jpL.js.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { error } from '@sveltejs/kit';
|
|
2
|
-
import {
|
|
3
|
-
import { s as requireCanViewProject } from './access.server-
|
|
2
|
+
import { h as getDefinitionMeta, o as getStorageProvider, d as definitionPaths } from './providers.server-wGknM6CR.js';
|
|
3
|
+
import { s as requireCanViewProject } from './access.server-ByXvmWyF.js';
|
|
4
4
|
import { C as COVER_IMAGE_CONTENT_TYPES } from './types-DxzJoaA4.js';
|
|
5
5
|
import { G as GuidSchema } from './context-DKDYb-He.js';
|
|
6
|
-
import './computeLimits-
|
|
6
|
+
import './computeLimits-5PaWFMYq.js';
|
|
7
7
|
import './shared-server-C3WdcJCQ.js';
|
|
8
8
|
import 'node:url';
|
|
9
9
|
import 'node:path';
|
|
@@ -11,9 +11,9 @@ import 'node:fs';
|
|
|
11
11
|
import 'node:crypto';
|
|
12
12
|
import 'node:fs/promises';
|
|
13
13
|
import '@supabase/supabase-js';
|
|
14
|
-
import './api-errors-
|
|
14
|
+
import './api-errors-C0SWfJj5.js';
|
|
15
15
|
import '@selvajs/compute/core';
|
|
16
|
-
import './utils2-
|
|
16
|
+
import './utils2-BsnrDRob.js';
|
|
17
17
|
import 'zod';
|
|
18
18
|
|
|
19
19
|
const GET = async ({ params, locals }) => {
|
|
@@ -38,4 +38,4 @@ const GET = async ({ params, locals }) => {
|
|
|
38
38
|
};
|
|
39
39
|
|
|
40
40
|
export { GET };
|
|
41
|
-
//# sourceMappingURL=_server.ts-
|
|
41
|
+
//# sourceMappingURL=_server.ts-DlDf2qpE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-DlDf2qpE.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_guid_/image/_filename_/_server.ts.js"],"sourcesContent":["import { error } from \"@sveltejs/kit\";\nimport { h as getDefinitionMeta, o as getStorageProvider, d as definitionPaths } from \"../../../../../../../chunks/providers.server.js\";\nimport { s as requireCanViewProject } from \"../../../../../../../chunks/access.server.js\";\nimport { C as COVER_IMAGE_CONTENT_TYPES } from \"../../../../../../../chunks/types.js\";\nimport { G as GuidSchema } from \"../../../../../../../chunks/context.js\";\nimport \"../../../../../../../chunks/computeLimits.js\";\nconst GET = async ({ params, locals }) => {\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) throw error(400, \"Invalid GUID\");\n const guid = guidParsed.data;\n const ctx = locals.ctx;\n const record = await getDefinitionMeta().get(ctx, guid);\n if (!record?.coverImage) throw error(404, \"Image not found\");\n await requireCanViewProject(locals, record.projectId);\n const storedFilename = record.coverImage.split(\"/\").pop() ?? \"cover.webp\";\n const ext = storedFilename.substring(storedFilename.lastIndexOf(\".\")).toLowerCase();\n const contentType = COVER_IMAGE_CONTENT_TYPES[ext] ?? \"image/webp\";\n const bytes = await getStorageProvider().get(definitionPaths.image(guid));\n if (!bytes) throw error(404, \"Image not found\");\n return new Response(Buffer.from(bytes), {\n headers: {\n \"Content-Type\": contentType,\n \"Cache-Control\": \"public, max-age=3600\"\n }\n });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAMK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC1C,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,cAAc,CAAC;AAC3D,EAAE,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI;AAC9B,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG;AACxB,EAAE,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;AACzD,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC;AAC9D,EAAE,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC;AACvD,EAAE,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,YAAY;AAC3E,EAAE,MAAM,GAAG,GAAG,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE;AACrF,EAAE,MAAM,WAAW,GAAG,yBAAyB,CAAC,GAAG,CAAC,IAAI,YAAY;AACpE,EAAE,MAAM,KAAK,GAAG,MAAM,kBAAkB,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC3E,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC;AACjD,EAAE,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC1C,IAAI,OAAO,EAAE;AACb,MAAM,cAAc,EAAE,WAAW;AACjC,MAAM,eAAe,EAAE;AACvB;AACA,GAAG,CAAC;AACJ;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { error, json } from '@sveltejs/kit';
|
|
2
|
-
import {
|
|
2
|
+
import { c as getComputeServerConfigStore } from './providers.server-wGknM6CR.js';
|
|
3
3
|
import './context-DKDYb-He.js';
|
|
4
|
-
import { f as findServerById } from './utils2-
|
|
5
|
-
import { v as requireManageCompute } from './access.server-
|
|
4
|
+
import { f as findServerById } from './utils2-BsnrDRob.js';
|
|
5
|
+
import { v as requireManageCompute } from './access.server-ByXvmWyF.js';
|
|
6
6
|
import './shared-server-C3WdcJCQ.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-C0SWfJj5.js';
|
|
15
15
|
import '@selvajs/compute/core';
|
|
16
16
|
|
|
17
17
|
const TIMEOUT_MS = 8e3;
|
|
@@ -62,4 +62,4 @@ const GET = async ({ url, locals }) => {
|
|
|
62
62
|
};
|
|
63
63
|
|
|
64
64
|
export { GET };
|
|
65
|
-
//# sourceMappingURL=_server.ts-
|
|
65
|
+
//# sourceMappingURL=_server.ts-DmqbBNeI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-DmqbBNeI.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/compute/status/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { c as getComputeServerConfigStore } from \"../../../../../../chunks/providers.server.js\";\nimport \"../../../../../../chunks/context.js\";\nimport { f as findServerById } from \"../../../../../../chunks/utils2.js\";\nimport { v 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 { n as getProjectProvider } from './providers.server-
|
|
4
|
-
import { n as requireCanManageMembers, i as checkOwnerRemoval } from './access.server-
|
|
5
|
-
import { h as handleApiError, t as throwZodError } from './api-errors-
|
|
3
|
+
import { n as getProjectProvider } from './providers.server-wGknM6CR.js';
|
|
4
|
+
import { n as requireCanManageMembers, i as checkOwnerRemoval } from './access.server-ByXvmWyF.js';
|
|
5
|
+
import { h as handleApiError, t as throwZodError } from './api-errors-C0SWfJj5.js';
|
|
6
6
|
import { f as ProjectRoleSchema } from './context-DKDYb-He.js';
|
|
7
7
|
import './shared-server-C3WdcJCQ.js';
|
|
8
8
|
import 'node:url';
|
|
@@ -12,7 +12,7 @@ import 'node:crypto';
|
|
|
12
12
|
import 'node:fs/promises';
|
|
13
13
|
import '@supabase/supabase-js';
|
|
14
14
|
import '@selvajs/compute/core';
|
|
15
|
-
import './utils2-
|
|
15
|
+
import './utils2-BsnrDRob.js';
|
|
16
16
|
|
|
17
17
|
const UpdateRoleSchema = z.object({ role: ProjectRoleSchema });
|
|
18
18
|
const PATCH = async ({ params, request, locals }) => {
|
|
@@ -70,4 +70,4 @@ const DELETE = async ({ params, url, locals }) => {
|
|
|
70
70
|
};
|
|
71
71
|
|
|
72
72
|
export { DELETE, PATCH };
|
|
73
|
-
//# sourceMappingURL=_server.ts-
|
|
73
|
+
//# sourceMappingURL=_server.ts-DwqLpa_k.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-DwqLpa_k.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/projects/_id_/members/_userId_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { n as getProjectProvider } from \"../../../../../../../chunks/providers.server.js\";\nimport { n as requireCanManageMembers, i as checkOwnerRemoval } from \"../../../../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../../../../chunks/api-errors.js\";\nimport { f as ProjectRoleSchema } from \"../../../../../../../chunks/context.js\";\nconst UpdateRoleSchema = z.object({ role: ProjectRoleSchema });\nconst PATCH = async ({ params, request, locals }) => {\n const { id, userId } = params;\n if (!id || !userId) throw error(400, \"Missing project ID or user ID\");\n await requireCanManageMembers(locals, id);\n const ctx = locals.ctx;\n const body = await request.json().catch(() => null);\n const parsed = UpdateRoleSchema.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n try {\n await getProjectProvider().updateProjectMemberRole(ctx, id, userId, parsed.data.role);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to update role\");\n }\n};\nconst DELETE = async ({ params, url, locals }) => {\n const { id, userId } = params;\n if (!id || !userId) throw error(400, \"Missing project ID or user ID\");\n await requireCanManageMembers(locals, id);\n const ctx = locals.ctx;\n const confirmed = url.searchParams.get(\"confirm\") === \"true\";\n const projects = getProjectProvider();\n const target = await projects.getProjectMember(ctx, id, userId);\n if (!target) {\n return json({ success: true });\n }\n if (target.role === \"owner\") {\n const page = await projects.listProjectMembers(ctx, id, { limit: 200 });\n const decision = checkOwnerRemoval({\n target: { role: target.role },\n allMembers: page.items.map((m) => ({ role: m.role })),\n confirmed\n });\n if (decision === \"sole_owner\") {\n throw error(\n 409,\n \"Cannot remove the sole owner of a project. Assign another owner first, or use reclaim to add a co-owner.\"\n );\n }\n if (decision === \"needs_confirm\") {\n throw error(\n 409,\n \"Removing another project owner requires explicit confirmation. Retry with ?confirm=true.\"\n );\n }\n }\n try {\n await projects.removeProjectMember(ctx, id, userId);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to remove member\");\n }\n};\nexport {\n DELETE,\n PATCH\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { error, json } from '@sveltejs/kit';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { n as getProjectProvider } from './providers.server-
|
|
4
|
-
import { n as requireCanManageMembers, A as requireTargetIsOrgMember } from './access.server-
|
|
5
|
-
import { h as handleApiError, t as throwZodError } from './api-errors-
|
|
3
|
+
import { n as getProjectProvider } from './providers.server-wGknM6CR.js';
|
|
4
|
+
import { n as requireCanManageMembers, A as requireTargetIsOrgMember } from './access.server-ByXvmWyF.js';
|
|
5
|
+
import { h as handleApiError, t as throwZodError } from './api-errors-C0SWfJj5.js';
|
|
6
6
|
import { f as ProjectRoleSchema } from './context-DKDYb-He.js';
|
|
7
7
|
import './shared-server-C3WdcJCQ.js';
|
|
8
8
|
import 'node:url';
|
|
@@ -12,7 +12,7 @@ import 'node:crypto';
|
|
|
12
12
|
import 'node:fs/promises';
|
|
13
13
|
import '@supabase/supabase-js';
|
|
14
14
|
import '@selvajs/compute/core';
|
|
15
|
-
import './utils2-
|
|
15
|
+
import './utils2-BsnrDRob.js';
|
|
16
16
|
|
|
17
17
|
const AddMemberSchema = z.object({
|
|
18
18
|
userId: z.string().min(1, "userId is required"),
|
|
@@ -60,4 +60,4 @@ const POST = async ({ params, request, locals }) => {
|
|
|
60
60
|
};
|
|
61
61
|
|
|
62
62
|
export { GET, POST };
|
|
63
|
-
//# sourceMappingURL=_server.ts-
|
|
63
|
+
//# sourceMappingURL=_server.ts-IVIAzAUs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-IVIAzAUs.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 { n as getProjectProvider } from \"../../../../../../chunks/providers.server.js\";\nimport { n as requireCanManageMembers, A as requireTargetIsOrgMember } from \"../../../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../../../chunks/api-errors.js\";\nimport { f 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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"}
|
|
@@ -2,20 +2,20 @@ import { spawn } from 'child_process';
|
|
|
2
2
|
import { join } from 'path';
|
|
3
3
|
import { readFileSync, existsSync } from 'fs';
|
|
4
4
|
import { p as private_env } from './shared-server-C3WdcJCQ.js';
|
|
5
|
-
import { z as requirePermission } from './access.server-
|
|
5
|
+
import { z as requirePermission } from './access.server-ByXvmWyF.js';
|
|
6
6
|
import '@sveltejs/kit';
|
|
7
7
|
import './context-DKDYb-He.js';
|
|
8
8
|
import 'zod';
|
|
9
|
-
import './providers.server-
|
|
9
|
+
import './providers.server-wGknM6CR.js';
|
|
10
10
|
import 'node:url';
|
|
11
11
|
import 'node:path';
|
|
12
12
|
import 'node:fs';
|
|
13
13
|
import 'node:crypto';
|
|
14
14
|
import 'node:fs/promises';
|
|
15
15
|
import '@supabase/supabase-js';
|
|
16
|
-
import './api-errors-
|
|
16
|
+
import './api-errors-C0SWfJj5.js';
|
|
17
17
|
import '@selvajs/compute/core';
|
|
18
|
-
import './utils2-
|
|
18
|
+
import './utils2-BsnrDRob.js';
|
|
19
19
|
|
|
20
20
|
const UPDATE_LOG_PATH = "/tmp/selva-update.log";
|
|
21
21
|
function stripAnsi(str) {
|
|
@@ -407,4 +407,4 @@ const GET = async ({ locals }) => {
|
|
|
407
407
|
};
|
|
408
408
|
|
|
409
409
|
export { GET, POST };
|
|
410
|
-
//# sourceMappingURL=_server.ts-
|
|
410
|
+
//# sourceMappingURL=_server.ts-KdED3s6W.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-CUcFObAP.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/system/update/_server.ts.js"],"sourcesContent":["import { spawn } from \"child_process\";\nimport { join } from \"path\";\nimport { readFileSync, existsSync } from \"fs\";\nimport { p as private_env } from \"../../../../../../chunks/shared-server.js\";\nimport { z as requirePermission } from \"../../../../../../chunks/access.server.js\";\nconst UPDATE_LOG_PATH = \"/tmp/selva-update.log\";\nfunction stripAnsi(str) {\n return str.replace(/\\x1B\\[[0-9;]*[mGKHF]/g, \"\");\n}\nfunction readRuntimeVersion(dir) {\n try {\n const pkg = JSON.parse(\n readFileSync(join(dir, \"node_modules\", \"@selvajs\", \"selva\", \"package.json\"), \"utf8\")\n );\n return typeof pkg.version === \"string\" ? pkg.version : void 0;\n } catch {\n return void 0;\n }\n}\nfunction shellQuote(s) {\n return `'${s.replace(/'/g, `'\\\\''`)}'`;\n}\nfunction buildLauncher(runnerScript, prelude = []) {\n const echoes = prelude.map((line) => `echo ${shellQuote(line)}`).join(\"\\n\");\n return `\nLOGFILE=${shellQuote(UPDATE_LOG_PATH)}\nRUNNER=/tmp/selva-update-runner.sh\nmkdir -p \"$(dirname \"$LOGFILE\")\"\n: > \"$LOGFILE\"\n\ncat > \"$RUNNER\" <<'__SELVA_RUNNER_EOF__'\n${runnerScript}\n__SELVA_RUNNER_EOF__\nchmod +x \"$RUNNER\"\n\ntrap '' PIPE\nexec > >(tee --output-error=warn-nopipe -a \"$LOGFILE\" 2>/dev/null) 2>&1\n${echoes}\n\n# Daemonize the runner so PM2's tree-kill of selva-compute can't reach it.\n# setsid puts it in a new session; the trailing & + disown + launcher exit\n# leaves the runner with PPID=1 once we're gone. stdin/stdout/stderr are\n# fully detached from this process (and from selva-compute's pipes).\nsetsid bash \"$RUNNER\" </dev/null >>\"$LOGFILE\" 2>&1 &\nRUNNER_PID=$!\ndisown\necho \"[INFO] Update runner started (PID $RUNNER_PID, log: $LOGFILE)\"\n\n# Small pause so the runner has time to print its first line before SSE\n# closes — otherwise the frontend's first poll might see no progress.\nsleep 1\nexit 0\n`;\n}\nfunction buildNpmRunnerScript(npmArgs, versionBefore, ecosystemPath) {\n const npmCommand = [\"npm\", ...npmArgs].map(shellQuote).join(\" \");\n const before = shellQuote(versionBefore ?? \"\");\n const ecosystem = shellQuote(ecosystemPath);\n return `#!/bin/bash\nset -o pipefail\nBEFORE=${before}\nECOSYSTEM=${ecosystem}\n\n# Last-resort safety net. If the script exits with the app NOT online for\n# any reason (crash, kill -9, network blip, npm hang past timeout), try to\n# bring it back from ecosystem.config.cjs before we go. The whole point of\n# this script is to update the app; leaving it down is the worst possible\n# outcome.\non_exit() {\n STATUS=$(pm2 jlist 2>/dev/null | node -e \"\n try {\n const list = JSON.parse(require('fs').readFileSync('/dev/stdin','utf8'));\n const app = list.find(p => p.name === 'selva-compute');\n process.stdout.write(app ? app.pm2_env.status : 'missing');\n } catch { process.stdout.write('error'); }\n \" 2>/dev/null || echo \"error\")\n if [ \"$STATUS\" != \"online\" ]; then\n echo \"[RECOVER] selva-compute is '$STATUS' — starting from ecosystem.config.cjs\"\n pm2 start \"$ECOSYSTEM\" --update-env >/dev/null 2>&1 || \\\\\n echo \"[RECOVER] pm2 start failed — manual intervention required: cd $(dirname \"$ECOSYSTEM\") && pm2 start ecosystem.config.cjs\"\n fi\n}\ntrap on_exit EXIT\n\n# ---------------------------------------------------------------------------\n# 1. Pre-flight: skip the whole cycle if there's nothing to install.\n# ---------------------------------------------------------------------------\n# Without this, clicking \"Update\" on an already-current instance triggered\n# a full stop/install/start cycle and a downtime window for no reason. Now\n# we just check the registry first.\necho \"[STEP] Checking npm registry for available updates\"\nLATEST=$(npm view @selvajs/selva version --silent 2>/dev/null || echo \"\")\nif [ -z \"$LATEST\" ]; then\n echo \"[WARN] Could not query npm registry — proceeding with update attempt anyway\"\nelif [ -n \"$BEFORE\" ] && [ \"$LATEST\" = \"$BEFORE\" ]; then\n echo \"[INFO] Already on the latest version ($BEFORE)\"\n echo \"[DONE] Nothing to do\"\n exit 0\nelse\n echo \"[INFO] Available: $BEFORE → $LATEST\"\nfi\n\n# ---------------------------------------------------------------------------\n# 2. Resync PM2 daemon if its in-memory version drifted from the CLI on disk.\n# ---------------------------------------------------------------------------\n# After a global pm2 upgrade the daemon keeps running its original version\n# while the CLI moves forward. Process commands then talk to a stale daemon\n# and the symptom is \"stop works, start never lands\". \\`pm2 update\\` dumps\n# processes, kills the daemon, respawns on the current CLI, restores the\n# dump. Doing it before we touch anything keeps the rest of the script\n# talking to a coherent daemon.\necho \"[STEP] Checking PM2 daemon/CLI version sync\"\nif pm2 ping 2>&1 | grep -q \"out-of-date\" || pm2 list 2>&1 | grep -q \"out-of-date\"; then\n echo \"[STEP] PM2 daemon is out-of-date — running 'pm2 update' to resync\"\n if ! pm2 update; then\n echo \"[FATAL] pm2 update failed — aborting before stopping the running app\"\n exit 1\n fi\n echo \"[INFO] PM2 daemon resynced\"\nfi\n\n# ---------------------------------------------------------------------------\n# 3. Stop selva-compute BEFORE npm rewrites build/.\n# ---------------------------------------------------------------------------\n# SvelteKit's node adapter lazy-imports chunks from build/server/chunks/ on\n# every request. Letting npm rewrite build/ while the old process is still\n# serving traffic = in-flight requests hit ERR_MODULE_NOT_FOUND for chunks\n# whose hash just changed under their feet. Stopping first is a brief\n# downtime window (~1-2s longer than restart-in-place) for a much smaller\n# blast radius.\n#\n# This is also where the SSE connection to the frontend dies — selva-compute\n# IS the SSE server. From here on, the user sees output via the log-file\n# polling fallback in the admin UI, not over SSE.\necho \"[STEP] Stopping selva-compute\"\nif ! pm2 stop selva-compute; then\n echo \"[WARN] pm2 stop failed — selva-compute may not be running yet. Continuing.\"\nfi\n\n# ---------------------------------------------------------------------------\n# 4. Run npm update.\n# ---------------------------------------------------------------------------\necho \"[STEP] Updating @selvajs/* packages\"\nif ! ${npmCommand}; then\n echo \"[FATAL] npm update failed — EXIT trap will restart the previous build\"\n exit 1\nfi\n\nAFTER=$(node -e \"try{console.log(require('./node_modules/@selvajs/selva/package.json').version)}catch(e){}\" 2>/dev/null)\necho \"[INFO] New @selvajs/selva: \\${AFTER:-unknown}\"\n\nif [ -n \"$BEFORE\" ] && [ \"$BEFORE\" = \"$AFTER\" ]; then\n echo \"[WARN] No version change ($BEFORE). Your npm cache may be stale.\"\n echo \"[WARN] Recover with:\"\n echo \"[WARN] npm cache clean --force\"\n echo \"[WARN] rm -rf node_modules package-lock.json\"\n echo \"[WARN] npm install --prefer-online\"\nfi\n\n# ---------------------------------------------------------------------------\n# 5. Start selva-compute with the new build.\n# ---------------------------------------------------------------------------\n# Start from ecosystem.config.cjs, NOT \\`pm2 start selva-compute\\` — the\n# latter requires selva-compute to already be in pm2's in-memory process\n# list. After a \\`pm2 update\\` (step 2) that's not guaranteed.\necho \"[STEP] Starting selva-compute with new build\"\nif ! pm2 start \"$ECOSYSTEM\" --update-env; then\n echo \"[FATAL] pm2 start failed — investigate with \\\\\\`pm2 logs selva-compute\\\\\\`\"\n exit 2\nfi\n\n# ---------------------------------------------------------------------------\n# 6. Health probe the new process.\n# ---------------------------------------------------------------------------\n# Read PORT from .env the same way scripts/update.sh does, so non-default\n# ports are respected.\nPORT=$(grep \"^PORT=\" .env 2>/dev/null \\\\\n | head -1 \\\\\n | cut -d'=' -f2 \\\\\n | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e 's/^[\"'\"'\"']//' -e 's/[\"'\"'\"']$//' -e 's/[[:space:]]*#.*//')\nPORT=\\${PORT:-3000}\n\necho \"[STEP] Health-probing the new process on port $PORT\"\nHEALTHY=0\nfor i in $(seq 1 15); do\n sleep 2\n CODE=$(curl -sS -o /tmp/selva-health.$$ -w \"%{http_code}\" --max-time 5 \"http://localhost:$PORT/api/health\" 2>/dev/null || echo \"000\")\n if [ \"$CODE\" = \"200\" ]; then\n HEALTHY=1\n echo \"[INFO] Health probe passed after \\${i} attempt(s)\"\n rm -f /tmp/selva-health.$$\n break\n fi\n echo \"[INFO] Probe attempt $i/15: HTTP $CODE — retrying\"\ndone\n\nif [ \"$HEALTHY\" = \"1\" ]; then\n echo \"[DONE] Update complete\"\n exit 0\nfi\n\n# ---------------------------------------------------------------------------\n# 7. Rollback path.\n# ---------------------------------------------------------------------------\necho \"[FATAL] New process failed health check after 30s\"\nif [ -f /tmp/selva-health.$$ ]; then\n echo \"[FATAL] Last response body:\"\n cat /tmp/selva-health.$$\n rm -f /tmp/selva-health.$$\nfi\n\nif [ -z \"$BEFORE\" ]; then\n echo \"[FATAL] No prior version recorded — cannot roll back automatically.\"\n echo \"[FATAL] EXIT trap will attempt to restart the current build anyway.\"\n exit 3\nfi\n\necho \"[STEP] Rolling back @selvajs/selva to $BEFORE\"\npm2 stop selva-compute >/dev/null 2>&1 || true\nif ! npm install --save \"@selvajs/selva@$BEFORE\"; then\n echo \"[FATAL] Rollback npm install failed — EXIT trap will retry restart.\"\n exit 4\nfi\n\npm2 start \"$ECOSYSTEM\" --update-env || true\nsleep 3\nROLLBACK_CODE=$(curl -sS -o /dev/null -w \"%{http_code}\" --max-time 5 \"http://localhost:$PORT/api/health\" 2>/dev/null || echo \"000\")\nif [ \"$ROLLBACK_CODE\" = \"200\" ]; then\n echo \"[DONE] Rolled back to $BEFORE — previous version is online\"\n exit 5\nfi\n\necho \"[FATAL] Rollback restart also failed health check (HTTP $ROLLBACK_CODE)\"\necho \"[FATAL] Manual recovery required. Check: pm2 logs selva-compute\"\nexit 6\n`;\n}\nfunction detectUpdatePlan() {\n if (private_env.INSTALL_DIR && existsSync(join(private_env.INSTALL_DIR, \"scripts\", \"update.sh\"))) {\n return {\n mode: \"git\",\n cwd: private_env.INSTALL_DIR,\n cmd: \"bash\",\n args: [join(private_env.INSTALL_DIR, \"scripts\", \"update.sh\")]\n };\n }\n let dir = process.cwd();\n for (let i = 0; i < 6; i++) {\n if (existsSync(join(dir, \"scripts\", \"update.sh\"))) {\n return {\n mode: \"git\",\n cwd: dir,\n cmd: \"bash\",\n args: [join(dir, \"scripts\", \"update.sh\")]\n };\n }\n if (existsSync(join(dir, \"node_modules\", \"@selvajs\", \"selva\", \"package.json\"))) {\n return {\n mode: \"npm\",\n cwd: dir,\n cmd: \"npm\",\n args: [\"update\", \"--save\", \"--prefer-online\", \"@selvajs/cli\", \"@selvajs/selva\"]\n };\n }\n const parent = join(dir, \"..\");\n if (parent === dir) break;\n dir = parent;\n }\n return null;\n}\nconst POST = async ({ locals }) => {\n requirePermission(locals, \"instance_admin\");\n const plan = detectUpdatePlan();\n if (!plan) {\n return new Response(\n JSON.stringify({\n error: \"Couldn't determine how to update this deployment. Expected either scripts/update.sh (monorepo) or node_modules/@selvajs/selva (CLI scaffold) in the cwd or a parent.\"\n }),\n { status: 500, headers: { \"Content-Type\": \"application/json\" } }\n );\n }\n const stream = new ReadableStream({\n start(controller) {\n const encoder = new TextEncoder();\n function sendEvent(type, data) {\n const message = `data: ${JSON.stringify({ type, ...data })}\n\n`;\n controller.enqueue(encoder.encode(message));\n }\n try {\n const versionBefore = plan.mode === \"npm\" ? readRuntimeVersion(plan.cwd) : void 0;\n const prelude = [\n `[INFO] Update mode: ${plan.mode} (cwd: ${plan.cwd})`,\n ...versionBefore ? [`[INFO] Current @selvajs/selva: ${versionBefore}`] : []\n ];\n const runnerScript = plan.mode === \"git\" ? `#!/bin/bash\nexec ${shellQuote(plan.cmd)} ${plan.args.map(shellQuote).join(\" \")}\n` : buildNpmRunnerScript(\n plan.args,\n versionBefore,\n join(plan.cwd, \"ecosystem.config.cjs\")\n );\n const cmd = \"bash\";\n const args = [\"-c\", buildLauncher(runnerScript, prelude)];\n const localBin = join(plan.cwd, \"node_modules\", \".bin\");\n const child = spawn(cmd, args, {\n cwd: plan.cwd,\n env: {\n PATH: `${localBin}:${process.env.PATH ?? \"\"}`,\n HOME: process.env.HOME,\n INSTALL_DIR: plan.cwd\n },\n detached: true,\n stdio: [\"ignore\", \"pipe\", \"pipe\"]\n });\n child.unref();\n const timeout = setTimeout(\n () => {\n try {\n if (child.pid) process.kill(-child.pid, \"SIGTERM\");\n } catch {\n }\n sendEvent(\"log\", { data: \"[FATAL] Update timed out after 15 minutes\" });\n sendEvent(\"exit\", { code: -1 });\n controller.close();\n },\n 15 * 60 * 1e3\n );\n let restarting = false;\n child.stdout.on(\"data\", (data) => {\n const lines = data.toString().split(\"\\n\");\n for (const line of lines) {\n const clean = stripAnsi(line).trim();\n if (clean) {\n if (!restarting && (clean.includes(\"Applying action stopProcessId\") || clean.includes(\"Applying action restartProcessId\"))) {\n restarting = true;\n sendEvent(\"restarting\", { data: clean });\n } else {\n sendEvent(\"log\", { data: clean });\n }\n }\n }\n });\n child.stderr.on(\"data\", (data) => {\n const lines = data.toString().split(\"\\n\");\n for (const line of lines) {\n const clean = stripAnsi(line).trim();\n if (clean) {\n sendEvent(\"log\", { data: `[ERROR] ${clean}` });\n }\n }\n });\n child.on(\"close\", (code) => {\n clearTimeout(timeout);\n sendEvent(\"exit\", { code: code ?? -1 });\n controller.close();\n });\n child.on(\"error\", (err) => {\n clearTimeout(timeout);\n sendEvent(\"log\", { data: `[FATAL] ${err.message}` });\n sendEvent(\"exit\", { code: -1 });\n controller.close();\n });\n } catch (err) {\n sendEvent(\"log\", { data: `[FATAL] Failed to spawn process: ${err}` });\n sendEvent(\"exit\", { code: -1 });\n controller.close();\n }\n }\n });\n return new Response(stream, {\n headers: {\n \"Content-Type\": \"text/event-stream\",\n \"Cache-Control\": \"no-cache\",\n Connection: \"keep-alive\"\n }\n });\n};\nconst GET = async ({ locals }) => {\n requirePermission(locals, \"instance_admin\");\n let body = \"\";\n try {\n body = readFileSync(UPDATE_LOG_PATH, \"utf8\");\n } catch {\n }\n return new Response(body, {\n headers: {\n \"Content-Type\": \"text/plain; charset=utf-8\",\n \"Cache-Control\": \"no-store\"\n }\n });\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAKA,MAAM,eAAe,GAAG,uBAAuB;AAC/C,SAAS,SAAS,CAAC,GAAG,EAAE;AACxB,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;AACjD;AACA,SAAS,kBAAkB,CAAC,GAAG,EAAE;AACjC,EAAE,IAAI;AACN,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK;AAC1B,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,MAAM;AACzF,KAAK;AACL,IAAI,OAAO,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,GAAG,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;AACjE,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,MAAM;AACjB,EAAE;AACF;AACA,SAAS,UAAU,CAAC,CAAC,EAAE;AACvB,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC;AACA,SAAS,aAAa,CAAC,YAAY,EAAE,OAAO,GAAG,EAAE,EAAE;AACnD,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7E,EAAE,OAAO;AACT,QAAQ,EAAE,UAAU,CAAC,eAAe,CAAC;AACrC;AACA;AACA;;AAEA;AACA,EAAE,YAAY;AACd;AACA;;AAEA;AACA;AACA,EAAE,MAAM;;AAER;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,SAAS,oBAAoB,CAAC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE;AACrE,EAAE,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAClE,EAAE,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,IAAI,EAAE,CAAC;AAChD,EAAE,MAAM,SAAS,GAAG,UAAU,CAAC,aAAa,CAAC;AAC7C,EAAE,OAAO,CAAC;AACV;AACA,OAAO,EAAE,MAAM;AACf,UAAU,EAAE,SAAS;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK,EAAE,UAAU,CAAC;AAClB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA,SAAS,gBAAgB,GAAG;AAC5B,EAAE,IAAI,WAAW,CAAC,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,EAAE;AACpG,IAAI,OAAO;AACX,MAAM,IAAI,EAAE,KAAK;AACjB,MAAM,GAAG,EAAE,WAAW,CAAC,WAAW;AAClC,MAAM,GAAG,EAAE,MAAM;AACjB,MAAM,IA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"}
|
|
1
|
+
{"version":3,"file":"_server.ts-KdED3s6W.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/system/update/_server.ts.js"],"sourcesContent":["import { spawn } from \"child_process\";\nimport { join } from \"path\";\nimport { readFileSync, existsSync } from \"fs\";\nimport { p as private_env } from \"../../../../../../chunks/shared-server.js\";\nimport { z as requirePermission } from \"../../../../../../chunks/access.server.js\";\nconst UPDATE_LOG_PATH = \"/tmp/selva-update.log\";\nfunction stripAnsi(str) {\n return str.replace(/\\x1B\\[[0-9;]*[mGKHF]/g, \"\");\n}\nfunction readRuntimeVersion(dir) {\n try {\n const pkg = JSON.parse(\n readFileSync(join(dir, \"node_modules\", \"@selvajs\", \"selva\", \"package.json\"), \"utf8\")\n );\n return typeof pkg.version === \"string\" ? pkg.version : void 0;\n } catch {\n return void 0;\n }\n}\nfunction shellQuote(s) {\n return `'${s.replace(/'/g, `'\\\\''`)}'`;\n}\nfunction buildLauncher(runnerScript, prelude = []) {\n const echoes = prelude.map((line) => `echo ${shellQuote(line)}`).join(\"\\n\");\n return `\nLOGFILE=${shellQuote(UPDATE_LOG_PATH)}\nRUNNER=/tmp/selva-update-runner.sh\nmkdir -p \"$(dirname \"$LOGFILE\")\"\n: > \"$LOGFILE\"\n\ncat > \"$RUNNER\" <<'__SELVA_RUNNER_EOF__'\n${runnerScript}\n__SELVA_RUNNER_EOF__\nchmod +x \"$RUNNER\"\n\ntrap '' PIPE\nexec > >(tee --output-error=warn-nopipe -a \"$LOGFILE\" 2>/dev/null) 2>&1\n${echoes}\n\n# Daemonize the runner so PM2's tree-kill of selva-compute can't reach it.\n# setsid puts it in a new session; the trailing & + disown + launcher exit\n# leaves the runner with PPID=1 once we're gone. stdin/stdout/stderr are\n# fully detached from this process (and from selva-compute's pipes).\nsetsid bash \"$RUNNER\" </dev/null >>\"$LOGFILE\" 2>&1 &\nRUNNER_PID=$!\ndisown\necho \"[INFO] Update runner started (PID $RUNNER_PID, log: $LOGFILE)\"\n\n# Small pause so the runner has time to print its first line before SSE\n# closes — otherwise the frontend's first poll might see no progress.\nsleep 1\nexit 0\n`;\n}\nfunction buildNpmRunnerScript(npmArgs, versionBefore, ecosystemPath) {\n const npmCommand = [\"npm\", ...npmArgs].map(shellQuote).join(\" \");\n const before = shellQuote(versionBefore ?? \"\");\n const ecosystem = shellQuote(ecosystemPath);\n return `#!/bin/bash\nset -o pipefail\nBEFORE=${before}\nECOSYSTEM=${ecosystem}\n\n# Last-resort safety net. If the script exits with the app NOT online for\n# any reason (crash, kill -9, network blip, npm hang past timeout), try to\n# bring it back from ecosystem.config.cjs before we go. The whole point of\n# this script is to update the app; leaving it down is the worst possible\n# outcome.\non_exit() {\n STATUS=$(pm2 jlist 2>/dev/null | node -e \"\n try {\n const list = JSON.parse(require('fs').readFileSync('/dev/stdin','utf8'));\n const app = list.find(p => p.name === 'selva-compute');\n process.stdout.write(app ? app.pm2_env.status : 'missing');\n } catch { process.stdout.write('error'); }\n \" 2>/dev/null || echo \"error\")\n if [ \"$STATUS\" != \"online\" ]; then\n echo \"[RECOVER] selva-compute is '$STATUS' — starting from ecosystem.config.cjs\"\n pm2 start \"$ECOSYSTEM\" --update-env >/dev/null 2>&1 || \\\\\n echo \"[RECOVER] pm2 start failed — manual intervention required: cd $(dirname \"$ECOSYSTEM\") && pm2 start ecosystem.config.cjs\"\n fi\n}\ntrap on_exit EXIT\n\n# ---------------------------------------------------------------------------\n# 1. Pre-flight: skip the whole cycle if there's nothing to install.\n# ---------------------------------------------------------------------------\n# Without this, clicking \"Update\" on an already-current instance triggered\n# a full stop/install/start cycle and a downtime window for no reason. Now\n# we just check the registry first.\necho \"[STEP] Checking npm registry for available updates\"\nLATEST=$(npm view @selvajs/selva version --silent 2>/dev/null || echo \"\")\nif [ -z \"$LATEST\" ]; then\n echo \"[WARN] Could not query npm registry — proceeding with update attempt anyway\"\nelif [ -n \"$BEFORE\" ] && [ \"$LATEST\" = \"$BEFORE\" ]; then\n echo \"[INFO] Already on the latest version ($BEFORE)\"\n echo \"[DONE] Nothing to do\"\n exit 0\nelse\n echo \"[INFO] Available: $BEFORE → $LATEST\"\nfi\n\n# ---------------------------------------------------------------------------\n# 2. Resync PM2 daemon if its in-memory version drifted from the CLI on disk.\n# ---------------------------------------------------------------------------\n# After a global pm2 upgrade the daemon keeps running its original version\n# while the CLI moves forward. Process commands then talk to a stale daemon\n# and the symptom is \"stop works, start never lands\". \\`pm2 update\\` dumps\n# processes, kills the daemon, respawns on the current CLI, restores the\n# dump. Doing it before we touch anything keeps the rest of the script\n# talking to a coherent daemon.\necho \"[STEP] Checking PM2 daemon/CLI version sync\"\nif pm2 ping 2>&1 | grep -q \"out-of-date\" || pm2 list 2>&1 | grep -q \"out-of-date\"; then\n echo \"[STEP] PM2 daemon is out-of-date — running 'pm2 update' to resync\"\n if ! pm2 update; then\n echo \"[FATAL] pm2 update failed — aborting before stopping the running app\"\n exit 1\n fi\n echo \"[INFO] PM2 daemon resynced\"\nfi\n\n# ---------------------------------------------------------------------------\n# 3. Stop selva-compute BEFORE npm rewrites build/.\n# ---------------------------------------------------------------------------\n# SvelteKit's node adapter lazy-imports chunks from build/server/chunks/ on\n# every request. Letting npm rewrite build/ while the old process is still\n# serving traffic = in-flight requests hit ERR_MODULE_NOT_FOUND for chunks\n# whose hash just changed under their feet. Stopping first is a brief\n# downtime window (~1-2s longer than restart-in-place) for a much smaller\n# blast radius.\n#\n# This is also where the SSE connection to the frontend dies — selva-compute\n# IS the SSE server. From here on, the user sees output via the log-file\n# polling fallback in the admin UI, not over SSE.\necho \"[STEP] Stopping selva-compute\"\nif ! pm2 stop selva-compute; then\n echo \"[WARN] pm2 stop failed — selva-compute may not be running yet. Continuing.\"\nfi\n\n# ---------------------------------------------------------------------------\n# 4. Run npm update.\n# ---------------------------------------------------------------------------\necho \"[STEP] Updating @selvajs/* packages\"\nif ! ${npmCommand}; then\n echo \"[FATAL] npm update failed — EXIT trap will restart the previous build\"\n exit 1\nfi\n\nAFTER=$(node -e \"try{console.log(require('./node_modules/@selvajs/selva/package.json').version)}catch(e){}\" 2>/dev/null)\necho \"[INFO] New @selvajs/selva: \\${AFTER:-unknown}\"\n\nif [ -n \"$BEFORE\" ] && [ \"$BEFORE\" = \"$AFTER\" ]; then\n echo \"[WARN] No version change ($BEFORE). Your npm cache may be stale.\"\n echo \"[WARN] Recover with:\"\n echo \"[WARN] npm cache clean --force\"\n echo \"[WARN] rm -rf node_modules package-lock.json\"\n echo \"[WARN] npm install --prefer-online\"\nfi\n\n# ---------------------------------------------------------------------------\n# 5. Start selva-compute with the new build.\n# ---------------------------------------------------------------------------\n# Start from ecosystem.config.cjs, NOT \\`pm2 start selva-compute\\` — the\n# latter requires selva-compute to already be in pm2's in-memory process\n# list. After a \\`pm2 update\\` (step 2) that's not guaranteed.\necho \"[STEP] Starting selva-compute with new build\"\nif ! pm2 start \"$ECOSYSTEM\" --update-env; then\n echo \"[FATAL] pm2 start failed — investigate with \\\\\\`pm2 logs selva-compute\\\\\\`\"\n exit 2\nfi\n\n# ---------------------------------------------------------------------------\n# 6. Health probe the new process.\n# ---------------------------------------------------------------------------\n# Read PORT from .env the same way scripts/update.sh does, so non-default\n# ports are respected.\nPORT=$(grep \"^PORT=\" .env 2>/dev/null \\\\\n | head -1 \\\\\n | cut -d'=' -f2 \\\\\n | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e 's/^[\"'\"'\"']//' -e 's/[\"'\"'\"']$//' -e 's/[[:space:]]*#.*//')\nPORT=\\${PORT:-3000}\n\necho \"[STEP] Health-probing the new process on port $PORT\"\nHEALTHY=0\nfor i in $(seq 1 15); do\n sleep 2\n CODE=$(curl -sS -o /tmp/selva-health.$$ -w \"%{http_code}\" --max-time 5 \"http://localhost:$PORT/api/health\" 2>/dev/null || echo \"000\")\n if [ \"$CODE\" = \"200\" ]; then\n HEALTHY=1\n echo \"[INFO] Health probe passed after \\${i} attempt(s)\"\n rm -f /tmp/selva-health.$$\n break\n fi\n echo \"[INFO] Probe attempt $i/15: HTTP $CODE — retrying\"\ndone\n\nif [ \"$HEALTHY\" = \"1\" ]; then\n echo \"[DONE] Update complete\"\n exit 0\nfi\n\n# ---------------------------------------------------------------------------\n# 7. Rollback path.\n# ---------------------------------------------------------------------------\necho \"[FATAL] New process failed health check after 30s\"\nif [ -f /tmp/selva-health.$$ ]; then\n echo \"[FATAL] Last response body:\"\n cat /tmp/selva-health.$$\n rm -f /tmp/selva-health.$$\nfi\n\nif [ -z \"$BEFORE\" ]; then\n echo \"[FATAL] No prior version recorded — cannot roll back automatically.\"\n echo \"[FATAL] EXIT trap will attempt to restart the current build anyway.\"\n exit 3\nfi\n\necho \"[STEP] Rolling back @selvajs/selva to $BEFORE\"\npm2 stop selva-compute >/dev/null 2>&1 || true\nif ! npm install --save \"@selvajs/selva@$BEFORE\"; then\n echo \"[FATAL] Rollback npm install failed — EXIT trap will retry restart.\"\n exit 4\nfi\n\npm2 start \"$ECOSYSTEM\" --update-env || true\nsleep 3\nROLLBACK_CODE=$(curl -sS -o /dev/null -w \"%{http_code}\" --max-time 5 \"http://localhost:$PORT/api/health\" 2>/dev/null || echo \"000\")\nif [ \"$ROLLBACK_CODE\" = \"200\" ]; then\n echo \"[DONE] Rolled back to $BEFORE — previous version is online\"\n exit 5\nfi\n\necho \"[FATAL] Rollback restart also failed health check (HTTP $ROLLBACK_CODE)\"\necho \"[FATAL] Manual recovery required. Check: pm2 logs selva-compute\"\nexit 6\n`;\n}\nfunction detectUpdatePlan() {\n if (private_env.INSTALL_DIR && existsSync(join(private_env.INSTALL_DIR, \"scripts\", \"update.sh\"))) {\n return {\n mode: \"git\",\n cwd: private_env.INSTALL_DIR,\n cmd: \"bash\",\n args: [join(private_env.INSTALL_DIR, \"scripts\", \"update.sh\")]\n };\n }\n let dir = process.cwd();\n for (let i = 0; i < 6; i++) {\n if (existsSync(join(dir, \"scripts\", \"update.sh\"))) {\n return {\n mode: \"git\",\n cwd: dir,\n cmd: \"bash\",\n args: [join(dir, \"scripts\", \"update.sh\")]\n };\n }\n if (existsSync(join(dir, \"node_modules\", \"@selvajs\", \"selva\", \"package.json\"))) {\n return {\n mode: \"npm\",\n cwd: dir,\n cmd: \"npm\",\n args: [\"update\", \"--save\", \"--prefer-online\", \"@selvajs/cli\", \"@selvajs/selva\"]\n };\n }\n const parent = join(dir, \"..\");\n if (parent === dir) break;\n dir = parent;\n }\n return null;\n}\nconst POST = async ({ locals }) => {\n requirePermission(locals, \"instance_admin\");\n const plan = detectUpdatePlan();\n if (!plan) {\n return new Response(\n JSON.stringify({\n error: \"Couldn't determine how to update this deployment. Expected either scripts/update.sh (monorepo) or node_modules/@selvajs/selva (CLI scaffold) in the cwd or a parent.\"\n }),\n { status: 500, headers: { \"Content-Type\": \"application/json\" } }\n );\n }\n const stream = new ReadableStream({\n start(controller) {\n const encoder = new TextEncoder();\n function sendEvent(type, data) {\n const message = `data: ${JSON.stringify({ type, ...data })}\n\n`;\n controller.enqueue(encoder.encode(message));\n }\n try {\n const versionBefore = plan.mode === \"npm\" ? readRuntimeVersion(plan.cwd) : void 0;\n const prelude = [\n `[INFO] Update mode: ${plan.mode} (cwd: ${plan.cwd})`,\n ...versionBefore ? [`[INFO] Current @selvajs/selva: ${versionBefore}`] : []\n ];\n const runnerScript = plan.mode === \"git\" ? `#!/bin/bash\nexec ${shellQuote(plan.cmd)} ${plan.args.map(shellQuote).join(\" \")}\n` : buildNpmRunnerScript(\n plan.args,\n versionBefore,\n join(plan.cwd, \"ecosystem.config.cjs\")\n );\n const cmd = \"bash\";\n const args = [\"-c\", buildLauncher(runnerScript, prelude)];\n const localBin = join(plan.cwd, \"node_modules\", \".bin\");\n const child = spawn(cmd, args, {\n cwd: plan.cwd,\n env: {\n PATH: `${localBin}:${process.env.PATH ?? \"\"}`,\n HOME: process.env.HOME,\n INSTALL_DIR: plan.cwd\n },\n detached: true,\n stdio: [\"ignore\", \"pipe\", \"pipe\"]\n });\n child.unref();\n const timeout = setTimeout(\n () => {\n try {\n if (child.pid) process.kill(-child.pid, \"SIGTERM\");\n } catch {\n }\n sendEvent(\"log\", { data: \"[FATAL] Update timed out after 15 minutes\" });\n sendEvent(\"exit\", { code: -1 });\n controller.close();\n },\n 15 * 60 * 1e3\n );\n let restarting = false;\n child.stdout.on(\"data\", (data) => {\n const lines = data.toString().split(\"\\n\");\n for (const line of lines) {\n const clean = stripAnsi(line).trim();\n if (clean) {\n if (!restarting && (clean.includes(\"Applying action stopProcessId\") || clean.includes(\"Applying action restartProcessId\"))) {\n restarting = true;\n sendEvent(\"restarting\", { data: clean });\n } else {\n sendEvent(\"log\", { data: clean });\n }\n }\n }\n });\n child.stderr.on(\"data\", (data) => {\n const lines = data.toString().split(\"\\n\");\n for (const line of lines) {\n const clean = stripAnsi(line).trim();\n if (clean) {\n sendEvent(\"log\", { data: `[ERROR] ${clean}` });\n }\n }\n });\n child.on(\"close\", (code) => {\n clearTimeout(timeout);\n sendEvent(\"exit\", { code: code ?? -1 });\n controller.close();\n });\n child.on(\"error\", (err) => {\n clearTimeout(timeout);\n sendEvent(\"log\", { data: `[FATAL] ${err.message}` });\n sendEvent(\"exit\", { code: -1 });\n controller.close();\n });\n } catch (err) {\n sendEvent(\"log\", { data: `[FATAL] Failed to spawn process: ${err}` });\n sendEvent(\"exit\", { code: -1 });\n controller.close();\n }\n }\n });\n return new Response(stream, {\n headers: {\n \"Content-Type\": \"text/event-stream\",\n \"Cache-Control\": \"no-cache\",\n Connection: \"keep-alive\"\n }\n });\n};\nconst GET = async ({ locals }) => {\n requirePermission(locals, \"instance_admin\");\n let body = \"\";\n try {\n body = readFileSync(UPDATE_LOG_PATH, \"utf8\");\n } catch {\n }\n return new Response(body, {\n headers: {\n \"Content-Type\": \"text/plain; charset=utf-8\",\n \"Cache-Control\": \"no-store\"\n }\n });\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAKA,MAAM,eAAe,GAAG,uBAAuB;AAC/C,SAAS,SAAS,CAAC,GAAG,EAAE;AACxB,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;AACjD;AACA,SAAS,kBAAkB,CAAC,GAAG,EAAE;AACjC,EAAE,IAAI;AACN,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK;AAC1B,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,MAAM;AACzF,KAAK;AACL,IAAI,OAAO,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,GAAG,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;AACjE,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,MAAM;AACjB,EAAE;AACF;AACA,SAAS,UAAU,CAAC,CAAC,EAAE;AACvB,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC;AACA,SAAS,aAAa,CAAC,YAAY,EAAE,OAAO,GAAG,EAAE,EAAE;AACnD,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7E,EAAE,OAAO;AACT,QAAQ,EAAE,UAAU,CAAC,eAAe,CAAC;AACrC;AACA;AACA;;AAEA;AACA,EAAE,YAAY;AACd;AACA;;AAEA;AACA;AACA,EAAE,MAAM;;AAER;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,SAAS,oBAAoB,CAAC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE;AACrE,EAAE,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAClE,EAAE,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,IAAI,EAAE,CAAC;AAChD,EAAE,MAAM,SAAS,GAAG,UAAU,CAAC,aAAa,CAAC;AAC7C,EAAE,OAAO,CAAC;AACV;AACA,OAAO,EAAE,MAAM;AACf,UAAU,EAAE,SAAS;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK,EAAE,UAAU,CAAC;AAClB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA,SAAS,gBAAgB,GAAG;AAC5B,EAAE,IAAI,WAAW,CAAC,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,EAAE;AACpG,IAAI,OAAO;AACX,MAAM,IAAI,EAAE,KAAK;AACjB,MAAM,GAAG,EAAE,WAAW,CAAC,WAAW;AAClC,MAAM,GAAG,EAAE,MAAM;AACjB,MAAM,IA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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { json } from '@sveltejs/kit';
|
|
2
2
|
import { execSync } from 'child_process';
|
|
3
|
-
import { g as getBootHealth, i as isDegraded } from './bootHealth.server-
|
|
3
|
+
import { g as getBootHealth, i as isDegraded } from './bootHealth.server-CLLVkbZZ.js';
|
|
4
4
|
import './context-DKDYb-He.js';
|
|
5
5
|
import 'zod';
|
|
6
|
-
import './providers.server-
|
|
6
|
+
import './providers.server-wGknM6CR.js';
|
|
7
7
|
import './shared-server-C3WdcJCQ.js';
|
|
8
8
|
import 'node:url';
|
|
9
9
|
import 'node:path';
|
|
@@ -32,4 +32,4 @@ const GET = async () => {
|
|
|
32
32
|
};
|
|
33
33
|
|
|
34
34
|
export { GET };
|
|
35
|
-
//# sourceMappingURL=_server.ts-
|
|
35
|
+
//# sourceMappingURL=_server.ts-Xl5CYncx.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-Xl5CYncx.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/health/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { execSync } from \"child_process\";\nimport { g as getBootHealth, i as isDegraded } from \"../../../../chunks/bootHealth.server.js\";\nconst STARTUP_COMMIT = (() => {\n try {\n return execSync(\"git rev-parse HEAD\", { encoding: \"utf8\" }).trim();\n } catch {\n return null;\n }\n})();\nconst GET = async () => {\n const boot = await getBootHealth();\n const degraded = isDegraded(boot);\n const body = {\n status: degraded ? \"degraded\" : \"ok\",\n timestamp: (/* @__PURE__ */ new Date()).toISOString(),\n commit: STARTUP_COMMIT,\n boot\n };\n return json(body, { status: degraded ? 503 : 200 });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAGA,MAAM,cAAc,GAAG,CAAC,MAAM;AAC9B,EAAE,IAAI;AACN,IAAI,OAAO,QAAQ,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE;AACtE,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,IAAI;AACf,EAAE;AACF,CAAC,GAAG;AACC,MAAC,GAAG,GAAG,YAAY;AACxB,EAAE,MAAM,IAAI,GAAG,MAAM,aAAa,EAAE;AACpC,EAAE,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;AACnC,EAAE,MAAM,IAAI,GAAG;AACf,IAAI,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI;AACxC,IAAI,SAAS,EAAE,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE;AACzD,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI;AACJ,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;AACrD;;;;"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { error, json } from '@sveltejs/kit';
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
|
-
import { n as getProjectProvider,
|
|
4
|
-
import { r as requireCanCreateDefinition } from './access.server-
|
|
5
|
-
import { t as throwZodError, r as resolveServerForOrg, f as fetchSchemaFromCompute, h as handleApiError } from './api-errors-
|
|
3
|
+
import { n as getProjectProvider, i as getDefinitionService } from './providers.server-wGknM6CR.js';
|
|
4
|
+
import { r as requireCanCreateDefinition } from './access.server-ByXvmWyF.js';
|
|
5
|
+
import { t as throwZodError, r as resolveServerForOrg, f as fetchSchemaFromCompute, h as handleApiError } from './api-errors-C0SWfJj5.js';
|
|
6
6
|
import { G as GH_EXTENSIONS } from './types-DxzJoaA4.js';
|
|
7
7
|
import { C as CreateDefinitionInputSchema } from './context-DKDYb-He.js';
|
|
8
|
-
import { M as MAX_GH_FILE_SIZE,
|
|
8
|
+
import { M as MAX_GH_FILE_SIZE, b as MAX_IMAGE_FILE_SIZE } from './computeLimits-5PaWFMYq.js';
|
|
9
9
|
import './shared-server-C3WdcJCQ.js';
|
|
10
10
|
import 'node:url';
|
|
11
11
|
import 'node:path';
|
|
@@ -14,7 +14,7 @@ import 'node:fs/promises';
|
|
|
14
14
|
import '@supabase/supabase-js';
|
|
15
15
|
import 'zod';
|
|
16
16
|
import '@selvajs/compute/core';
|
|
17
|
-
import './utils2-
|
|
17
|
+
import './utils2-BsnrDRob.js';
|
|
18
18
|
|
|
19
19
|
function parseTags(raw) {
|
|
20
20
|
if (typeof raw !== "string" || !raw.trim()) return void 0;
|
|
@@ -68,7 +68,7 @@ const POST = async ({ request, locals }) => {
|
|
|
68
68
|
definitionPin: parsed.data.computeServerId ?? null
|
|
69
69
|
});
|
|
70
70
|
const schema = await fetchSchemaFromCompute(fileData, server);
|
|
71
|
-
const { record, version } = await
|
|
71
|
+
const { record, version } = await getDefinitionService().create(
|
|
72
72
|
ctx,
|
|
73
73
|
{
|
|
74
74
|
guid,
|
|
@@ -89,7 +89,7 @@ const POST = async ({ request, locals }) => {
|
|
|
89
89
|
let coverImage = record.coverImage;
|
|
90
90
|
if (imageFile instanceof File && imageFile.size > 0) {
|
|
91
91
|
const imageData = new Uint8Array(await imageFile.arrayBuffer());
|
|
92
|
-
coverImage = await
|
|
92
|
+
coverImage = await getDefinitionService().saveCoverImage(ctx, guid, imageData);
|
|
93
93
|
}
|
|
94
94
|
return json({ success: true, guid, version, coverImage });
|
|
95
95
|
} catch (err) {
|
|
@@ -98,4 +98,4 @@ const POST = async ({ request, locals }) => {
|
|
|
98
98
|
};
|
|
99
99
|
|
|
100
100
|
export { POST };
|
|
101
|
-
//# sourceMappingURL=_server.ts-
|
|
101
|
+
//# sourceMappingURL=_server.ts-Xpgu2-ka.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-Xpgu2-ka.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { randomUUID } from \"node:crypto\";\nimport { n as getProjectProvider, i as getDefinitionService } from \"../../../../chunks/providers.server.js\";\nimport { r as requireCanCreateDefinition } from \"../../../../chunks/access.server.js\";\nimport { t as throwZodError, r as resolveServerForOrg, f as fetchSchemaFromCompute, h as handleApiError } from \"../../../../chunks/api-errors.js\";\nimport { G as GH_EXTENSIONS } from \"../../../../chunks/types.js\";\nimport { C as CreateDefinitionInputSchema } from \"../../../../chunks/context.js\";\nimport { M as MAX_GH_FILE_SIZE, b as MAX_IMAGE_FILE_SIZE } from \"../../../../chunks/computeLimits.js\";\nfunction parseTags(raw) {\n if (typeof raw !== \"string\" || !raw.trim()) return void 0;\n const tags = raw.split(\",\").map((t) => t.trim()).filter(Boolean);\n return tags.length ? tags : void 0;\n}\nconst POST = async ({ request, locals }) => {\n const ctx = locals.ctx;\n const formData = await request.formData();\n const file = formData.get(\"file\");\n if (!(file instanceof File)) {\n throw error(400, \"A Grasshopper (.gh or .ghx) file is required\");\n }\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 imageFile = formData.get(\"image\");\n if (imageFile instanceof File && imageFile.size > MAX_IMAGE_FILE_SIZE) {\n throw error(400, `Image too large. Max size: ${MAX_IMAGE_FILE_SIZE / (1024 * 1024)} MB`);\n }\n let projectId = formData.get(\"projectId\");\n if (typeof projectId !== \"string\" || !projectId) {\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n const projectsPage = await getProjectProvider().listProjects(ctx, ctx.actingOrgId, {\n limit: 1\n });\n const defaultProject = projectsPage.items[0];\n if (!defaultProject) throw error(500, \"No project configured\");\n projectId = defaultProject.id;\n }\n const { project } = await requireCanCreateDefinition(locals, projectId);\n const parsed = CreateDefinitionInputSchema.safeParse({\n displayName: formData.get(\"displayName\"),\n description: formData.get(\"description\") || void 0,\n category: formData.get(\"category\") || void 0,\n coverImage: formData.get(\"coverImage\") || void 0,\n tags: parseTags(formData.get(\"tags\")),\n projectId,\n computeServerId: formData.get(\"computeServerId\") || void 0\n });\n if (!parsed.success) throwZodError(parsed.error);\n const fileExt = ext.slice(1);\n const guid = randomUUID();\n try {\n const fileData = new Uint8Array(await file.arrayBuffer());\n const server = await resolveServerForOrg(ctx, project.orgId, {\n definitionPin: parsed.data.computeServerId ?? null\n });\n const schema = await fetchSchemaFromCompute(fileData, server);\n const { record, version } = await getDefinitionService().create(\n ctx,\n {\n guid,\n projectId: parsed.data.projectId,\n ownerId: locals.user.id,\n fileExt,\n originalFilename: file.name,\n computeServerId: parsed.data.computeServerId,\n displayName: parsed.data.displayName.trim(),\n description: parsed.data.description,\n category: parsed.data.category,\n tags: parsed.data.tags,\n coverImage: parsed.data.coverImage\n },\n fileData,\n schema\n );\n let coverImage = record.coverImage;\n if (imageFile instanceof File && imageFile.size > 0) {\n const imageData = new Uint8Array(await imageFile.arrayBuffer());\n coverImage = await getDefinitionService().saveCoverImage(ctx, guid, imageData);\n }\n return json({ success: true, guid, version, coverImage });\n } catch (err) {\n handleApiError(err, \"Failed to create definition\");\n }\n};\nexport {\n POST\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { error, json } from '@sveltejs/kit';
|
|
2
|
-
import { f as flag, m as getPlatformProjectGrantStore } from './providers.server-
|
|
3
|
-
import { u as requireInstanceAdmin } from './access.server-
|
|
4
|
-
import { h as handleApiError } from './api-errors-
|
|
2
|
+
import { f as flag, m as getPlatformProjectGrantStore } from './providers.server-wGknM6CR.js';
|
|
3
|
+
import { u as requireInstanceAdmin } from './access.server-ByXvmWyF.js';
|
|
4
|
+
import { h as handleApiError } from './api-errors-C0SWfJj5.js';
|
|
5
5
|
import { S as SYSTEM_CONTEXT } from './context-DKDYb-He.js';
|
|
6
6
|
import './shared-server-C3WdcJCQ.js';
|
|
7
7
|
import 'node:url';
|
|
@@ -12,7 +12,7 @@ import 'node:fs/promises';
|
|
|
12
12
|
import '@supabase/supabase-js';
|
|
13
13
|
import 'zod';
|
|
14
14
|
import '@selvajs/compute/core';
|
|
15
|
-
import './utils2-
|
|
15
|
+
import './utils2-BsnrDRob.js';
|
|
16
16
|
|
|
17
17
|
const DELETE = async ({ params, locals }) => {
|
|
18
18
|
requireInstanceAdmin(locals);
|
|
@@ -28,4 +28,4 @@ const DELETE = async ({ params, locals }) => {
|
|
|
28
28
|
};
|
|
29
29
|
|
|
30
30
|
export { DELETE };
|
|
31
|
-
//# sourceMappingURL=_server.ts-
|
|
31
|
+
//# sourceMappingURL=_server.ts-eVLE380Q.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-eVLE380Q.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/projects/_id_/grants/_grantId_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { f as flag, m as getPlatformProjectGrantStore } from \"../../../../../../../../chunks/providers.server.js\";\nimport { u as requireInstanceAdmin } from \"../../../../../../../../chunks/access.server.js\";\nimport { h as handleApiError } from \"../../../../../../../../chunks/api-errors.js\";\nimport { S as SYSTEM_CONTEXT } from \"../../../../../../../../chunks/context.js\";\nconst DELETE = async ({ params, locals }) => {\n requireInstanceAdmin(locals);\n if (!flag(\"ENABLE_PLATFORM_PROJECTS\")) throw error(404, \"Not found\");\n const { grantId } = params;\n if (!grantId) throw error(400, \"Missing grant ID\");\n try {\n await getPlatformProjectGrantStore().delete(SYSTEM_CONTEXT, grantId);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to revoke grant\");\n }\n};\nexport {\n DELETE\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAKK,MAAC,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC7C,EAAE,oBAAoB,CAAC,MAAM,CAAC;AAC9B,EAAE,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC;AACtE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM;AAC5B,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC;AACpD,EAAE,IAAI;AACN,IAAI,MAAM,4BAA4B,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC;AACxE,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,wBAAwB,CAAC;AACjD,EAAE;AACF;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { error, json } from '@sveltejs/kit';
|
|
2
|
-
import { f as flag,
|
|
3
|
-
import { t as requireEditableDefinition } from './access.server-
|
|
4
|
-
import { h as handleApiError } from './api-errors-
|
|
2
|
+
import { f as flag, t as providers } from './providers.server-wGknM6CR.js';
|
|
3
|
+
import { t as requireEditableDefinition } from './access.server-ByXvmWyF.js';
|
|
4
|
+
import { h as handleApiError } from './api-errors-C0SWfJj5.js';
|
|
5
5
|
import { G as GuidSchema } from './context-DKDYb-He.js';
|
|
6
6
|
import './shared-server-C3WdcJCQ.js';
|
|
7
7
|
import 'node:url';
|
|
@@ -12,7 +12,7 @@ import 'node:fs/promises';
|
|
|
12
12
|
import '@supabase/supabase-js';
|
|
13
13
|
import 'zod';
|
|
14
14
|
import '@selvajs/compute/core';
|
|
15
|
-
import './utils2-
|
|
15
|
+
import './utils2-BsnrDRob.js';
|
|
16
16
|
|
|
17
17
|
const DELETE = async ({ params, locals }) => {
|
|
18
18
|
if (!flag("ENABLE_SHARING")) {
|
|
@@ -36,4 +36,4 @@ const DELETE = async ({ params, locals }) => {
|
|
|
36
36
|
};
|
|
37
37
|
|
|
38
38
|
export { DELETE };
|
|
39
|
-
//# sourceMappingURL=_server.ts-
|
|
39
|
+
//# sourceMappingURL=_server.ts-kighVn_d.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-kighVn_d.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_guid_/share-links/_linkId_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { f as flag, t as providers } from \"../../../../../../../chunks/providers.server.js\";\nimport { t as requireEditableDefinition } from \"../../../../../../../chunks/access.server.js\";\nimport { h as handleApiError } from \"../../../../../../../chunks/api-errors.js\";\nimport { G as GuidSchema } from \"../../../../../../../chunks/context.js\";\nconst DELETE = async ({ params, locals }) => {\n if (!flag(\"ENABLE_SHARING\")) {\n throw error(404, \"Share links are disabled on this instance (ENABLE_SHARING).\");\n }\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) throw error(400, \"Invalid or missing GUID\");\n const linkParsed = GuidSchema.safeParse(params.linkId);\n if (!linkParsed.success) throw error(400, \"Invalid or missing link ID\");\n const { ctx } = await requireEditableDefinition(locals, guidParsed.data);\n try {\n const existing = await providers.data.shareLinks.getById(ctx, linkParsed.data);\n if (!existing || existing.definitionId !== guidParsed.data) {\n throw error(404, \"Share link not found.\");\n }\n await providers.data.shareLinks.revoke(ctx, linkParsed.data);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to revoke share link\");\n }\n};\nexport {\n DELETE\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAKK,MAAC,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC7C,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;AAC/B,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,6DAA6D,CAAC;AACnF,EAAE;AACF,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,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;AACxD,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,4BAA4B,CAAC;AACzE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,yBAAyB,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC;AAC1E,EAAE,IAAI;AACN,IAAI,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC;AAClF,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,YAAY,KAAK,UAAU,CAAC,IAAI,EAAE;AAChE,MAAM,MAAM,KAAK,CAAC,GAAG,EAAE,uBAAuB,CAAC;AAC/C,IAAI;AACJ,IAAI,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC;AAChE,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,6BAA6B,CAAC;AACtD,EAAE;AACF;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { error, json } from '@sveltejs/kit';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { n as getProjectProvider, k as getOrganizationProvider } from './providers.server-
|
|
4
|
-
import { m as requireCanManage, l as requireCanEditProjectSettings, B as withAdminBypass, f as canChangeVisibilityToPublic } from './access.server-
|
|
5
|
-
import { h as handleApiError, t as throwZodError } from './api-errors-
|
|
3
|
+
import { n as getProjectProvider, k as getOrganizationProvider } from './providers.server-wGknM6CR.js';
|
|
4
|
+
import { m as requireCanManage, l as requireCanEditProjectSettings, B as withAdminBypass, f as canChangeVisibilityToPublic } from './access.server-ByXvmWyF.js';
|
|
5
|
+
import { h as handleApiError, t as throwZodError } from './api-errors-C0SWfJj5.js';
|
|
6
6
|
import { s as slugify } from './slug-BGuFQjqe.js';
|
|
7
7
|
import { g as ProjectVisibilitySchema, v as validateProjectFlags } from './context-DKDYb-He.js';
|
|
8
8
|
import './shared-server-C3WdcJCQ.js';
|
|
@@ -13,7 +13,7 @@ import 'node:crypto';
|
|
|
13
13
|
import 'node:fs/promises';
|
|
14
14
|
import '@supabase/supabase-js';
|
|
15
15
|
import '@selvajs/compute/core';
|
|
16
|
-
import './utils2-
|
|
16
|
+
import './utils2-BsnrDRob.js';
|
|
17
17
|
|
|
18
18
|
const UpdateProjectBody = z.object({
|
|
19
19
|
name: z.string().min(1).max(128).trim(),
|
|
@@ -80,4 +80,4 @@ const DELETE = async ({ params, locals }) => {
|
|
|
80
80
|
};
|
|
81
81
|
|
|
82
82
|
export { DELETE, PATCH };
|
|
83
|
-
//# sourceMappingURL=_server.ts-
|
|
83
|
+
//# sourceMappingURL=_server.ts-r2RVYvYA.js.map
|