@selvajs/selva 4.4.0 → 4.5.1
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/{D7wuDTx2.js → BYBRW46Q.js} +1 -1
- package/build/client/_app/immutable/chunks/BYBRW46Q.js.br +0 -0
- package/build/client/_app/immutable/chunks/BYBRW46Q.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{B-fj8b7K.js → BfWZCn9D.js} +2 -2
- package/build/client/_app/immutable/chunks/BfWZCn9D.js.br +0 -0
- package/build/client/_app/immutable/chunks/BfWZCn9D.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{D-jj-Uww.js → BoelBenK.js} +1 -1
- package/build/client/_app/immutable/chunks/BoelBenK.js.br +0 -0
- package/build/client/_app/immutable/chunks/BoelBenK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{j-UbJSFZ.js → BuvUOrz-.js} +1 -1
- package/build/client/_app/immutable/chunks/BuvUOrz-.js.br +0 -0
- package/build/client/_app/immutable/chunks/BuvUOrz-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CdGNQgyw.js → CQjJB6sZ.js} +1 -1
- package/build/client/_app/immutable/chunks/CQjJB6sZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/CQjJB6sZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/jJihnyaB.js +3 -0
- package/build/client/_app/immutable/chunks/jJihnyaB.js.br +0 -0
- package/build/client/_app/immutable/chunks/jJihnyaB.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.CsJrZk_i.js → app.CUlU8Xgx.js} +2 -2
- package/build/client/_app/immutable/entry/app.CUlU8Xgx.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CUlU8Xgx.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.yXH7NuOH.js +1 -0
- package/build/client/_app/immutable/entry/start.yXH7NuOH.js.br +2 -0
- package/build/client/_app/immutable/entry/start.yXH7NuOH.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.wSjQD-9E.js → 1.ntriGXw3.js} +1 -1
- package/build/client/_app/immutable/nodes/1.ntriGXw3.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.ntriGXw3.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.BBxGjNus.js +4 -0
- package/build/client/_app/immutable/nodes/11.BBxGjNus.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.BBxGjNus.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{13.CZxapN5I.js → 13.BOOSKgNQ.js} +1 -1
- package/build/client/_app/immutable/nodes/13.BOOSKgNQ.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.BOOSKgNQ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{14.ChDvrNjp.js → 14.st6sThI5.js} +1 -1
- package/build/client/_app/immutable/nodes/14.st6sThI5.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.st6sThI5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{16.Cewxge5m.js → 16.fAXfHZXp.js} +1 -1
- package/build/client/_app/immutable/nodes/16.fAXfHZXp.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.fAXfHZXp.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{17.NlvAvTSP.js → 17.BL_btSTd.js} +1 -1
- package/build/client/_app/immutable/nodes/17.BL_btSTd.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.BL_btSTd.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{19.qNGlcD7l.js → 19.D4mkSjY9.js} +1 -1
- package/build/client/_app/immutable/nodes/19.D4mkSjY9.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.D4mkSjY9.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{2.CgydK0lI.js → 2.CNkzjKpD.js} +1 -1
- package/build/client/_app/immutable/nodes/2.CNkzjKpD.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CNkzjKpD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/20.93bCfNGI.js +5021 -0
- package/build/client/_app/immutable/nodes/20.93bCfNGI.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.93bCfNGI.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{21.CdZLvQ68.js → 21.ClzCdrlw.js} +1 -1
- package/build/client/_app/immutable/nodes/21.ClzCdrlw.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.ClzCdrlw.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{23.CmSUvEas.js → 23.DJerRiZ2.js} +1 -1
- package/build/client/_app/immutable/nodes/23.DJerRiZ2.js.br +0 -0
- package/build/client/_app/immutable/nodes/{23.CmSUvEas.js.gz → 23.DJerRiZ2.js.gz} +0 -0
- package/build/client/_app/immutable/nodes/{24.BLrWFvpH.js → 24.DOHyLmBO.js} +1 -1
- package/build/client/_app/immutable/nodes/24.DOHyLmBO.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.DOHyLmBO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{27.DF8_FNgX.js → 27.CkzNBFns.js} +1 -1
- package/build/client/_app/immutable/nodes/27.CkzNBFns.js.br +0 -0
- package/build/client/_app/immutable/nodes/27.CkzNBFns.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{28.u-nHYDMp.js → 28.BGNl-6WV.js} +1 -1
- package/build/client/_app/immutable/nodes/28.BGNl-6WV.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.BGNl-6WV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{29.zcWmCBtG.js → 29.BF0JasWQ.js} +1 -1
- package/build/client/_app/immutable/nodes/29.BF0JasWQ.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.BF0JasWQ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{3.CGYG-fBC.js → 3.BLNJLcvR.js} +1 -1
- package/build/client/_app/immutable/nodes/3.BLNJLcvR.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.BLNJLcvR.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{30.CFRFw3XM.js → 30.C33KvKLy.js} +1 -1
- package/build/client/_app/immutable/nodes/30.C33KvKLy.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.C33KvKLy.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.BIDVFrKz.js → 5.DcViAFBY.js} +1 -1
- package/build/client/_app/immutable/nodes/5.DcViAFBY.js.br +1 -0
- package/build/client/_app/immutable/nodes/5.DcViAFBY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.G8VTWVfQ.js → 6.Jpw_unqM.js} +1 -1
- package/build/client/_app/immutable/nodes/6.Jpw_unqM.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.Jpw_unqM.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.DaJ_YKCW.js → 7.DI4lv1qr.js} +1 -1
- package/build/client/_app/immutable/nodes/7.DI4lv1qr.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.DI4lv1qr.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{8.c3ONIRmr.js → 8.BJeZ3Zka.js} +1 -1
- package/build/client/_app/immutable/nodes/8.BJeZ3Zka.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.BJeZ3Zka.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{9.BucDMSoZ.js → 9.BS42pKml.js} +1 -1
- package/build/client/_app/immutable/nodes/9.BS42pKml.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.BS42pKml.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/server/chunks/{0-DIp1vX-0.js → 0-DhT7yxre.js} +2 -2
- package/build/server/chunks/{0-DIp1vX-0.js.map → 0-DhT7yxre.js.map} +1 -1
- package/build/server/chunks/{1-2fHcSF9r.js → 1-CCtIB9oC.js} +2 -2
- package/build/server/chunks/{1-2fHcSF9r.js.map → 1-CCtIB9oC.js.map} +1 -1
- package/build/server/chunks/{10-D4slAhbl.js → 10-Cj20BodR.js} +5 -5
- package/build/server/chunks/{10-D4slAhbl.js.map → 10-Cj20BodR.js.map} +1 -1
- package/build/server/chunks/{11-BIn4AcHz.js → 11-C-goGrGx.js} +7 -7
- package/build/server/chunks/{11-BIn4AcHz.js.map → 11-C-goGrGx.js.map} +1 -1
- package/build/server/chunks/{12-BTFEd1df.js → 12-Bra8rAOu.js} +2 -2
- package/build/server/chunks/{12-BTFEd1df.js.map → 12-Bra8rAOu.js.map} +1 -1
- package/build/server/chunks/{13-DoxggNWI.js → 13-DN-4EHom.js} +3 -3
- package/build/server/chunks/{13-DoxggNWI.js.map → 13-DN-4EHom.js.map} +1 -1
- package/build/server/chunks/{14-dn1AxT2y.js → 14-j22gtg6q.js} +3 -3
- package/build/server/chunks/{14-dn1AxT2y.js.map → 14-j22gtg6q.js.map} +1 -1
- package/build/server/chunks/{15-CwlxfscS.js → 15-CJJTHKeq.js} +3 -3
- package/build/server/chunks/{15-CwlxfscS.js.map → 15-CJJTHKeq.js.map} +1 -1
- package/build/server/chunks/{16-CYmJwOTN.js → 16-CPVRxJfK.js} +6 -6
- package/build/server/chunks/{16-CYmJwOTN.js.map → 16-CPVRxJfK.js.map} +1 -1
- package/build/server/chunks/{17-2g3z6ge8.js → 17-CEs6NSIj.js} +2 -2
- package/build/server/chunks/{17-2g3z6ge8.js.map → 17-CEs6NSIj.js.map} +1 -1
- package/build/server/chunks/{18-DS1IDuFS.js → 18-Lwe4TEuf.js} +2 -2
- package/build/server/chunks/{18-DS1IDuFS.js.map → 18-Lwe4TEuf.js.map} +1 -1
- package/build/server/chunks/{19-D7P-oKm4.js → 19-BK_uDFHq.js} +4 -4
- package/build/server/chunks/{19-D7P-oKm4.js.map → 19-BK_uDFHq.js.map} +1 -1
- package/build/server/chunks/{2-x36H91MM.js → 2-BBFUEdIk.js} +7 -7
- package/build/server/chunks/{2-x36H91MM.js.map → 2-BBFUEdIk.js.map} +1 -1
- package/build/server/chunks/{20-Cb9g4A7Q.js → 20-TgvBHCqT.js} +10 -10
- package/build/server/chunks/{20-Cb9g4A7Q.js.map → 20-TgvBHCqT.js.map} +1 -1
- package/build/server/chunks/{21-CpI2moj3.js → 21-CpVgaOZP.js} +3 -3
- package/build/server/chunks/{21-CpI2moj3.js.map → 21-CpVgaOZP.js.map} +1 -1
- package/build/server/chunks/{23-cbMfA5sY.js → 23-DpZ-VAmj.js} +6 -6
- package/build/server/chunks/{23-cbMfA5sY.js.map → 23-DpZ-VAmj.js.map} +1 -1
- package/build/server/chunks/{24-CA3DPT0t.js → 24-IG8oF3LR.js} +4 -4
- package/build/server/chunks/{24-CA3DPT0t.js.map → 24-IG8oF3LR.js.map} +1 -1
- package/build/server/chunks/{25-DludrCpg.js → 25-DL8VLuLg.js} +2 -2
- package/build/server/chunks/{25-DludrCpg.js.map → 25-DL8VLuLg.js.map} +1 -1
- package/build/server/chunks/{27-BDtKZzPl.js → 27-BNuVmBlC.js} +4 -4
- package/build/server/chunks/{27-BDtKZzPl.js.map → 27-BNuVmBlC.js.map} +1 -1
- package/build/server/chunks/{28-Dvh0YyMK.js → 28-O2gMewvR.js} +3 -3
- package/build/server/chunks/{28-Dvh0YyMK.js.map → 28-O2gMewvR.js.map} +1 -1
- package/build/server/chunks/{29-OZbtFuyd.js → 29-DeHI_lg6.js} +3 -3
- package/build/server/chunks/{29-OZbtFuyd.js.map → 29-DeHI_lg6.js.map} +1 -1
- package/build/server/chunks/{3-BFx3bdEz.js → 3-_z4ofaYa.js} +2 -2
- package/build/server/chunks/{3-BFx3bdEz.js.map → 3-_z4ofaYa.js.map} +1 -1
- package/build/server/chunks/{30-BuoO_cIR.js → 30-B8zrsGBW.js} +3 -3
- package/build/server/chunks/{30-BuoO_cIR.js.map → 30-B8zrsGBW.js.map} +1 -1
- package/build/server/chunks/{31-Dzl1y1lc.js → 31-DJIq1bRM.js} +2 -2
- package/build/server/chunks/{31-Dzl1y1lc.js.map → 31-DJIq1bRM.js.map} +1 -1
- package/build/server/chunks/{32-DEYwWtss.js → 32-fvzIyQyk.js} +2 -2
- package/build/server/chunks/{32-DEYwWtss.js.map → 32-fvzIyQyk.js.map} +1 -1
- package/build/server/chunks/{5-BNfM-tOw.js → 5-jUoewty6.js} +3 -3
- package/build/server/chunks/{5-BNfM-tOw.js.map → 5-jUoewty6.js.map} +1 -1
- package/build/server/chunks/{6-CEx1JO4m.js → 6-Da49O-RB.js} +4 -4
- package/build/server/chunks/{6-CEx1JO4m.js.map → 6-Da49O-RB.js.map} +1 -1
- package/build/server/chunks/{7-Cz-fnTMA.js → 7-C4TEFQmD.js} +3 -3
- package/build/server/chunks/{7-Cz-fnTMA.js.map → 7-C4TEFQmD.js.map} +1 -1
- package/build/server/chunks/{8-CFNvkchb.js → 8-6Lblm8Bu.js} +3 -3
- package/build/server/chunks/{8-CFNvkchb.js.map → 8-6Lblm8Bu.js.map} +1 -1
- package/build/server/chunks/{9-DrF9Yg9r.js → 9-bV3k1piX.js} +4 -4
- package/build/server/chunks/{9-DrF9Yg9r.js.map → 9-bV3k1piX.js.map} +1 -1
- package/build/server/chunks/{AppHeader-vae2Doza.js → AppHeader-C76PLheq.js} +2 -2
- package/build/server/chunks/{AppHeader-vae2Doza.js.map → AppHeader-C76PLheq.js.map} +1 -1
- package/build/server/chunks/{UserChip-BPLEgzMp.js → UserChip-i0_3jHOb.js} +8 -3
- package/build/server/chunks/UserChip-i0_3jHOb.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-D5GiNGr6.js → _layout.svelte-B-tWsdy4.js} +3 -3
- package/build/server/chunks/{_layout.svelte-D5GiNGr6.js.map → _layout.svelte-B-tWsdy4.js.map} +1 -1
- package/build/server/chunks/{_layout.svelte-_enyp5QE.js → _layout.svelte-B2RbgABg.js} +3 -3
- package/build/server/chunks/{_layout.svelte-_enyp5QE.js.map → _layout.svelte-B2RbgABg.js.map} +1 -1
- package/build/server/chunks/{_layout.svelte-aflz8r6I.js → _layout.svelte-DUeER8oS.js} +3 -3
- package/build/server/chunks/{_layout.svelte-aflz8r6I.js.map → _layout.svelte-DUeER8oS.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-By_vYfbZ.js → _page.svelte-0KErHswo.js} +94 -4
- package/build/server/chunks/_page.svelte-0KErHswo.js.map +1 -0
- package/build/server/chunks/{_page.svelte-ZxjqrKH8.js → _page.svelte-BSHEM3UY.js} +3 -3
- package/build/server/chunks/{_page.svelte-ZxjqrKH8.js.map → _page.svelte-BSHEM3UY.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-FDFRMnmB.js → _page.svelte-CDEfhXLp.js} +3 -3
- package/build/server/chunks/{_page.svelte-FDFRMnmB.js.map → _page.svelte-CDEfhXLp.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-wUV5pt7K.js → _page.svelte-DDzV91b5.js} +305 -54
- package/build/server/chunks/_page.svelte-DDzV91b5.js.map +1 -0
- package/build/server/chunks/{_server.ts-CYnQlbaG.js → _server.ts-3LBSaM7L.js} +26 -14
- package/build/server/chunks/_server.ts-3LBSaM7L.js.map +1 -0
- package/build/server/chunks/{_server.ts-C4BxZ2rC.js → _server.ts-B-un1ZTf.js} +5 -5
- package/build/server/chunks/{_server.ts-C4BxZ2rC.js.map → _server.ts-B-un1ZTf.js.map} +1 -1
- package/build/server/chunks/{_server.ts-aJ-1nqR3.js → _server.ts-B6gtWjZd.js} +9 -9
- package/build/server/chunks/_server.ts-B6gtWjZd.js.map +1 -0
- package/build/server/chunks/{_server.ts-A5TZCqa5.js → _server.ts-B9Fdut8P.js} +16 -12
- package/build/server/chunks/_server.ts-B9Fdut8P.js.map +1 -0
- package/build/server/chunks/{_server.ts-Ck8MaVCN.js → _server.ts-BJEEQ8tH.js} +17 -13
- package/build/server/chunks/_server.ts-BJEEQ8tH.js.map +1 -0
- package/build/server/chunks/{_server.ts-pUwXCS2e.js → _server.ts-BKPaoj3Y.js} +16 -11
- package/build/server/chunks/_server.ts-BKPaoj3Y.js.map +1 -0
- package/build/server/chunks/{_server.ts-CVgSO8yh.js → _server.ts-BVpHuRup.js} +10 -10
- package/build/server/chunks/_server.ts-BVpHuRup.js.map +1 -0
- package/build/server/chunks/{_server.ts-Ctmv-46q.js → _server.ts-BplW_hNF.js} +9 -9
- package/build/server/chunks/_server.ts-BplW_hNF.js.map +1 -0
- package/build/server/chunks/{_server.ts-Dsn1xqkb.js → _server.ts-Bv-G75Ze.js} +9 -9
- package/build/server/chunks/_server.ts-Bv-G75Ze.js.map +1 -0
- package/build/server/chunks/{_server.ts-DzoHhw3c.js → _server.ts-C5fD6gFa.js} +12 -12
- package/build/server/chunks/_server.ts-C5fD6gFa.js.map +1 -0
- package/build/server/chunks/{_server.ts-jICcnrLz.js → _server.ts-C6rUlJpJ.js} +14 -7
- package/build/server/chunks/_server.ts-C6rUlJpJ.js.map +1 -0
- package/build/server/chunks/_server.ts-CLku3Kgz.js +66 -0
- package/build/server/chunks/_server.ts-CLku3Kgz.js.map +1 -0
- package/build/server/chunks/{_server.ts-CmB_7_VV.js → _server.ts-CNRwBoMm.js} +5 -5
- package/build/server/chunks/{_server.ts-CmB_7_VV.js.map → _server.ts-CNRwBoMm.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DOepVbAV.js → _server.ts-COuXITb8.js} +11 -11
- package/build/server/chunks/_server.ts-COuXITb8.js.map +1 -0
- package/build/server/chunks/{_server.ts-vGCP86Du.js → _server.ts-CT1KXbVK.js} +79 -26
- package/build/server/chunks/_server.ts-CT1KXbVK.js.map +1 -0
- package/build/server/chunks/{_server.ts-BBenjXRj.js → _server.ts-CTXCbdsb.js} +12 -11
- package/build/server/chunks/_server.ts-CTXCbdsb.js.map +1 -0
- package/build/server/chunks/{_server.ts-CvjBKoOG.js → _server.ts-CXEl8kvu.js} +15 -14
- package/build/server/chunks/_server.ts-CXEl8kvu.js.map +1 -0
- package/build/server/chunks/{_server.ts-DCmcZ1Gb.js → _server.ts-CZ9lwb1J.js} +7 -7
- package/build/server/chunks/_server.ts-CZ9lwb1J.js.map +1 -0
- package/build/server/chunks/{_server.ts-Drk8mhhT.js → _server.ts-CaytsdFp.js} +9 -9
- package/build/server/chunks/_server.ts-CaytsdFp.js.map +1 -0
- package/build/server/chunks/{_server.ts-C8hNi-NM.js → _server.ts-Cd6dVQ2J.js} +19 -11
- package/build/server/chunks/_server.ts-Cd6dVQ2J.js.map +1 -0
- package/build/server/chunks/{_server.ts-Bel_bV82.js → _server.ts-CgRuMyJ9.js} +10 -10
- package/build/server/chunks/_server.ts-CgRuMyJ9.js.map +1 -0
- package/build/server/chunks/{_server.ts-TGu9dCIM.js → _server.ts-CmCeYB9h.js} +28 -18
- package/build/server/chunks/_server.ts-CmCeYB9h.js.map +1 -0
- package/build/server/chunks/{_server.ts-Mywogv28.js → _server.ts-Codg_zX0.js} +10 -9
- package/build/server/chunks/_server.ts-Codg_zX0.js.map +1 -0
- package/build/server/chunks/{_server.ts-Cu7fT_h2.js → _server.ts-D-WjMJlD.js} +12 -8
- package/build/server/chunks/_server.ts-D-WjMJlD.js.map +1 -0
- package/build/server/chunks/{_server.ts-BnV_32U5.js → _server.ts-D4z7bYT1.js} +25 -12
- package/build/server/chunks/_server.ts-D4z7bYT1.js.map +1 -0
- package/build/server/chunks/{_server.ts-BDVOe9oZ.js → _server.ts-D7URpGBv.js} +15 -11
- package/build/server/chunks/_server.ts-D7URpGBv.js.map +1 -0
- package/build/server/chunks/{_server.ts-CtwHDS7C.js → _server.ts-DMwrtYEK.js} +14 -14
- package/build/server/chunks/_server.ts-DMwrtYEK.js.map +1 -0
- package/build/server/chunks/{_server.ts-DgbeoluB.js → _server.ts-DSVtVVVK.js} +18 -12
- package/build/server/chunks/_server.ts-DSVtVVVK.js.map +1 -0
- package/build/server/chunks/{_server.ts-CXvixtRW.js → _server.ts-Df72lBuz.js} +25 -16
- package/build/server/chunks/_server.ts-Df72lBuz.js.map +1 -0
- package/build/server/chunks/{_server.ts-_nasPzxH.js → _server.ts-DlN3WSBT.js} +3 -3
- package/build/server/chunks/{_server.ts-_nasPzxH.js.map → _server.ts-DlN3WSBT.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BNSHTRhw.js → _server.ts-DsXq-KLm.js} +27 -18
- package/build/server/chunks/_server.ts-DsXq-KLm.js.map +1 -0
- package/build/server/chunks/{_server.ts-eAeNUEse.js → _server.ts-OQ5_sYi3.js} +32 -19
- package/build/server/chunks/_server.ts-OQ5_sYi3.js.map +1 -0
- package/build/server/chunks/{_server.ts-CoZrqfhl.js → _server.ts-UYOqhuxS.js} +13 -9
- package/build/server/chunks/_server.ts-UYOqhuxS.js.map +1 -0
- package/build/server/chunks/{_server.ts-C4lve0n9.js → _server.ts-Xt4gRfAl.js} +18 -12
- package/build/server/chunks/_server.ts-Xt4gRfAl.js.map +1 -0
- package/build/server/chunks/{_server.ts-CFmfnLGv.js → _server.ts-ZtjukIa0.js} +17 -14
- package/build/server/chunks/_server.ts-ZtjukIa0.js.map +1 -0
- package/build/server/chunks/_server.ts-bR98vjY2.js +47 -0
- package/build/server/chunks/_server.ts-bR98vjY2.js.map +1 -0
- package/build/server/chunks/{_server.ts-DgjIv5VO.js → _server.ts-deI69oUs.js} +9 -9
- package/build/server/chunks/_server.ts-deI69oUs.js.map +1 -0
- package/build/server/chunks/{_server.ts-DaL0WEpS.js → _server.ts-fxzTH5KH.js} +8 -8
- package/build/server/chunks/_server.ts-fxzTH5KH.js.map +1 -0
- package/build/server/chunks/{_server.ts-DQdxI18h.js → _server.ts-mFb6RwID.js} +8 -8
- package/build/server/chunks/_server.ts-mFb6RwID.js.map +1 -0
- package/build/server/chunks/{_server.ts-y7PjdP_H.js → _server.ts-sdl64bpd.js} +12 -9
- package/build/server/chunks/_server.ts-sdl64bpd.js.map +1 -0
- package/build/server/chunks/{access.server-BueyYEoY.js → access.server-Rd56k7vs.js} +4 -4
- package/build/server/chunks/{access.server-BueyYEoY.js.map → access.server-Rd56k7vs.js.map} +1 -1
- package/build/server/chunks/{api-errors-BckwXK7Q.js → api-errors-BrqxD-El.js} +54 -15
- package/build/server/chunks/api-errors-BrqxD-El.js.map +1 -0
- package/build/server/chunks/{auth-bootstrap.server-BOTw9HkY.js → auth-bootstrap.server-DKc9-3PR.js} +2 -2
- package/build/server/chunks/{auth-bootstrap.server-BOTw9HkY.js.map → auth-bootstrap.server-DKc9-3PR.js.map} +1 -1
- package/build/server/chunks/{bootHealth.server-BwEi-Qp8.js → bootHealth.server-IPXOSqqQ.js} +2 -2
- package/build/server/chunks/{bootHealth.server-BwEi-Qp8.js.map → bootHealth.server-IPXOSqqQ.js.map} +1 -1
- package/build/server/chunks/{computeLimits-DPO6NbLd.js → computeLimits-DnJ77wR9.js} +3 -3
- package/build/server/chunks/computeLimits-DnJ77wR9.js.map +1 -0
- package/build/server/chunks/{hooks.server-BHmZpgdz.js → hooks.server-BZKLAgww.js} +10 -9
- package/build/server/chunks/hooks.server-BZKLAgww.js.map +1 -0
- package/build/server/chunks/{package-CGdqH7nx.js → package-K5EkWw87.js} +2 -2
- package/build/server/chunks/{package-CGdqH7nx.js.map → package-K5EkWw87.js.map} +1 -1
- package/build/server/chunks/{permissions.server-D1KUdeD1.js → permissions.server-zs4XAJCp.js} +2 -2
- package/build/server/chunks/{permissions.server-D1KUdeD1.js.map → permissions.server-zs4XAJCp.js.map} +1 -1
- package/build/server/chunks/{providers.server-BYk2ehLM.js → providers.server-C3fQ7ZdV.js} +78 -21
- package/build/server/chunks/providers.server-C3fQ7ZdV.js.map +1 -0
- package/build/server/chunks/{resolve.server-D79ZavTd.js → resolve.server-t1UmqtsG.js} +2 -2
- package/build/server/chunks/{resolve.server-D79ZavTd.js.map → resolve.server-t1UmqtsG.js.map} +1 -1
- package/build/server/chunks/{utils2-UQQTHTw-.js → utils2-BqfluBM6.js} +2 -2
- package/build/server/chunks/{utils2-UQQTHTw-.js.map → utils2-BqfluBM6.js.map} +1 -1
- package/build/server/index.js +2 -2
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +77 -70
- package/build/server/manifest.js.map +1 -1
- package/package.json +7 -7
- package/templates/.env.example +14 -5
- package/build/client/_app/immutable/chunks/B-fj8b7K.js.br +0 -0
- package/build/client/_app/immutable/chunks/B-fj8b7K.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BU70HLVx.js +0 -3
- package/build/client/_app/immutable/chunks/BU70HLVx.js.br +0 -0
- package/build/client/_app/immutable/chunks/BU70HLVx.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CdGNQgyw.js.br +0 -0
- package/build/client/_app/immutable/chunks/CdGNQgyw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D-jj-Uww.js.br +0 -0
- package/build/client/_app/immutable/chunks/D-jj-Uww.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D7wuDTx2.js.br +0 -0
- package/build/client/_app/immutable/chunks/D7wuDTx2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/j-UbJSFZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/j-UbJSFZ.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CsJrZk_i.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CsJrZk_i.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.vCkjGHiU.js +0 -1
- package/build/client/_app/immutable/entry/start.vCkjGHiU.js.br +0 -2
- package/build/client/_app/immutable/entry/start.vCkjGHiU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.wSjQD-9E.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.wSjQD-9E.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.cZPocN3B.js +0 -2
- package/build/client/_app/immutable/nodes/11.cZPocN3B.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.cZPocN3B.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.CZxapN5I.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.CZxapN5I.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.ChDvrNjp.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.ChDvrNjp.js.gz +0 -0
- package/build/client/_app/immutable/nodes/16.Cewxge5m.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.Cewxge5m.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.NlvAvTSP.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.NlvAvTSP.js.gz +0 -0
- package/build/client/_app/immutable/nodes/19.qNGlcD7l.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.qNGlcD7l.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.CgydK0lI.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CgydK0lI.js.gz +0 -0
- package/build/client/_app/immutable/nodes/20.CoGCSB-X.js +0 -5021
- package/build/client/_app/immutable/nodes/20.CoGCSB-X.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.CoGCSB-X.js.gz +0 -0
- package/build/client/_app/immutable/nodes/21.CdZLvQ68.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.CdZLvQ68.js.gz +0 -0
- package/build/client/_app/immutable/nodes/23.CmSUvEas.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.BLrWFvpH.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.BLrWFvpH.js.gz +0 -0
- package/build/client/_app/immutable/nodes/27.DF8_FNgX.js.br +0 -0
- package/build/client/_app/immutable/nodes/27.DF8_FNgX.js.gz +0 -0
- package/build/client/_app/immutable/nodes/28.u-nHYDMp.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.u-nHYDMp.js.gz +0 -0
- package/build/client/_app/immutable/nodes/29.zcWmCBtG.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.zcWmCBtG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.CGYG-fBC.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CGYG-fBC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/30.CFRFw3XM.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.CFRFw3XM.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.BIDVFrKz.js.br +0 -2
- package/build/client/_app/immutable/nodes/5.BIDVFrKz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.G8VTWVfQ.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.G8VTWVfQ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.DaJ_YKCW.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.DaJ_YKCW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.c3ONIRmr.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.c3ONIRmr.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.BucDMSoZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.BucDMSoZ.js.gz +0 -0
- package/build/server/chunks/UserChip-BPLEgzMp.js.map +0 -1
- package/build/server/chunks/_page.svelte-By_vYfbZ.js.map +0 -1
- package/build/server/chunks/_page.svelte-wUV5pt7K.js.map +0 -1
- package/build/server/chunks/_server.ts-A5TZCqa5.js.map +0 -1
- package/build/server/chunks/_server.ts-BBenjXRj.js.map +0 -1
- package/build/server/chunks/_server.ts-BDVOe9oZ.js.map +0 -1
- package/build/server/chunks/_server.ts-BNSHTRhw.js.map +0 -1
- package/build/server/chunks/_server.ts-Bel_bV82.js.map +0 -1
- package/build/server/chunks/_server.ts-BnV_32U5.js.map +0 -1
- package/build/server/chunks/_server.ts-C4lve0n9.js.map +0 -1
- package/build/server/chunks/_server.ts-C8hNi-NM.js.map +0 -1
- package/build/server/chunks/_server.ts-CFmfnLGv.js.map +0 -1
- package/build/server/chunks/_server.ts-CVgSO8yh.js.map +0 -1
- package/build/server/chunks/_server.ts-CXvixtRW.js.map +0 -1
- package/build/server/chunks/_server.ts-CYnQlbaG.js.map +0 -1
- package/build/server/chunks/_server.ts-Ck8MaVCN.js.map +0 -1
- package/build/server/chunks/_server.ts-CoZrqfhl.js.map +0 -1
- package/build/server/chunks/_server.ts-Ctmv-46q.js.map +0 -1
- package/build/server/chunks/_server.ts-CtwHDS7C.js.map +0 -1
- package/build/server/chunks/_server.ts-Cu7fT_h2.js.map +0 -1
- package/build/server/chunks/_server.ts-CvjBKoOG.js.map +0 -1
- package/build/server/chunks/_server.ts-DCmcZ1Gb.js.map +0 -1
- package/build/server/chunks/_server.ts-DOepVbAV.js.map +0 -1
- package/build/server/chunks/_server.ts-DQdxI18h.js.map +0 -1
- package/build/server/chunks/_server.ts-DaL0WEpS.js.map +0 -1
- package/build/server/chunks/_server.ts-DbcwlSqy.js +0 -65
- package/build/server/chunks/_server.ts-DbcwlSqy.js.map +0 -1
- package/build/server/chunks/_server.ts-DgbeoluB.js.map +0 -1
- package/build/server/chunks/_server.ts-DgjIv5VO.js.map +0 -1
- package/build/server/chunks/_server.ts-Drk8mhhT.js.map +0 -1
- package/build/server/chunks/_server.ts-Dsn1xqkb.js.map +0 -1
- package/build/server/chunks/_server.ts-DzoHhw3c.js.map +0 -1
- package/build/server/chunks/_server.ts-Mywogv28.js.map +0 -1
- package/build/server/chunks/_server.ts-TGu9dCIM.js.map +0 -1
- package/build/server/chunks/_server.ts-aJ-1nqR3.js.map +0 -1
- package/build/server/chunks/_server.ts-eAeNUEse.js.map +0 -1
- package/build/server/chunks/_server.ts-jICcnrLz.js.map +0 -1
- package/build/server/chunks/_server.ts-pUwXCS2e.js.map +0 -1
- package/build/server/chunks/_server.ts-vGCP86Du.js.map +0 -1
- package/build/server/chunks/_server.ts-y7PjdP_H.js.map +0 -1
- package/build/server/chunks/api-errors-BckwXK7Q.js.map +0 -1
- package/build/server/chunks/computeLimits-DPO6NbLd.js.map +0 -1
- package/build/server/chunks/hooks.server-BHmZpgdz.js.map +0 -1
- package/build/server/chunks/providers.server-BYk2ehLM.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { error } from '@sveltejs/kit';
|
|
1
|
+
import { error, isHttpError } from '@sveltejs/kit';
|
|
2
2
|
import './context-BJnJL8ES.js';
|
|
3
|
-
import { P as ProviderError, c as getComputeServerConfigStore } from './providers.server-
|
|
3
|
+
import { P as ProviderError, c as getComputeServerConfigStore } from './providers.server-C3fQ7ZdV.js';
|
|
4
4
|
import { camelcaseKeys } from '@selvajs/compute/core';
|
|
5
|
-
import { r as resolveServerForOrg$1 } from './utils2-
|
|
5
|
+
import { r as resolveServerForOrg$1 } from './utils2-BqfluBM6.js';
|
|
6
6
|
|
|
7
7
|
class SchemaExtractionError extends Error {
|
|
8
8
|
constructor(kind, message) {
|
|
@@ -61,8 +61,39 @@ async function resolveServerForOrg(ctx, orgId, opts = {}) {
|
|
|
61
61
|
throw new ComputeServerUnconfiguredError(err instanceof Error ? err.message : void 0);
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
const ApiErrorCode = {
|
|
65
|
+
VALIDATION_FAILED: "VALIDATION_FAILED",
|
|
66
|
+
UNAUTHORIZED: "UNAUTHORIZED",
|
|
67
|
+
FORBIDDEN: "FORBIDDEN",
|
|
68
|
+
NOT_FOUND: "NOT_FOUND",
|
|
69
|
+
CONFLICT: "CONFLICT",
|
|
70
|
+
UNPROCESSABLE: "UNPROCESSABLE",
|
|
71
|
+
COMPUTE_UNAVAILABLE: "COMPUTE_UNAVAILABLE",
|
|
72
|
+
SETUP_REQUIRED: "SETUP_REQUIRED",
|
|
73
|
+
INTERNAL: "INTERNAL"
|
|
74
|
+
};
|
|
75
|
+
function apiError(status, code, message, fields) {
|
|
76
|
+
throw error(status, fields ? { message, code, fields } : { message, code });
|
|
77
|
+
}
|
|
78
|
+
function codeForStatus(status) {
|
|
79
|
+
switch (status) {
|
|
80
|
+
case 400:
|
|
81
|
+
return ApiErrorCode.VALIDATION_FAILED;
|
|
82
|
+
case 401:
|
|
83
|
+
return ApiErrorCode.UNAUTHORIZED;
|
|
84
|
+
case 403:
|
|
85
|
+
return ApiErrorCode.FORBIDDEN;
|
|
86
|
+
case 404:
|
|
87
|
+
return ApiErrorCode.NOT_FOUND;
|
|
88
|
+
case 409:
|
|
89
|
+
return ApiErrorCode.CONFLICT;
|
|
90
|
+
case 422:
|
|
91
|
+
return ApiErrorCode.UNPROCESSABLE;
|
|
92
|
+
case 503:
|
|
93
|
+
return ApiErrorCode.COMPUTE_UNAVAILABLE;
|
|
94
|
+
default:
|
|
95
|
+
return ApiErrorCode.INTERNAL;
|
|
96
|
+
}
|
|
66
97
|
}
|
|
67
98
|
const UNIQUE_CONSTRAINT_MESSAGES = {
|
|
68
99
|
projects_org_name_unique: "A project with that name already exists in this organization.",
|
|
@@ -77,25 +108,33 @@ function friendlyConstraintMessage(raw) {
|
|
|
77
108
|
return null;
|
|
78
109
|
}
|
|
79
110
|
function handleApiError(err, fallback) {
|
|
80
|
-
if (
|
|
111
|
+
if (isHttpError(err)) throw err;
|
|
81
112
|
if (err instanceof SchemaExtractionError) {
|
|
82
|
-
|
|
113
|
+
if (err.kind === "unreachable") {
|
|
114
|
+
apiError(503, ApiErrorCode.COMPUTE_UNAVAILABLE, err.message);
|
|
115
|
+
}
|
|
116
|
+
apiError(422, ApiErrorCode.UNPROCESSABLE, err.message);
|
|
83
117
|
}
|
|
84
118
|
if (err instanceof ComputeServerUnconfiguredError) {
|
|
85
|
-
|
|
119
|
+
apiError(503, ApiErrorCode.COMPUTE_UNAVAILABLE, err.message);
|
|
86
120
|
}
|
|
87
121
|
if (err instanceof ProviderError) {
|
|
88
122
|
const friendly = friendlyConstraintMessage(err.message);
|
|
89
|
-
|
|
123
|
+
apiError(err.statusCode, codeForStatus(err.statusCode), friendly ?? err.message);
|
|
90
124
|
}
|
|
91
125
|
console.error(`[API] ${fallback}:`, err);
|
|
92
|
-
|
|
126
|
+
apiError(500, ApiErrorCode.INTERNAL, fallback);
|
|
93
127
|
}
|
|
94
128
|
function throwZodError(err) {
|
|
95
|
-
const
|
|
96
|
-
const
|
|
97
|
-
|
|
129
|
+
const fields = {};
|
|
130
|
+
for (const issue of err.issues) {
|
|
131
|
+
const key = issue.path.length ? issue.path.join(".") : "_";
|
|
132
|
+
if (!(key in fields)) fields[key] = issue.message;
|
|
133
|
+
}
|
|
134
|
+
const first = err.issues[0];
|
|
135
|
+
const path = first.path.length ? `${first.path.join(".")}: ` : "";
|
|
136
|
+
apiError(400, ApiErrorCode.VALIDATION_FAILED, `${path}${first.message}`, fields);
|
|
98
137
|
}
|
|
99
138
|
|
|
100
|
-
export { ComputeServerUnconfiguredError as C, fetchSchemaFromCompute as f, handleApiError as h, resolveServerForOrg as r, throwZodError as t };
|
|
101
|
-
//# sourceMappingURL=api-errors-
|
|
139
|
+
export { ApiErrorCode as A, ComputeServerUnconfiguredError as C, apiError as a, fetchSchemaFromCompute as f, handleApiError as h, resolveServerForOrg as r, throwZodError as t };
|
|
140
|
+
//# sourceMappingURL=api-errors-BrqxD-El.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-errors-BrqxD-El.js","sources":["../../../.svelte-kit/adapter-node/chunks/api-errors.js"],"sourcesContent":["import { error, isHttpError } from \"@sveltejs/kit\";\nimport \"./context.js\";\nimport { c as getComputeServerConfigStore, P as ProviderError } from \"./providers.server.js\";\nimport { camelcaseKeys } from \"@selvajs/compute/core\";\nimport { r as resolveServerForOrg$1 } from \"./utils2.js\";\nclass SchemaExtractionError extends Error {\n constructor(kind, message) {\n super(message);\n this.kind = kind;\n this.name = \"SchemaExtractionError\";\n }\n kind;\n}\nasync function fetchSchemaFromCompute(definitionBytes, server) {\n const schemaUrl = new URL(\"/grasshopper/schema\", server.serverUrl).toString();\n const formData = new FormData();\n const blob = new Blob([new Uint8Array(definitionBytes)], { type: \"application/octet-stream\" });\n formData.append(\"file\", blob, \"definition.gh\");\n const headers = {};\n if (server.apiKey) {\n headers[\"RhinoComputeKey\"] = server.apiKey;\n }\n let response;\n try {\n response = await fetch(schemaUrl, { method: \"POST\", headers, body: formData });\n } catch (err) {\n throw new SchemaExtractionError(\n \"unreachable\",\n `Compute server is unreachable: ${err instanceof Error ? err.message : String(err)}`\n );\n }\n if (!response.ok) {\n throw new SchemaExtractionError(\n \"unreachable\",\n `Schema endpoint returned ${response.status}: ${response.statusText}`\n );\n }\n const raw = await response.json();\n const results = camelcaseKeys(Array.isArray(raw) ? raw : [raw]);\n const schemas = results.flatMap((r) => r.schemas ?? []);\n if (schemas.length === 0) {\n throw new SchemaExtractionError(\n \"invalid\",\n 'No schemas found in definition.\\n\\nIn Grasshopper, verify a Context Bake component with the output name \"Schema\" is present and wired to the solver.'\n );\n }\n return schemas[0];\n}\nclass ComputeServerUnconfiguredError extends Error {\n constructor(message = \"No compute server configured. Ask an admin to add one in /admin/compute.\") {\n super(message);\n this.name = \"ComputeServerUnconfiguredError\";\n }\n}\nasync function resolveServerForOrg(ctx, orgId, opts = {}) {\n const config = await getComputeServerConfigStore().getConfig(ctx);\n try {\n return resolveServerForOrg$1(config, orgId, { definitionPin: opts.definitionPin });\n } catch (err) {\n throw new ComputeServerUnconfiguredError(err instanceof Error ? err.message : void 0);\n }\n}\nconst ApiErrorCode = {\n VALIDATION_FAILED: \"VALIDATION_FAILED\",\n UNAUTHORIZED: \"UNAUTHORIZED\",\n FORBIDDEN: \"FORBIDDEN\",\n NOT_FOUND: \"NOT_FOUND\",\n CONFLICT: \"CONFLICT\",\n UNPROCESSABLE: \"UNPROCESSABLE\",\n COMPUTE_UNAVAILABLE: \"COMPUTE_UNAVAILABLE\",\n SETUP_REQUIRED: \"SETUP_REQUIRED\",\n INTERNAL: \"INTERNAL\"\n};\nfunction apiError(status, code, message, fields) {\n throw error(status, fields ? { message, code, fields } : { message, code });\n}\nfunction codeForStatus(status) {\n switch (status) {\n case 400:\n return ApiErrorCode.VALIDATION_FAILED;\n case 401:\n return ApiErrorCode.UNAUTHORIZED;\n case 403:\n return ApiErrorCode.FORBIDDEN;\n case 404:\n return ApiErrorCode.NOT_FOUND;\n case 409:\n return ApiErrorCode.CONFLICT;\n case 422:\n return ApiErrorCode.UNPROCESSABLE;\n case 503:\n return ApiErrorCode.COMPUTE_UNAVAILABLE;\n default:\n return ApiErrorCode.INTERNAL;\n }\n}\nconst UNIQUE_CONSTRAINT_MESSAGES = {\n projects_org_name_unique: \"A project with that name already exists in this organization.\",\n projects_org_id_slug_key: \"A project with that name already exists in this organization.\",\n orgs_slug_key: \"An organization with that slug already exists.\",\n definitions_pkey: \"A definition with that ID already exists.\"\n};\nfunction friendlyConstraintMessage(raw) {\n for (const [name, msg] of Object.entries(UNIQUE_CONSTRAINT_MESSAGES)) {\n if (raw.includes(name)) return msg;\n }\n return null;\n}\nfunction handleApiError(err, fallback) {\n if (isHttpError(err)) throw err;\n if (err instanceof SchemaExtractionError) {\n if (err.kind === \"unreachable\") {\n apiError(503, ApiErrorCode.COMPUTE_UNAVAILABLE, err.message);\n }\n apiError(422, ApiErrorCode.UNPROCESSABLE, err.message);\n }\n if (err instanceof ComputeServerUnconfiguredError) {\n apiError(503, ApiErrorCode.COMPUTE_UNAVAILABLE, err.message);\n }\n if (err instanceof ProviderError) {\n const friendly = friendlyConstraintMessage(err.message);\n apiError(err.statusCode, codeForStatus(err.statusCode), friendly ?? err.message);\n }\n console.error(`[API] ${fallback}:`, err);\n apiError(500, ApiErrorCode.INTERNAL, fallback);\n}\nfunction throwZodError(err) {\n const fields = {};\n for (const issue of err.issues) {\n const key = issue.path.length ? issue.path.join(\".\") : \"_\";\n if (!(key in fields)) fields[key] = issue.message;\n }\n const first = err.issues[0];\n const path = first.path.length ? `${first.path.join(\".\")}: ` : \"\";\n apiError(400, ApiErrorCode.VALIDATION_FAILED, `${path}${first.message}`, fields);\n}\nexport {\n ApiErrorCode as A,\n ComputeServerUnconfiguredError as C,\n apiError as a,\n fetchSchemaFromCompute as f,\n handleApiError as h,\n resolveServerForOrg as r,\n throwZodError as t\n};\n"],"names":[],"mappings":"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"}
|
package/build/server/chunks/{auth-bootstrap.server-BOTw9HkY.js → auth-bootstrap.server-DKc9-3PR.js}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { p as private_env } from './shared-server-C3WdcJCQ.js';
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
3
|
import { S as SYSTEM_CONTEXT, a as ALL_PLATFORM_PERMISSIONS } from './context-BJnJL8ES.js';
|
|
4
|
-
import { a as getAuthProvider, l as getPermissionStore,
|
|
4
|
+
import { a as getAuthProvider, l as getPermissionStore, q as getTenancy, e as getDataProvider, k as getOrganizationProvider, n as getProjectProvider } from './providers.server-C3fQ7ZdV.js';
|
|
5
5
|
import { s as slugify } from './slug-BGuFQjqe.js';
|
|
6
6
|
|
|
7
7
|
async function bootstrapUserSession(user) {
|
|
@@ -96,4 +96,4 @@ function wireHeaderAuthBootstrap() {
|
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
export { bootstrapUserSession as b, wireHeaderAuthBootstrap as w };
|
|
99
|
-
//# sourceMappingURL=auth-bootstrap.server-
|
|
99
|
+
//# sourceMappingURL=auth-bootstrap.server-DKc9-3PR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-bootstrap.server-
|
|
1
|
+
{"version":3,"file":"auth-bootstrap.server-DKc9-3PR.js","sources":["../../../.svelte-kit/adapter-node/chunks/auth-bootstrap.server.js"],"sourcesContent":["import { p as private_env } from \"./shared-server.js\";\nimport { randomUUID } from \"node:crypto\";\nimport { S as SYSTEM_CONTEXT, a as ALL_PLATFORM_PERMISSIONS } from \"./context.js\";\nimport { e as getDataProvider, q as getTenancy, l as getPermissionStore, k as getOrganizationProvider, a as getAuthProvider, n as getProjectProvider } from \"./providers.server.js\";\nimport { s as slugify } from \"./slug.js\";\nasync function bootstrapUserSession(user) {\n await getDataProvider().ensureUser(SYSTEM_CONTEXT, user.id);\n const tenancy = getTenancy();\n const perms = getPermissionStore();\n const hasAdmin = await perms.hasInstanceAdmin(SYSTEM_CONTEXT);\n let grantedAdminHere = false;\n if (!hasAdmin) {\n if (!shouldBootstrapAdmin(user, private_env.BOOTSTRAP_INSTANCE_ADMIN_EMAIL, tenancy)) return;\n await perms.set(SYSTEM_CONTEXT, user.id, [...ALL_PLATFORM_PERMISSIONS]);\n grantedAdminHere = true;\n }\n if (tenancy !== \"single\") return;\n const orgs = getOrganizationProvider();\n const existing = await orgs.listOrgs(SYSTEM_CONTEXT, { limit: 1 });\n if (existing.items.length > 0) return;\n if (!grantedAdminHere) {\n const userPerms = await perms.getFor(SYSTEM_CONTEXT, user.id);\n if (!userPerms.includes(\"instance_admin\")) return;\n }\n await ensureSingleTenantDefaultOrg(user);\n}\nasync function ensureSingleTenantDefaultOrg(user) {\n if (getTenancy() !== \"single\") return;\n const orgs = getOrganizationProvider();\n const existing = await orgs.listOrgs(SYSTEM_CONTEXT, { limit: 1 });\n if (existing.items.length > 0) return;\n const displayName = typeof user.metadata?.displayName === \"string\" ? user.metadata.displayName : void 0;\n const orgName = displayName?.trim() || user.email?.split(\"@\")[0]?.trim() || \"Default\";\n const slug = slugify(orgName).length >= 3 ? slugify(orgName) : \"default\";\n const now = (/* @__PURE__ */ new Date()).toISOString();\n const org = {\n id: randomUUID(),\n name: orgName,\n slug,\n ownerId: user.id,\n createdBy: user.id,\n updatedBy: user.id,\n createdAt: now,\n updatedAt: now,\n deletedAt: null\n };\n await orgs.createOrg(SYSTEM_CONTEXT, org);\n const projects = getProjectProvider();\n const project = {\n id: randomUUID(),\n orgId: org.id,\n name: \"Default\",\n slug: \"default\",\n visibility: \"public\",\n ownerId: user.id,\n createdBy: user.id,\n updatedBy: user.id,\n autoJoinOnUpload: false,\n createdAt: now,\n updatedAt: now,\n deletedAt: null\n };\n await projects.createProject(SYSTEM_CONTEXT, project);\n}\nfunction shouldBootstrapAdmin(user, configuredEmail, mode) {\n const expected = configuredEmail?.trim().toLowerCase();\n if (mode === \"multi\" && !expected) return false;\n if (!expected) return true;\n const actual = user.email?.trim().toLowerCase();\n return !!actual && actual === expected;\n}\nfunction shouldBootstrapUpn(upn, email, configuredEmail, mode) {\n const expected = configuredEmail?.trim().toLowerCase();\n if (mode === \"multi\" && !expected) return false;\n if (!expected) return true;\n const candidate = (email ?? upn).trim().toLowerCase();\n return !!candidate && candidate === expected;\n}\nfunction wireHeaderAuthBootstrap() {\n const auth = getAuthProvider();\n if (!auth.proxyAuth) return;\n if (typeof auth.setBootstrapAllowlistPolicy !== \"function\") {\n if (private_env.BOOTSTRAP_INSTANCE_ADMIN_EMAIL?.trim()) {\n console.warn(\n \"[selva] BOOTSTRAP_INSTANCE_ADMIN_EMAIL is set but the installed @selvajs/header-auth-provider does not expose setBootstrapAllowlistPolicy. Upgrade the provider, or hand-seed header-allowlist.json.\"\n );\n }\n return;\n }\n auth.setBootstrapAllowlistPolicy(async ({ upn, email }) => {\n const hasAdmin = await getPermissionStore().hasInstanceAdmin(SYSTEM_CONTEXT);\n if (hasAdmin) return false;\n return shouldBootstrapUpn(upn, email, private_env.BOOTSTRAP_INSTANCE_ADMIN_EMAIL, getTenancy());\n });\n}\nexport {\n bootstrapUserSession as b,\n wireHeaderAuthBootstrap as w\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import './context-BJnJL8ES.js';
|
|
2
|
-
import {
|
|
2
|
+
import { u as providers, L as LocalComputeServerStore } from './providers.server-C3fQ7ZdV.js';
|
|
3
3
|
|
|
4
4
|
let cached = null;
|
|
5
5
|
let inflight = null;
|
|
@@ -55,4 +55,4 @@ function isDegraded(report) {
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
export { getBootHealth as g, isDegraded as i };
|
|
58
|
-
//# sourceMappingURL=bootHealth.server-
|
|
58
|
+
//# sourceMappingURL=bootHealth.server-IPXOSqqQ.js.map
|
package/build/server/chunks/{bootHealth.server-BwEi-Qp8.js.map → bootHealth.server-IPXOSqqQ.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootHealth.server-
|
|
1
|
+
{"version":3,"file":"bootHealth.server-IPXOSqqQ.js","sources":["../../../.svelte-kit/adapter-node/chunks/bootHealth.server.js"],"sourcesContent":["import \"./context.js\";\nimport { u as providers, L as LocalComputeServerStore } from \"./providers.server.js\";\nlet cached = null;\nlet inflight = null;\nasync function run() {\n let atRestSecrets = null;\n const store = providers.data.computeServer;\n if (store instanceof LocalComputeServerStore) {\n try {\n atRestSecrets = await store.verifySecrets();\n } catch (err) {\n console.error(\"[selva][boot] verifySecrets threw — treating as failure\", err);\n atRestSecrets = {\n ok: false,\n plaintextFound: false,\n failures: [\n {\n serverId: \"(unknown)\",\n serverLabel: \"(unknown)\",\n reason: \"key_mismatch\",\n cause: err instanceof Error ? err.message : String(err)\n }\n ]\n };\n }\n }\n if (atRestSecrets && !atRestSecrets.ok) {\n for (const f of atRestSecrets.failures) {\n console.error(\n `[selva][boot] compute server \"${f.serverLabel}\" (${f.serverId}): ${f.reason}${f.cause ? ` — ${f.cause}` : \"\"}`\n );\n }\n console.error(\n \"[selva][boot] At-rest secret verification failed. /api/health will return 503. Recover by re-entering the affected apiKeys via /admin/compute, or by restoring the original SELVA_AT_REST_KEY. See docs/Troubleshooting.md.\"\n );\n }\n return {\n checkedAt: (/* @__PURE__ */ new Date()).toISOString(),\n atRestSecrets\n };\n}\nfunction getBootHealth() {\n if (cached) return Promise.resolve(cached);\n if (inflight) return inflight;\n inflight = run().then((result) => {\n cached = result;\n inflight = null;\n return result;\n });\n return inflight;\n}\nfunction isDegraded(report) {\n return report.atRestSecrets !== null && !report.atRestSecrets.ok;\n}\nexport {\n getBootHealth as g,\n isDegraded as i\n};\n"],"names":[],"mappings":";;;AAEA,IAAI,MAAM,GAAG,IAAI;AACjB,IAAI,QAAQ,GAAG,IAAI;AACnB,eAAe,GAAG,GAAG;AACrB,EAAE,IAAI,aAAa,GAAG,IAAI;AAC1B,EAAE,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,aAAa;AAC5C,EAAE,IAAI,KAAK,YAAY,uBAAuB,EAAE;AAChD,IAAI,IAAI;AACR,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE;AACjD,IAAI,CAAC,CAAC,OAAO,GAAG,EAAE;AAClB,MAAM,OAAO,CAAC,KAAK,CAAC,yDAAyD,EAAE,GAAG,CAAC;AACnF,MAAM,aAAa,GAAG;AACtB,QAAQ,EAAE,EAAE,KAAK;AACjB,QAAQ,cAAc,EAAE,KAAK;AAC7B,QAAQ,QAAQ,EAAE;AAClB,UAAU;AACV,YAAY,QAAQ,EAAE,WAAW;AACjC,YAAY,WAAW,EAAE,WAAW;AACpC,YAAY,MAAM,EAAE,cAAc;AAClC,YAAY,KAAK,EAAE,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG;AAClE;AACA;AACA,OAAO;AACP,IAAI;AACJ,EAAE;AACF,EAAE,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE;AAC1C,IAAI,KAAK,MAAM,CAAC,IAAI,aAAa,CAAC,QAAQ,EAAE;AAC5C,MAAM,OAAO,CAAC,KAAK;AACnB,QAAQ,CAAC,8BAA8B,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;AACtH,OAAO;AACP,IAAI;AACJ,IAAI,OAAO,CAAC,KAAK;AACjB,MAAM;AACN,KAAK;AACL,EAAE;AACF,EAAE,OAAO;AACT,IAAI,SAAS,EAAE,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE;AACzD,IAAI;AACJ,GAAG;AACH;AACA,SAAS,aAAa,GAAG;AACzB,EAAE,IAAI,MAAM,EAAE,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AAC5C,EAAE,IAAI,QAAQ,EAAE,OAAO,QAAQ;AAC/B,EAAE,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;AACpC,IAAI,MAAM,GAAG,MAAM;AACnB,IAAI,QAAQ,GAAG,IAAI;AACnB,IAAI,OAAO,MAAM;AACjB,EAAE,CAAC,CAAC;AACJ,EAAE,OAAO,QAAQ;AACjB;AACA,SAAS,UAAU,CAAC,MAAM,EAAE;AAC5B,EAAE,OAAO,MAAM,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;AAClE;;;;"}
|
|
@@ -12,9 +12,9 @@ const MB = 1024 * 1024;
|
|
|
12
12
|
const MAX_SOLVE_DURATION_MS = readPositiveInt("MAX_SOLVE_DURATION_MS", 1e5);
|
|
13
13
|
const RATE_LIMIT_WINDOW_MS = readPositiveInt("COMPUTE_RATE_LIMIT_WINDOW_MS", 1e5);
|
|
14
14
|
const RATE_LIMIT_MAX_REQUESTS = readPositiveInt("COMPUTE_RATE_LIMIT_MAX", 120);
|
|
15
|
-
const MAX_GH_FILE_SIZE = readPositiveInt("MAX_GH_FILE_SIZE_BYTES",
|
|
15
|
+
const MAX_GH_FILE_SIZE = readPositiveInt("MAX_GH_FILE_SIZE_BYTES", 300 * MB);
|
|
16
16
|
const MAX_IMAGE_FILE_SIZE = readPositiveInt("MAX_IMAGE_FILE_SIZE_BYTES", 10 * MB);
|
|
17
|
-
const COMPUTE_REQUEST_MAX_BYTES = readPositiveInt("COMPUTE_REQUEST_MAX_BYTES",
|
|
17
|
+
const COMPUTE_REQUEST_MAX_BYTES = readPositiveInt("COMPUTE_REQUEST_MAX_BYTES", 300 * MB);
|
|
18
18
|
const COMPUTE_RESPONSE_MAX_BYTES = readPositiveInt("COMPUTE_RESPONSE_MAX_BYTES", 300 * MB);
|
|
19
19
|
const REMOTE_DEFINITION_MAX_BYTES = MAX_GH_FILE_SIZE;
|
|
20
20
|
const REMOTE_DEFINITION_FETCH_TIMEOUT_MS = readPositiveInt(
|
|
@@ -24,4 +24,4 @@ const REMOTE_DEFINITION_FETCH_TIMEOUT_MS = readPositiveInt(
|
|
|
24
24
|
const DEFINITION_CACHE_TTL_MS = readPositiveInt("DEFINITION_CACHE_TTL_MS", 5 * 60 * 1e3);
|
|
25
25
|
|
|
26
26
|
export { COMPUTE_REQUEST_MAX_BYTES as C, DEFINITION_CACHE_TTL_MS as D, MAX_GH_FILE_SIZE as M, RATE_LIMIT_MAX_REQUESTS as R, COMPUTE_RESPONSE_MAX_BYTES as a, MAX_IMAGE_FILE_SIZE as b, MAX_SOLVE_DURATION_MS as c, RATE_LIMIT_WINDOW_MS as d, REMOTE_DEFINITION_FETCH_TIMEOUT_MS as e, REMOTE_DEFINITION_MAX_BYTES as f };
|
|
27
|
-
//# sourceMappingURL=computeLimits-
|
|
27
|
+
//# sourceMappingURL=computeLimits-DnJ77wR9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeLimits-DnJ77wR9.js","sources":["../../../.svelte-kit/adapter-node/chunks/computeLimits.js"],"sourcesContent":["function readPositiveInt(name, fallback) {\n const raw = process.env[name];\n if (!raw) return fallback;\n const parsed = Number(raw);\n if (!Number.isFinite(parsed) || parsed <= 0) {\n console.warn(`[computeLimits] Invalid ${name}=${raw}, falling back to ${fallback}`);\n return fallback;\n }\n return Math.floor(parsed);\n}\nconst MB = 1024 * 1024;\nconst MAX_SOLVE_DURATION_MS = readPositiveInt(\"MAX_SOLVE_DURATION_MS\", 1e5);\nconst RATE_LIMIT_WINDOW_MS = readPositiveInt(\"COMPUTE_RATE_LIMIT_WINDOW_MS\", 1e5);\nconst RATE_LIMIT_MAX_REQUESTS = readPositiveInt(\"COMPUTE_RATE_LIMIT_MAX\", 120);\nconst MAX_GH_FILE_SIZE = readPositiveInt(\"MAX_GH_FILE_SIZE_BYTES\", 300 * MB);\nconst MAX_IMAGE_FILE_SIZE = readPositiveInt(\"MAX_IMAGE_FILE_SIZE_BYTES\", 10 * MB);\nconst COMPUTE_REQUEST_MAX_BYTES = readPositiveInt(\"COMPUTE_REQUEST_MAX_BYTES\", 300 * MB);\nconst COMPUTE_RESPONSE_MAX_BYTES = readPositiveInt(\"COMPUTE_RESPONSE_MAX_BYTES\", 300 * MB);\nconst REMOTE_DEFINITION_MAX_BYTES = MAX_GH_FILE_SIZE;\nconst REMOTE_DEFINITION_FETCH_TIMEOUT_MS = readPositiveInt(\n \"REMOTE_DEFINITION_FETCH_TIMEOUT_MS\",\n 3e4\n);\nconst DEFINITION_CACHE_TTL_MS = readPositiveInt(\"DEFINITION_CACHE_TTL_MS\", 5 * 60 * 1e3);\nexport {\n COMPUTE_REQUEST_MAX_BYTES as C,\n DEFINITION_CACHE_TTL_MS as D,\n MAX_GH_FILE_SIZE as M,\n RATE_LIMIT_MAX_REQUESTS as R,\n COMPUTE_RESPONSE_MAX_BYTES as a,\n MAX_IMAGE_FILE_SIZE as b,\n MAX_SOLVE_DURATION_MS as c,\n RATE_LIMIT_WINDOW_MS as d,\n REMOTE_DEFINITION_FETCH_TIMEOUT_MS as e,\n REMOTE_DEFINITION_MAX_BYTES as f\n};\n"],"names":[],"mappings":"AAAA,SAAS,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE;AACzC,EAAE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,QAAQ;AAC3B,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;AAC5B,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE;AAC/C,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC;AACvF,IAAI,OAAO,QAAQ;AACnB,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAC3B;AACA,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI;AACjB,MAAC,qBAAqB,GAAG,eAAe,CAAC,uBAAuB,EAAE,GAAG;AACrE,MAAC,oBAAoB,GAAG,eAAe,CAAC,8BAA8B,EAAE,GAAG;AAC3E,MAAC,uBAAuB,GAAG,eAAe,CAAC,wBAAwB,EAAE,GAAG;AACxE,MAAC,gBAAgB,GAAG,eAAe,CAAC,wBAAwB,EAAE,GAAG,GAAG,EAAE;AACtE,MAAC,mBAAmB,GAAG,eAAe,CAAC,2BAA2B,EAAE,EAAE,GAAG,EAAE;AAC3E,MAAC,yBAAyB,GAAG,eAAe,CAAC,2BAA2B,EAAE,GAAG,GAAG,EAAE;AAClF,MAAC,0BAA0B,GAAG,eAAe,CAAC,4BAA4B,EAAE,GAAG,GAAG,EAAE;AACpF,MAAC,2BAA2B,GAAG;AAC/B,MAAC,kCAAkC,GAAG,eAAe;AAC1D,EAAE,oCAAoC;AACtC,EAAE;AACF;AACK,MAAC,uBAAuB,GAAG,eAAe,CAAC,yBAAyB,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { redirect, isHttpError } from '@sveltejs/kit';
|
|
2
2
|
import { S as SYSTEM_CONTEXT } from './context-BJnJL8ES.js';
|
|
3
|
-
import {
|
|
4
|
-
import { g as getBootHealth } from './bootHealth.server-
|
|
5
|
-
import { w as wireHeaderAuthBootstrap, b as bootstrapUserSession } from './auth-bootstrap.server-
|
|
3
|
+
import { u as providers } from './providers.server-C3fQ7ZdV.js';
|
|
4
|
+
import { g as getBootHealth } from './bootHealth.server-IPXOSqqQ.js';
|
|
5
|
+
import { w as wireHeaderAuthBootstrap, b as bootstrapUserSession } from './auth-bootstrap.server-DKc9-3PR.js';
|
|
6
6
|
import { g as getRefreshToken, h as setSessionCookie, f as setRefreshCookie, b as clearRefreshCookie } from './admin-auth.server-45kKyH82.js';
|
|
7
7
|
import 'zod';
|
|
8
8
|
import './shared-server-C3WdcJCQ.js';
|
|
@@ -97,7 +97,7 @@ const handle = async ({ event, resolve }) => {
|
|
|
97
97
|
if (await isFirstRun()) {
|
|
98
98
|
if (isJsonApiRoute) {
|
|
99
99
|
return applySecurityHeaders(
|
|
100
|
-
new Response(JSON.stringify({
|
|
100
|
+
new Response(JSON.stringify({ message: "Setup required", code: "SETUP_REQUIRED" }), {
|
|
101
101
|
status: 503,
|
|
102
102
|
headers: { "Content-Type": "application/json" }
|
|
103
103
|
}),
|
|
@@ -133,7 +133,7 @@ const handle = async ({ event, resolve }) => {
|
|
|
133
133
|
if (!user) {
|
|
134
134
|
if (isJsonApiRoute) {
|
|
135
135
|
return applySecurityHeaders(
|
|
136
|
-
new Response(JSON.stringify({
|
|
136
|
+
new Response(JSON.stringify({ message: "Unauthorized", code: "UNAUTHORIZED" }), {
|
|
137
137
|
status: 401,
|
|
138
138
|
headers: { "Content-Type": "application/json" }
|
|
139
139
|
}),
|
|
@@ -200,10 +200,11 @@ const handleError = ({
|
|
|
200
200
|
event
|
|
201
201
|
}) => {
|
|
202
202
|
if (isHttpError(error)) {
|
|
203
|
-
|
|
203
|
+
const body = error.body;
|
|
204
|
+
return { message: body.message, code: body.code, fields: body.fields };
|
|
204
205
|
}
|
|
205
206
|
if (status === 404) {
|
|
206
|
-
return { message: "Page not found." };
|
|
207
|
+
return { message: "Page not found.", code: "NOT_FOUND" };
|
|
207
208
|
}
|
|
208
209
|
const rendered = error instanceof Error ? error.stack ?? error.message : (() => {
|
|
209
210
|
try {
|
|
@@ -218,8 +219,8 @@ const handleError = ({
|
|
|
218
219
|
`[Unhandled error] ${event.request.method} ${event.url.pathname}
|
|
219
220
|
${rendered}${cause}`
|
|
220
221
|
);
|
|
221
|
-
return { message: "An unexpected error occurred." };
|
|
222
|
+
return { message: "An unexpected error occurred.", code: "INTERNAL" };
|
|
222
223
|
};
|
|
223
224
|
|
|
224
225
|
export { handle, handleError, isPublicRoute, isStaticAsset };
|
|
225
|
-
//# sourceMappingURL=hooks.server-
|
|
226
|
+
//# sourceMappingURL=hooks.server-BZKLAgww.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.server-BZKLAgww.js","sources":["../../../.svelte-kit/adapter-node/entries/hooks.server.js"],"sourcesContent":["import { redirect, isHttpError } from \"@sveltejs/kit\";\nimport { S as SYSTEM_CONTEXT } from \"../chunks/context.js\";\nimport { u as providers } from \"../chunks/providers.server.js\";\nimport { g as getBootHealth } from \"../chunks/bootHealth.server.js\";\nimport { w as wireHeaderAuthBootstrap, b as bootstrapUserSession } from \"../chunks/auth-bootstrap.server.js\";\nimport { g as getRefreshToken, h as setSessionCookie, f as setRefreshCookie, b as clearRefreshCookie } from \"../chunks/admin-auth.server.js\";\nfunction emptyProfile(userId) {\n return { userId, starredDefinitions: [], recentRuns: [] };\n}\nlet headerAuthBootstrapWired = false;\nlet bootHealthKicked = false;\nlet proxyAuthLoginMissWarned = false;\nlet firstRunResolved = false;\nasync function isFirstRun() {\n if (firstRunResolved) return false;\n const usersPage = await providers.auth.listUsers({ limit: 1 });\n if (usersPage === null) {\n firstRunResolved = true;\n return false;\n }\n if (usersPage.items.length === 0) return true;\n firstRunResolved = true;\n return false;\n}\nasync function buildContext(user, sessionToken) {\n let actingOrgId;\n let orgPermissions = [];\n const platformPermissions = await providers.data.permissions.getFor(SYSTEM_CONTEXT, user.id);\n const membership = await providers.data.orgs.findUserMembership(SYSTEM_CONTEXT, user.id);\n if (membership) {\n actingOrgId = membership.org.id;\n orgPermissions = membership.member.permissions;\n }\n if (!actingOrgId && platformPermissions.includes(\"instance_admin\")) {\n const firstOrgPage = await providers.data.orgs.listOrgs(SYSTEM_CONTEXT, { limit: 1 });\n const firstOrg = firstOrgPage.items[0];\n if (firstOrg) actingOrgId = firstOrg.id;\n }\n return {\n userId: user.id,\n actingOrgId,\n platformPermissions,\n orgPermissions,\n adapterContext: sessionToken ? { sessionToken } : void 0\n };\n}\nconst PUBLIC_PAGE_ROUTES = /* @__PURE__ */ new Set([\n \"/\",\n // landing — guests see it; authed users get redirected by +page.server.ts\n \"/login\",\n \"/setup\",\n \"/accept-invite\"\n]);\nconst PUBLIC_PATH_PREFIXES = [\"/auth/\", \"/logout\"];\nconst PUBLIC_API_ROUTES = /* @__PURE__ */ new Set([\"/api/health\"]);\nconst STATIC_ASSET_PREFIXES = [\"/_app/\", \"/favicon/\"];\nconst STATIC_ASSET_PATHS = /* @__PURE__ */ new Set([\"/favicon.svg\", \"/robots.txt\"]);\nfunction isStaticAsset(pathname) {\n if (STATIC_ASSET_PATHS.has(pathname)) return true;\n return STATIC_ASSET_PREFIXES.some((p) => pathname.startsWith(p));\n}\nfunction isPublicRoute(pathname) {\n if (PUBLIC_PAGE_ROUTES.has(pathname)) return true;\n if (PUBLIC_API_ROUTES.has(pathname)) return true;\n return PUBLIC_PATH_PREFIXES.some((p) => pathname.startsWith(p));\n}\nconst handle = async ({ event, resolve }) => {\n event.locals.providers = providers;\n if (!headerAuthBootstrapWired) {\n wireHeaderAuthBootstrap();\n headerAuthBootstrapWired = true;\n }\n if (!bootHealthKicked) {\n bootHealthKicked = true;\n void getBootHealth();\n }\n const { pathname } = event.url;\n if (isStaticAsset(pathname)) {\n return applySecurityHeaders(await resolve(event), pathname);\n }\n if (pathname === \"/api/health\") {\n return applySecurityHeaders(await resolve(event), pathname);\n }\n const publicRoute = isPublicRoute(pathname);\n const isJsonApiRoute = pathname.startsWith(\"/api/\") || pathname.startsWith(\"/admin/api/\");\n if (!publicRoute) {\n if (await isFirstRun()) {\n if (isJsonApiRoute) {\n return applySecurityHeaders(\n new Response(JSON.stringify({ message: \"Setup required\", code: \"SETUP_REQUIRED\" }), {\n status: 503,\n headers: { \"Content-Type\": \"application/json\" }\n }),\n pathname\n );\n }\n redirect(303, \"/setup\");\n }\n }\n const needsAuth = !publicRoute;\n if (needsAuth) {\n let token = event.cookies.get(\"admin_session\") ?? \"\";\n let user = await providers.auth.verifyToken(token);\n if (!user) {\n const refreshToken = getRefreshToken(event.cookies);\n const oauth = providers.auth.oauth;\n if (refreshToken && oauth) {\n const refreshed = await oauth.refreshSession(refreshToken);\n if (refreshed) {\n setSessionCookie(event.cookies, refreshed.sessionToken);\n setRefreshCookie(event.cookies, refreshed.refreshToken);\n token = refreshed.sessionToken;\n user = await providers.auth.verifyToken(token);\n } else {\n clearRefreshCookie(event.cookies);\n }\n }\n }\n if (!user && providers.auth.proxyAuth) {\n user = await providers.auth.proxyAuth.identifyFromHeaders(event.request.headers);\n if (user) await bootstrapUserSession(user);\n }\n if (!user) {\n if (isJsonApiRoute) {\n return applySecurityHeaders(\n new Response(JSON.stringify({ message: \"Unauthorized\", code: \"UNAUTHORIZED\" }), {\n status: 401,\n headers: { \"Content-Type\": \"application/json\" }\n }),\n pathname\n );\n }\n redirect(303, `/login?redirectTo=${encodeURIComponent(pathname)}`);\n }\n await providers.data.ensureUser(SYSTEM_CONTEXT, user.id);\n event.locals.user = user;\n event.locals.profile = await providers.data.userProfile.getProfile(SYSTEM_CONTEXT, user.id) ?? emptyProfile(user.id);\n event.locals.ctx = await buildContext(user, token);\n } else {\n const isPublicPage = PUBLIC_PAGE_ROUTES.has(pathname);\n const token = isPublicPage ? event.cookies.get(\"admin_session\") ?? \"\" : \"\";\n let user = token ? await providers.auth.verifyToken(token) : null;\n if (!user && isPublicPage && providers.auth.proxyAuth) {\n user = await providers.auth.proxyAuth.identifyFromHeaders(event.request.headers);\n if (!user && pathname === \"/login\" && !proxyAuthLoginMissWarned) {\n proxyAuthLoginMissWarned = true;\n const proxyAuth = providers.auth.proxyAuth;\n const noHeaders = proxyAuth.hasNoIdentityHeaders(event.request.headers);\n const configured = proxyAuth.configuredHeaderNames.join(\", \");\n if (noHeaders) {\n console.warn(\n `[HeaderAuth] /login was hit and NONE of the configured identity headers (${configured}) arrived on the request. The forward-auth proxy is not reaching this process, or it is not forwarding the configured headers. See the @selvajs/header-auth-provider README \"Verification\" section.`\n );\n } else {\n console.warn(\n `[HeaderAuth] /login was hit but the UPN header was missing or the user is not allowlisted. Configured headers: ${configured}. Some headers arrived but identification still failed — check that the UPN header is populated and that the user has been added to header-allowlist.json.`\n );\n }\n }\n }\n if (user) {\n await providers.data.ensureUser(SYSTEM_CONTEXT, user.id);\n event.locals.user = user;\n event.locals.profile = await providers.data.userProfile.getProfile(SYSTEM_CONTEXT, user.id) ?? emptyProfile(user.id);\n event.locals.ctx = await buildContext(user, token);\n }\n }\n return applySecurityHeaders(await resolve(event), pathname);\n};\nfunction applySecurityHeaders(response, pathname) {\n response.headers.set(\"X-Content-Type-Options\", \"nosniff\");\n response.headers.set(\"Referrer-Policy\", \"strict-origin-when-cross-origin\");\n response.headers.set(\n \"Permissions-Policy\",\n \"accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()\"\n );\n if (process.env.NODE_ENV === \"production\") {\n response.headers.set(\"Strict-Transport-Security\", \"max-age=31536000; includeSubDomains\");\n }\n if (pathname.startsWith(\"/_app/\")) {\n response.headers.set(\"Cache-Control\", \"public, max-age=31536000, immutable\");\n } else if (pathname.startsWith(\"/favicon/\") || pathname === \"/favicon.svg\" || pathname === \"/robots.txt\") {\n response.headers.set(\"Cache-Control\", \"public, max-age=604800\");\n }\n return response;\n}\nconst handleError = ({\n error,\n status,\n event\n}) => {\n if (isHttpError(error)) {\n const body = error.body;\n return { message: body.message, code: body.code, fields: body.fields };\n }\n if (status === 404) {\n return { message: \"Page not found.\", code: \"NOT_FOUND\" };\n }\n const rendered = error instanceof Error ? error.stack ?? error.message : (() => {\n try {\n return JSON.stringify(error);\n } catch {\n return String(error);\n }\n })();\n const cause = error instanceof Error && error.cause ? `\n caused by: ${error.cause}` : \"\";\n console.error(\n `[Unhandled error] ${event.request.method} ${event.url.pathname}\n ${rendered}${cause}`\n );\n return { message: \"An unexpected error occurred.\", code: \"INTERNAL\" };\n};\nexport {\n handle,\n handleError,\n isPublicRoute,\n isStaticAsset\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const name = "@selvajs/selva";
|
|
2
|
-
const version = "4.
|
|
2
|
+
const version = "4.5.1";
|
|
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-
|
|
29
|
+
//# sourceMappingURL=package-K5EkWw87.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-
|
|
1
|
+
{"version":3,"file":"package-K5EkWw87.js","sources":["../../../.svelte-kit/adapter-node/chunks/package.js"],"sourcesContent":["const name = \"@selvajs/selva\";\nconst version = \"4.5.1\";\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;;;;"}
|
package/build/server/chunks/{permissions.server-D1KUdeD1.js → permissions.server-zs4XAJCp.js}
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { l as getPermissionStore } from './providers.server-
|
|
1
|
+
import { l as getPermissionStore } from './providers.server-C3fQ7ZdV.js';
|
|
2
2
|
|
|
3
3
|
async function setUserPlatformPermissions(ctx, userId, permissions) {
|
|
4
4
|
return getPermissionStore().set(ctx, userId, permissions);
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
export { setUserPlatformPermissions as s };
|
|
8
|
-
//# sourceMappingURL=permissions.server-
|
|
8
|
+
//# sourceMappingURL=permissions.server-zs4XAJCp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.server-
|
|
1
|
+
{"version":3,"file":"permissions.server-zs4XAJCp.js","sources":["../../../.svelte-kit/adapter-node/chunks/permissions.server.js"],"sourcesContent":["import { l as getPermissionStore } from \"./providers.server.js\";\nasync function setUserPlatformPermissions(ctx, userId, permissions) {\n return getPermissionStore().set(ctx, userId, permissions);\n}\nexport {\n setUserPlatformPermissions as s\n};\n"],"names":[],"mappings":";;AACA,eAAe,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE;AACpE,EAAE,OAAO,kBAAkB,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC;AAC3D;;;;"}
|
|
@@ -79,6 +79,10 @@ class NoopEventSink {
|
|
|
79
79
|
async emit(_event) {
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
|
+
class NoopSolveMetricSink {
|
|
83
|
+
async record(_ctx, _metric) {
|
|
84
|
+
}
|
|
85
|
+
}
|
|
82
86
|
const nowIso = () => (/* @__PURE__ */ new Date()).toISOString();
|
|
83
87
|
function auditUpdate(ctx, fallbackActor) {
|
|
84
88
|
return {
|
|
@@ -3197,6 +3201,34 @@ class SupabaseEventSink {
|
|
|
3197
3201
|
}
|
|
3198
3202
|
}
|
|
3199
3203
|
}
|
|
3204
|
+
class SupabaseSolveMetricSink {
|
|
3205
|
+
constructor(clients) {
|
|
3206
|
+
this.clients = clients;
|
|
3207
|
+
}
|
|
3208
|
+
clients;
|
|
3209
|
+
async record(_ctx, metric) {
|
|
3210
|
+
try {
|
|
3211
|
+
const { error } = await this.clients.serviceClient.from("solve_metrics").insert({
|
|
3212
|
+
actor_id: _ctx.userId || "system",
|
|
3213
|
+
definition_url: metric.definitionUrl,
|
|
3214
|
+
definition_id: metric.definitionId,
|
|
3215
|
+
version_id: metric.versionId,
|
|
3216
|
+
channel: metric.channel,
|
|
3217
|
+
org_id: metric.orgId,
|
|
3218
|
+
duration_ms: metric.durationMs,
|
|
3219
|
+
ok: metric.ok,
|
|
3220
|
+
failure_kind: metric.failureKind,
|
|
3221
|
+
error_count: metric.errorCount,
|
|
3222
|
+
warning_count: metric.warningCount
|
|
3223
|
+
});
|
|
3224
|
+
if (error) {
|
|
3225
|
+
console.error("[SupabaseSolveMetricSink] insert failed:", error.message, { metric });
|
|
3226
|
+
}
|
|
3227
|
+
} catch (err) {
|
|
3228
|
+
console.error("[SupabaseSolveMetricSink] unexpected error:", err, { metric });
|
|
3229
|
+
}
|
|
3230
|
+
}
|
|
3231
|
+
}
|
|
3200
3232
|
const MAX_LIMIT = 200;
|
|
3201
3233
|
const DEFAULT_LIMIT = 100;
|
|
3202
3234
|
const ISO_RE = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:?\d{2})$/;
|
|
@@ -3451,6 +3483,7 @@ const notImplementedGrantStore = {
|
|
|
3451
3483
|
class SupabaseDataProvider {
|
|
3452
3484
|
constructor(clients, events) {
|
|
3453
3485
|
this.clients = clients;
|
|
3486
|
+
this.solveMetrics = new SupabaseSolveMetricSink(clients);
|
|
3454
3487
|
this.orgs = new SupabaseOrgStore(clients, events);
|
|
3455
3488
|
this.projects = new SupabaseProjectStore(clients, events);
|
|
3456
3489
|
this.definitions = new SupabaseDefinitionStore(clients, events);
|
|
@@ -3473,6 +3506,12 @@ class SupabaseDataProvider {
|
|
|
3473
3506
|
permissions;
|
|
3474
3507
|
platformProjectGrants;
|
|
3475
3508
|
auditQuery;
|
|
3509
|
+
/**
|
|
3510
|
+
* Per-solve timing sink, built from the same client bundle. Exposed so the
|
|
3511
|
+
* app's provider wiring can hand it to `SelvaConfig.solveMetrics` without
|
|
3512
|
+
* constructing a second Supabase client.
|
|
3513
|
+
*/
|
|
3514
|
+
solveMetrics;
|
|
3476
3515
|
static fromEnv(env, events) {
|
|
3477
3516
|
const supabaseUrl = env.SUPABASE_URL;
|
|
3478
3517
|
const anonKey = env.SUPABASE_ANON_KEY;
|
|
@@ -4278,6 +4317,13 @@ function pickStorage(e) {
|
|
|
4278
4317
|
throw new Error(`Unknown SELVA_STORAGE_PROVIDER="${choice}". Expected: local | supabase.`);
|
|
4279
4318
|
}
|
|
4280
4319
|
}
|
|
4320
|
+
function pickSolveMetrics(data) {
|
|
4321
|
+
const candidate = data.solveMetrics;
|
|
4322
|
+
if (candidate && typeof candidate.record === "function") {
|
|
4323
|
+
return candidate;
|
|
4324
|
+
}
|
|
4325
|
+
return void 0;
|
|
4326
|
+
}
|
|
4281
4327
|
function pickTenancy(e) {
|
|
4282
4328
|
const choice = (e.SELVA_TENANCY ?? "single").toLowerCase();
|
|
4283
4329
|
if (choice !== "single" && choice !== "multi") {
|
|
@@ -4285,25 +4331,29 @@ function pickTenancy(e) {
|
|
|
4285
4331
|
}
|
|
4286
4332
|
return choice;
|
|
4287
4333
|
}
|
|
4288
|
-
const defaultConfig = defineConfig((e) =>
|
|
4289
|
-
|
|
4290
|
-
|
|
4291
|
-
|
|
4292
|
-
|
|
4293
|
-
|
|
4294
|
-
|
|
4295
|
-
|
|
4296
|
-
|
|
4297
|
-
|
|
4298
|
-
|
|
4299
|
-
|
|
4300
|
-
|
|
4301
|
-
|
|
4302
|
-
|
|
4303
|
-
|
|
4304
|
-
|
|
4305
|
-
|
|
4306
|
-
|
|
4334
|
+
const defaultConfig = defineConfig((e) => {
|
|
4335
|
+
const data = pickData(e);
|
|
4336
|
+
return {
|
|
4337
|
+
tenancy: pickTenancy(e),
|
|
4338
|
+
flags: {
|
|
4339
|
+
ALLOW_CROSS_ORG_PUBLIC: envBool(e, "SELVA_FLAG_ALLOW_CROSS_ORG_PUBLIC"),
|
|
4340
|
+
ALLOW_ORG_COMPUTE_OVERRIDE: envBool(e, "SELVA_FLAG_ALLOW_ORG_COMPUTE_OVERRIDE"),
|
|
4341
|
+
ALLOW_ORG_CREATION: envBool(e, "SELVA_FLAG_ALLOW_ORG_CREATION"),
|
|
4342
|
+
ENABLE_PLATFORM_PROJECTS: envBool(e, "SELVA_FLAG_ENABLE_PLATFORM_PROJECTS"),
|
|
4343
|
+
ENABLE_SHARING: envBool(e, "SELVA_FLAG_ENABLE_SHARING")
|
|
4344
|
+
},
|
|
4345
|
+
branding: {
|
|
4346
|
+
name: e.SELVA_BRAND_NAME,
|
|
4347
|
+
copyrightName: e.SELVA_BRAND_COPYRIGHT_NAME,
|
|
4348
|
+
tagline: e.SELVA_BRAND_TAGLINE,
|
|
4349
|
+
description: e.SELVA_BRAND_DESCRIPTION
|
|
4350
|
+
},
|
|
4351
|
+
auth: pickAuth(e),
|
|
4352
|
+
data,
|
|
4353
|
+
storage: pickStorage(e),
|
|
4354
|
+
solveMetrics: pickSolveMetrics(data)
|
|
4355
|
+
};
|
|
4356
|
+
});
|
|
4307
4357
|
async function loadRawConfig() {
|
|
4308
4358
|
const override = private_env.SELVA_CONFIG_PATH;
|
|
4309
4359
|
if (!override) {
|
|
@@ -4391,9 +4441,16 @@ function getPermissionStore() {
|
|
|
4391
4441
|
function getPlatformProjectGrantStore() {
|
|
4392
4442
|
return resolveProviders().data.platformProjectGrants;
|
|
4393
4443
|
}
|
|
4444
|
+
let _solveMetricSink;
|
|
4445
|
+
function getSolveMetricSink() {
|
|
4446
|
+
if (!_solveMetricSink) {
|
|
4447
|
+
_solveMetricSink = resolveProviders().solveMetrics ?? new NoopSolveMetricSink();
|
|
4448
|
+
}
|
|
4449
|
+
return _solveMetricSink;
|
|
4450
|
+
}
|
|
4394
4451
|
function getAuditQuery() {
|
|
4395
4452
|
return providers.data.auditQuery ?? null;
|
|
4396
4453
|
}
|
|
4397
4454
|
|
|
4398
|
-
export { LocalComputeServerStore as L, MAX_PAGE_LIMIT as M, ProviderError as P, getAuthProvider as a, getBranding as b, getComputeServerConfigStore as c, definitionPaths as d, getDataProvider as e, flag as f, getAuditQuery as g, getDefinitionMeta as h, getDefinitionService as i, getInviteStore as j, getOrganizationProvider as k, getPermissionStore as l, getPlatformProjectGrantStore as m, getProjectProvider as n,
|
|
4399
|
-
//# sourceMappingURL=providers.server-
|
|
4455
|
+
export { LocalComputeServerStore as L, MAX_PAGE_LIMIT as M, ProviderError as P, getAuthProvider as a, getBranding as b, getComputeServerConfigStore as c, definitionPaths as d, getDataProvider as e, flag as f, getAuditQuery as g, getDefinitionMeta as h, getDefinitionService as i, getInviteStore as j, getOrganizationProvider as k, getPermissionStore as l, getPlatformProjectGrantStore as m, getProjectProvider as n, getSolveMetricSink as o, getStorageProvider as p, getTenancy as q, getUserProfileStore as r, isOrgServer as s, isPlatformServer as t, providers as u };
|
|
4456
|
+
//# sourceMappingURL=providers.server-C3fQ7ZdV.js.map
|