@selvajs/selva 4.6.6 → 4.6.8
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/chunks/{v1r5UIYh.js → BdmP-tUb.js} +1 -1
- package/build/client/_app/immutable/chunks/BdmP-tUb.js.br +0 -0
- package/build/client/_app/immutable/chunks/BdmP-tUb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{D5M_yfbV.js → Bt9VQ6MA.js} +1 -1
- package/build/client/_app/immutable/chunks/Bt9VQ6MA.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bt9VQ6MA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{r9bfnncm.js → C7ABkozk.js} +1 -1
- package/build/client/_app/immutable/chunks/C7ABkozk.js.br +0 -0
- package/build/client/_app/immutable/chunks/C7ABkozk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{C6SyTEsn.js → D15GDkoE.js} +1 -1
- package/build/client/_app/immutable/chunks/D15GDkoE.js.br +0 -0
- package/build/client/_app/immutable/chunks/D15GDkoE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DnyAtWEo.js → D2DEfO0y.js} +1 -1
- package/build/client/_app/immutable/chunks/D2DEfO0y.js.br +0 -0
- package/build/client/_app/immutable/chunks/D2DEfO0y.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{iMhxXFaA.js → DayOjMNz.js} +1 -1
- package/build/client/_app/immutable/chunks/DayOjMNz.js.br +0 -0
- package/build/client/_app/immutable/chunks/DayOjMNz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DYqDOoj1.js → gkD4rx0e.js} +1 -1
- package/build/client/_app/immutable/chunks/gkD4rx0e.js.br +0 -0
- package/build/client/_app/immutable/chunks/gkD4rx0e.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.CdBcyly9.js → app.Cb97FNS6.js} +2 -2
- package/build/client/_app/immutable/entry/app.Cb97FNS6.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Cb97FNS6.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.C50ZkUus.js +1 -0
- package/build/client/_app/immutable/entry/start.C50ZkUus.js.br +2 -0
- package/build/client/_app/immutable/entry/start.C50ZkUus.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.oJLEZQGW.js → 1.DMPx58pW.js} +1 -1
- package/build/client/_app/immutable/nodes/1.DMPx58pW.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.DMPx58pW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{11.B0-Abhv0.js → 11.BHyElS1v.js} +1 -1
- package/build/client/_app/immutable/nodes/11.BHyElS1v.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.BHyElS1v.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{13.CDv5s6nc.js → 13.Dgu_RDuG.js} +1 -1
- package/build/client/_app/immutable/nodes/13.Dgu_RDuG.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.Dgu_RDuG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{14.DA7MBORT.js → 14.Cux3tfgx.js} +1 -1
- package/build/client/_app/immutable/nodes/14.Cux3tfgx.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.Cux3tfgx.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{15.CiJM83w8.js → 15.DUN-1dKF.js} +1 -1
- package/build/client/_app/immutable/nodes/15.DUN-1dKF.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.DUN-1dKF.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{16.Wa9xdogw.js → 16.Nyqz2DaH.js} +1 -1
- package/build/client/_app/immutable/nodes/16.Nyqz2DaH.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.Nyqz2DaH.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{17.CnxURr3J.js → 17.EbF1_4QD.js} +1 -1
- package/build/client/_app/immutable/nodes/17.EbF1_4QD.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.EbF1_4QD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{19.D3zOEMhL.js → 19.BsxJxi5o.js} +1 -1
- package/build/client/_app/immutable/nodes/19.BsxJxi5o.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.BsxJxi5o.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{2.B9S8BLZL.js → 2.C-RMc24_.js} +1 -1
- package/build/client/_app/immutable/nodes/2.C-RMc24_.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.C-RMc24_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/20.Cj7Gamdc.js +5021 -0
- package/build/client/_app/immutable/nodes/20.Cj7Gamdc.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.Cj7Gamdc.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{21.CRh4-aIs.js → 21.9RIOj1sV.js} +1 -1
- package/build/client/_app/immutable/nodes/21.9RIOj1sV.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.9RIOj1sV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{23.Dd0KaD8G.js → 23.BS_inydJ.js} +1 -1
- package/build/client/_app/immutable/nodes/23.BS_inydJ.js.br +0 -0
- package/build/client/_app/immutable/nodes/23.BS_inydJ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{24.D3ew5iON.js → 24.Cn_WjmBG.js} +1 -1
- package/build/client/_app/immutable/nodes/24.Cn_WjmBG.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.Cn_WjmBG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{27.BS_rBkci.js → 27.o4vRBna2.js} +1 -1
- package/build/client/_app/immutable/nodes/27.o4vRBna2.js.br +0 -0
- package/build/client/_app/immutable/nodes/27.o4vRBna2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{28.bY8AWwbI.js → 28.CZDubo-8.js} +1 -1
- package/build/client/_app/immutable/nodes/28.CZDubo-8.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.CZDubo-8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{29.CiiSFWt5.js → 29.HMiEKGtm.js} +1 -1
- package/build/client/_app/immutable/nodes/29.HMiEKGtm.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.HMiEKGtm.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{3.4LgasaAS.js → 3.DXQ_jkb2.js} +1 -1
- package/build/client/_app/immutable/nodes/3.DXQ_jkb2.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.DXQ_jkb2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{30.CrM-PV7w.js → 30.B21tLzF1.js} +1 -1
- package/build/client/_app/immutable/nodes/30.B21tLzF1.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.B21tLzF1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.CgL-uV0s.js → 5.PKdiQqGv.js} +1 -1
- package/build/client/_app/immutable/nodes/5.PKdiQqGv.js.br +2 -0
- package/build/client/_app/immutable/nodes/5.PKdiQqGv.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.ojkimVuV.js → 6.DHDCyx_Q.js} +1 -1
- package/build/client/_app/immutable/nodes/6.DHDCyx_Q.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.DHDCyx_Q.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.DTdqiUTt.js → 7.lnrVlKc_.js} +1 -1
- package/build/client/_app/immutable/nodes/7.lnrVlKc_.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.lnrVlKc_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{8.Cok-hHoD.js → 8.B0Z94r16.js} +1 -1
- package/build/client/_app/immutable/nodes/8.B0Z94r16.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.B0Z94r16.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{9.CaUtmM-j.js → 9.DXrnxEcF.js} +1 -1
- package/build/client/_app/immutable/nodes/9.DXrnxEcF.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.DXrnxEcF.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/handler.js +4 -4
- package/build/index.js +4 -4
- package/build/server/chunks/chunks/{internal.js-sUBGr0Bt.js → internal.js-lyqneca_.js} +2 -2
- package/build/server/chunks/chunks/{internal.js-sUBGr0Bt.js.map → internal.js-lyqneca_.js.map} +1 -1
- package/build/server/chunks/chunks/{package.js-CAz8pnaN.js → package.js-u-gQlTZO.js} +2 -2
- package/build/server/chunks/chunks/{package.js-CAz8pnaN.js.map → package.js-u-gQlTZO.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/compute/{_server.ts.js-O2KOa4aC.js → _server.ts.js-CSllLUvr.js} +61 -22
- package/build/server/chunks/entries/endpoints/api/compute/_server.ts.js-CSllLUvr.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/{_page.server.ts.js-ByhNy61Z.js → _page.server.ts.js-CXmeKlkU.js} +2 -2
- package/build/server/chunks/entries/pages/admin/{_page.server.ts.js-ByhNy61Z.js.map → _page.server.ts.js-CXmeKlkU.js.map} +1 -1
- package/build/server/chunks/entries/pages/admin/system/{_page.server.ts.js-x89nYF9K.js → _page.server.ts.js-Cah8QM2O.js} +2 -2
- package/build/server/chunks/entries/pages/admin/system/{_page.server.ts.js-x89nYF9K.js.map → _page.server.ts.js-Cah8QM2O.js.map} +1 -1
- package/build/server/chunks/entries/pages/library/_guid_/{_page.svelte.js-BEKqKz2W.js → _page.svelte.js-Clylb7J7.js} +22 -9
- package/build/server/chunks/entries/pages/library/_guid_/{_page.svelte.js-BEKqKz2W.js.map → _page.svelte.js-Clylb7J7.js.map} +1 -1
- package/build/server/chunks/{handler-C4-_gTLb.js → handler-B_b5-xHM.js} +3 -3
- package/build/server/chunks/{handler-C4-_gTLb.js.map → handler-B_b5-xHM.js.map} +1 -1
- package/build/server/chunks/{index.js-Cz0ONat-.js → index.js-1y3IMUFm.js} +2 -2
- package/build/server/chunks/{index.js-Cz0ONat-.js.map → index.js-1y3IMUFm.js.map} +1 -1
- package/build/server/chunks/{manifest.js-DPbU2Ov3.js → manifest.js-BYmzU1a2.js} +26 -26
- package/build/server/chunks/{manifest.js-DPbU2Ov3.js.map → manifest.js-BYmzU1a2.js.map} +1 -1
- package/build/server/chunks/nodes/{1.js-Br_s35u3.js → 1.js-B8S6VvAG.js} +2 -2
- package/build/server/chunks/nodes/{1.js-Br_s35u3.js.map → 1.js-B8S6VvAG.js.map} +1 -1
- package/build/server/chunks/nodes/{11.js-CeIdsvto.js → 11.js-DBShZgo6.js} +2 -2
- package/build/server/chunks/nodes/{11.js-CeIdsvto.js.map → 11.js-DBShZgo6.js.map} +1 -1
- package/build/server/chunks/nodes/{13.js-Cho2zGNR.js → 13.js-C3h0N67o.js} +2 -2
- package/build/server/chunks/nodes/{13.js-Cho2zGNR.js.map → 13.js-C3h0N67o.js.map} +1 -1
- package/build/server/chunks/nodes/{14.js-BdhYygLK.js → 14.js-kq9Rz1hm.js} +2 -2
- package/build/server/chunks/nodes/{14.js-BdhYygLK.js.map → 14.js-kq9Rz1hm.js.map} +1 -1
- package/build/server/chunks/nodes/{15.js-BPvi5Ryf.js → 15.js-CDHyfWJ_.js} +4 -4
- package/build/server/chunks/nodes/{15.js-BPvi5Ryf.js.map → 15.js-CDHyfWJ_.js.map} +1 -1
- package/build/server/chunks/nodes/{16.js-Px_iziUh.js → 16.js-CdLUIpXx.js} +2 -2
- package/build/server/chunks/nodes/{16.js-Px_iziUh.js.map → 16.js-CdLUIpXx.js.map} +1 -1
- package/build/server/chunks/nodes/{17.js-BpM0C2oK.js → 17.js-C41kNSCu.js} +2 -2
- package/build/server/chunks/nodes/{17.js-BpM0C2oK.js.map → 17.js-C41kNSCu.js.map} +1 -1
- package/build/server/chunks/nodes/{19.js-b6UCCZsh.js → 19.js-Dhf-ofcU.js} +2 -2
- package/build/server/chunks/nodes/{19.js-b6UCCZsh.js.map → 19.js-Dhf-ofcU.js.map} +1 -1
- package/build/server/chunks/nodes/{2.js-8ZNoe-1x.js → 2.js-CTuZF263.js} +2 -2
- package/build/server/chunks/nodes/{2.js-8ZNoe-1x.js.map → 2.js-CTuZF263.js.map} +1 -1
- package/build/server/chunks/nodes/{20.js-CVBtNChR.js → 20.js-01wSfaMr.js} +3 -3
- package/build/server/chunks/nodes/{20.js-CVBtNChR.js.map → 20.js-01wSfaMr.js.map} +1 -1
- package/build/server/chunks/nodes/{21.js-BQv78MvM.js → 21.js-kN7PSTBM.js} +2 -2
- package/build/server/chunks/nodes/{21.js-BQv78MvM.js.map → 21.js-kN7PSTBM.js.map} +1 -1
- package/build/server/chunks/nodes/{23.js-D-rDSLKh.js → 23.js-Ch9sXny7.js} +2 -2
- package/build/server/chunks/nodes/{23.js-D-rDSLKh.js.map → 23.js-Ch9sXny7.js.map} +1 -1
- package/build/server/chunks/nodes/{24.js-BEKIaE_T.js → 24.js-C2kWFgrI.js} +2 -2
- package/build/server/chunks/nodes/{24.js-BEKIaE_T.js.map → 24.js-C2kWFgrI.js.map} +1 -1
- package/build/server/chunks/nodes/{27.js-CLYdtFD3.js → 27.js-R6UynrNA.js} +2 -2
- package/build/server/chunks/nodes/{27.js-CLYdtFD3.js.map → 27.js-R6UynrNA.js.map} +1 -1
- package/build/server/chunks/nodes/{28.js-4I48uOEk.js → 28.js-D7qjhd9u.js} +2 -2
- package/build/server/chunks/nodes/{28.js-4I48uOEk.js.map → 28.js-D7qjhd9u.js.map} +1 -1
- package/build/server/chunks/nodes/{29.js-B5YMSLBJ.js → 29.js-CDQgM48g.js} +2 -2
- package/build/server/chunks/nodes/{29.js-B5YMSLBJ.js.map → 29.js-CDQgM48g.js.map} +1 -1
- package/build/server/chunks/nodes/{3.js--JuqH32r.js → 3.js-CQOrYeFA.js} +2 -2
- package/build/server/chunks/nodes/{3.js--JuqH32r.js.map → 3.js-CQOrYeFA.js.map} +1 -1
- package/build/server/chunks/nodes/{30.js-wiXmW7SJ.js → 30.js-Uib08Hw0.js} +2 -2
- package/build/server/chunks/nodes/{30.js-wiXmW7SJ.js.map → 30.js-Uib08Hw0.js.map} +1 -1
- package/build/server/chunks/nodes/{5.js-BUBb_r4y.js → 5.js-Dv_-Lmjy.js} +2 -2
- package/build/server/chunks/nodes/{5.js-BUBb_r4y.js.map → 5.js-Dv_-Lmjy.js.map} +1 -1
- package/build/server/chunks/nodes/{6.js-C_8FpzOr.js → 6.js-DWplohau.js} +2 -2
- package/build/server/chunks/nodes/{6.js-C_8FpzOr.js.map → 6.js-DWplohau.js.map} +1 -1
- package/build/server/chunks/nodes/{7.js-J2IEC7hV.js → 7.js-q_FW208V.js} +2 -2
- package/build/server/chunks/nodes/{7.js-J2IEC7hV.js.map → 7.js-q_FW208V.js.map} +1 -1
- package/build/server/chunks/nodes/{8.js-Bw7bTByq.js → 8.js-DS6s_F2H.js} +2 -2
- package/build/server/chunks/nodes/{8.js-Bw7bTByq.js.map → 8.js-DS6s_F2H.js.map} +1 -1
- package/build/server/chunks/nodes/{9.js-xv3MqQQQ.js → 9.js-CdB0EV3q.js} +4 -4
- package/build/server/chunks/nodes/{9.js-xv3MqQQQ.js.map → 9.js-CdB0EV3q.js.map} +1 -1
- package/package.json +1 -1
- package/build/client/_app/immutable/chunks/C6SyTEsn.js.br +0 -0
- package/build/client/_app/immutable/chunks/C6SyTEsn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D5M_yfbV.js.br +0 -0
- package/build/client/_app/immutable/chunks/D5M_yfbV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DYqDOoj1.js.br +0 -0
- package/build/client/_app/immutable/chunks/DYqDOoj1.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DnyAtWEo.js.br +0 -0
- package/build/client/_app/immutable/chunks/DnyAtWEo.js.gz +0 -0
- package/build/client/_app/immutable/chunks/iMhxXFaA.js.br +0 -0
- package/build/client/_app/immutable/chunks/iMhxXFaA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/r9bfnncm.js.br +0 -0
- package/build/client/_app/immutable/chunks/r9bfnncm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/v1r5UIYh.js.br +0 -0
- package/build/client/_app/immutable/chunks/v1r5UIYh.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CdBcyly9.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CdBcyly9.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.B892ywNW.js +0 -1
- package/build/client/_app/immutable/entry/start.B892ywNW.js.br +0 -2
- package/build/client/_app/immutable/entry/start.B892ywNW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.oJLEZQGW.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.oJLEZQGW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.B0-Abhv0.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.B0-Abhv0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.CDv5s6nc.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.CDv5s6nc.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.DA7MBORT.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.DA7MBORT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.CiJM83w8.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.CiJM83w8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/16.Wa9xdogw.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.Wa9xdogw.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.CnxURr3J.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.CnxURr3J.js.gz +0 -0
- package/build/client/_app/immutable/nodes/19.D3zOEMhL.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.D3zOEMhL.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.B9S8BLZL.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.B9S8BLZL.js.gz +0 -0
- package/build/client/_app/immutable/nodes/20.BrsBkxbd.js +0 -5021
- package/build/client/_app/immutable/nodes/20.BrsBkxbd.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.BrsBkxbd.js.gz +0 -0
- package/build/client/_app/immutable/nodes/21.CRh4-aIs.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.CRh4-aIs.js.gz +0 -0
- package/build/client/_app/immutable/nodes/23.Dd0KaD8G.js.br +0 -0
- package/build/client/_app/immutable/nodes/23.Dd0KaD8G.js.gz +0 -0
- package/build/client/_app/immutable/nodes/24.D3ew5iON.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.D3ew5iON.js.gz +0 -0
- package/build/client/_app/immutable/nodes/27.BS_rBkci.js.br +0 -0
- package/build/client/_app/immutable/nodes/27.BS_rBkci.js.gz +0 -0
- package/build/client/_app/immutable/nodes/28.bY8AWwbI.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.bY8AWwbI.js.gz +0 -0
- package/build/client/_app/immutable/nodes/29.CiiSFWt5.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.CiiSFWt5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.4LgasaAS.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.4LgasaAS.js.gz +0 -0
- package/build/client/_app/immutable/nodes/30.CrM-PV7w.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.CrM-PV7w.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.CgL-uV0s.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.CgL-uV0s.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.ojkimVuV.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.ojkimVuV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.DTdqiUTt.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.DTdqiUTt.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.Cok-hHoD.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.Cok-hHoD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.CaUtmM-j.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.CaUtmM-j.js.gz +0 -0
- package/build/server/chunks/entries/endpoints/api/compute/_server.ts.js-O2KOa4aC.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import"../chunks/DsnmJJEf.js";import{p as le,f,d as i,t as E,c as U,r as P,g as n,h as T,n as ee,a as de,s as oe,u as R,e as ve,$ as ge}from"../chunks/BtOVeLcI.js";import{d as he,s as H,a as pe}from"../chunks/BNpXeuQ_.js";import{c as te,a as r,t as _e,f as c}from"../chunks/BoLtD6vo.js";import{i as J}from"../chunks/DAQN5y4A.js";import{a as Z,e as xe}from"../chunks/22C0ZkpD.js";import{s as O,r as re,c as x,b as $e}from"../chunks/ChEZL1UP.js";import{h as we}from"../chunks/CTTkX-27.js";import{p as be}from"../chunks/
|
|
1
|
+
import"../chunks/DsnmJJEf.js";import{p as le,f,d as i,t as E,c as U,r as P,g as n,h as T,n as ee,a as de,s as oe,u as R,e as ve,$ as ge}from"../chunks/BtOVeLcI.js";import{d as he,s as H,a as pe}from"../chunks/BNpXeuQ_.js";import{c as te,a as r,t as _e,f as c}from"../chunks/BoLtD6vo.js";import{i as J}from"../chunks/DAQN5y4A.js";import{a as Z,e as xe}from"../chunks/22C0ZkpD.js";import{s as O,r as re,c as x,b as $e}from"../chunks/ChEZL1UP.js";import{h as we}from"../chunks/CTTkX-27.js";import{p as be}from"../chunks/D15GDkoE.js";import{S as ye}from"../chunks/DLMu-EPf.js";import{i as ie}from"../chunks/BdmP-tUb.js";import{C as ce,a as me}from"../chunks/CY6l1SkO.js";import{B as ae}from"../chunks/3KyAYBE4.js";import{C as ue,a as fe}from"../chunks/BawNisij.js";import{B as ne}from"../chunks/mlApEF2J.js";import{I as se}from"../chunks/BuC_QZkR.js";import{C as Pe}from"../chunks/C0Xb3vka.js";import{T as Ce}from"../chunks/BuBobyR7.js";import{t as y}from"../chunks/DTLLn7uD.js";import{S as Se}from"../chunks/Bixcgta2.js";import{U as ke}from"../chunks/BYQ2KYuV.js";import{S as Ae}from"../chunks/BRHPfB44.js";function Ge(v,e){let l=re(e,["$$slots","$$events","$$legacy"]);const s=[["path",{d:"M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21"}],["path",{d:"m14 19.5 3-3 3 3"}],["path",{d:"M17 22v-5.5"}],["circle",{cx:"9",cy:"9",r:"2"}]];se(v,O({name:"image-up"},()=>l,{get iconNode(){return s}}))}function Ie(v,e){let l=re(e,["$$slots","$$events","$$legacy"]);const s=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1"}]];se(v,O({name:"layout-dashboard"},()=>l,{get iconNode(){return s}}))}function Ue(v,e){let l=re(e,["$$slots","$$events","$$legacy"]);const s=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z"}],["path",{d:"M12 22V12"}],["polyline",{points:"3.29 7 12 12 20.71 7"}],["path",{d:"m7.5 4.27 9 5.15"}]];se(v,O({name:"package"},()=>l,{get iconNode(){return s}}))}var Ne=c("<!> ",1),je=c("<!> <!>",1),Me=c('<img class="h-full w-full object-contain"/>'),ze=c("<!> ",1),Be=c("<!> Remove",1),Te=c('<div class="flex items-center gap-4"><div class="bg-muted/40 flex h-20 w-20 shrink-0 items-center justify-center overflow-hidden rounded-lg border"><!></div> <div class="flex flex-col gap-2"><p class="text-muted-foreground text-xs">PNG, JPG, WebP, GIF, or SVG. Stored at up to 1200px as WebP.</p> <div class="flex gap-2"><input type="file" class="hidden"/> <!> <!></div></div></div>'),Ee=c("<!> <!>",1);function Fe(v,e){le(e,!0);const l="image/png,image/jpeg,image/webp,image/gif,image/svg+xml",s=10*1024*1024,F=R(()=>`/admin/api/orgs/${e.orgId}/assets/${e.kind}`);let C=oe(null),m=oe(!1);async function M(t){const u=t.target,$=u.files?.[0];if(u.value="",!!$){if(!l.split(",").includes($.type)){y.error("Unsupported image type. Use PNG, JPG, WebP, GIF, or SVG.");return}if($.size>s){y.error(`Image too large. Max ${s/(1024*1024)} MB.`);return}T(m,!0);try{const D=new FormData;D.append("image",$);const g=await fetch(n(F),{method:"POST",body:D});if(g.ok)y.success(`${e.title} updated`),await ie();else{const w=await g.json().catch(()=>({}));y.error(w.message||w.error||`Upload failed (${g.status})`)}}catch{y.error("Failed to upload")}finally{T(m,!1)}}}async function V(){T(m,!0);try{const t=await fetch(n(F),{method:"DELETE"});t.ok?(y.success(`${e.title} removed`),await ie()):y.error(`Remove failed (${t.status})`)}catch{y.error("Failed to remove")}finally{T(m,!1)}}var W=te(),X=f(W);x(X,()=>fe,(t,u)=>{u(t,{children:($,D)=>{var g=Ee(),w=f(g);x(w,()=>ce,(S,k)=>{k(S,{children:(A,q)=>{var o=je(),d=f(o);x(d,()=>me,(h,b)=>{b(h,{class:"flex items-center gap-2 text-sm font-medium",children:(p,_)=>{var I=Ne(),N=f(I);ae(N,{class:"text-muted-foreground h-4 w-4"});var L=i(N);E(()=>H(L,` ${e.title??""}`)),r(p,I)},$$slots:{default:!0}})});var G=i(d,2);{var z=h=>{var b=te(),p=f(b);x(p,()=>Pe,(_,I)=>{I(_,{children:(N,L)=>{ee();var a=_e();E(()=>H(a,e.description)),r(N,a)},$$slots:{default:!0}})}),r(h,b)};J(G,h=>{e.description&&h(z)})}r(A,o)},$$slots:{default:!0}})});var Y=i(w,2);x(Y,()=>ue,(S,k)=>{k(S,{children:(A,q)=>{var o=Te(),d=U(o),G=U(d);{var z=a=>{var j=Me();E(()=>{Z(j,"src",e.url),Z(j,"alt",e.title)}),r(a,j)},h=a=>{ae(a,{class:"text-muted-foreground/50 h-8 w-8"})};J(G,a=>{e.url?a(z):a(h,-1)})}P(d);var b=i(d,2),p=i(U(b),2),_=U(p);Z(_,"accept",l),$e(_,a=>T(C,a),()=>n(C));var I=i(_,2);ne(I,{variant:"outline",size:"sm",get disabled(){return n(m)},onclick:()=>n(C)?.click(),class:"h-8",children:(a,j)=>{var K=ze(),B=f(K);Ge(B,{class:"mr-1.5 h-3.5 w-3.5"});var Q=i(B);E(()=>H(Q,` ${n(m)?"Working…":e.url?"Replace":"Upload"}`)),r(a,K)},$$slots:{default:!0}});var N=i(I,2);{var L=a=>{ne(a,{variant:"ghost",size:"sm",get disabled(){return n(m)},onclick:V,class:"text-destructive hover:text-destructive h-8",children:(j,K)=>{var B=Be(),Q=f(B);Ce(Q,{class:"mr-1.5 h-3.5 w-3.5"}),ee(),r(j,B)},$$slots:{default:!0}})};J(N,a=>{e.url&&a(L)})}P(p),P(b),P(o),pe("change",_,M),r(A,o)},$$slots:{default:!0}})}),r($,g)},$$slots:{default:!0}})}),r(v,W),de()}he(["change"]);var Ve=c("<!> Installed version",1),We=c('<div class="flex flex-wrap items-baseline gap-x-3 gap-y-1"><code class="text-foreground font-mono text-xs">@selvajs/selva</code> <span class="text-muted-foreground text-xs"> </span></div>'),De=c("<!> <!>",1),Le=c('<div class="space-y-6"><!> <div class="grid gap-3 sm:grid-cols-2 lg:grid-cols-3"></div> <!> <!></div>');function ut(v,e){le(e,!0);const l=R(()=>be.data.branding.name),s=t=>e.data.platformPermissions.includes("instance_admin")||e.data.platformPermissions.includes(t),F=R(()=>[{href:"/admin/users",icon:ke,value:e.data.stats.users??"—",label:e.data.stats.users===null?"User store unavailable":`User${e.data.stats.users===1?"":"s"}`,show:s("manage_instance_users")},{href:"/admin/organizations",icon:ae,value:"Organizations",label:"All orgs on this instance",show:s("instance_admin")},{href:"/admin/compute",icon:Ae,value:"Compute",label:"Servers, status & config",show:s("manage_compute")},{href:"/projects",icon:Ie,value:"Content",label:"Definitions & projects",show:s("instance_admin")}].filter(t=>t.show));var C=Le();we("1jef3w8",t=>{ve(()=>{ge.title="Admin · General"})});var m=U(C);Se(m,{eyebrow:"Admin",title:"General",get description(){return`At-a-glance health of this ${n(l)??""} instance — users, compute, and content.`}});var M=i(m,2);xe(M,21,()=>n(F),t=>t.href,(t,u)=>{ye(t,O(()=>n(u)))}),P(M);var V=i(M,2);{var W=t=>{{let u=R(()=>e.data.org.assets.logo??null);Fe(t,{get orgId(){return e.data.org.id},kind:"logo",get url(){return n(u)},title:"Company logo",get description(){return`Upload a logo to reuse across ${n(l)??""}. Shown in the viewer header; more surfaces will pick it up.`}})}};J(V,t=>{e.data.org&&t(W)})}var X=i(V,2);x(X,()=>fe,(t,u)=>{u(t,{children:($,D)=>{var g=De(),w=f(g);x(w,()=>ce,(S,k)=>{k(S,{children:(A,q)=>{var o=te(),d=f(o);x(d,()=>me,(G,z)=>{z(G,{class:"flex items-center gap-2 text-sm font-medium",children:(h,b)=>{var p=Ve(),_=f(p);Ue(_,{class:"text-muted-foreground h-4 w-4"}),ee(),r(h,p)},$$slots:{default:!0}})}),r(A,o)},$$slots:{default:!0}})});var Y=i(w,2);x(Y,()=>ue,(S,k)=>{k(S,{children:(A,q)=>{var o=We(),d=i(U(o),2),G=U(d);P(d),P(o),E(()=>H(G,`v${e.data.version??""}`)),r(A,o)},$$slots:{default:!0}})}),r($,g)},$$slots:{default:!0}})}),P(C),r(v,C),de()}export{ut as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"
|
|
1
|
+
{"version":"1783356266036"}
|
|
Binary file
|
|
Binary file
|
package/build/handler.js
CHANGED
|
@@ -2,10 +2,10 @@ import './shims.js';
|
|
|
2
2
|
import 'node:fs';
|
|
3
3
|
import 'node:path';
|
|
4
4
|
import 'node:process';
|
|
5
|
-
export { h as handler } from './server/chunks/handler-
|
|
5
|
+
export { h as handler } from './server/chunks/handler-B_b5-xHM.js';
|
|
6
6
|
import '@sveltejs/kit/node';
|
|
7
|
-
import './server/chunks/index.js-
|
|
8
|
-
import './server/chunks/manifest.js-
|
|
7
|
+
import './server/chunks/index.js-1y3IMUFm.js';
|
|
8
|
+
import './server/chunks/manifest.js-BYmzU1a2.js';
|
|
9
9
|
import './env.js';
|
|
10
10
|
import '@sveltejs/kit/node/polyfills';
|
|
11
11
|
import 'node:http';
|
|
@@ -24,7 +24,7 @@ import './server/chunks/chunks/exports.js-BZBK1HC9.js';
|
|
|
24
24
|
import './server/chunks/chunks/index.js-CC8M6P-h.js';
|
|
25
25
|
import './server/chunks/chunks/renderer.js-CtAppMtw.js';
|
|
26
26
|
import './server/chunks/chunks/shared-server.js-DaWdgxVh.js';
|
|
27
|
-
import './server/chunks/chunks/internal.js-
|
|
27
|
+
import './server/chunks/chunks/internal.js-lyqneca_.js';
|
|
28
28
|
import './server/chunks/chunks/root.js-BKNoOlLU.js';
|
|
29
29
|
import './server/chunks/chunks/events.js-CzuTO9ni.js';
|
|
30
30
|
//# sourceMappingURL=handler.js.map
|
package/build/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import http from 'node:http';
|
|
2
2
|
import fs__default from 'node:fs';
|
|
3
3
|
import process from 'node:process';
|
|
4
|
-
import { p as polka, h as handler, f as format_listening_address } from './server/chunks/handler-
|
|
4
|
+
import { p as polka, h as handler, f as format_listening_address } from './server/chunks/handler-B_b5-xHM.js';
|
|
5
5
|
import { env, timeout_env } from './env.js';
|
|
6
6
|
import { rm } from 'node:fs/promises';
|
|
7
7
|
import './shims.js';
|
|
@@ -10,7 +10,7 @@ import 'node:path';
|
|
|
10
10
|
import 'node:timers';
|
|
11
11
|
import 'node:querystring';
|
|
12
12
|
import '@sveltejs/kit/node';
|
|
13
|
-
import './server/chunks/index.js-
|
|
13
|
+
import './server/chunks/index.js-1y3IMUFm.js';
|
|
14
14
|
import './server/chunks/chunks/utils.js-B8oGSXiQ.js';
|
|
15
15
|
import './server/chunks/chunks/utils2.js-DGYJFmnf.js';
|
|
16
16
|
import './server/chunks/chunks/render-context.js-CK-yhMaE.js';
|
|
@@ -23,10 +23,10 @@ import './server/chunks/chunks/exports.js-BZBK1HC9.js';
|
|
|
23
23
|
import './server/chunks/chunks/index.js-CC8M6P-h.js';
|
|
24
24
|
import './server/chunks/chunks/renderer.js-CtAppMtw.js';
|
|
25
25
|
import './server/chunks/chunks/shared-server.js-DaWdgxVh.js';
|
|
26
|
-
import './server/chunks/chunks/internal.js-
|
|
26
|
+
import './server/chunks/chunks/internal.js-lyqneca_.js';
|
|
27
27
|
import './server/chunks/chunks/root.js-BKNoOlLU.js';
|
|
28
28
|
import './server/chunks/chunks/events.js-CzuTO9ni.js';
|
|
29
|
-
import './server/chunks/manifest.js-
|
|
29
|
+
import './server/chunks/manifest.js-BYmzU1a2.js';
|
|
30
30
|
import 'node:url';
|
|
31
31
|
|
|
32
32
|
const path = env('SOCKET_PATH', false);
|
|
@@ -94,7 +94,7 @@ const options = {
|
|
|
94
94
|
<div class="error">
|
|
95
95
|
<span class="status">` + status + '</span>\n <div class="message">\n <h1>' + message + "</h1>\n </div>\n </div>\n </body>\n</html>\n"
|
|
96
96
|
},
|
|
97
|
-
version_hash: "
|
|
97
|
+
version_hash: "1avgxy7"
|
|
98
98
|
};
|
|
99
99
|
async function get_hooks() {
|
|
100
100
|
let handle;
|
|
@@ -117,4 +117,4 @@ async function get_hooks() {
|
|
|
117
117
|
}
|
|
118
118
|
|
|
119
119
|
export { get_hooks as g, options as o, read_implementation as r, set_read_implementation as s };
|
|
120
|
-
//# sourceMappingURL=internal.js-
|
|
120
|
+
//# sourceMappingURL=internal.js-lyqneca_.js.map
|
package/build/server/chunks/chunks/{internal.js-sUBGr0Bt.js.map → internal.js-lyqneca_.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js-
|
|
1
|
+
{"version":3,"file":"internal.js-lyqneca_.js","sources":["../../../../.svelte-kit/output/server/chunks/internal.js"],"sourcesContent":["import { r as root } from \"./root.js\";\nimport \"./environment.js\";\nimport \"./shared-server.js\";\nlet read_implementation = null;\nfunction set_read_implementation(fn) {\n read_implementation = fn;\n}\nfunction set_manifest(_) {\n}\nconst options = {\n app_template_contains_nonce: false,\n async: false,\n csp: { \"mode\": \"auto\", \"directives\": { \"upgrade-insecure-requests\": false, \"block-all-mixed-content\": false }, \"reportOnly\": { \"upgrade-insecure-requests\": false, \"block-all-mixed-content\": false } },\n csrf_check_origin: true,\n csrf_trusted_origins: [],\n embedded: false,\n env_public_prefix: \"PUBLIC_\",\n env_private_prefix: \"\",\n hash_routing: false,\n hooks: null,\n // added lazily, via `get_hooks`\n preload_strategy: \"modulepreload\",\n root,\n service_worker: false,\n service_worker_options: void 0,\n server_error_boundaries: false,\n templates: {\n app: ({ head, body, assets, nonce, env }) => '<!doctype html>\\n<html lang=\"en\">\\n\t<head>\\n\t\t<meta charset=\"utf-8\" />\\n\t\t<meta content=\"width=device-width, initial-scale=1\" name=\"viewport\" />\\n\t\t<link rel=\"icon\" type=\"image/png\" href=\"/favicon/favicon-96x96.png\" sizes=\"96x96\" />\\n\t\t<link rel=\"icon\" type=\"image/svg+xml\" href=\"/favicon/favicon.svg\" />\\n\t\t<link rel=\"shortcut icon\" href=\"/favicon/favicon.ico\" />\\n\t\t<link rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"/favicon/apple-touch-icon.png\" />\\n\t\t<meta name=\"apple-mobile-web-app-title\" content=\"Selva\" />\\n\t\t<link rel=\"manifest\" href=\"/favicon/site.webmanifest\" />\\n\t\t' + head + '\\n\t</head>\\n\t<body data-sveltekit-preload-data=\"hover\">\\n\t\t<div style=\"display: contents\">' + body + \"</div>\\n\t</body>\\n</html>\\n\",\n error: ({ status, message }) => '<!doctype html>\\n<html lang=\"en\">\\n\t<head>\\n\t\t<meta charset=\"utf-8\" />\\n\t\t<title>' + message + `</title>\n\n\t\t<style>\n\t\t\tbody {\n\t\t\t\t--bg: white;\n\t\t\t\t--fg: #222;\n\t\t\t\t--divider: #ccc;\n\t\t\t\tbackground: var(--bg);\n\t\t\t\tcolor: var(--fg);\n\t\t\t\tfont-family:\n\t\t\t\t\tsystem-ui,\n\t\t\t\t\t-apple-system,\n\t\t\t\t\tBlinkMacSystemFont,\n\t\t\t\t\t'Segoe UI',\n\t\t\t\t\tRoboto,\n\t\t\t\t\tOxygen,\n\t\t\t\t\tUbuntu,\n\t\t\t\t\tCantarell,\n\t\t\t\t\t'Open Sans',\n\t\t\t\t\t'Helvetica Neue',\n\t\t\t\t\tsans-serif;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\theight: 100vh;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t.error {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tmax-width: 32rem;\n\t\t\t\tmargin: 0 1rem;\n\t\t\t}\n\n\t\t\t.status {\n\t\t\t\tfont-weight: 200;\n\t\t\t\tfont-size: 3rem;\n\t\t\t\tline-height: 1;\n\t\t\t\tposition: relative;\n\t\t\t\ttop: -0.05rem;\n\t\t\t}\n\n\t\t\t.message {\n\t\t\t\tborder-left: 1px solid var(--divider);\n\t\t\t\tpadding: 0 0 0 1rem;\n\t\t\t\tmargin: 0 0 0 1rem;\n\t\t\t\tmin-height: 2.5rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t}\n\n\t\t\t.message h1 {\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-size: 1em;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t@media (prefers-color-scheme: dark) {\n\t\t\t\tbody {\n\t\t\t\t\t--bg: #222;\n\t\t\t\t\t--fg: #ddd;\n\t\t\t\t\t--divider: #666;\n\t\t\t\t}\n\t\t\t}\n\t\t</style>\n\t</head>\n\t<body>\n\t\t<div class=\"error\">\n\t\t\t<span class=\"status\">` + status + '</span>\\n\t\t\t<div class=\"message\">\\n\t\t\t\t<h1>' + message + \"</h1>\\n\t\t\t</div>\\n\t\t</div>\\n\t</body>\\n</html>\\n\"\n },\n version_hash: \"1avgxy7\"\n};\nasync function get_hooks() {\n let handle;\n let handleFetch;\n let handleError;\n let handleValidationError;\n let init;\n ({ handle, handleFetch, handleError, handleValidationError, init } = await import(\"../entries/hooks.server.js\"));\n let reroute;\n let transport;\n return {\n handle,\n handleFetch,\n handleError,\n handleValidationError,\n init,\n reroute,\n transport\n };\n}\nexport {\n set_manifest as a,\n get_hooks as g,\n options as o,\n read_implementation as r,\n set_read_implementation as s\n};\n"],"names":[],"mappings":";;AAGG,IAAC,mBAAmB,GAAG;AAC1B,SAAS,uBAAuB,CAAC,EAAE,EAAE;AACrC,EAAE,mBAAmB,GAAG,EAAE;AAC1B;AAGK,MAAC,OAAO,GAAG;AAChB,EAAE,2BAA2B,EAAE,KAAK;AACpC,EAAE,KAAK,EAAE,KAAK;AACd,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,2BAA2B,EAAE,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,2BAA2B,EAAE,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,EAAE;AACzM,EAAE,iBAAiB,EAAE,IAAI;AACzB,EAAE,oBAAoB,EAAE,EAAE;AAC1B,EAAE,QAAQ,EAAE,KAAK;AACjB,EAAE,iBAAiB,EAAE,SAAS;AAC9B,EAAE,kBAAkB,EAAE,EAAE;AACxB,EAAE,YAAY,EAAE,KAAK;AACrB,EAAE,KAAK,EAAE,IAAI;AACb;AACA,EAAE,gBAAgB,EAAE,eAAe;AACnC,EAAE,IAAI;AACN,EAAE,cAAc,EAAE,KAAK;AACvB,EAAE,sBAAsB,EAAE,MAAM;AAChC,EAAE,uBAAuB,EAAE,KAAK;AAChC,EAAE,SAAS,EAAE;AACb,IAAI,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,okBAAokB,GAAG,IAAI,GAAG,4FAA4F,GAAG,IAAI,GAAG,6BAA6B;AAClwB,IAAI,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,mFAAmF,GAAG,OAAO,GAAG,CAAC;;AAErI;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,CAAC,GAAG,MAAM,GAAG,6CAA6C,GAAG,OAAO,GAAG;AAC/F,GAAG;AACH,EAAE,YAAY,EAAE;AAChB;AACA,eAAe,SAAS,GAAG;AAC3B,EAAE,IAAI,MAAM;AACZ,EAAE,IAAI,WAAW;AACjB,EAAE,IAAI,WAAW;AACjB,EAAE,IAAI,qBAAqB;AAC3B,EAAE,IAAI,IAAI;AACV,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,qBAAqB,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,wCAA4B,CAAC;AACjH,EAAE,IAAI,OAAO;AACb,EAAE,IAAI,SAAS;AACf,EAAE,OAAO;AACT,IAAI,MAAM;AACV,IAAI,WAAW;AACf,IAAI,WAAW;AACf,IAAI,qBAAqB;AACzB,IAAI,IAAI;AACR,IAAI,OAAO;AACX,IAAI;AACJ,GAAG;AACH;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const name = "@selvajs/selva";
|
|
2
|
-
const version = "4.6.
|
|
2
|
+
const version = "4.6.8";
|
|
3
3
|
const description = "Selva — self-contained Grasshopper-driven web app. Install, configure via .env, deploy.";
|
|
4
4
|
const license = "MIT";
|
|
5
5
|
const publishConfig = { "access": "public" };
|
|
@@ -26,4 +26,4 @@ const pkg = {
|
|
|
26
26
|
};
|
|
27
27
|
|
|
28
28
|
export { pkg as p };
|
|
29
|
-
//# sourceMappingURL=package.js-
|
|
29
|
+
//# sourceMappingURL=package.js-u-gQlTZO.js.map
|
package/build/server/chunks/chunks/{package.js-CAz8pnaN.js.map → package.js-u-gQlTZO.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.js-
|
|
1
|
+
{"version":3,"file":"package.js-u-gQlTZO.js","sources":["../../../../.svelte-kit/output/server/chunks/package.js"],"sourcesContent":["const name = \"@selvajs/selva\";\nconst version = \"4.6.8\";\nconst description = \"Selva — self-contained Grasshopper-driven web app. Install, configure via .env, deploy.\";\nconst license = \"MIT\";\nconst publishConfig = { \"access\": \"public\" };\nconst type = \"module\";\nconst main = \"./build/index.js\";\nconst files = [\"build\", \"templates\"];\nconst engines = { \"node\": \">=20.6.0\" };\nconst scripts = { \"dev\": \"vite dev\", \"build\": \"rimraf build && vite build && node ./scripts/generate-templates.js\", \"preview\": \"vite preview\", \"start\": \"node build/index.js\", \"clean\": \"rimraf build templates\", \"prepare\": \"svelte-kit sync || echo ''\", \"check\": \"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json\", \"type-check\": \"tsc --noEmit\", \"test\": \"vitest run\", \"test:watch\": \"vitest\", \"test:e2e\": \"playwright test\" };\nconst dependencies = { \"@lucide/svelte\": \"catalog:\", \"@selvajs/compute\": \"catalog:\", \"@supabase/supabase-js\": \"^2.104.1\", \"@sveltejs/kit\": \"catalog:\", \"bits-ui\": \"^2.18.0\", \"clsx\": \"catalog:\", \"mode-watcher\": \"catalog:\", \"rhino3dm\": \"8.17.0\", \"sharp\": \"^0.34.5\", \"tailwind-merge\": \"catalog:\", \"tailwind-variants\": \"^3.2.2\", \"three\": \"catalog:\", \"zod\": \"^4.3.6\" };\nconst devDependencies = { \"@selvajs/config\": \"workspace:*\", \"@selvajs/header-auth-provider\": \"workspace:*\", \"@selvajs/local-provider\": \"workspace:*\", \"@selvajs/platform\": \"workspace:*\", \"@selvajs/schemas\": \"workspace:*\", \"@selvajs/supabase-provider\": \"workspace:*\", \"@selvajs/ui\": \"workspace:*\", \"@playwright/test\": \"catalog:\", \"@sveltejs/adapter-node\": \"^5.5.4\", \"@types/three\": \"catalog:\", \"rimraf\": \"catalog:\", \"tw-animate-css\": \"catalog:\", \"vitest\": \"catalog:\" };\nconst pkg = {\n name,\n version,\n description,\n license,\n publishConfig,\n type,\n main,\n files,\n engines,\n scripts,\n dependencies,\n devDependencies\n};\nexport {\n pkg as p\n};\n"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG,gBAAgB;AAC7B,MAAM,OAAO,GAAG,OAAO;AACvB,MAAM,WAAW,GAAG,yFAAyF;AAC7G,MAAM,OAAO,GAAG,KAAK;AACrB,MAAM,aAAa,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAC5C,MAAM,IAAI,GAAG,QAAQ;AACrB,MAAM,IAAI,GAAG,kBAAkB;AAC/B,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC;AACpC,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE;AACtC,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,oEAAoE,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,wBAAwB,EAAE,SAAS,EAAE,4BAA4B,EAAE,OAAO,EAAE,4DAA4D,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,iBAAiB,EAAE;AAC7a,MAAM,YAAY,GAAG,EAAE,gBAAgB,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,uBAAuB,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,mBAAmB,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE;AAC1W,MAAM,eAAe,GAAG,EAAE,iBAAiB,EAAE,aAAa,EAAE,+BAA+B,EAAE,aAAa,EAAE,yBAAyB,EAAE,aAAa,EAAE,mBAAmB,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,4BAA4B,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,wBAAwB,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE;AAC7c,MAAC,GAAG,GAAG;AACZ,EAAE,IAAI;AACN,EAAE,OAAO;AACT,EAAE,WAAW;AACb,EAAE,OAAO;AACT,EAAE,aAAa;AACf,EAAE,IAAI;AACN,EAAE,IAAI;AACN,EAAE,KAAK;AACP,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,YAAY;AACd,EAAE;AACF;;;;"}
|
|
@@ -186,6 +186,7 @@ async function getClient(serverConfig) {
|
|
|
186
186
|
return existing;
|
|
187
187
|
}
|
|
188
188
|
const rhinoTiming = { last: null };
|
|
189
|
+
const solveMeta = { last: null };
|
|
189
190
|
const client = await GrasshopperClient.create({
|
|
190
191
|
serverUrl: serverConfig.serverUrl,
|
|
191
192
|
apiKey: serverConfig.apiKey,
|
|
@@ -230,33 +231,38 @@ async function getClient(serverConfig) {
|
|
|
230
231
|
// `code: "definition_not_cached"` (VektorNode fork). Env-gated so a deployment on
|
|
231
232
|
// an unknown compute server can disable it — see COMPUTE_REUSE_DEFINITION_CACHE.
|
|
232
233
|
reuseServerDefinitionCache: COMPUTE_REUSE_DEFINITION_CACHE,
|
|
233
|
-
//
|
|
234
|
-
//
|
|
235
|
-
//
|
|
236
|
-
//
|
|
237
|
-
|
|
238
|
-
|
|
234
|
+
// Observe the Selva in-process response cache. `fromCache === true` means
|
|
235
|
+
// this solve was served from Selva's own cache — Rhino.Compute was never
|
|
236
|
+
// called (you'll see NO [Compute/timing] line for it). `false` means it went
|
|
237
|
+
// to the compute server. Always registered so the cache verdicts reach the
|
|
238
|
+
// browser via Server-Timing; console logs stay debug-gated.
|
|
239
|
+
onSettle: (_ctx, result) => {
|
|
240
|
+
if (result.status !== "success") return;
|
|
241
|
+
solveMeta.last = {
|
|
242
|
+
fromCache: result.fromCache === true,
|
|
243
|
+
definitionReuploaded: result.definitionReuploaded
|
|
244
|
+
};
|
|
245
|
+
if (!COMPUTE_DEBUG) return;
|
|
246
|
+
console.log(
|
|
247
|
+
`[Compute/selva-cache] ${result.fromCache ? "HIT — served from Selva (no compute call)" : "miss — went to Rhino.Compute"} (${Math.round(result.durationMs)}ms)`
|
|
248
|
+
);
|
|
249
|
+
if (!result.fromCache) {
|
|
239
250
|
console.log(
|
|
240
|
-
|
|
251
|
+
result.definitionReuploaded === true ? "[Compute/def-cache] miss — definition RE-UPLOADED (pointer was cold/stale)" : result.definitionReuploaded === false ? "[Compute/def-cache] HIT — definition reused from server cache (no upload)" : "[Compute/def-cache] n/a — reuse disabled or non-reusable definition"
|
|
241
252
|
);
|
|
242
|
-
|
|
253
|
+
}
|
|
254
|
+
if (!result.fromCache) {
|
|
255
|
+
const errs = result.response?.errors;
|
|
256
|
+
const errCount = Array.isArray(errs) ? errs.length : 0;
|
|
257
|
+
if (errCount > 0) {
|
|
243
258
|
console.log(
|
|
244
|
-
|
|
259
|
+
`[Compute/rhino-cache] ${errCount} GH error(s); not cacheable until fixed. First: ${JSON.stringify(errs[0])}`
|
|
245
260
|
);
|
|
246
261
|
}
|
|
247
|
-
if (!result.fromCache) {
|
|
248
|
-
const errs = result.response?.errors;
|
|
249
|
-
const errCount = Array.isArray(errs) ? errs.length : 0;
|
|
250
|
-
if (errCount > 0) {
|
|
251
|
-
console.log(
|
|
252
|
-
`[Compute/rhino-cache] ${errCount} GH error(s); not cacheable until fixed. First: ${JSON.stringify(errs[0])}`
|
|
253
|
-
);
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
262
|
}
|
|
257
|
-
}
|
|
263
|
+
}
|
|
258
264
|
});
|
|
259
|
-
const entry = { client, scheduler, rhinoTiming };
|
|
265
|
+
const entry = { client, scheduler, rhinoTiming, solveMeta };
|
|
260
266
|
if (clientCache.size >= MAX_CACHED_CLIENTS) {
|
|
261
267
|
const oldestKey = clientCache.keys().next().value;
|
|
262
268
|
if (oldestKey !== void 0) {
|
|
@@ -334,8 +340,15 @@ const POST = async ({ request, locals, url }) => {
|
|
|
334
340
|
const storage = getStorageProvider();
|
|
335
341
|
requireMaxBodySize(request, COMPUTE_REQUEST_MAX_BYTES);
|
|
336
342
|
const loadStart = performance.now();
|
|
343
|
+
const prepMarks = [];
|
|
344
|
+
let prevMark = performance.now();
|
|
345
|
+
const mark = (label) => {
|
|
346
|
+
prepMarks.push([label, performance.now() - prevMark]);
|
|
347
|
+
prevMark = performance.now();
|
|
348
|
+
};
|
|
337
349
|
try {
|
|
338
350
|
const body = await request.json();
|
|
351
|
+
mark("body");
|
|
339
352
|
const { inputs, values } = body;
|
|
340
353
|
const definitionUrl = body.definitionUrl;
|
|
341
354
|
const channel = body.channel ?? "live";
|
|
@@ -363,6 +376,7 @@ const POST = async ({ request, locals, url }) => {
|
|
|
363
376
|
const isLocal = definitionUrl.startsWith("local:");
|
|
364
377
|
const guid = isLocal ? definitionUrl.substring(6) : null;
|
|
365
378
|
const sharedAccess = isLocal && guid && !explicitVersionId ? await tryResolveShareToken(request, url, guid, channel, { requireSolve: true }) : null;
|
|
379
|
+
mark("shareToken");
|
|
366
380
|
if (!sharedAccess && (!locals.ctx || !locals.user)) {
|
|
367
381
|
apiError(401, ApiErrorCode.UNAUTHORIZED, "Unauthorized");
|
|
368
382
|
}
|
|
@@ -409,9 +423,11 @@ const POST = async ({ request, locals, url }) => {
|
|
|
409
423
|
apiError(404, ApiErrorCode.NOT_FOUND, `Definition '${guid}' not found`);
|
|
410
424
|
}
|
|
411
425
|
if (!record) apiError(404, ApiErrorCode.NOT_FOUND, `Definition '${guid}' not found`);
|
|
426
|
+
mark("defRecord");
|
|
412
427
|
const project = await providers.data.projects.getProject(solveCtx, record.projectId);
|
|
413
428
|
solveOrgId = project?.orgId ?? null;
|
|
414
429
|
definitionPin = record.computeServerId ?? null;
|
|
430
|
+
mark("project");
|
|
415
431
|
if (!sharedAccess) {
|
|
416
432
|
if (channel === "draft" || explicitVersionId) {
|
|
417
433
|
await requireCanEditDefinition(locals, record.projectId, guid);
|
|
@@ -419,6 +435,7 @@ const POST = async ({ request, locals, url }) => {
|
|
|
419
435
|
await requireCanSolve(locals, record.projectId);
|
|
420
436
|
}
|
|
421
437
|
}
|
|
438
|
+
mark("access");
|
|
422
439
|
const versionId = explicitVersionId ?? (channel === "live" ? record.liveVersionId : record.draftVersionId);
|
|
423
440
|
if (!versionId) {
|
|
424
441
|
apiError(404, ApiErrorCode.NOT_FOUND, `Definition '${guid}' has no ${channel} version yet`);
|
|
@@ -430,6 +447,7 @@ const POST = async ({ request, locals, url }) => {
|
|
|
430
447
|
localVersionForBackfill = { id: version.id, hasSchema: version.schema !== void 0 };
|
|
431
448
|
metricDefinitionId = guid;
|
|
432
449
|
metricVersionId = version.id;
|
|
450
|
+
mark("version");
|
|
433
451
|
try {
|
|
434
452
|
const bytes = await storage.get(version.fileKey);
|
|
435
453
|
if (!bytes) throw new Error(`Version blob missing: ${version.fileKey}`);
|
|
@@ -438,6 +456,7 @@ const POST = async ({ request, locals, url }) => {
|
|
|
438
456
|
console.error(`Failed to load local definition blob: ${guid}`, err);
|
|
439
457
|
apiError(404, ApiErrorCode.NOT_FOUND, `Definition '${guid}' not found`);
|
|
440
458
|
}
|
|
459
|
+
mark("blob");
|
|
441
460
|
} else {
|
|
442
461
|
try {
|
|
443
462
|
definitionSource = await loadRemoteDefinition(definitionUrl);
|
|
@@ -449,6 +468,7 @@ const POST = async ({ request, locals, url }) => {
|
|
|
449
468
|
`Failed to load definition: ${err instanceof Error ? err.message : String(err)}`
|
|
450
469
|
);
|
|
451
470
|
}
|
|
471
|
+
mark("remoteDef");
|
|
452
472
|
}
|
|
453
473
|
const defLoadMs = performance.now() - loadStart;
|
|
454
474
|
const treeBuildStart = performance.now();
|
|
@@ -456,6 +476,7 @@ const POST = async ({ request, locals, url }) => {
|
|
|
456
476
|
inputs.filter((input) => input.paramType).map((input) => transformInputParameter(input, values[input.id]))
|
|
457
477
|
);
|
|
458
478
|
const treeBuildMs = performance.now() - treeBuildStart;
|
|
479
|
+
prevMark = performance.now();
|
|
459
480
|
if (sharedAccess) {
|
|
460
481
|
const next = await providers.data.shareLinks.tryIncrementSolveCount(
|
|
461
482
|
solveCtx,
|
|
@@ -465,8 +486,10 @@ const POST = async ({ request, locals, url }) => {
|
|
|
465
486
|
recordMetric("share_cap");
|
|
466
487
|
apiError(429, ApiErrorCode.INTERNAL, "Share link solve cap reached.");
|
|
467
488
|
}
|
|
489
|
+
mark("shareCap");
|
|
468
490
|
}
|
|
469
491
|
const serverConfig = await resolveServerForOrg(solveCtx, solveOrgId, { definitionPin });
|
|
492
|
+
mark("resolveServer");
|
|
470
493
|
if (localVersionForBackfill && !localVersionForBackfill.hasSchema) {
|
|
471
494
|
const versionId = localVersionForBackfill.id;
|
|
472
495
|
try {
|
|
@@ -475,11 +498,14 @@ const POST = async ({ request, locals, url }) => {
|
|
|
475
498
|
} catch (err) {
|
|
476
499
|
console.warn(`[API/Compute] Schema backfill failed for version ${versionId}:`, err);
|
|
477
500
|
}
|
|
501
|
+
mark("schemaBackfill");
|
|
478
502
|
}
|
|
479
|
-
const { scheduler, rhinoTiming } = await getClient(serverConfig);
|
|
503
|
+
const { scheduler, rhinoTiming, solveMeta } = await getClient(serverConfig);
|
|
504
|
+
mark("client");
|
|
480
505
|
let solvedDefinition;
|
|
481
506
|
let solveMs = 0;
|
|
482
507
|
rhinoTiming.last = null;
|
|
508
|
+
solveMeta.last = null;
|
|
483
509
|
const solveStart = performance.now();
|
|
484
510
|
try {
|
|
485
511
|
solvedDefinition = await scheduler.solve(definitionSource, inputTree, {
|
|
@@ -546,6 +572,9 @@ const POST = async ({ request, locals, url }) => {
|
|
|
546
572
|
console.log(
|
|
547
573
|
`[Compute/server] load=${defLoadMs.toFixed(0)}ms tree=${treeBuildMs.toFixed(0)}ms solve=${solveMs.toFixed(0)}ms serialize=${serializeMs.toFixed(0)}ms total=${serverTotalMs.toFixed(0)}ms | result=${formatBytes(serialized.length)}`
|
|
548
574
|
);
|
|
575
|
+
console.log(
|
|
576
|
+
`[Compute/server] prep breakdown: ` + prepMarks.map(([label, ms]) => `${label}=${ms.toFixed(0)}ms`).join(" ")
|
|
577
|
+
);
|
|
549
578
|
}
|
|
550
579
|
let serverTimingHeader = `load;dur=${defLoadMs.toFixed(1)}, tree;dur=${treeBuildMs.toFixed(1)}, solve;dur=${solveMs.toFixed(1)}, serialize;dur=${serializeMs.toFixed(1)}, total;dur=${serverTotalMs.toFixed(1)}`;
|
|
551
580
|
const rhino = rhinoTiming.last;
|
|
@@ -554,6 +583,16 @@ const POST = async ({ request, locals, url }) => {
|
|
|
554
583
|
const computeLinkMs = Math.max(0, solveMs - onRhinoMs);
|
|
555
584
|
serverTimingHeader += `, rhino_decode;dur=${rhino.decode.toFixed(1)}, rhino_solve;dur=${rhino.solve.toFixed(1)}, rhino_encode;dur=${rhino.encode.toFixed(1)}, compute_link;dur=${computeLinkMs.toFixed(1)}`;
|
|
556
585
|
}
|
|
586
|
+
for (const [label, ms] of prepMarks) {
|
|
587
|
+
serverTimingHeader += `, p_${label};dur=${ms.toFixed(1)}`;
|
|
588
|
+
}
|
|
589
|
+
const settle = solveMeta.last;
|
|
590
|
+
if (settle) {
|
|
591
|
+
serverTimingHeader += `, selva_cache;dur=${settle.fromCache ? 1 : 0}`;
|
|
592
|
+
if (settle.definitionReuploaded !== void 0) {
|
|
593
|
+
serverTimingHeader += `, def_reupload;dur=${settle.definitionReuploaded ? 1 : 0}`;
|
|
594
|
+
}
|
|
595
|
+
}
|
|
557
596
|
const responseHeaders = {
|
|
558
597
|
"Content-Type": "application/json",
|
|
559
598
|
"Server-Timing": serverTimingHeader,
|
|
@@ -604,4 +643,4 @@ const POST = async ({ request, locals, url }) => {
|
|
|
604
643
|
};
|
|
605
644
|
|
|
606
645
|
export { POST };
|
|
607
|
-
//# sourceMappingURL=_server.ts.js-
|
|
646
|
+
//# sourceMappingURL=_server.ts.js-CSllLUvr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts.js-CSllLUvr.js","sources":["../../../../../../../.svelte-kit/output/server/entries/endpoints/api/compute/_server.ts.js"],"sourcesContent":["import { a as apiError, A as ApiErrorCode, r as resolveServerForOrg, f as fetchSchemaFromCompute, C as ComputeServerUnconfiguredError } from \"../../../../chunks/api-errors.js\";\nimport { processInput, enableDebugLogging, TreeBuilder, GrasshopperClient } from \"@selvajs/compute\";\nimport { b as private_env } from \"../../../../chunks/shared-server.js\";\nimport { isHttpError } from \"@sveltejs/kit\";\nimport { lookup } from \"node:dns/promises\";\nimport { isIP } from \"node:net\";\nimport { e as RATE_LIMIT_WINDOW_MS, d as RATE_LIMIT_MAX_REQUESTS, f as MAX_SOLVE_DURATION_MS, C as COMPUTE_RESPONSE_MAX_BYTES, D as DEFINITION_CACHE_TTL_MS, R as REMOTE_DEFINITION_FETCH_TIMEOUT_MS, a as REMOTE_DEFINITION_MAX_BYTES, g as COMPUTE_CACHE_ERRORED_SOLVES, h as COMPUTE_SERVER_CACHESOLVE, i as COMPUTE_REUSE_DEFINITION_CACHE, b as COMPUTE_REQUEST_MAX_BYTES } from \"../../../../chunks/computeLimits.js\";\nimport { r as requireMaxBodySize } from \"../../../../chunks/admin-auth.server.js\";\nimport { r as getStorageProvider, s as getSolveMetricSink, p as providers } from \"../../../../chunks/providers.server.js\";\nimport { i as requireCanEditDefinition, j as requireCanSolve } from \"../../../../chunks/access.server.js\";\nimport { t as tryResolveShareToken } from \"../../../../chunks/resolve.server.js\";\nfunction isBlockedIp(ip) {\n let addr = ip.toLowerCase();\n const mappedDotted = /^::ffff:(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})$/.exec(addr);\n if (mappedDotted) {\n addr = mappedDotted[1];\n } else {\n const mappedHex = /^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/.exec(addr);\n if (mappedHex) {\n const hi = parseInt(mappedHex[1], 16);\n const lo = parseInt(mappedHex[2], 16);\n addr = [hi >> 8 & 255, hi & 255, lo >> 8 & 255, lo & 255].join(\".\");\n }\n }\n if (isIP(addr) === 4) {\n const octets = addr.split(\".\").map(Number);\n if (octets.length !== 4 || octets.some((o) => o > 255)) return true;\n const [a, b] = octets;\n if (a === 0) return true;\n if (a === 127) return true;\n if (a === 10) return true;\n if (a === 192 && b === 168) return true;\n if (a === 172 && b >= 16 && b <= 31) return true;\n if (a === 169 && b === 254) return true;\n return false;\n }\n if (addr === \"::1\" || addr === \"::\") return true;\n if (/^(fc|fd)[0-9a-f]{0,2}:/.test(addr)) return true;\n if (/^fe[89ab][0-9a-f]:/.test(addr)) return true;\n return false;\n}\nfunction canonicalizeNumericIpv4(host) {\n if (isIP(host) === 4) return host;\n const rawParts = host.split(\".\");\n if (rawParts.length === 0 || rawParts.length > 4) return null;\n const parseUInt = (s) => {\n if (s === \"\") return null;\n let n;\n if (/^0x[0-9a-f]+$/i.test(s)) n = parseInt(s, 16);\n else if (/^0[0-7]+$/.test(s)) n = parseInt(s, 8);\n else if (/^[0-9]+$/.test(s)) n = parseInt(s, 10);\n else return null;\n return Number.isFinite(n) ? n : null;\n };\n const nums = rawParts.map(parseUInt);\n if (nums.some((n) => n === null)) return null;\n const parts = nums;\n let value;\n switch (parts.length) {\n case 1:\n value = parts[0];\n break;\n case 2:\n if (parts[0] > 255 || parts[1] > 16777215) return null;\n value = parts[0] << 24 | parts[1];\n break;\n case 3:\n if (parts[0] > 255 || parts[1] > 255 || parts[2] > 65535) return null;\n value = parts[0] << 24 | parts[1] << 16 | parts[2];\n break;\n default:\n if (parts.some((p) => p > 255)) return null;\n value = parts[0] << 24 | parts[1] << 16 | parts[2] << 8 | parts[3];\n }\n value = value >>> 0;\n if (value > 4294967295) return null;\n return [value >>> 24 & 255, value >>> 16 & 255, value >>> 8 & 255, value & 255].join(\n \".\"\n );\n}\nfunction isSafeRemoteDefinitionUrl(raw) {\n let parsed;\n try {\n parsed = new URL(raw);\n } catch {\n return false;\n }\n if (parsed.protocol !== \"http:\" && parsed.protocol !== \"https:\") return false;\n let host = parsed.hostname.toLowerCase();\n if (!host) return false;\n if (host === \"localhost\" || host.endsWith(\".localhost\")) return false;\n const isBracketed = host.startsWith(\"[\") && host.endsWith(\"]\");\n if (isBracketed) host = host.slice(1, -1);\n if (isIP(host) === 6) return !isBlockedIp(host);\n const canonical = canonicalizeNumericIpv4(host);\n if (canonical) return !isBlockedIp(canonical);\n return true;\n}\nasync function assertSafeRemoteDefinitionUrl(raw) {\n if (!isSafeRemoteDefinitionUrl(raw)) {\n throw new Error(\"Remote definition URL is not allowed\");\n }\n const host = new URL(raw).hostname.toLowerCase().replace(/^\\[|\\]$/g, \"\");\n if (isIP(host) !== 0 || canonicalizeNumericIpv4(host)) return raw;\n let resolved;\n try {\n resolved = await lookup(host, { all: true });\n } catch {\n throw new Error(\"Remote definition URL is not allowed\");\n }\n if (resolved.length === 0 || resolved.some((r) => isBlockedIp(r.address))) {\n throw new Error(\"Remote definition URL is not allowed\");\n }\n return raw;\n}\nconst WINDOW_MS = RATE_LIMIT_WINDOW_MS;\nconst MAX_PER_WINDOW = RATE_LIMIT_MAX_REQUESTS;\nconst buckets = /* @__PURE__ */ new Map();\nfunction checkComputeRateLimit(key) {\n const now = Date.now();\n const entry = buckets.get(key);\n if (!entry || now > entry.resetAt) {\n buckets.set(key, { count: 1, resetAt: now + WINDOW_MS });\n return { allowed: true };\n }\n if (entry.count >= MAX_PER_WINDOW) {\n return { allowed: false, retryAfter: Math.ceil((entry.resetAt - now) / 1e3) };\n }\n entry.count += 1;\n return { allowed: true };\n}\nfunction transformInputParameter(input, value) {\n const raw = {\n id: input.id,\n name: input.nickname,\n nickname: input.nickname || null,\n description: input.description || \"\",\n paramType: input.paramType,\n treeAccess: input.inputStructure === \"tree\",\n minimum: input.minimum ?? null,\n maximum: input.maximum ?? null,\n atLeast: 1,\n atMost: 1,\n stepSize: input.stepSize,\n // The user's selection wins; otherwise the schema default.\n default: value ?? input.default\n };\n return processInput(raw);\n}\nconst COMPUTE_DEBUG = [\"true\", \"1\", \"yes\"].includes(\n (private_env.SELVA_FLAG_COMPUTE_DEBUG ?? \"\").toLowerCase()\n);\nconst COMPUTE_DEBUG_VERBOSE = [\"true\", \"1\", \"yes\"].includes(\n (private_env.SELVA_FLAG_COMPUTE_DEBUG_VERBOSE ?? \"\").toLowerCase()\n);\nif (COMPUTE_DEBUG_VERBOSE) enableDebugLogging();\nfunction formatBytes(bytes) {\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\n return `${(bytes / (1024 * 1024)).toFixed(2)} MB`;\n}\nconst definitionCache = /* @__PURE__ */ new Map();\nconst MAX_CACHED_CLIENTS = 16;\nconst clientCache = /* @__PURE__ */ new Map();\nfunction clientCacheKey(serverConfig) {\n return `${serverConfig.serverUrl}\\0${serverConfig.apiKey ?? \"\"}`;\n}\nasync function getClient(serverConfig) {\n const key = clientCacheKey(serverConfig);\n const existing = clientCache.get(key);\n if (existing) {\n clientCache.delete(key);\n clientCache.set(key, existing);\n return existing;\n }\n const rhinoTiming = { last: null };\n const solveMeta = { last: null };\n const client = await GrasshopperClient.create({\n serverUrl: serverConfig.serverUrl,\n apiKey: serverConfig.apiKey,\n // Lib-level debug is the verbose one (full payload logs); keep it on the\n // verbose flag so the concise cache logs can run without the noise.\n debug: COMPUTE_DEBUG_VERBOSE,\n // Ask Rhino.Compute to cache solve results and return them on identical\n // repeats (same definition + inputs), skipping the solve. Forwarded to both\n // the pointer and full-upload solve paths via applyOptionalComputeSettings.\n cachesolve: COMPUTE_SERVER_CACHESOLVE,\n // Opt-in: also cache solves that reported GH errors (errors-by-design\n // definitions still produce correct geometry). See COMPUTE_CACHE_ERRORED_SOLVES.\n cacheerroredsolves: COMPUTE_CACHE_ERRORED_SOLVES,\n // DEBUG (SELVA_FLAG_COMPUTE_DEBUG): the server's per-request timing breakdown,\n // which exposes the two SERVER-side caches at once:\n // • Definition cache (pointer reuse): `decode` = deserialize + LOAD\n // DEFINITION. A repeat solve loads the definition from the server's cache,\n // so `decode` drops to ~0; a full (re)upload shows a larger `decode`.\n // • Solve cache (cachesolve): when the server returns a CACHED RESULT it\n // skips the solve, so `solve` drops to ~0 while decode/encode still run.\n // We flag each below so the contrast is obvious in the logs.\n onServerTiming: (t) => {\n const decode = t.decode ?? 0;\n const solve = t.solve ?? 0;\n const encode = t.encode ?? 0;\n rhinoTiming.last = { decode, solve, encode };\n if (!COMPUTE_DEBUG) return;\n const defCache = decode <= 1 ? \"HIT (definition reused, no re-upload/parse)\" : \"miss (full parse)\";\n const solveCache = COMPUTE_SERVER_CACHESOLVE && solve <= 1 ? \"HIT (cached result, solve skipped)\" : COMPUTE_SERVER_CACHESOLVE ? \"miss (solved fresh)\" : \"off\";\n console.log(\n `[Compute/rhino-cache] decode=${decode}ms solve=${solve}ms encode=${encode}ms | definition-cache: ${defCache} | solve-cache (cachesolve): ${solveCache}`\n );\n }\n });\n const scheduler = client.createScheduler({\n mode: \"queue\",\n timeoutMs: MAX_SOLVE_DURATION_MS,\n cache: { maxEntries: 20, ttlMs: 5 * 6e4 },\n // Solve large definitions by server cache-key (pointer) instead of re-uploading\n // the full binary every solve. On a stale-pointer miss the client (@selvajs/compute\n // >= 2.4.0) transparently re-uploads; the miss is detected via the server's\n // `code: \"definition_not_cached\"` (VektorNode fork). Env-gated so a deployment on\n // an unknown compute server can disable it — see COMPUTE_REUSE_DEFINITION_CACHE.\n reuseServerDefinitionCache: COMPUTE_REUSE_DEFINITION_CACHE,\n // Observe the Selva in-process response cache. `fromCache === true` means\n // this solve was served from Selva's own cache — Rhino.Compute was never\n // called (you'll see NO [Compute/timing] line for it). `false` means it went\n // to the compute server. Always registered so the cache verdicts reach the\n // browser via Server-Timing; console logs stay debug-gated.\n onSettle: (_ctx, result) => {\n if (result.status !== \"success\") return;\n solveMeta.last = {\n fromCache: result.fromCache === true,\n definitionReuploaded: result.definitionReuploaded\n };\n if (!COMPUTE_DEBUG) return;\n console.log(\n `[Compute/selva-cache] ${result.fromCache ? \"HIT — served from Selva (no compute call)\" : \"miss — went to Rhino.Compute\"} (${Math.round(result.durationMs)}ms)`\n );\n if (!result.fromCache) {\n console.log(\n result.definitionReuploaded === true ? \"[Compute/def-cache] miss — definition RE-UPLOADED (pointer was cold/stale)\" : result.definitionReuploaded === false ? \"[Compute/def-cache] HIT — definition reused from server cache (no upload)\" : \"[Compute/def-cache] n/a — reuse disabled or non-reusable definition\"\n );\n }\n if (!result.fromCache) {\n const errs = result.response?.errors;\n const errCount = Array.isArray(errs) ? errs.length : 0;\n if (errCount > 0) {\n console.log(\n `[Compute/rhino-cache] ${errCount} GH error(s); not cacheable until fixed. First: ${JSON.stringify(errs[0])}`\n );\n }\n }\n }\n });\n const entry = { client, scheduler, rhinoTiming, solveMeta };\n if (clientCache.size >= MAX_CACHED_CLIENTS) {\n const oldestKey = clientCache.keys().next().value;\n if (oldestKey !== void 0) {\n clientCache.get(oldestKey)?.scheduler.dispose();\n clientCache.delete(oldestKey);\n }\n }\n clientCache.set(key, entry);\n return entry;\n}\nasync function readBodyWithCap(response, maxBytes, controller) {\n if (!response.body) {\n const buffer = await response.arrayBuffer();\n if (buffer.byteLength > maxBytes) throw new Error(\"Remote definition exceeds size limit\");\n return new Uint8Array(buffer);\n }\n const reader = response.body.getReader();\n const chunks = [];\n let total = 0;\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n total += value.byteLength;\n if (total > maxBytes) {\n controller.abort();\n throw new Error(\"Remote definition exceeds size limit\");\n }\n chunks.push(value);\n }\n const out = new Uint8Array(total);\n let offset = 0;\n for (const chunk of chunks) {\n out.set(chunk, offset);\n offset += chunk.byteLength;\n }\n return out;\n}\nasync function loadRemoteDefinition(url) {\n await assertSafeRemoteDefinitionUrl(url);\n const now = Date.now();\n const cached = definitionCache.get(url);\n if (cached && now - cached.fetchedAt < DEFINITION_CACHE_TTL_MS) {\n return cached.data;\n }\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), REMOTE_DEFINITION_FETCH_TIMEOUT_MS);\n let data;\n try {\n const response = await fetch(url, {\n signal: controller.signal,\n redirect: \"error\"\n });\n if (!response.ok) {\n throw new Error(`HTTP ${response.status}: ${response.statusText}`);\n }\n const declared = Number(response.headers.get(\"content-length\"));\n if (Number.isFinite(declared) && declared > REMOTE_DEFINITION_MAX_BYTES) {\n throw new Error(\"Remote definition exceeds size limit\");\n }\n data = await readBodyWithCap(response, REMOTE_DEFINITION_MAX_BYTES, controller);\n } finally {\n clearTimeout(timeout);\n }\n definitionCache.set(url, { data, fetchedAt: now });\n if (definitionCache.size > 50) {\n const entries = Array.from(definitionCache.entries());\n entries.sort((a, b) => a[1].fetchedAt - b[1].fetchedAt);\n for (let i = 0; i < 10; i++) {\n definitionCache.delete(entries[i][0]);\n }\n }\n return data;\n}\nconst POST = async ({ request, locals, url }) => {\n const storage = getStorageProvider();\n requireMaxBodySize(request, COMPUTE_REQUEST_MAX_BYTES);\n const loadStart = performance.now();\n const prepMarks = [];\n let prevMark = performance.now();\n const mark = (label) => {\n prepMarks.push([label, performance.now() - prevMark]);\n prevMark = performance.now();\n };\n try {\n const body = await request.json();\n mark(\"body\");\n const { inputs, values } = body;\n const definitionUrl = body.definitionUrl;\n const channel = body.channel ?? \"live\";\n const explicitVersionId = body.versionId ?? null;\n if (!inputs || !values || !definitionUrl) {\n apiError(\n 400,\n ApiErrorCode.VALIDATION_FAILED,\n \"Missing required fields: inputs, values, or definitionUrl\"\n );\n }\n if (channel !== \"live\" && channel !== \"draft\") {\n apiError(\n 400,\n ApiErrorCode.VALIDATION_FAILED,\n `Invalid channel: ${channel}. Must be 'live' or 'draft'.`\n );\n }\n let definitionSource;\n let localVersionForBackfill = null;\n let solveOrgId = null;\n let definitionPin = null;\n let metricDefinitionId = null;\n let metricVersionId = null;\n const isLocal = definitionUrl.startsWith(\"local:\");\n const guid = isLocal ? definitionUrl.substring(6) : null;\n const sharedAccess = isLocal && guid && !explicitVersionId ? await tryResolveShareToken(request, url, guid, channel, { requireSolve: true }) : null;\n mark(\"shareToken\");\n if (!sharedAccess && (!locals.ctx || !locals.user)) {\n apiError(401, ApiErrorCode.UNAUTHORIZED, \"Unauthorized\");\n }\n const solveCtx = sharedAccess?.ctx ?? locals.ctx;\n const recordMetric = (failureKind, extra = {}) => {\n void getSolveMetricSink().record(solveCtx, {\n definitionUrl,\n definitionId: metricDefinitionId,\n versionId: metricVersionId,\n channel,\n orgId: solveOrgId,\n durationMs: extra.durationMs ?? 0,\n ok: failureKind === \"ok\",\n failureKind,\n errorCount: extra.errorCount ?? 0,\n warningCount: extra.warningCount ?? 0\n });\n };\n const rateLimitKey = sharedAccess ? `share:${sharedAccess.link.id}` : `user:${locals.user.id}`;\n const rateLimit = checkComputeRateLimit(rateLimitKey);\n if (!rateLimit.allowed) {\n recordMetric(\"rate_limited\");\n const retryAfter = rateLimit.retryAfter ?? 1;\n return new Response(\n JSON.stringify({\n message: `Too many compute requests. Retry in ${retryAfter}s.`,\n retryAfter\n }),\n {\n status: 429,\n headers: {\n \"Content-Type\": \"application/json\",\n \"Retry-After\": String(retryAfter)\n }\n }\n );\n }\n if (isLocal && guid) {\n let record;\n try {\n record = await providers.data.definitions.get(solveCtx, guid);\n } catch (err) {\n console.error(`Failed to load local definition: ${guid}`, err);\n apiError(404, ApiErrorCode.NOT_FOUND, `Definition '${guid}' not found`);\n }\n if (!record) apiError(404, ApiErrorCode.NOT_FOUND, `Definition '${guid}' not found`);\n mark(\"defRecord\");\n const project = await providers.data.projects.getProject(solveCtx, record.projectId);\n solveOrgId = project?.orgId ?? null;\n definitionPin = record.computeServerId ?? null;\n mark(\"project\");\n if (!sharedAccess) {\n if (channel === \"draft\" || explicitVersionId) {\n await requireCanEditDefinition(locals, record.projectId, guid);\n } else {\n await requireCanSolve(locals, record.projectId);\n }\n }\n mark(\"access\");\n const versionId = explicitVersionId ?? (channel === \"live\" ? record.liveVersionId : record.draftVersionId);\n if (!versionId) {\n apiError(404, ApiErrorCode.NOT_FOUND, `Definition '${guid}' has no ${channel} version yet`);\n }\n const version = await providers.data.definitions.getVersion(solveCtx, versionId);\n if (!version || version.definitionId !== guid) {\n apiError(404, ApiErrorCode.NOT_FOUND, `Definition '${guid}' version is missing`);\n }\n localVersionForBackfill = { id: version.id, hasSchema: version.schema !== void 0 };\n metricDefinitionId = guid;\n metricVersionId = version.id;\n mark(\"version\");\n try {\n const bytes = await storage.get(version.fileKey);\n if (!bytes) throw new Error(`Version blob missing: ${version.fileKey}`);\n definitionSource = bytes;\n } catch (err) {\n console.error(`Failed to load local definition blob: ${guid}`, err);\n apiError(404, ApiErrorCode.NOT_FOUND, `Definition '${guid}' not found`);\n }\n mark(\"blob\");\n } else {\n try {\n definitionSource = await loadRemoteDefinition(definitionUrl);\n } catch (err) {\n console.error(`Failed to fetch definition from ${definitionUrl}:`, err);\n apiError(\n 400,\n ApiErrorCode.VALIDATION_FAILED,\n `Failed to load definition: ${err instanceof Error ? err.message : String(err)}`\n );\n }\n mark(\"remoteDef\");\n }\n const defLoadMs = performance.now() - loadStart;\n const treeBuildStart = performance.now();\n const inputTree = TreeBuilder.fromInputParams(\n inputs.filter((input) => input.paramType).map((input) => transformInputParameter(input, values[input.id]))\n );\n const treeBuildMs = performance.now() - treeBuildStart;\n prevMark = performance.now();\n if (sharedAccess) {\n const next = await providers.data.shareLinks.tryIncrementSolveCount(\n solveCtx,\n sharedAccess.link.id\n );\n if (next === null) {\n recordMetric(\"share_cap\");\n apiError(429, ApiErrorCode.INTERNAL, \"Share link solve cap reached.\");\n }\n mark(\"shareCap\");\n }\n const serverConfig = await resolveServerForOrg(solveCtx, solveOrgId, { definitionPin });\n mark(\"resolveServer\");\n if (localVersionForBackfill && !localVersionForBackfill.hasSchema) {\n const versionId = localVersionForBackfill.id;\n try {\n const schema = await fetchSchemaFromCompute(definitionSource, serverConfig);\n await providers.data.definitions.setVersionSchema(solveCtx, versionId, schema);\n } catch (err) {\n console.warn(`[API/Compute] Schema backfill failed for version ${versionId}:`, err);\n }\n mark(\"schemaBackfill\");\n }\n const { scheduler, rhinoTiming, solveMeta } = await getClient(serverConfig);\n mark(\"client\");\n let solvedDefinition;\n let solveMs = 0;\n rhinoTiming.last = null;\n solveMeta.last = null;\n const solveStart = performance.now();\n try {\n solvedDefinition = await scheduler.solve(definitionSource, inputTree, {\n signal: request.signal\n });\n solveMs = performance.now() - solveStart;\n recordMetric(\"ok\", {\n durationMs: solveMs,\n errorCount: solvedDefinition.errors?.length ?? 0,\n warningCount: solvedDefinition.warnings?.length ?? 0\n });\n if (metricDefinitionId) {\n providers.data.definitions.incrementSolveCount(solveCtx, metricDefinitionId).catch(\n (err) => console.warn(\n `[API/Compute] solveCount increment failed for ${metricDefinitionId}:`,\n err\n )\n );\n }\n } catch (err) {\n const isAbort = err instanceof Error && err.name === \"AbortError\";\n const timedOut = isAbort && !request.signal.aborted;\n recordMetric(timedOut ? \"timeout\" : isAbort ? \"client_abort\" : \"compute_error\", {\n durationMs: performance.now() - solveStart\n });\n if (isAbort) {\n if (request.signal.aborted) {\n apiError(499, ApiErrorCode.INTERNAL, \"Client closed request\");\n }\n apiError(\n 504,\n ApiErrorCode.INTERNAL,\n `Solve exceeded the ${Math.round(MAX_SOLVE_DURATION_MS / 1e3)}s deadline.`\n );\n }\n throw err;\n }\n let serialized;\n const serializeStart = performance.now();\n try {\n serialized = JSON.stringify(solvedDefinition);\n } catch (err) {\n if (err instanceof RangeError) {\n recordMetric(\"too_large\");\n apiError(\n 413,\n ApiErrorCode.INTERNAL,\n \"Solve result is too large to return. This usually means a file output exceeds the supported size.\"\n );\n }\n throw err;\n }\n if (serialized.length > COMPUTE_RESPONSE_MAX_BYTES) {\n recordMetric(\"too_large\");\n apiError(\n 413,\n ApiErrorCode.INTERNAL,\n \"Solve result is too large to return. This usually means a file output exceeds the supported size.\"\n );\n }\n const serializeMs = performance.now() - serializeStart;\n const serverTotalMs = performance.now() - loadStart;\n if (COMPUTE_DEBUG) {\n console.log(\n `[Compute/server] load=${defLoadMs.toFixed(0)}ms tree=${treeBuildMs.toFixed(0)}ms solve=${solveMs.toFixed(0)}ms serialize=${serializeMs.toFixed(0)}ms total=${serverTotalMs.toFixed(0)}ms | result=${formatBytes(serialized.length)}`\n );\n console.log(\n `[Compute/server] prep breakdown: ` + prepMarks.map(([label, ms]) => `${label}=${ms.toFixed(0)}ms`).join(\" \")\n );\n }\n let serverTimingHeader = `load;dur=${defLoadMs.toFixed(1)}, tree;dur=${treeBuildMs.toFixed(1)}, solve;dur=${solveMs.toFixed(1)}, serialize;dur=${serializeMs.toFixed(1)}, total;dur=${serverTotalMs.toFixed(1)}`;\n const rhino = rhinoTiming.last;\n if (rhino) {\n const onRhinoMs = rhino.decode + rhino.solve + rhino.encode;\n const computeLinkMs = Math.max(0, solveMs - onRhinoMs);\n serverTimingHeader += `, rhino_decode;dur=${rhino.decode.toFixed(1)}, rhino_solve;dur=${rhino.solve.toFixed(1)}, rhino_encode;dur=${rhino.encode.toFixed(1)}, compute_link;dur=${computeLinkMs.toFixed(1)}`;\n }\n for (const [label, ms] of prepMarks) {\n serverTimingHeader += `, p_${label};dur=${ms.toFixed(1)}`;\n }\n const settle = solveMeta.last;\n if (settle) {\n serverTimingHeader += `, selva_cache;dur=${settle.fromCache ? 1 : 0}`;\n if (settle.definitionReuploaded !== void 0) {\n serverTimingHeader += `, def_reupload;dur=${settle.definitionReuploaded ? 1 : 0}`;\n }\n }\n const responseHeaders = {\n \"Content-Type\": \"application/json\",\n \"Server-Timing\": serverTimingHeader,\n Vary: \"Accept-Encoding\"\n };\n const acceptEncoding = request.headers.get(\"accept-encoding\") ?? \"\";\n if (/\\bgzip\\b/i.test(acceptEncoding) && serialized.length > 1024) {\n responseHeaders[\"Content-Encoding\"] = \"gzip\";\n let body2 = new Blob([serialized]).stream().pipeThrough(new CompressionStream(\"gzip\"));\n if (COMPUTE_DEBUG) {\n let compressedBytes = 0;\n const gzipStart = performance.now();\n body2 = body2.pipeThrough(\n new TransformStream({\n transform(chunk, controller) {\n compressedBytes += chunk.byteLength;\n controller.enqueue(chunk);\n },\n flush() {\n const secs = (performance.now() - gzipStart) / 1e3;\n console.log(\n `[Compute/server] gzip ${formatBytes(serialized.length)} → ${formatBytes(compressedBytes)} (${(serialized.length / compressedBytes).toFixed(1)}×) — sent in ${secs.toFixed(1)}s`\n );\n }\n })\n );\n }\n return new Response(body2, { headers: responseHeaders });\n }\n if (COMPUTE_DEBUG) {\n console.log(\n `[Compute/server] compression skipped — Accept-Encoding: \"${acceptEncoding || \"(absent)\"}\"`\n );\n }\n return new Response(serialized, { headers: responseHeaders });\n } catch (err) {\n if (isHttpError(err)) throw err;\n if (err instanceof ComputeServerUnconfiguredError) {\n apiError(503, ApiErrorCode.COMPUTE_UNAVAILABLE, err.message);\n }\n const message = err instanceof Error ? err.message : \"Unknown error\";\n console.error(\"[API/Compute] Error:\", message);\n if (err instanceof TypeError && message === \"fetch failed\") {\n apiError(503, ApiErrorCode.COMPUTE_UNAVAILABLE, \"Compute server is unreachable\");\n }\n apiError(500, ApiErrorCode.INTERNAL, message);\n }\n};\nexport {\n POST\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { g as getAuthProvider, d as getOrganizationProvider } from '../../../chunks/providers.server.js-Sbk117pY.js';
|
|
2
2
|
import { h as hasPermission } from '../../../chunks/context.js-D8E0GFTw.js';
|
|
3
|
-
import { p as pkg } from '../../../chunks/package.js-
|
|
3
|
+
import { p as pkg } from '../../../chunks/package.js-u-gQlTZO.js';
|
|
4
4
|
|
|
5
5
|
async function loadAdminOrg(ctx) {
|
|
6
6
|
if (!ctx) return null;
|
|
@@ -43,4 +43,4 @@ var _page_server_ts = /*#__PURE__*/Object.freeze({
|
|
|
43
43
|
});
|
|
44
44
|
|
|
45
45
|
export { _page_server_ts as _ };
|
|
46
|
-
//# sourceMappingURL=_page.server.ts.js-
|
|
46
|
+
//# sourceMappingURL=_page.server.ts.js-CXmeKlkU.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_page.server.ts.js-
|
|
1
|
+
{"version":3,"file":"_page.server.ts.js-CXmeKlkU.js","sources":["../../../../../../.svelte-kit/output/server/entries/pages/admin/_page.server.ts.js"],"sourcesContent":["import { g as getAuthProvider, c as getOrganizationProvider } from \"../../../chunks/providers.server.js\";\nimport { h as hasPermission } from \"../../../chunks/context.js\";\nimport { p as pkg } from \"../../../chunks/package.js\";\nasync function loadAdminOrg(ctx) {\n if (!ctx) return null;\n try {\n const page = await getOrganizationProvider().listOrgs(ctx, { limit: 1 });\n const org = page.items[0];\n return org ? { id: org.id, name: org.name, assets: org.assets ?? {} } : null;\n } catch (err) {\n console.error(\"Failed to load admin org for asset cards:\", err);\n return null;\n }\n}\nconst load = async ({ locals }) => {\n const ctx = locals.ctx;\n const canSeeUserStats = ctx ? hasPermission(ctx, \"manage_instance_users\") : false;\n const canManageOrg = ctx ? hasPermission(ctx, \"manage_org_members\") : false;\n const platformPermissions = ctx?.platformPermissions ?? [];\n const org = canManageOrg ? await loadAdminOrg(ctx) : null;\n if (!canSeeUserStats) {\n return { stats: { users: null }, platformPermissions, version: pkg.version, org };\n }\n try {\n const usersPage = await getAuthProvider().listUsers({ limit: 200 });\n return {\n stats: { users: usersPage?.items.length ?? null },\n platformPermissions,\n version: pkg.version,\n org\n };\n } catch (err) {\n if (err && typeof err === \"object\" && \"status\" in err) throw err;\n console.error(\"Failed to load admin dashboard:\", err);\n return { stats: { users: null }, platformPermissions, version: pkg.version, org };\n }\n};\nexport {\n load\n};\n"],"names":[],"mappings":";;;;AAGA,eAAe,YAAY,CAAC,GAAG,EAAE;AACjC,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI;AACvB,EAAE,IAAI;AACN,IAAI,MAAM,IAAI,GAAG,MAAM,uBAAuB,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAC5E,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,IAAI,OAAO,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI;AAChF,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,GAAG,CAAC;AACnE,IAAI,OAAO,IAAI;AACf,EAAE;AACF;AACA,MAAM,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AACnC,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG;AACxB,EAAE,MAAM,eAAe,GAAG,GAAG,GAAG,aAAa,CAAC,GAAG,EAAE,uBAAuB,CAAC,GAAG,KAAK;AACnF,EAAE,MAAM,YAAY,GAAG,GAAG,GAAG,aAAa,CAAC,GAAG,EAAE,oBAAoB,CAAC,GAAG,KAAK;AAC7E,EAAE,MAAM,mBAAmB,GAAG,GAAG,EAAE,mBAAmB,IAAI,EAAE;AAC5D,EAAE,MAAM,GAAG,GAAG,YAAY,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI;AAC3D,EAAE,IAAI,CAAC,eAAe,EAAE;AACxB,IAAI,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,mBAAmB,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;AACrF,EAAE;AACF,EAAE,IAAI;AACN,IAAI,MAAM,SAAS,GAAG,MAAM,eAAe,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACvE,IAAI,OAAO;AACX,MAAM,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE;AACvD,MAAM,mBAAmB;AACzB,MAAM,OAAO,EAAE,GAAG,CAAC,OAAO;AAC1B,MAAM;AACN,KAAK;AACL,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,IAAI,GAAG,EAAE,MAAM,GAAG;AACpE,IAAI,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC;AACzD,IAAI,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,mBAAmB,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;AACrF,EAAE;AACF,CAAC;;;;;;;;;"}
|
|
@@ -4,7 +4,7 @@ import { f as flag } from '../../../../chunks/providers.server.js-Sbk117pY.js';
|
|
|
4
4
|
import { w as writeChannel, r as readChannel, c as checkForUpdate } from '../../../../chunks/updateCheck.server.js-DdReI2pF.js';
|
|
5
5
|
import { d as requirePermission } from '../../../../chunks/access.server.js-x_KrjYJP.js';
|
|
6
6
|
import { D as DEFINITION_CACHE_TTL_MS, R as REMOTE_DEFINITION_FETCH_TIMEOUT_MS, a as REMOTE_DEFINITION_MAX_BYTES, C as COMPUTE_RESPONSE_MAX_BYTES, b as COMPUTE_REQUEST_MAX_BYTES, M as MAX_IMAGE_FILE_SIZE, c as MAX_GH_FILE_SIZE, d as RATE_LIMIT_MAX_REQUESTS, e as RATE_LIMIT_WINDOW_MS, f as MAX_SOLVE_DURATION_MS } from '../../../../chunks/computeLimits.js-CVHW4MyF.js';
|
|
7
|
-
import { p as pkg } from '../../../../chunks/package.js-
|
|
7
|
+
import { p as pkg } from '../../../../chunks/package.js-u-gQlTZO.js';
|
|
8
8
|
|
|
9
9
|
const load = async ({ locals, fetch }) => {
|
|
10
10
|
const ctx = locals.ctx;
|
|
@@ -69,4 +69,4 @@ var _page_server_ts = /*#__PURE__*/Object.freeze({
|
|
|
69
69
|
});
|
|
70
70
|
|
|
71
71
|
export { _page_server_ts as _ };
|
|
72
|
-
//# sourceMappingURL=_page.server.ts.js-
|
|
72
|
+
//# sourceMappingURL=_page.server.ts.js-Cah8QM2O.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_page.server.ts.js-
|
|
1
|
+
{"version":3,"file":"_page.server.ts.js-Cah8QM2O.js","sources":["../../../../../../../.svelte-kit/output/server/entries/pages/admin/system/_page.server.ts.js"],"sourcesContent":["import { fail } from \"@sveltejs/kit\";\nimport { h as hasPermission } from \"../../../../chunks/context.js\";\nimport { f as flag } from \"../../../../chunks/providers.server.js\";\nimport { w as writeChannel, r as readChannel, c as checkForUpdate } from \"../../../../chunks/updateCheck.server.js\";\nimport { d as requirePermission } from \"../../../../chunks/access.server.js\";\nimport { D as DEFINITION_CACHE_TTL_MS, R as REMOTE_DEFINITION_FETCH_TIMEOUT_MS, a as REMOTE_DEFINITION_MAX_BYTES, C as COMPUTE_RESPONSE_MAX_BYTES, b as COMPUTE_REQUEST_MAX_BYTES, M as MAX_IMAGE_FILE_SIZE, c as MAX_GH_FILE_SIZE, d as RATE_LIMIT_MAX_REQUESTS, e as RATE_LIMIT_WINDOW_MS, f as MAX_SOLVE_DURATION_MS } from \"../../../../chunks/computeLimits.js\";\nimport { p as pkg } from \"../../../../chunks/package.js\";\nconst load = async ({ locals, fetch }) => {\n const ctx = locals.ctx;\n const canManageUpdates = ctx ? hasPermission(ctx, \"manage_updates\") : false;\n const isInstanceAdmin = ctx ? hasPermission(ctx, \"instance_admin\") : false;\n const flags = {\n ALLOW_CROSS_ORG_PUBLIC: flag(\"ALLOW_CROSS_ORG_PUBLIC\"),\n ALLOW_ORG_COMPUTE_OVERRIDE: flag(\"ALLOW_ORG_COMPUTE_OVERRIDE\"),\n ALLOW_ORG_CREATION: flag(\"ALLOW_ORG_CREATION\"),\n ENABLE_PLATFORM_PROJECTS: flag(\"ENABLE_PLATFORM_PROJECTS\"),\n ENABLE_SHARING: flag(\"ENABLE_SHARING\")\n };\n const limits = {\n MAX_SOLVE_DURATION_MS,\n RATE_LIMIT_WINDOW_MS,\n RATE_LIMIT_MAX_REQUESTS,\n MAX_GH_FILE_SIZE,\n MAX_IMAGE_FILE_SIZE,\n COMPUTE_REQUEST_MAX_BYTES,\n COMPUTE_RESPONSE_MAX_BYTES,\n REMOTE_DEFINITION_MAX_BYTES,\n REMOTE_DEFINITION_FETCH_TIMEOUT_MS,\n DEFINITION_CACHE_TTL_MS\n };\n const channel = readChannel();\n const update = canManageUpdates ? await checkForUpdate(fetch, channel) : { channel, current: null, latest: null, updateAvailable: false };\n return {\n canManageUpdates,\n isInstanceAdmin,\n flags,\n limits,\n version: pkg.version,\n channel,\n update\n };\n};\nconst actions = {\n // Persist the release channel. Switch-only: this does NOT trigger an update —\n // the operator then uses the Update runner to install from the chosen channel.\n setChannel: async ({ request, locals }) => {\n requirePermission(locals, \"manage_updates\");\n const data = await request.formData();\n const channel = data.get(\"channel\");\n if (channel !== \"stable\" && channel !== \"beta\") {\n return fail(400, { error: \"Invalid channel.\" });\n }\n try {\n writeChannel(channel);\n } catch (e) {\n return fail(500, {\n error: `Could not persist the channel: ${e instanceof Error ? e.message : \"unknown error\"}`\n });\n }\n return { channel };\n }\n};\nexport {\n actions,\n load\n};\n"],"names":[],"mappings":";;;;;;;;AAOA,MAAM,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;AAC1C,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG;AACxB,EAAE,MAAM,gBAAgB,GAAG,GAAG,GAAG,aAAa,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,KAAK;AAC7E,EAAE,MAAM,eAAe,GAAG,GAAG,GAAG,aAAa,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,KAAK;AAC5E,EAAE,MAAM,KAAK,GAAG;AAChB,IAAI,sBAAsB,EAAE,IAAI,CAAC,wBAAwB,CAAC;AAC1D,IAAI,0BAA0B,EAAE,IAAI,CAAC,4BAA4B,CAAC;AAClE,IAAI,kBAAkB,EAAE,IAAI,CAAC,oBAAoB,CAAC;AAClD,IAAI,wBAAwB,EAAE,IAAI,CAAC,0BAA0B,CAAC;AAC9D,IAAI,cAAc,EAAE,IAAI,CAAC,gBAAgB;AACzC,GAAG;AACH,EAAE,MAAM,MAAM,GAAG;AACjB,IAAI,qBAAqB;AACzB,IAAI,oBAAoB;AACxB,IAAI,uBAAuB;AAC3B,IAAI,gBAAgB;AACpB,IAAI,mBAAmB;AACvB,IAAI,yBAAyB;AAC7B,IAAI,0BAA0B;AAC9B,IAAI,2BAA2B;AAC/B,IAAI,kCAAkC;AACtC,IAAI;AACJ,GAAG;AACH,EAAE,MAAM,OAAO,GAAG,WAAW,EAAE;AAC/B,EAAE,MAAM,MAAM,GAAG,gBAAgB,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE;AAC3I,EAAE,OAAO;AACT,IAAI,gBAAgB;AACpB,IAAI,eAAe;AACnB,IAAI,KAAK;AACT,IAAI,MAAM;AACV,IAAI,OAAO,EAAE,GAAG,CAAC,OAAO;AACxB,IAAI,OAAO;AACX,IAAI;AACJ,GAAG;AACH,CAAC;AACD,MAAM,OAAO,GAAG;AAChB;AACA;AACA,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AAC7C,IAAI,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,CAAC;AAC/C,IAAI,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE;AACzC,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;AACvC,IAAI,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,MAAM,EAAE;AACpD,MAAM,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;AACrD,IAAI;AACJ,IAAI,IAAI;AACR,MAAM,YAAY,CAAC,OAAO,CAAC;AAC3B,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE;AAChB,MAAM,OAAO,IAAI,CAAC,GAAG,EAAE;AACvB,QAAQ,KAAK,EAAE,CAAC,+BAA+B,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,eAAe,CAAC;AAClG,OAAO,CAAC;AACR,IAAI;AACJ,IAAI,OAAO,EAAE,OAAO,EAAE;AACtB,EAAE;AACF,CAAC;;;;;;;;;;"}
|